refactor(gui, talent): 调整天赋卡片UI布局与边框参数
feat(talent): 新增天赋面板经验数值与点数统计显示 refactor(hero): 重构英雄列表与详情弹窗排序逻辑 fix(window): 修复弹窗默认激活状态与位置偏移问题
This commit is contained in:
@@ -1781,7 +1781,7 @@
|
|||||||
"propertyPath": [
|
"propertyPath": [
|
||||||
"_active"
|
"_active"
|
||||||
],
|
],
|
||||||
"value": true
|
"value": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.TargetInfo",
|
"__type__": "cc.TargetInfo",
|
||||||
@@ -1800,7 +1800,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": -30,
|
"y": 0,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1821,7 +1821,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 150,
|
"width": 150,
|
||||||
"height": 95.5
|
"height": 35.5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1838,7 +1838,7 @@
|
|||||||
"propertyPath": [
|
"propertyPath": [
|
||||||
"_active"
|
"_active"
|
||||||
],
|
],
|
||||||
"value": true
|
"value": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.TargetInfo",
|
"__type__": "cc.TargetInfo",
|
||||||
@@ -1869,7 +1869,7 @@
|
|||||||
"propertyPath": [
|
"propertyPath": [
|
||||||
"_top"
|
"_top"
|
||||||
],
|
],
|
||||||
"value": -8.2625
|
"value": 6.737500000000001
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.TargetInfo",
|
"__type__": "cc.TargetInfo",
|
||||||
@@ -1885,7 +1885,7 @@
|
|||||||
"propertyPath": [
|
"propertyPath": [
|
||||||
"_bottom"
|
"_bottom"
|
||||||
],
|
],
|
||||||
"value": -7.237500000000001
|
"value": 7.762499999999999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "CCPropertyOverrideInfo",
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
@@ -1933,7 +1933,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 2.75,
|
"y": 17.75,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3659,7 +3659,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": -30,
|
"y": 0,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -3766,7 +3766,7 @@
|
|||||||
"__id__": 202
|
"__id__": 202
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": false,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 208
|
"__id__": 208
|
||||||
@@ -4202,7 +4202,7 @@
|
|||||||
"__id__": 220
|
"__id__": 220
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": false,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 226
|
"__id__": 226
|
||||||
@@ -4217,7 +4217,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 2.75,
|
"y": 17.75,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -4635,7 +4635,7 @@
|
|||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 150,
|
"width": 150,
|
||||||
"height": 95.5
|
"height": 35.5
|
||||||
},
|
},
|
||||||
"_anchorPoint": {
|
"_anchorPoint": {
|
||||||
"__type__": "cc.Vec2",
|
"__type__": "cc.Vec2",
|
||||||
@@ -4664,8 +4664,8 @@
|
|||||||
"_target": null,
|
"_target": null,
|
||||||
"_left": 0,
|
"_left": 0,
|
||||||
"_right": 0,
|
"_right": 0,
|
||||||
"_top": -8.2625,
|
"_top": 21.7375,
|
||||||
"_bottom": -7.237500000000001,
|
"_bottom": 22.7625,
|
||||||
"_horizontalCenter": 0,
|
"_horizontalCenter": 0,
|
||||||
"_verticalCenter": 0,
|
"_verticalCenter": 0,
|
||||||
"_isAbsLeft": true,
|
"_isAbsLeft": true,
|
||||||
|
|||||||
@@ -1083,7 +1083,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 103.54399999999998,
|
"y": 96.661,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -1314,8 +1314,8 @@
|
|||||||
"_target": null,
|
"_target": null,
|
||||||
"_left": 15,
|
"_left": 15,
|
||||||
"_right": 15,
|
"_right": 15,
|
||||||
"_top": 11.456000000000017,
|
"_top": 18.339,
|
||||||
"_bottom": 58.54399999999999,
|
"_bottom": 51.66100000000001,
|
||||||
"_horizontalCenter": 0,
|
"_horizontalCenter": 0,
|
||||||
"_verticalCenter": 0,
|
"_verticalCenter": 0,
|
||||||
"_isAbsLeft": true,
|
"_isAbsLeft": true,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -37,23 +37,23 @@
|
|||||||
"__id__": 64
|
"__id__": 64
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 100
|
"__id__": 121
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 102
|
"__id__": 123
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 104
|
"__id__": 125
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 106
|
"__id__": 127
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1554,21 +1554,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 71
|
"__id__": 71
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 92
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": false,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 77
|
"__id__": 98
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 79
|
"__id__": 100
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": -79.992,
|
"y": -80.146,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -1730,6 +1733,278 @@
|
|||||||
"targetOverrides": null,
|
"targetOverrides": null,
|
||||||
"nestedPrefabInstanceRoots": null
|
"nestedPrefabInstanceRoots": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 64
|
||||||
|
},
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 72
|
||||||
|
},
|
||||||
|
"__editorExtras__": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInfo",
|
||||||
|
"root": {
|
||||||
|
"__id__": 71
|
||||||
|
},
|
||||||
|
"asset": {
|
||||||
|
"__uuid__": "c85dc4d5-6ebf-4cee-aa3e-6c027334e622",
|
||||||
|
"__expectedType__": "cc.Prefab"
|
||||||
|
},
|
||||||
|
"fileId": "40LEKxke9Hs6tfg2pVspXT",
|
||||||
|
"instance": {
|
||||||
|
"__id__": 73
|
||||||
|
},
|
||||||
|
"targetOverrides": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInstance",
|
||||||
|
"fileId": "bcGGAQVadOp4NqjzQfitOC",
|
||||||
|
"prefabRootNode": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"mountedChildren": [],
|
||||||
|
"mountedComponents": [],
|
||||||
|
"propertyOverrides": [
|
||||||
|
{
|
||||||
|
"__id__": 74
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 76
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 77
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 78
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 79
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 82
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 84
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 86
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 88
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 90
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"removedComponents": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 75
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_name"
|
||||||
|
],
|
||||||
|
"value": "Lable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"40LEKxke9Hs6tfg2pVspXT"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 75
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_lpos"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 75
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_lrot"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Quat",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0,
|
||||||
|
"w": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 75
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_euler"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 75
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_lscale"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0.7,
|
||||||
|
"y": 0.7,
|
||||||
|
"z": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 81
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_contentSize"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 140,
|
||||||
|
"height": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"32q1bLzYBFr5SK8ZtIeSWI"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 83
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_contentSize"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 140,
|
||||||
|
"height": 54
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"06bJQzIv9Dd4vvjRlqtfn3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 85
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_contentSize"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 140,
|
||||||
|
"height": 45
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"8d3sM/DlJKPpJHNKbTBwEP"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 87
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_contentSize"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Size",
|
||||||
|
"width": 132,
|
||||||
|
"height": 44
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"17CdGbg9BG87rd0n06WZvm"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 89
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_color"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 231,
|
||||||
|
"g": 231,
|
||||||
|
"b": 69,
|
||||||
|
"a": 255
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"4ckA8btpNNTrqJr6S7VGRN"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "CCPropertyOverrideInfo",
|
||||||
|
"targetInfo": {
|
||||||
|
"__id__": 91
|
||||||
|
},
|
||||||
|
"propertyPath": [
|
||||||
|
"_color"
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"__type__": "cc.Color",
|
||||||
|
"r": 213,
|
||||||
|
"g": 186,
|
||||||
|
"b": 50,
|
||||||
|
"a": 255
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.TargetInfo",
|
||||||
|
"localID": [
|
||||||
|
"b1UpBBMc9Obp5MBENsf/W/"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.Node",
|
"__type__": "cc.Node",
|
||||||
"_name": "Label",
|
"_name": "Label",
|
||||||
@@ -1742,14 +2017,14 @@
|
|||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 72
|
"__id__": 93
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 74
|
"__id__": 95
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 76
|
"__id__": 97
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1786,11 +2061,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 71
|
"__id__": 92
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 73
|
"__id__": 94
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -1814,11 +2089,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 71
|
"__id__": 92
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 75
|
"__id__": 96
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -1899,7 +2174,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 78
|
"__id__": 99
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -1940,23 +2215,23 @@
|
|||||||
},
|
},
|
||||||
"_children": [
|
"_children": [
|
||||||
{
|
{
|
||||||
"__id__": 81
|
"__id__": 102
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 89
|
"__id__": 110
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": false,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 95
|
"__id__": 116
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 97
|
"__id__": 118
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 99
|
"__id__": 120
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -1993,23 +2268,23 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 82
|
"__id__": 103
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 84
|
"__id__": 105
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 86
|
"__id__": 107
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 88
|
"__id__": 109
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -2046,11 +2321,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 81
|
"__id__": 102
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 83
|
"__id__": 104
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -2074,21 +2349,21 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 81
|
"__id__": 102
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 85
|
"__id__": 106
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
"_dstBlendFactor": 4,
|
"_dstBlendFactor": 4,
|
||||||
"_color": {
|
"_color": {
|
||||||
"__type__": "cc.Color",
|
"__type__": "cc.Color",
|
||||||
"r": 170,
|
"r": 255,
|
||||||
"g": 170,
|
"g": 255,
|
||||||
"b": 170,
|
"b": 255,
|
||||||
"a": 109
|
"a": 192
|
||||||
},
|
},
|
||||||
"_spriteFrame": {
|
"_spriteFrame": {
|
||||||
"__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@c7ff0",
|
"__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@c7ff0",
|
||||||
@@ -2105,7 +2380,7 @@
|
|||||||
"_fillStart": 0,
|
"_fillStart": 0,
|
||||||
"_fillRange": 0,
|
"_fillRange": 0,
|
||||||
"_isTrimmedMode": true,
|
"_isTrimmedMode": true,
|
||||||
"_useGrayscale": false,
|
"_useGrayscale": true,
|
||||||
"_atlas": null,
|
"_atlas": null,
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
@@ -2119,11 +2394,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 81
|
"__id__": 102
|
||||||
},
|
},
|
||||||
"_enabled": false,
|
"_enabled": false,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 87
|
"__id__": 108
|
||||||
},
|
},
|
||||||
"_alignFlags": 45,
|
"_alignFlags": 45,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -2168,20 +2443,20 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"_parent": {
|
"_parent": {
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
},
|
},
|
||||||
"_children": [],
|
"_children": [],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
{
|
||||||
"__id__": 90
|
"__id__": 111
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 92
|
"__id__": 113
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 94
|
"__id__": 115
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@@ -2218,11 +2493,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 89
|
"__id__": 110
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 91
|
"__id__": 112
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -2246,11 +2521,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 89
|
"__id__": 110
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 93
|
"__id__": 114
|
||||||
},
|
},
|
||||||
"_customMaterial": null,
|
"_customMaterial": null,
|
||||||
"_srcBlendFactor": 2,
|
"_srcBlendFactor": 2,
|
||||||
@@ -2307,11 +2582,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 96
|
"__id__": 117
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -2335,11 +2610,11 @@
|
|||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"__editorExtras__": {},
|
"__editorExtras__": {},
|
||||||
"node": {
|
"node": {
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 98
|
"__id__": 119
|
||||||
},
|
},
|
||||||
"_alignFlags": 45,
|
"_alignFlags": 45,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -2388,7 +2663,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 101
|
"__id__": 122
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@@ -2416,7 +2691,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": false,
|
"_enabled": false,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 103
|
"__id__": 124
|
||||||
},
|
},
|
||||||
"_alignFlags": 40,
|
"_alignFlags": 40,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@@ -2452,7 +2727,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 105
|
"__id__": 126
|
||||||
},
|
},
|
||||||
"lbl_name": {
|
"lbl_name": {
|
||||||
"__id__": 49
|
"__id__": 49
|
||||||
@@ -2473,7 +2748,7 @@
|
|||||||
"__id__": 64
|
"__id__": 64
|
||||||
},
|
},
|
||||||
"node_lock": {
|
"node_lock": {
|
||||||
"__id__": 80
|
"__id__": 101
|
||||||
},
|
},
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
@@ -2493,7 +2768,12 @@
|
|||||||
"instance": null,
|
"instance": null,
|
||||||
"targetOverrides": [
|
"targetOverrides": [
|
||||||
{
|
{
|
||||||
"__id__": 107
|
"__id__": 128
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nestedPrefabInstanceRoots": [
|
||||||
|
{
|
||||||
|
"__id__": 71
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2506,7 +2786,7 @@
|
|||||||
],
|
],
|
||||||
"target": null,
|
"target": null,
|
||||||
"targetInfo": {
|
"targetInfo": {
|
||||||
"__id__": 108
|
"__id__": 129
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8166,10 +8166,10 @@
|
|||||||
"height": 35,
|
"height": 35,
|
||||||
"rawWidth": 8,
|
"rawWidth": 8,
|
||||||
"rawHeight": 35,
|
"rawHeight": 35,
|
||||||
"borderTop": 0,
|
"borderTop": 15,
|
||||||
"borderBottom": 0,
|
"borderBottom": 15,
|
||||||
"borderLeft": 0,
|
"borderLeft": 1,
|
||||||
"borderRight": 7,
|
"borderRight": 5,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
"pixelsToUnit": 100,
|
"pixelsToUnit": 100,
|
||||||
"pivotX": 0.5,
|
"pivotX": 0.5,
|
||||||
|
|||||||
@@ -116,8 +116,8 @@
|
|||||||
"height": 54,
|
"height": 54,
|
||||||
"rawWidth": 89,
|
"rawWidth": 89,
|
||||||
"rawHeight": 54,
|
"rawHeight": 54,
|
||||||
"borderTop": 0,
|
"borderTop": 26,
|
||||||
"borderBottom": 0,
|
"borderBottom": 26,
|
||||||
"borderLeft": 44,
|
"borderLeft": 44,
|
||||||
"borderRight": 44,
|
"borderRight": 44,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
@@ -576,8 +576,8 @@
|
|||||||
"height": 45,
|
"height": 45,
|
||||||
"rawWidth": 52,
|
"rawWidth": 52,
|
||||||
"rawHeight": 45,
|
"rawHeight": 45,
|
||||||
"borderTop": 0,
|
"borderTop": 22,
|
||||||
"borderBottom": 0,
|
"borderBottom": 23,
|
||||||
"borderLeft": 26,
|
"borderLeft": 26,
|
||||||
"borderRight": 26,
|
"borderRight": 26,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
@@ -4992,8 +4992,8 @@
|
|||||||
"height": 45,
|
"height": 45,
|
||||||
"rawWidth": 81,
|
"rawWidth": 81,
|
||||||
"rawHeight": 45,
|
"rawHeight": 45,
|
||||||
"borderTop": 0,
|
"borderTop": 22.5,
|
||||||
"borderBottom": 0,
|
"borderBottom": 22.5,
|
||||||
"borderLeft": 40,
|
"borderLeft": 40,
|
||||||
"borderRight": 40,
|
"borderRight": 40,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
@@ -6096,10 +6096,10 @@
|
|||||||
"height": 39,
|
"height": 39,
|
||||||
"rawWidth": 37,
|
"rawWidth": 37,
|
||||||
"rawHeight": 39,
|
"rawHeight": 39,
|
||||||
"borderTop": 0,
|
"borderTop": 19,
|
||||||
"borderBottom": 0,
|
"borderBottom": 18,
|
||||||
"borderLeft": 0,
|
"borderLeft": 19,
|
||||||
"borderRight": 0,
|
"borderRight": 18,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
"pixelsToUnit": 100,
|
"pixelsToUnit": 100,
|
||||||
"pivotX": 0.5,
|
"pivotX": 0.5,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* 1. 展示单个英雄的详情:idle 动画、名称、AP / DEF / HP / CD、技能描述、
|
* 1. 展示单个英雄的详情:idle 动画、名称、AP / DEF / HP / CD、技能描述、
|
||||||
* 稀有度底框、局外等级、职业、碎片数量、升级按钮、技能图标列表。
|
* 稀有度底框、局外等级、职业、碎片数量、升级按钮、技能图标列表。
|
||||||
* 2. 提供升级操作(消耗碎片提升局外等级,成功后播放升级特效)。
|
* 2. 提供升级操作(消耗碎片提升局外等级,成功后播放升级特效)。
|
||||||
* 3. 提供前后英雄切换按钮,按图鉴排序顺序循环切换(getSortedHeroList)。
|
* 3. 提供前后英雄切换按钮,按图鉴排序顺序循环切换(品质降序 → uuid 升序)。
|
||||||
* 4. 提供关闭按钮 / 遮罩点击关闭弹窗。
|
* 4. 提供关闭按钮 / 遮罩点击关闭弹窗。
|
||||||
*
|
*
|
||||||
* 使用(oops.gui 模块):
|
* 使用(oops.gui 模块):
|
||||||
@@ -15,12 +15,11 @@
|
|||||||
* 关键设计:
|
* 关键设计:
|
||||||
* - 详情渲染逻辑与原 HerosListComp 详情面板同源(已迁移至此),
|
* - 详情渲染逻辑与原 HerosListComp 详情面板同源(已迁移至此),
|
||||||
* HerosListComp 仅保留卡片列表,点击卡片改为打开本弹窗。
|
* HerosListComp 仅保留卡片列表,点击卡片改为打开本弹窗。
|
||||||
* - 前后切换按 getSortedHeroList 计算的顺序循环(与图鉴页面卡片顺序一致)。
|
* - 前后切换按品质降序 → uuid 升序循环(与图鉴页面卡片顺序一致)。
|
||||||
* - hero_icon 使用 Animation + iconVisualToken 机制防止异步加载竞态。
|
* - hero_icon 使用 Animation + iconVisualToken 机制防止异步加载竞态。
|
||||||
*
|
*
|
||||||
* 依赖:
|
* 依赖:
|
||||||
* - HeroInfo / heroSet —— 英雄静态配置
|
* - HeroInfo / HeroList(heroSet)—— 英雄静态配置与全量 UUID 列表
|
||||||
* - getSortedHeroList(heroUpSet)—— 图鉴排序
|
|
||||||
* - smc.getHeroGrowth / smc.getHeroOuterLv / smc.upgradeHero —— 成长数据
|
* - smc.getHeroGrowth / smc.getHeroOuterLv / smc.upgradeHero —— 成长数据
|
||||||
* - buildHeroSkillDesc(HeroSkillText)—— 技能描述生成器
|
* - buildHeroSkillDesc(HeroSkillText)—— 技能描述生成器
|
||||||
* - SSkillBoxComp / ChipComp / SmallTipComp —— 子组件
|
* - SSkillBoxComp / ChipComp / SmallTipComp —— 子组件
|
||||||
@@ -30,12 +29,11 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
|
|||||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||||
import { oops } from "db://oops-framework/core/Oops";
|
import { oops } from "db://oops-framework/core/Oops";
|
||||||
import { mLogger } from "../common/Logger";
|
import { mLogger } from "../common/Logger";
|
||||||
import { HeroInfo, SkillTriggerType, LvFieldEntry, LvTriggerEntry, TriggerGrouped, HSkillInfo, getHeroDisplayStats, LvBonusAttrsEntry } from "../common/config/heroSet";
|
import { HeroInfo, HeroList, SkillTriggerType, LvFieldEntry, LvTriggerEntry, TriggerGrouped, HSkillInfo, getHeroDisplayStats, LvBonusAttrsEntry } from "../common/config/heroSet";
|
||||||
import { buildHeroSkillDesc } from "../common/HeroSkillText";
|
import { buildHeroSkillDesc } from "../common/HeroSkillText";
|
||||||
import { outlineRich } from "../common/RichOutline";
|
import { outlineRich } from "../common/RichOutline";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { HERO_UPGRADE_NEED_FRAGMENTS, RARITY_BG_COLORS } from "../common/config/GameSet";
|
import { HERO_UPGRADE_NEED_FRAGMENTS, RARITY_BG_COLORS } from "../common/config/GameSet";
|
||||||
import { getSortedHeroList } from "../common/config/heroUpSet";
|
|
||||||
import { ChipComp } from "./ChipComp";
|
import { ChipComp } from "./ChipComp";
|
||||||
import { SmallTipComp } from "./SmallTipComp";
|
import { SmallTipComp } from "./SmallTipComp";
|
||||||
import { SSkillBoxComp } from "./SSkillBoxComp";
|
import { SSkillBoxComp } from "./SSkillBoxComp";
|
||||||
@@ -249,7 +247,13 @@ export class HeroInfoComp extends CCComp {
|
|||||||
* @param delta 1 下一个,-1 上一个
|
* @param delta 1 下一个,-1 上一个
|
||||||
*/
|
*/
|
||||||
private switchHero(delta: 1 | -1) {
|
private switchHero(delta: 1 | -1) {
|
||||||
const sorted = getSortedHeroList(uuid => smc.getHeroGrowth(uuid));
|
// 与图鉴页面排序同源:仅按品质降序 → uuid 升序
|
||||||
|
const sorted = [...HeroList].sort((a, b) => {
|
||||||
|
const ra = HeroInfo[a]?.rarity ?? 1;
|
||||||
|
const rb = HeroInfo[b]?.rarity ?? 1;
|
||||||
|
if (ra !== rb) return rb - ra;
|
||||||
|
return a - b;
|
||||||
|
});
|
||||||
if (sorted.length === 0) return;
|
if (sorted.length === 0) return;
|
||||||
const idx = sorted.indexOf(this.huuid);
|
const idx = sorted.indexOf(this.huuid);
|
||||||
// 当前 uuid 不在列表中(异常)时回退到第一个
|
// 当前 uuid 不在列表中(异常)时回退到第一个
|
||||||
|
|||||||
@@ -5,15 +5,16 @@
|
|||||||
* 职责:
|
* 职责:
|
||||||
* 1. 以卡片列表形式展示所有可用英雄(使用 CardLiteComp 预制体)。
|
* 1. 以卡片列表形式展示所有可用英雄(使用 CardLiteComp 预制体)。
|
||||||
* 2. 点击卡片打开英雄详情弹窗(UIID.HeroInfo),详情/升级在 HeroInfoComp 中处理。
|
* 2. 点击卡片打开英雄详情弹窗(UIID.HeroInfo),详情/升级在 HeroInfoComp 中处理。
|
||||||
* 3. 卡片排序:可升级优先 → 现有等级降序 → 品质降序(getSortedHeroList)。
|
* 3. 卡片排序:仅按品质降序 → uuid 升序(与养成进度解耦,保持展示稳定)。
|
||||||
*
|
*
|
||||||
* 关键设计:
|
* 关键设计:
|
||||||
* - cards_node 为卡片容器,通过 instantiate(card_lite_prefab) 动态生成卡片。
|
* - cards_node 为卡片容器,通过 instantiate(card_lite_prefab) 动态生成卡片。
|
||||||
* - 升级/碎片变动后通过 HERO_GROWTH_UPDATE 事件统一刷新所有卡片的可升级标识。
|
* - 升级/碎片变动后通过 HERO_GROWTH_UPDATE 事件统一刷新所有卡片的可升级标识。
|
||||||
* - 详情面板已从本组件剥离,由 HeroInfoComp 承载。
|
* - 详情面板已从本组件剥离,由 HeroInfoComp 承载。
|
||||||
|
* - 排序不依赖 smc,仅读取静态配置(HeroInfo.rarity)。
|
||||||
*
|
*
|
||||||
* 依赖:
|
* 依赖:
|
||||||
* - getSortedHeroList(heroUpSet)—— 图鉴排序
|
* - HeroInfo / HeroList(heroSet)—— 英雄静态配置与全量 UUID 列表
|
||||||
* - CardLiteComp —— 轻量卡片组件
|
* - CardLiteComp —— 轻量卡片组件
|
||||||
* - UIID.HeroInfo(oops.gui)—— 英雄详情弹窗
|
* - UIID.HeroInfo(oops.gui)—— 英雄详情弹窗
|
||||||
*/
|
*/
|
||||||
@@ -24,10 +25,8 @@ import { oops } from "db://oops-framework/core/Oops";
|
|||||||
import { mLogger } from "../common/Logger";
|
import { mLogger } from "../common/Logger";
|
||||||
import { HeroInfo, HeroList } from "../common/config/heroSet";
|
import { HeroInfo, HeroList } from "../common/config/heroSet";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { getSortedHeroList } from "../common/config/heroUpSet";
|
|
||||||
import { UIID } from "../common/config/GameUIConfig";
|
import { UIID } from "../common/config/GameUIConfig";
|
||||||
import { CardLiteComp } from "./CardLiteComp";
|
import { CardLiteComp } from "./CardLiteComp";
|
||||||
import { smc } from "../common/SingletonModuleComp";
|
|
||||||
|
|
||||||
const { property, ccclass } = _decorator;
|
const { property, ccclass } = _decorator;
|
||||||
|
|
||||||
@@ -46,14 +45,30 @@ export class HerosListComp extends CCComp {
|
|||||||
@property
|
@property
|
||||||
card_w = 120
|
card_w = 120
|
||||||
|
|
||||||
|
/** 卡片高度 */
|
||||||
|
@property
|
||||||
|
card_h = 200
|
||||||
|
|
||||||
/** 卡片横向间隔 */
|
/** 卡片横向间隔 */
|
||||||
@property
|
@property
|
||||||
spacing_x = 10
|
spacing_x = 10
|
||||||
|
|
||||||
|
/** 卡片纵向间隔 */
|
||||||
|
@property
|
||||||
|
spacing_y = 10
|
||||||
|
|
||||||
|
/** 每行卡片数(竖向滚动时按列排列) */
|
||||||
|
@property
|
||||||
|
cols = 4
|
||||||
|
|
||||||
/** 卡片左右边距 */
|
/** 卡片左右边距 */
|
||||||
@property
|
@property
|
||||||
margin_x = 15
|
margin_x = 15
|
||||||
|
|
||||||
|
/** 卡片上下边距 */
|
||||||
|
@property
|
||||||
|
margin_y = 50
|
||||||
|
|
||||||
// ======================== 运行时状态 ========================
|
// ======================== 运行时状态 ========================
|
||||||
|
|
||||||
debugMode: boolean = false
|
debugMode: boolean = false
|
||||||
@@ -95,8 +110,13 @@ export class HerosListComp extends CCComp {
|
|||||||
|
|
||||||
this.cards_node.removeAllChildren()
|
this.cards_node.removeAllChildren()
|
||||||
|
|
||||||
// 排序与详情面板"前后切换"同源(getSortedHeroList),保证两个入口顺序一致
|
// 图鉴排序:仅按品质降序 → uuid 升序(与养成进度解耦,保持展示稳定)
|
||||||
const sorted = getSortedHeroList(uuid => smc.getHeroGrowth(uuid))
|
const sorted = [...HeroList].sort((a, b) => {
|
||||||
|
const ra = HeroInfo[a]?.rarity ?? 1;
|
||||||
|
const rb = HeroInfo[b]?.rarity ?? 1;
|
||||||
|
if (ra !== rb) return rb - ra;
|
||||||
|
return a - b;
|
||||||
|
})
|
||||||
|
|
||||||
for (const uuid of sorted) {
|
for (const uuid of sorted) {
|
||||||
const hero = HeroInfo[uuid]
|
const hero = HeroInfo[uuid]
|
||||||
@@ -127,16 +147,18 @@ export class HerosListComp extends CCComp {
|
|||||||
const total = this.cards_node.children.length
|
const total = this.cards_node.children.length
|
||||||
if (total === 0) return
|
if (total === 0) return
|
||||||
|
|
||||||
// 宽度 = 卡片总宽 + 卡片间隔 + 左右边距
|
// 竖向滚动:宽度固定(每行 cols 列),高度按行数累计
|
||||||
const contentW = total * this.card_w
|
const rows = Math.ceil(total / this.cols)
|
||||||
+ (total - 1) * this.spacing_x
|
|
||||||
|
// 宽度 = 每行卡片总宽 + 横向间隔 + 左右边距
|
||||||
|
const contentW = this.cols * this.card_w
|
||||||
|
+ (this.cols - 1) * this.spacing_x
|
||||||
+ this.margin_x * 2
|
+ this.margin_x * 2
|
||||||
|
|
||||||
const cols = 4
|
// 高度 = 行数 × 卡片高 + 纵向间隔 + 上下边距
|
||||||
const rows = Math.ceil(total / cols)
|
const contentH = rows * this.card_h
|
||||||
const cardH = 200
|
+ (rows - 1) * this.spacing_y
|
||||||
const spacingY = 10
|
+ this.margin_y * 2
|
||||||
const contentH = Math.max(1000, rows * (cardH + spacingY) + 50)
|
|
||||||
|
|
||||||
const uiTrans = this.cards_node.getComponent(UITransform)
|
const uiTrans = this.cards_node.getComponent(UITransform)
|
||||||
if (uiTrans) {
|
if (uiTrans) {
|
||||||
|
|||||||
@@ -69,6 +69,9 @@ export class TalentsComp extends CCComp {
|
|||||||
@property({ type: ProgressBar, tooltip: "当前等级经验进度条" })
|
@property({ type: ProgressBar, tooltip: "当前等级经验进度条" })
|
||||||
progress_exp: ProgressBar = null!;
|
progress_exp: ProgressBar = null!;
|
||||||
|
|
||||||
|
@property({ type: Label, tooltip: "当前等级经验数值(当前经验/升级所需经验)" })
|
||||||
|
lbl_exp: Label = null!;
|
||||||
|
|
||||||
@property({ type: Node, tooltip: "一阶页签节点" })
|
@property({ type: Node, tooltip: "一阶页签节点" })
|
||||||
tab_basic: Node = null!;
|
tab_basic: Node = null!;
|
||||||
|
|
||||||
@@ -148,7 +151,14 @@ export class TalentsComp extends CCComp {
|
|||||||
if (!this.talents_content || !this.prefab_talent_item) return;
|
if (!this.talents_content || !this.prefab_talent_item) return;
|
||||||
const levels = smc.getTalentLevels();
|
const levels = smc.getTalentLevels();
|
||||||
|
|
||||||
if (this.lbl_points) this.lbl_points.string = `${smc.getTalentPoints()}`;
|
if (this.lbl_points) {
|
||||||
|
// 剩余/总点数:总点数 = 剩余 + 各阶已投入
|
||||||
|
const remaining = smc.getTalentPoints();
|
||||||
|
const invested = getTalentTierInvestedPoints(levels, TalentTier.Basic)
|
||||||
|
+ getTalentTierInvestedPoints(levels, TalentTier.Specialized)
|
||||||
|
+ getTalentTierInvestedPoints(levels, TalentTier.Super);
|
||||||
|
this.lbl_points.string = `${remaining}/${remaining + invested}`;
|
||||||
|
}
|
||||||
|
|
||||||
// 天赋等级(Lv.x)与当前等级经验进度
|
// 天赋等级(Lv.x)与当前等级经验进度
|
||||||
const talentLv = smc.getTalentLevel();
|
const talentLv = smc.getTalentLevel();
|
||||||
@@ -160,6 +170,13 @@ export class TalentsComp extends CCComp {
|
|||||||
? Math.min(1, smc.getTalentExp() / needExp)
|
? Math.min(1, smc.getTalentExp() / needExp)
|
||||||
: 1;
|
: 1;
|
||||||
}
|
}
|
||||||
|
if (this.lbl_exp) {
|
||||||
|
const needExp = getTalentLevelExp(talentLv);
|
||||||
|
// 满级后显示为 0/0,避免分母为 0
|
||||||
|
this.lbl_exp.string = needExp > 0
|
||||||
|
? `${smc.getTalentExp()}/${needExp}`
|
||||||
|
: `0/0`;
|
||||||
|
}
|
||||||
|
|
||||||
// 仅首次进入时默认选中已解锁的最高阶,后续刷新保持玩家当前选择
|
// 仅首次进入时默认选中已解锁的最高阶,后续刷新保持玩家当前选择
|
||||||
if (!this.inited) {
|
if (!this.inited) {
|
||||||
|
|||||||
Reference in New Issue
Block a user