diff --git a/assets/resources/gui/element/SInfoBox.prefab b/assets/resources/gui/element/SInfoBox.prefab
index 329b4571..99f0a105 100644
--- a/assets/resources/gui/element/SInfoBox.prefab
+++ b/assets/resources/gui/element/SInfoBox.prefab
@@ -34,14 +34,11 @@
"__id__": 85
},
{
- "__id__": 93
+ "__id__": 95
}
],
"_active": true,
"_components": [
- {
- "__id__": 99
- },
{
"__id__": 101
},
@@ -50,10 +47,13 @@
},
{
"__id__": 105
+ },
+ {
+ "__id__": 107
}
],
"_prefab": {
- "__id__": 107
+ "__id__": 197
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1349,6 +1349,9 @@
},
{
"__id__": 92
+ },
+ {
+ "__id__": 93
}
],
"removedComponents": []
@@ -1415,6 +1418,22 @@
"z": 0
}
},
+ {
+ "__type__": "CCPropertyOverrideInfo",
+ "targetInfo": {
+ "__id__": 94
+ },
+ "propertyPath": [
+ "_string"
+ ],
+ "value": "Lv.3"
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "9fHoBo6AhAEbkJa7wim6sA"
+ ]
+ },
{
"__type__": "cc.Node",
"_name": "close",
@@ -1427,14 +1446,14 @@
"_active": true,
"_components": [
{
- "__id__": 94
+ "__id__": 96
},
{
- "__id__": 96
+ "__id__": 98
}
],
"_prefab": {
- "__id__": 98
+ "__id__": 100
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1471,11 +1490,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 93
+ "__id__": 95
},
"_enabled": true,
"__prefab": {
- "__id__": 95
+ "__id__": 97
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1499,11 +1518,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 93
+ "__id__": 95
},
"_enabled": true,
"__prefab": {
- "__id__": 97
+ "__id__": 99
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1564,7 +1583,7 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 100
+ "__id__": 102
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1592,7 +1611,7 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 102
+ "__id__": 104
},
"_id": ""
},
@@ -1610,7 +1629,7 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 104
+ "__id__": 106
},
"_alignFlags": 42,
"_target": null,
@@ -1637,7 +1656,7 @@
"fileId": "69KEoFCvFPgL/uT5tnmJQV"
},
{
- "__type__": "8a1cd4c/xNDa5Rl+1kA2wgq",
+ "__type__": "a6ff4WTftVAjoWb2GXoTomx",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
@@ -1646,13 +1665,2093 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 106
+ "__id__": 108
+ },
+ "icon_node": {
+ "__id__": 109
+ },
+ "name_label": {
+ "__id__": 125
+ },
+ "lv_label": {
+ "__id__": 131
+ },
+ "main_info": {
+ "__id__": 61
+ },
+ "lv2_status": {
+ "__id__": 141
+ },
+ "lv2_desc": {
+ "__id__": 157
+ },
+ "lv3_status": {
+ "__id__": 169
+ },
+ "lv3_desc": {
+ "__id__": 185
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "17SxIIRJ5OhIpRD2iMjBDn"
+ "fileId": "bfqst7mbdFjKaq593Qd1Cc"
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "icon",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 110
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 120
+ },
+ {
+ "__id__": 122
+ }
+ ],
+ "_prefab": {
+ "__id__": 124
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.8,
+ "y": 0.8,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Mask",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 26
+ },
+ "_children": [
+ {
+ "__id__": 109
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 111
+ },
+ {
+ "__id__": 113
+ },
+ {
+ "__id__": 115
+ },
+ {
+ "__id__": 117
+ }
+ ],
+ "_prefab": {
+ "__id__": 119
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 110
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 112
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 65,
+ "height": 65
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "03nWLvwvFC5YKsJgnNXuKJ"
+ },
+ {
+ "__type__": "cc.Mask",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 110
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 114
+ },
+ "_type": 3,
+ "_inverted": false,
+ "_segments": 64,
+ "_alphaThreshold": 0.1,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "08gc0G6tZOap5VMXyIUk96"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 110
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 116
+ },
+ "_alignFlags": 45,
+ "_target": null,
+ "_left": 17.5,
+ "_right": 17.5,
+ "_top": 17.5,
+ "_bottom": 17.5,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 40,
+ "_originalHeight": 40,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "4aJp4RicZF+KFW5/t1OofP"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 110
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 118
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@85dcd",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": {
+ "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73",
+ "__expectedType__": "cc.SpriteAtlas"
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "8bchz4iSVN47L0O1Xk8RKW"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "c7ymg5OshHabafeZJICJug",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 109
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 121
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 78,
+ "height": 78
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "fdak7SgstFMLwEvzn6+Pbp"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 109
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 123
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "abc35b6e-b052-4835-a3a3-cb85abd47f4d@9e575",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": {
+ "__uuid__": "abc35b6e-b052-4835-a3a3-cb85abd47f4d",
+ "__expectedType__": "cc.SpriteAtlas"
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "7ekr/R70BLWL/gB7w5hxpx"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "93wpdyvytKPqGrBBUDf293",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 126
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 130
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "label",
+ "_horizontalAlign": 0,
+ "_verticalAlign": 0,
+ "_actualFontSize": 31,
+ "_fontSize": 30,
+ "_fontFamily": "Arial",
+ "_lineHeight": 40,
+ "_overflow": 2,
+ "_enableWrapText": true,
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_enableShadow": false,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 2,
+ "y": 2
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "name",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 26
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 127
+ },
+ {
+ "__id__": 125
+ }
+ ],
+ "_prefab": {
+ "__id__": 129
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 155.633,
+ "y": 11.435,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 126
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 128
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 200,
+ "height": 54.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "913FrEtE5Oe7tJV5A+xDgl"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "53odR2CxxCsbS0jWyOGcVx",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b93rGD2mlDlbUc4+aotxyB"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 132
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 140
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "Lv.x",
+ "_horizontalAlign": 0,
+ "_verticalAlign": 0,
+ "_actualFontSize": 19.9,
+ "_fontSize": 19.9,
+ "_fontFamily": "Arial",
+ "_lineHeight": 40,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": false,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_enableShadow": false,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 2,
+ "y": 2
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "lv",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 133
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 137
+ },
+ {
+ "__id__": 131
+ }
+ ],
+ "_prefab": {
+ "__id__": 139
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 78.59,
+ "y": -36.383,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Node",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 26
+ },
+ "_children": [
+ {
+ "__id__": 132
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 134
+ }
+ ],
+ "_prefab": {
+ "__id__": 136
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 133
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 135
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b5xK0+JIxAMq1JbyrofYj3"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "a4vGM3XRVJv5CLECFZDK4t",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 132
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 138
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 39.019317626953125,
+ "height": 54.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "84Gjtv/C9CFp6pAM5OtY4K"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "f10CvQ0IFGXqNUzr6OAuVZ",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "15BPhpPbVAaZ34RKUG4thR"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 142
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 156
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 255,
+ "b": 10,
+ "a": 255
+ },
+ "_string": "已激活",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 20,
+ "_fontSize": 20,
+ "_fontFamily": "Arial",
+ "_lineHeight": 40,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": false,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": false,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_enableShadow": false,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 2,
+ "y": 2
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 143
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 153
+ },
+ {
+ "__id__": 141
+ }
+ ],
+ "_prefab": {
+ "__id__": 155
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "status",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 69
+ },
+ "_children": [
+ {
+ "__id__": 144
+ },
+ {
+ "__id__": 142
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 150
+ }
+ ],
+ "_prefab": {
+ "__id__": 152
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 244.02,
+ "y": 68.665,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "bg_line",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 143
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 145
+ },
+ {
+ "__id__": 147
+ }
+ ],
+ "_prefab": {
+ "__id__": 149
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.4,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 144
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 146
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 250,
+ "height": 63
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "26j1c/+F5PjI64zz6DfoE2"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 144
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 148
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@7f50d",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 1,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a66dnsTCpE44cRbTqFSkyF"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "aaTYXsGN5AB5Kt/WigXlO8",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 143
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 151
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 30
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "3fMmaDHOlJebOBkNzUjj9V"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "00RQ/zyWJNk62ncyhzQ+Co",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 142
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 154
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 60,
+ "height": 50.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "87S3Fg8n9PLZx1Jjk/PRfr"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "0fX6o+TjNJvrC/Mlr6hF9a",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "1c/NCUeR5DcKk9pApO7ASl"
+ },
+ {
+ "__type__": "cc.RichText",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 158
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 168
+ },
+ "_lineHeight": 40,
+ "_string": "RichText",
+ "_horizontalAlign": 0,
+ "_verticalAlign": 0,
+ "_fontSize": 25,
+ "_fontColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_maxWidth": 0,
+ "_fontFamily": "Arial",
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_userDefinedFont": null,
+ "_cacheMode": 0,
+ "_imageAtlas": null,
+ "_handleTouchEvent": true,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "RichText",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 159
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 165
+ },
+ {
+ "__id__": 157
+ }
+ ],
+ "_prefab": {
+ "__id__": 167
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "info",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 69
+ },
+ "_children": [
+ {
+ "__id__": 158
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 160
+ },
+ {
+ "__id__": 162
+ }
+ ],
+ "_prefab": {
+ "__id__": 164
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 159
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 161
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 580,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "58WxOsoDNB3I48Vnp35pIK"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 159
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 163
+ },
+ "_alignFlags": 40,
+ "_target": null,
+ "_left": 30,
+ "_right": 30,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 500,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "dfyX4Ux61E44gdnqlsqqmA"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "33M73t099OIpomESKRM1ZQ",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 158
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 166
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 95.86181640625,
+ "height": 50.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b3l6okVw1DzqUVhra1Zh4f"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "dfwr51mcRMEKxQ1trdXPqh",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "6f+JG64u9GoKoWU6bpF8y3"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 170
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 184
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 255,
+ "b": 10,
+ "a": 255
+ },
+ "_string": "已激活",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 20,
+ "_fontSize": 20,
+ "_fontFamily": "Arial",
+ "_lineHeight": 40,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": false,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": false,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_enableShadow": false,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 2,
+ "y": 2
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 171
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 181
+ },
+ {
+ "__id__": 169
+ }
+ ],
+ "_prefab": {
+ "__id__": 183
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "status",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 85
+ },
+ "_children": [
+ {
+ "__id__": 172
+ },
+ {
+ "__id__": 170
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 178
+ }
+ ],
+ "_prefab": {
+ "__id__": 180
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 244.02,
+ "y": 68.665,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "bg_line",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 171
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 173
+ },
+ {
+ "__id__": 175
+ }
+ ],
+ "_prefab": {
+ "__id__": 177
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.4,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 172
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 174
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 250,
+ "height": 63
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "26j1c/+F5PjI64zz6DfoE2"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 172
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 176
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@7f50d",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 1,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a66dnsTCpE44cRbTqFSkyF"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "aaTYXsGN5AB5Kt/WigXlO8",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 171
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 179
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 30
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "3fMmaDHOlJebOBkNzUjj9V"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "00RQ/zyWJNk62ncyhzQ+Co",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 170
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 182
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 60,
+ "height": 50.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "87S3Fg8n9PLZx1Jjk/PRfr"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "0fX6o+TjNJvrC/Mlr6hF9a",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "1c/NCUeR5DcKk9pApO7ASl"
+ },
+ {
+ "__type__": "cc.RichText",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 186
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 196
+ },
+ "_lineHeight": 40,
+ "_string": "RichText",
+ "_horizontalAlign": 0,
+ "_verticalAlign": 0,
+ "_fontSize": 25,
+ "_fontColor": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_maxWidth": 0,
+ "_fontFamily": "Arial",
+ "_font": null,
+ "_isSystemFontUsed": true,
+ "_userDefinedFont": null,
+ "_cacheMode": 0,
+ "_imageAtlas": null,
+ "_handleTouchEvent": true,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "RichText",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 187
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 193
+ },
+ {
+ "__id__": 185
+ }
+ ],
+ "_prefab": {
+ "__id__": 195
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "info",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 85
+ },
+ "_children": [
+ {
+ "__id__": 186
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 188
+ },
+ {
+ "__id__": 190
+ }
+ ],
+ "_prefab": {
+ "__id__": 192
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 187
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 189
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 580,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "58WxOsoDNB3I48Vnp35pIK"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 187
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 191
+ },
+ "_alignFlags": 40,
+ "_target": null,
+ "_left": 30,
+ "_right": 30,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 500,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "dfyX4Ux61E44gdnqlsqqmA"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "33M73t099OIpomESKRM1ZQ",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 186
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 194
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 95.86181640625,
+ "height": 50.4
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b3l6okVw1DzqUVhra1Zh4f"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "dfwr51mcRMEKxQ1trdXPqh",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "6f+JG64u9GoKoWU6bpF8y3"
},
{
"__type__": "cc.PrefabInfo",
@@ -1664,7 +3763,29 @@
},
"fileId": "0bP5AdjVNKbIVXJK2hNWPD",
"instance": null,
- "targetOverrides": null,
+ "targetOverrides": [
+ {
+ "__id__": 198
+ },
+ {
+ "__id__": 200
+ },
+ {
+ "__id__": 202
+ },
+ {
+ "__id__": 204
+ },
+ {
+ "__id__": 206
+ },
+ {
+ "__id__": 208
+ },
+ {
+ "__id__": 210
+ }
+ ],
"nestedPrefabInstanceRoots": [
{
"__id__": 85
@@ -1679,5 +3800,159 @@
"__id__": 2
}
]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "icon_node"
+ ],
+ "target": {
+ "__id__": 26
+ },
+ "targetInfo": {
+ "__id__": 199
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "93wpdyvytKPqGrBBUDf293"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "name_label"
+ ],
+ "target": {
+ "__id__": 26
+ },
+ "targetInfo": {
+ "__id__": 201
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "b93rGD2mlDlbUc4+aotxyB"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "lv_label"
+ ],
+ "target": {
+ "__id__": 26
+ },
+ "targetInfo": {
+ "__id__": 203
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "15BPhpPbVAaZ34RKUG4thR"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "lv2_status"
+ ],
+ "target": {
+ "__id__": 69
+ },
+ "targetInfo": {
+ "__id__": 205
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "1c/NCUeR5DcKk9pApO7ASl"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "lv2_desc"
+ ],
+ "target": {
+ "__id__": 69
+ },
+ "targetInfo": {
+ "__id__": 207
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "6f+JG64u9GoKoWU6bpF8y3"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "lv3_status"
+ ],
+ "target": {
+ "__id__": 85
+ },
+ "targetInfo": {
+ "__id__": 209
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "1c/NCUeR5DcKk9pApO7ASl"
+ ]
+ },
+ {
+ "__type__": "cc.TargetOverrideInfo",
+ "source": {
+ "__id__": 107
+ },
+ "sourceInfo": null,
+ "propertyPath": [
+ "lv3_desc"
+ ],
+ "target": {
+ "__id__": 85
+ },
+ "targetInfo": {
+ "__id__": 211
+ }
+ },
+ {
+ "__type__": "cc.TargetInfo",
+ "localID": [
+ "6f+JG64u9GoKoWU6bpF8y3"
+ ]
}
]
\ No newline at end of file
diff --git a/assets/script/game/common/config/GameUIConfig.ts b/assets/script/game/common/config/GameUIConfig.ts
index a13097ef..82fca27d 100644
--- a/assets/script/game/common/config/GameUIConfig.ts
+++ b/assets/script/game/common/config/GameUIConfig.ts
@@ -23,6 +23,8 @@ export enum UIID {
// Heros,
// Talents,
Mission,
+ /** 技能信息弹窗(技能小图标点击弹出) */
+ SInfo,
}
/** 打开界面方式的配置数据 */
@@ -38,5 +40,6 @@ export var UIConfigData: { [key: number]: UIConfig } = {
// [UIID.Heros]: { layer: LayerType.UI, prefab: "gui/element/heros" },
// [UIID.Talents]: { layer: LayerType.UI, prefab: "gui/element/talents" },
[UIID.Mission]: { layer: LayerType.UI, prefab: "gui/element/mission" },
+ [UIID.SInfo]: { layer: LayerType.PopUp, prefab: "gui/element/SInfoBox" },
}
\ No newline at end of file
diff --git a/assets/script/game/map/SSkillBoxComp.ts b/assets/script/game/map/SSkillBoxComp.ts
index 9129c261..1bb03db9 100644
--- a/assets/script/game/map/SSkillBoxComp.ts
+++ b/assets/script/game/map/SSkillBoxComp.ts
@@ -1,10 +1,12 @@
-import { _decorator, Node, Sprite, Label } from "cc";
+import { _decorator, Node, Sprite, Label, NodeEventType } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
+import { oops } from "db://oops-framework/core/Oops";
import { CardTriggerType } from "../common/config/CardSet";
import { EquipPoolList } from "../common/config/EquipSet";
import { SkillSet, FieldSkillSet } from "../common/config/SkillSet";
import { FieldEntry } from "../common/config/heroSet";
+import { UIID } from "../common/config/GameUIConfig";
import { smc } from "../common/SingletonModuleComp";
const { ccclass, property } = _decorator;
@@ -53,6 +55,42 @@ export class SSkillBoxComp extends CCComp {
/** 英雄图鉴模式下的图标来源:skill=SkillSet,field=FieldSkillSet;undefined 表示装备卡模式 */
private hero_icon_source?: "skill" | "field";
+ /** 点击事件是否已注册(防止重复绑定) */
+ private _clickRegistered: boolean = false;
+
+ /**
+ * 注册点击事件(幂等,可安全重复调用)
+ */
+ private registerClick() {
+ if (this._clickRegistered) return;
+ this._clickRegistered = true;
+ this.node.on(NodeEventType.TOUCH_END, this.onClick, this);
+ }
+
+ /** 点击:弹出技能信息框 */
+ private onClick() {
+ oops.audio.playEffect("music/button");
+ oops.gui.open(UIID.SInfo, {
+ uuid: this.s_uuid,
+ card_lv: this.card_lv,
+ card_icon: this.card_icon,
+ skill_name: this.resolveSkillName(),
+ field: this.field,
+ trigger_type: this.trigger_type,
+ });
+ }
+
+ onLoad() {
+ this.registerClick();
+ }
+
+ onDestroy() {
+ super.onDestroy();
+ if (this.node && this.node.isValid) {
+ this.node.off(NodeEventType.TOUCH_END, this.onClick, this);
+ }
+ }
+
/**
* 初始化技能卡效果:
* 1. 从 EquipPoolList 查询装备卡的触发配置(含 trigger_type)。
diff --git a/assets/script/game/map/SinfoComp.ts b/assets/script/game/map/SinfoComp.ts
index 881de0b6..8cbd2742 100644
--- a/assets/script/game/map/SinfoComp.ts
+++ b/assets/script/game/map/SinfoComp.ts
@@ -1,20 +1,338 @@
-import { _decorator, Node, Sprite, Label } from "cc";
+/**
+ * @file SinfoComp.ts
+ * @description 技能信息弹窗组件(UI 视图层)
+ *
+ * 职责:
+ * 1. 展示技能小图标(SSkillBoxComp)点击后的详细信息弹窗。
+ * 2. 展示技能名称、当前等级、图标、主功能说明。
+ * 3. 展示 2 级 / 3 级 激活状态(已激活显示"已激活",未激活显示"x级激活")
+ * 及相对上一档的能力提升说明。
+ * 4. 点击弹窗外部区域关闭。
+ *
+ * 使用(oops.gui 模块):
+ * oops.gui.open(UIID.SInfo, {
+ * uuid: 8701, // 卡牌/技能 UUID
+ * card_lv: 1, // 当前等级
+ * card_icon: "xxx", // 图标ID(可选,缺省自动解析)
+ * skill_name: "战后恢复", // 名称(可选)
+ * field: [...], // 驻场词条(装备卡)
+ * trigger_type: 3, // 触发类型
+ * });
+ *
+ * 依赖:
+ * - oops.gui(UI 生命周期)—— open / removeByNode
+ * - SkillSet / FieldSkillSet(技能/光环静态配置)
+ * - SkillCardList / EquipPoolList(卡牌静态配置)
+ * - HeroSkillDesc(buildCardDescRich 富文本描述生成)
+ */
+import { _decorator, Node, Label, RichText, NodeEventType, Sprite, Color, input, Input, EventTouch } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
+import { oops } from "db://oops-framework/core/Oops";
+import { CardTriggerType, CardConfig } from "../common/config/CardSet";
+import { SkillSet, FieldSkillSet } from "../common/config/SkillSet";
+import { SkillCardList } from "../common/config/SCardSet";
+import { EquipPoolList } from "../common/config/EquipSet";
+import { FieldEntry } from "../common/config/heroSet";
+import { buildCardDescRich } from "../common/config/HeroSkillDesc";
+import { smc } from "../common/SingletonModuleComp";
+
const { ccclass, property } = _decorator;
-/**
- * 技能小图标组件
- *
- * 由 MissSkillsComp.addSkill() 实例化并初始化。
- * 在战场上以图标 + 剩余次数的形式呈现。
- */
+/** SInfo 弹窗初始化参数 */
+export interface SInfoParams {
+ /** 卡牌/技能 UUID */
+ uuid: number;
+ /** 当前等级 */
+ card_lv: number;
+ /** 图标ID(可选,优先级最高) */
+ card_icon?: string;
+ /** 技能名称(可选) */
+ skill_name?: string;
+ /** 驻场词条(装备卡专用) */
+ field?: FieldEntry[];
+ /** 触发类型 */
+ trigger_type?: CardTriggerType;
+}
+
+/** 等级提升信息(用于 2 级 / 3 级面板) */
+interface LvUpgradeInfo {
+ /** 是否已激活 */
+ unlocked: boolean;
+ /** 等级标签文本(如 "Lv.2") */
+ lvText: string;
+ /** 激活状态文本("已激活" 或 "2级激活") */
+ statusText: string;
+ /** 能力提升富文本描述 */
+ desc: string;
+}
+
@ccclass('SinfoComp')
@ecs.register('SinfoComp', false)
export class SinfoComp extends CCComp {
+ // ======================== 编辑器绑定节点 ========================
+ /** 技能图标节点 */
+ @property({ type: Node, displayName: "技能图标" })
+ private icon_node: Node = null;
+ /** 技能名称标签 */
+ @property({ type: Label, displayName: "技能名称" })
+ private name_label: Label = null;
+ /** 当前等级标签 */
+ @property({ type: Label, displayName: "当前等级" })
+ private lv_label: Label = null;
+
+ /** 主功能说明(富文本) */
+ @property({ type: RichText, displayName: "主功能说明" })
+ private main_info: RichText = null;
+
+ /** 2级激活状态标签 */
+ @property({ type: Label, displayName: "2级激活状态" })
+ private lv2_status: Label = null;
+
+ /** 2级提升说明(富文本) */
+ @property({ type: RichText, displayName: "2级提升说明" })
+ private lv2_desc: RichText = null;
+
+ /** 3级激活状态标签 */
+ @property({ type: Label, displayName: "3级激活状态" })
+ private lv3_status: Label = null;
+
+ /** 3级提升说明(富文本) */
+ @property({ type: RichText, displayName: "3级提升说明" })
+ private lv3_desc: RichText = null;
+
+ // ======================== 运行时状态 ========================
+
+ /** 弹窗参数 */
+ private params: SInfoParams | null = null;
+
+ // ======================== 生命周期 ========================
+
+ onLoad() {
+ // 点击弹窗自身(BlockInputEvents 拦截)不关闭,仅点击外部遮罩关闭
+ this.node.on(NodeEventType.TOUCH_END, this.onSelfTouch, this);
+ }
+
+ onDestroy() {
+ super.onDestroy();
+ if (this.node && this.node.isValid) {
+ this.node.off(NodeEventType.TOUCH_END, this.onSelfTouch, this);
+ }
+ // 注销全局触摸监听
+ input.off(Input.EventType.TOUCH_END, this.onGlobalTouch, this);
+ }
+
+ /**
+ * oops.gui 添加到舞台回调(框架约定入口)
+ * @param params 见 SInfoParams
+ */
+ onAdded(params: SInfoParams) {
+ this.params = params;
+ this.render();
+ // 延迟一帧注册全局触摸,避免本次点击立即触发关闭
+ this.scheduleOnce(() => {
+ input.on(Input.EventType.TOUCH_END, this.onGlobalTouch, this);
+ }, 0);
+ }
+
+ /** 点击弹窗自身:阻止冒泡,不关闭 */
+ private onSelfTouch(event: EventTouch) {
+ event.propagationStopped = true;
+ }
+
+ /** 全局触摸结束:点击弹窗外部关闭 */
+ private onGlobalTouch() {
+ // 若点击落在弹窗内部(被 BlockInputEvents 拦截)则不会走到这里
+ this.close();
+ }
+
+ /** 关闭弹窗 */
+ private close() {
+ oops.gui.removeByNode(this.node);
+ }
+
+ // ======================== 渲染逻辑 ========================
+
+ /** 主渲染入口 */
+ private render() {
+ if (!this.params) return;
+ const p = this.params;
+
+ // ---- 图标 ----
+ this.renderIcon(p);
+
+ // ---- 名称 ----
+ const name = this.resolveName(p);
+ this.setLabel(this.name_label, name);
+
+ // ---- 当前等级 ----
+ this.setLabel(this.lv_label, `Lv.${p.card_lv}`);
+
+ // ---- 主功能说明 ----
+ this.renderMainInfo(p);
+
+ // ---- 2 级 / 3 级 激活信息 ----
+ const lv2Info = this.buildLvUpgradeInfo(p, 2);
+ const lv3Info = this.buildLvUpgradeInfo(p, 3);
+ this.renderLvPanel(lv2Info, this.lv2_status, this.lv2_desc);
+ this.renderLvPanel(lv3Info, this.lv3_status, this.lv3_desc);
+ }
+
+ /** 渲染技能图标 */
+ private renderIcon(p: SInfoParams) {
+ if (!this.icon_node || !this.icon_node.isValid) return;
+ const iconId = p.card_icon ?? this.resolveIconId(p);
+ let sprite = this.icon_node.getComponent(Sprite) || this.icon_node.addComponent(Sprite);
+ if (smc.uiconsAtlas && iconId) {
+ const frame = smc.uiconsAtlas.getSpriteFrame(iconId);
+ sprite.spriteFrame = frame || null;
+ } else {
+ sprite.spriteFrame = null;
+ }
+ }
+
+ /** 解析图标ID */
+ private resolveIconId(p: SInfoParams): string | undefined {
+ if (p.card_icon) return p.card_icon;
+ // 装备卡:从 EquipPoolList 查 icon
+ const equip = EquipPoolList.find(c => c.uuid === p.uuid);
+ if (equip?.icon) return equip.icon;
+ // 技能卡:从 SkillCardList 查 icon
+ const skillCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
+ if (skillCard?.icon) return skillCard.icon;
+ // 驻场词条:从 FieldSkillSet 取
+ if (p.trigger_type === CardTriggerType.Field && p.field?.length) {
+ const fieldUuid = p.field[0].uuid;
+ return FieldSkillSet[fieldUuid]?.icon;
+ }
+ // 技能底座:从 SkillSet 取
+ const skillUuid = skillCard?.skill ?? p.uuid;
+ return SkillSet[skillUuid]?.icon;
+ }
+
+ /** 解析技能名称 */
+ private resolveName(p: SInfoParams): string {
+ if (p.skill_name) return p.skill_name;
+ const equip = EquipPoolList.find(c => c.uuid === p.uuid);
+ if (equip?.name) return equip.name;
+ const skillCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
+ if (skillCard?.name) return skillCard.name;
+ if (p.trigger_type === CardTriggerType.Field && p.field?.length) {
+ const fieldUuid = p.field[0].uuid;
+ return FieldSkillSet[fieldUuid]?.name ?? "";
+ }
+ const skillUuid = skillCard?.skill ?? p.uuid;
+ return SkillSet[skillUuid]?.name ?? "";
+ }
+
+ /** 渲染主功能说明 */
+ private renderMainInfo(p: SInfoParams) {
+ if (!this.main_info || !this.main_info.isValid) return;
+ // 构建 CardConfig 用于描述生成
+ const card = this.buildCardConfig(p);
+ if (card) {
+ this.main_info.string = buildCardDescRich(card);
+ } else {
+ // 兜底:直接展示配置中的 info 字段
+ const info = this.resolveInfoText(p);
+ this.main_info.string = info || "暂无描述";
+ }
+ }
+
+ /** 构建 CardConfig 供描述生成器使用 */
+ private buildCardConfig(p: SInfoParams): CardConfig | null {
+ // 优先从装备卡池查
+ const equip = EquipPoolList.find(c => c.uuid === p.uuid);
+ if (equip) return equip;
+ // 其次从技能卡池查
+ const skillCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
+ if (skillCard) return skillCard;
+ // 手动构建
+ return {
+ uuid: p.uuid,
+ type: 2, // CardType.Skill
+ cost: 0,
+ weight: 0,
+ kind: 2, // CKind.Skill
+ card_lv: p.card_lv,
+ icon: p.card_icon,
+ name: p.skill_name,
+ field: p.field,
+ trigger_type: p.trigger_type,
+ } as CardConfig;
+ }
+
+ /** 解析主功能说明纯文本(兜底) */
+ private resolveInfoText(p: SInfoParams): string {
+ const equip = EquipPoolList.find(c => c.uuid === p.uuid);
+ if (equip?.info) return equip.info;
+ const skillCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
+ if (skillCard?.info) return skillCard.info;
+ const skillUuid = skillCard?.skill ?? p.uuid;
+ return SkillSet[skillUuid]?.info ?? "";
+ }
+
+ /** 构建指定等级的提升信息 */
+ private buildLvUpgradeInfo(p: SInfoParams, targetLv: number): LvUpgradeInfo {
+ const unlocked = p.card_lv >= targetLv;
+ const lvText = `Lv.${targetLv}`;
+ const statusText = unlocked ? "已激活" : `${targetLv}级激活`;
+
+ // 能力提升描述:从对应等级的装备卡配置中提取
+ const desc = this.buildLvDesc(p, targetLv);
+ return { unlocked, lvText, statusText, desc };
+ }
+
+ /** 构建指定等级的提升描述 */
+ private buildLvDesc(p: SInfoParams, targetLv: number): string {
+ // 从装备卡池中查找同名更高档位配置
+ const currentEquip = EquipPoolList.find(c => c.uuid === p.uuid);
+ if (currentEquip) {
+ const higher = EquipPoolList.find(c =>
+ c.name === currentEquip.name && c.card_lv === targetLv
+ );
+ if (higher) {
+ return buildCardDescRich(higher);
+ }
+ return "";
+ }
+ // 技能卡:从技能卡池查找同技能更高档位
+ const currentCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
+ if (currentCard) {
+ const skillUuid = currentCard.skill ?? currentCard.uuid;
+ const higher = SkillCardList.find(c =>
+ (c.skill ?? c.uuid) === skillUuid && c.card_lv === targetLv
+ );
+ if (higher) {
+ return buildCardDescRich(higher);
+ }
+ }
+ return "";
+ }
+
+ /** 渲染单个等级面板 */
+ private renderLvPanel(info: LvUpgradeInfo, statusLabel: Label | null, descRich: RichText | null) {
+ if (statusLabel && statusLabel.isValid) {
+ statusLabel.string = info.statusText;
+ // 已激活显示绿色,未激活显示灰色
+ statusLabel.color = info.unlocked
+ ? new Color(0, 255, 10, 255)
+ : new Color(150, 150, 150, 255);
+ }
+ if (descRich && descRich.isValid) {
+ descRich.string = info.desc || (info.unlocked ? "" : "未解锁");
+ }
+ }
+
+ /** 设置 Label 文本 */
+ private setLabel(label: Label | null, text: string) {
+ if (label && label.isValid) {
+ label.string = text;
+ }
+ }
/** ECS 组件移除时销毁节点 */
reset() {