3 Commits

Author SHA1 Message Date
walkpan
a14115fb6a feat(技能): 优化治疗技能的目标选择逻辑
将治疗技能的目标选择从随机选择后按血量排序改为优先选择缺失生命值最多的目标,提升治疗效率
2026-04-04 08:54:19 +08:00
walkpan
07b8d47760 feat: 调整英雄和技能视觉效果与平衡性
- 调整多个英雄预制体的嵌套结构,移除冗余节点以优化性能
- 统一英雄基础尺寸为1.3,移除等级成长缩放机制
- 调整技能特效的位置、缩放和灰度显示效果
- 将英雄和怪物的移动速度从360提升至480,增强游戏节奏感
2026-04-03 21:03:29 +08:00
walkpan
c350071841 feat(ui): 调整卡片与列表UI布局并添加高等级光效动画
- 为卡片组件添加高等级光效显示逻辑与动画资源
- 调整card.prefab中多个UI元素的尺寸、边距与位置
- 重构melist.prefab中排名列表的节点结构与样式
- 更新list.prefab中数字标签的字体大小与位置
- 修改部分图片资源与新增动画元数据文件
2026-04-03 20:46:40 +08:00
25 changed files with 6463 additions and 4238 deletions

View File

@@ -26,31 +26,34 @@
},
{
"__id__": 26
},
{
"__id__": 37
}
],
"_active": true,
"_components": [
{
"__id__": 37
},
{
"__id__": 39
},
{
"__id__": 41
},
{
"__id__": 43
},
{
"__id__": 45
},
{
"__id__": 47
},
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 53
},
{
"__id__": 55
}
],
"_prefab": {
"__id__": 49
"__id__": 57
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -631,6 +634,118 @@
"z": 1
}
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 38
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 37
},
"asset": {
"__uuid__": "02e38f62-860e-4bb9-86d9-a59f073e2881",
"__expectedType__": "cc.Prefab"
},
"fileId": "54R/aYBglLI4Jn5pm++Jx8",
"instance": {
"__id__": 39
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "83JAqLl/ZNzJIv+L012Q2q",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 40
},
{
"__id__": 42
},
{
"__id__": 43
},
{
"__id__": 44
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_name"
],
"value": "plus"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"54R/aYBglLI4Jn5pm++Jx8"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -641,7 +756,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 38
"__id__": 46
},
"_contentSize": {
"__type__": "cc.Size",
@@ -669,7 +784,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 40
"__id__": 48
},
"anm": {
"__id__": 5
@@ -690,7 +805,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 42
"__id__": 50
},
"debugMode": false,
"_id": ""
@@ -709,7 +824,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 44
"__id__": 52
},
"enabledContactListener": true,
"bullet": false,
@@ -743,7 +858,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 46
"__id__": 54
},
"tag": 0,
"_group": 4,
@@ -777,7 +892,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 48
"__id__": 56
},
"playOnLoad": false,
"_clips": [],
@@ -800,6 +915,9 @@
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 37
},
{
"__id__": 26
},

View File

@@ -87,7 +87,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": -2,
"y": -5,
"y": -10,
"z": 0
},
"_lrot": {
@@ -99,8 +99,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1.1,
"y": 1.1,
"x": 0.8,
"y": 0.8,
"z": 1
},
"_mobility": 0,
@@ -127,8 +127,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 150,
"height": 168
"width": 113,
"height": 126
},
"_anchorPoint": {
"__type__": "cc.Vec2",

View File

@@ -99,8 +99,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 3,
"y": 3,
"x": 1.5,
"y": 1.5,
"z": 1
},
"_mobility": 0,
@@ -178,7 +178,7 @@
"_fillStart": 0.2,
"_fillRange": 1,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_useGrayscale": true,
"_atlas": {
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23",
"__expectedType__": "cc.SpriteAtlas"

View File

@@ -87,7 +87,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -25.982,
"y": -30,
"z": 0
},
"_lrot": {
@@ -99,7 +99,7 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"x": 0.8,
"y": 1,
"z": 1
},

View File

@@ -0,0 +1,338 @@
[
{
"__type__": "cc.Prefab",
"_name": "plus",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "plus",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 10
}
],
"_active": true,
"_components": [
{
"__id__": 18
}
],
"_prefab": {
"__id__": 20
},
"_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": 1,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 3
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 2
},
"asset": {
"__uuid__": "7e41bd15-2cf8-471c-9e13-372d5ae3d0ba",
"__expectedType__": "cc.Prefab"
},
"fileId": "54R/aYBglLI4Jn5pm++Jx8",
"instance": {
"__id__": 4
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "73Bl2rptBKGr6i8cMQId1k",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 5
},
{
"__id__": 7
},
{
"__id__": 8
},
{
"__id__": 9
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 6
},
"propertyPath": [
"_name"
],
"value": "maxw"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"54R/aYBglLI4Jn5pm++Jx8"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 6
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 6
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 6
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 11
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 10
},
"asset": {
"__uuid__": "a848a83a-fe5a-4fe8-9db4-4009f8445b88",
"__expectedType__": "cc.Prefab"
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": {
"__id__": 12
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "7fFzhENiBDf5TeBL7e/kJ+",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 13
},
{
"__id__": 15
},
{
"__id__": 16
},
{
"__id__": 17
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 14
},
"propertyPath": [
"_name"
],
"value": "buff_dian"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"c46/YsCPVOJYA4mWEpNYRx"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 14
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 14
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 14
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 19
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "77z0467LpD9JrxJ4yirYik"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "54R/aYBglLI4Jn5pm++Jx8",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 10
},
{
"__id__": 2
}
]
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "02e38f62-860e-4bb9-86d9-a59f073e2881",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "plus"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 292 KiB

View File

@@ -0,0 +1,113 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "bsl1",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 20,
"speed": 1,
"wrapMode": 38,
"enableTrsBlending": false,
"_duration": 0.4,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 6
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channel": {
"__id__": 4
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.05,
0.1,
0.15,
0.2,
0.25,
0.3,
0.35
],
"_values": [
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@332e3",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@8be96",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@8179e",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@08735",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@59ed7",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@759c4",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@2451b",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@56d29",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "1a87d32a-1a12-47e6-ad56-f0ef7bbc5a2a",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "bsl1"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -579,7 +579,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 55,
"y": 0,
"y": 12.894000000000005,
"z": 0
},
"_lrot": {
@@ -673,7 +673,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 110,
"height": 150
"height": 165
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1510,7 +1510,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 110,
"height": 150
"height": 165
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1539,8 +1539,8 @@
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_top": -20.394000000000005,
"_bottom": 5.394000000000005,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
@@ -1612,7 +1612,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 55,
"y": 0,
"y": 12.894000000000005,
"z": 0
},
"_lrot": {
@@ -1706,7 +1706,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 110,
"height": 150
"height": 165
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -2543,7 +2543,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 110,
"height": 150
"height": 165
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -2572,8 +2572,8 @@
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_top": -20.394000000000005,
"_bottom": 5.394000000000005,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,

View File

@@ -0,0 +1,220 @@
[
{
"__type__": "cc.Prefab",
"_name": "light",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "light",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
}
],
"_prefab": {
"__id__": 10
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -1.4210854715202004e-14,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1.5,
"y": 1.9,
"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__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 154,
"height": 154
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0epNAJ+SZBmLJWPfcpMVen"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 243,
"g": 253,
"b": 0,
"a": 255
},
"_spriteFrame": {
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23@332e3",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": false,
"_useGrayscale": true,
"_atlas": {
"__uuid__": "2423272e-e63b-4736-b15b-30b40cf98a23",
"__expectedType__": "cc.SpriteAtlas"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "35kqonssVDPahqnSWUwxbU"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": false,
"__prefab": {
"__id__": 7
},
"_alignFlags": 45,
"_target": null,
"_left": 0.04705882352941171,
"_right": 8.000000000000028,
"_top": 38,
"_bottom": 38,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": false,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 181,
"_originalHeight": 120,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9778iivYhHB7Z+oxphluGA"
},
{
"__type__": "cc.Animation",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "1a87d32a-1a12-47e6-ad56-f0ef7bbc5a2a",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "1a87d32a-1a12-47e6-ad56-f0ef7bbc5a2a",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "02sGLnty1LbJNQV+yNmPbg"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "7347RlFLBEdJZ/A06wfR5f",
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "5aae4a6d-b697-4c4b-86d3-8ea91be92be6",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "light"
}
}

View File

@@ -869,7 +869,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 194.478,
"x": 225.016,
"y": 0,
"z": 0
},
@@ -949,8 +949,8 @@
"_string": "999999",
"_horizontalAlign": 0,
"_verticalAlign": 1,
"_actualFontSize": 41,
"_fontSize": 40,
"_actualFontSize": 26,
"_fontSize": 25,
"_fontFamily": "Arial",
"_lineHeight": 40,
"_overflow": 2,
@@ -1028,7 +1028,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 152.454,
"x": 181.966,
"y": 0,
"z": 0
},
@@ -1041,8 +1041,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.5,
"y": 0.5,
"x": 0.4,
"y": 0.4,
"z": 1
},
"_mobility": 0,

View File

@@ -397,7 +397,7 @@
},
{
"__type__": "cc.Node",
"_name": "rank-001",
"_name": "rank",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
@@ -556,7 +556,7 @@
},
{
"__type__": "cc.Node",
"_name": "icon-001",
"_name": "icon",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
@@ -651,7 +651,7 @@
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"b": 0,
"a": 255
},
"_spriteFrame": {
@@ -692,7 +692,7 @@
},
{
"__type__": "cc.Node",
"_name": "name-001",
"_name": "name",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
@@ -851,7 +851,7 @@
},
{
"__type__": "cc.Node",
"_name": "num-001",
"_name": "ItemIcon_Trophy",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
@@ -872,7 +872,143 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 194.478,
"x": 181.966,
"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.4,
"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__": 34
},
"_enabled": true,
"__prefab": {
"__id__": 36
},
"_contentSize": {
"__type__": "cc.Size",
"width": 128,
"height": 98
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e7NLTIaOZF6rg0RRAoWL0f"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 34
},
"_enabled": true,
"__prefab": {
"__id__": 38
},
"_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@c778f",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_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": "9fAUopJgRKkrabAsZt45A+"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "91maPNfO5DHK3SuAXEiepV",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "num",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 41
},
{
"__id__": 43
}
],
"_prefab": {
"__id__": 45
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 225.016,
"y": 0,
"z": 0
},
@@ -905,11 +1041,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 34
"__id__": 40
},
"_enabled": true,
"__prefab": {
"__id__": 36
"__id__": 42
},
"_contentSize": {
"__type__": "cc.Size",
@@ -925,7 +1061,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d95TW1CmtI4bKsSrBme5fP"
"fileId": "d0+hZjiRtCsayRkNZSQSpq"
},
{
"__type__": "cc.Label",
@@ -933,11 +1069,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 34
"__id__": 40
},
"_enabled": true,
"__prefab": {
"__id__": 38
"__id__": 44
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -952,8 +1088,8 @@
"_string": "999999",
"_horizontalAlign": 0,
"_verticalAlign": 1,
"_actualFontSize": 41,
"_fontSize": 40,
"_actualFontSize": 26,
"_fontSize": 25,
"_fontFamily": "Arial",
"_lineHeight": 40,
"_overflow": 2,
@@ -993,7 +1129,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "28YRkRKo9BNZ6AQEpJB+Y7"
"fileId": "57al5dpqBAOpU/bhvDZTBl"
},
{
"__type__": "cc.PrefabInfo",
@@ -1003,143 +1139,7 @@
"asset": {
"__id__": 0
},
"fileId": "efz7Y7nd9BXKHnhiz7F+2J",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "ItemIcon_Trophy-001",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 41
},
{
"__id__": 43
}
],
"_prefab": {
"__id__": 45
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 152.454,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 0.5,
"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__": 40
},
"_enabled": true,
"__prefab": {
"__id__": 42
},
"_contentSize": {
"__type__": "cc.Size",
"width": 128,
"height": 98
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5bMPUrhtxKR6iHsKgbg4/v"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 40
},
"_enabled": true,
"__prefab": {
"__id__": 44
},
"_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@c778f",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_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": "63ZWCEYdxCS5qoR6gK0/hU"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "98cegEY9dGZr6Z/GUEuXSv",
"fileId": "bbYT9Fz1JA5Jwu0b1XZEgo",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 245 KiB

View File

@@ -84,57 +84,57 @@ export interface HSkillInfo {
* skills[0]是普通攻击技能
* skills[1]是等级1时的技能,skills[2]是等级2时的技能,skills[3]是等级3时的技能,最多3级
*
* 属性基准(cards_lv:1,lv:1) SPEED:360,AP:30 | HP:300 | skills[0].cd=1
* 坦克(cards_lv:1,lv:1) SPEED:360,AP:25 | HP:450 | skills[0].cd=0.75
* 近战dps(cards_lv:1,lv:1) SPEED:360,AP:50 | HP:250 | skills[0].cd=1.1
* 远程dps(cards_lv:1,lv:1) SPEED:360,AP:60 | HP:150 | skills[0].cd=1.3
*远程法dps(cards_lv:1,lv:1) SPEED:360,AP:60 | HP:150 | skills[0].cd=1.4
* 远程辅助(cards_lv:1,lv:1) SPEED:360,AP:20 | HP:150 | skills[0].cd=1
* 属性基准(cards_lv:1,lv:1) SPEED:480,AP:30 | HP:300 | skills[0].cd=1
* 坦克(cards_lv:1,lv:1) SPEED:480,AP:25 | HP:450 | skills[0].cd=0.75
* 近战dps(cards_lv:1,lv:1) SPEED:480,AP:50 | HP:250 | skills[0].cd=1.1
* 远程dps(cards_lv:1,lv:1) SPEED:480,AP:60 | HP:150 | skills[0].cd=1.3
*远程法dps(cards_lv:1,lv:1) SPEED:480,AP:60 | HP:150 | skills[0].cd=1.4
* 远程辅助(cards_lv:1,lv:1) SPEED:480,AP:20 | HP:150 | skills[0].cd=1
*/
export const HeroInfo: Record<number, heroInfo> = {
// ========== 近战英雄 ==========
5001:{uuid:5001,name:"盾战士",path:"hk1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Melee,hp:450,ap:25,speed:360,
5001:{uuid:5001,name:"盾战士",path:"hk1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Melee,hp:450,ap:25,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.75,ccd:0},6301:{uuid:6301,lv:1,cd:5,ccd:0}},info:"近战,魔法盾 坦克"},
5002:{uuid:5002,name:"圣骑士",path:"hk3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Melee,hp:1350,ap:75,speed:360,
5002:{uuid:5002,name:"圣骑士",path:"hk3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Melee,hp:1350,ap:75,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.75,ccd:0},6305:{uuid:6305,lv:1,cd:5,ccd:0}},info:"近战,群体护盾 坦克"},
5003:{uuid:5003,name:"风行剑士",path:"hk4", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Melee,hp:500,ap:100,speed:360,
5003:{uuid:5003,name:"风行剑士",path:"hk4", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Melee,hp:500,ap:100,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:1.1,ccd:0},6014:{uuid:6014,lv:1,cd:5,ccd:0}},info:"近战,闪击 近战dps"},
5004:{uuid:5004,name:"刺客",path:"hc1", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:1000,ap:200,speed:360,
5004:{uuid:5004,name:"刺客",path:"hc1", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:1000,ap:200,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:1.1,ccd:0},6104:{uuid:6104,lv:1,cd:5,ccd:0}},info:"近战,火焰击 近战dps"},
5005:{uuid:5005,name:"自然骑士",path:"hk2", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:1000,ap:200,speed:360,
5005:{uuid:5005,name:"自然骑士",path:"hk2", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Melee,hp:1000,ap:200,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:1.1,ccd:0},6104:{uuid:6104,lv:1,cd:5,ccd:0}},info:"治疗近战,火焰击 近战dps"},
// ========== 法师英雄 ==========
5101:{uuid:5101,name:"奥术法师",path:"hm2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:360,
5101:{uuid:5101,name:"奥术法师",path:"hm2", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:480,
skills:{6201:{uuid:6201,lv:1,cd:1.4,ccd:0},6012:{uuid:6012,lv:1,cd:5,ccd:0}},info:"冰球,冰锥 远法dps"},
5102:{uuid:5102,name:"火焰法师",path:"hm1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:300,ap:120,speed:360,
5102:{uuid:5102,name:"火焰法师",path:"hm1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:300,ap:120,speed:480,
skills:{6203:{uuid:6203,lv:1,cd:1.4,ccd:0},6013:{uuid:6013,lv:1,cd:5,ccd:0}},info:"火击,火球 远法dps"},
5103:{uuid:5103,name:"冰法法师",path:"hm9", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:360,
5103:{uuid:5103,name:"冰法法师",path:"hm9", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:480,
skills:{6201:{uuid:6201,lv:1,cd:1.4,ccd:0},6012:{uuid:6012,lv:1,cd:5,ccd:0}},info:"冰击,冰锥 远法dps"},
5104:{uuid:5104,name:"寒霜术士",path:"hm4", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:600,ap:240,speed:360,
5104:{uuid:5104,name:"寒霜术士",path:"hm4", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:600,ap:240,speed:480,
skills:{6201:{uuid:6201,lv:1,cd:1.4,ccd:0},6202:{uuid:6202,lv:1,cd:5,ccd:0}},info:"冰锥,冰刺 远法dps"},
5105:{uuid:5105,name:"炎爆法师",path:"hm3", fac:FacSet.HERO,cards_lv:5,lv:1,type:HType.Long,hp:750,ap:300,speed:360,
5105:{uuid:5105,name:"炎爆法师",path:"hm3", fac:FacSet.HERO,cards_lv:5,lv:1,type:HType.Long,hp:750,ap:300,speed:480,
skills:{6203:{uuid:6203,lv:1,cd:1.4,ccd:0},6201:{uuid:6201,lv:1,cd:5,ccd:0}},info:"火球,陨石术 远法dps" },
// ========== 远程英雄 ==========
5201:{uuid:5201,name:"射手",path:"ha1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:360,
5201:{uuid:5201,name:"射手",path:"ha1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:60,speed:480,
skills:{6101:{uuid:6101,lv:1,cd:1.3,ccd:0},6011:{uuid:6011,lv:1,cd:5,ccd:0}},info:"普通射击,暴射 远dps"},
5202:{uuid:5202,name:"游侠",path:"ha2", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:360,
5202:{uuid:5202,name:"游侠",path:"ha2", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:480,
skills:{6011:{uuid:6101,lv:1,cd:1.3,ccd:0},6101:{uuid:6101,lv:1,cd:5,ccd:0}},info:"暴射,光箭 远dps"},
5203:{uuid:5203,name:"游侠",path:"ha3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:360,
5203:{uuid:5203,name:"游侠",path:"ha3", fac:FacSet.HERO,cards_lv:3,lv:1,type:HType.Long,hp:450,ap:180,speed:480,
skills:{6011:{uuid:6101,lv:1,cd:1.3,ccd:0},6101:{uuid:6101,lv:1,cd:5,ccd:0}},info:"暴射,光箭 远dps"},
// ========== 腐竹英雄 ==========
5301:{uuid:5301,name:"牧师",path:"hh1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:20,speed:360,
5301:{uuid:5301,name:"牧师",path:"hh1", fac:FacSet.HERO,cards_lv:1,lv:1,type:HType.Long,hp:150,ap:20,speed:480,
skills:{6202:{uuid:6202,lv:1,cd:1,ccd:0},6302:{uuid:6302,lv:1,cd:5,ccd:0}},info:"冰锥1,治疗 远辅助" },
5302:{uuid:5302,name:"战地医师",path:"hz1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:300,ap:40,speed:360,
5302:{uuid:5302,name:"战地医师",path:"hz1", fac:FacSet.HERO,cards_lv:2,lv:1,type:HType.Long,hp:300,ap:40,speed:480,
skills:{6202:{uuid:6202,lv:1,cd:1,ccd:0},6304:{uuid:6304,lv:1,cd:5,ccd:0}},info:"冰锥1,群体治疗 远辅助"},
5303:{uuid:5303,name:"守护祭司",path:"hm6", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:600,ap:80,speed:360,
5303:{uuid:5303,name:"守护祭司",path:"hm6", fac:FacSet.HERO,cards_lv:4,lv:1,type:HType.Long,hp:600,ap:80,speed:480,
skills:{6202:{uuid:6202,lv:1,cd:1,ccd:0},6004:{uuid:6004,lv:1,cd:5,ccd:0}},info:"普通射击,单体攻击buff 射手辅助"},
5304:{uuid:5304,name:"秘法精灵",path:"hm7", fac:FacSet.HERO,cards_lv:6,lv:1,type:HType.Long,hp:900,ap:120,speed:360,
5304:{uuid:5304,name:"秘法精灵",path:"hm7", fac:FacSet.HERO,cards_lv:6,lv:1,type:HType.Long,hp:900,ap:120,speed:480,
skills:{6202:{uuid:6202,lv:1,cd:1,ccd:0},6105:{uuid:6105,lv:1,cd:5,ccd:0}},info:"普通射击,群体攻击buff 射手辅助"},
@@ -144,44 +144,44 @@ export const HeroInfo: Record<number, heroInfo> = {
/*
*=============怪物配置列表================
* 基础近战型(lv:1) SPEED:360 |AP:12 | HP:120 | skills[0].cd=0.65
* 重型坦克型(lv:1) SPEED:360 |AP:30 | HP:350 | skills[0].cd=2
* 远程dps(lv:1) SPEED:360 |AP:45 | HP:80 | skills[0].cd=1.5
* 远程辅助(lv:1) SPEED:360 |AP:20 | HP:80 | skills[0].cd=1
* 精英 (lv:1) SPEED:360 |AP:20 | HP:1500 | skills[0].cd=1
* 基础近战型(lv:1) SPEED:480 |AP:12 | HP:120 | skills[0].cd=0.65
* 重型坦克型(lv:1) SPEED:480 |AP:30 | HP:350 | skills[0].cd=2
* 远程dps(lv:1) SPEED:480 |AP:45 | HP:80 | skills[0].cd=1.5
* 远程辅助(lv:1) SPEED:480 |AP:20 | HP:80 | skills[0].cd=1
* 精英 (lv:1) SPEED:480 |AP:20 | HP:1500 | skills[0].cd=1
*/
//============== 兽人系列 ===============
// 近战型
6001:{uuid:6001,name:"兽人战士",path:"mo1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:360,
6001:{uuid:6001,name:"兽人战士",path:"mo1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
6003:{uuid:6003,name:"兽人卫士",path:"mo4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:350,ap:30,speed:360,
6003:{uuid:6003,name:"兽人卫士",path:"mo4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:350,ap:30,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:2,ccd:0}},info:""},
// 4. 远程
6004:{uuid:6004,name:"兽人射手",path:"mo2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:360,
6004:{uuid:6004,name:"兽人射手",path:"mo2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:480,
skills:{6001:{uuid:6101,lv:1,cd:1.5,ccd:0}},info:""},
6005:{uuid:6005,name:"兽人法师",path:"mo5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:20,speed:360,
6005:{uuid:6005,name:"兽人法师",path:"mo5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:20,speed:480,
skills:{6001:{uuid:6203,lv:1,cd:1.5,ccd:0}},info:""},
// 6. 精英/BOSS型
6002:{uuid:6002,name:"兽人斥候",path:"mo3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:360,
6002:{uuid:6002,name:"兽人斥候",path:"mo3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0},6004:{uuid:6004,lv:1,cd:10,ccd:0}},info:""},
6006:{uuid:6006,name:"兽人首领(BOSS)",path:"mo6", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:360,
6006:{uuid:6006,name:"兽人首领(BOSS)",path:"mo6", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:480,
skills:{6002:{uuid:6002,lv:1,cd:2,ccd:0},6004:{uuid:6004,lv:1,cd:10,ccd:0}},info:""},
//============== 亡灵系列 ===============
// 近战型
6101:{uuid:6101,name:"亡灵战士",path:"mud1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:360,
6101:{uuid:6101,name:"亡灵战士",path:"mud1", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
6103:{uuid:6103,name:"兽人斥候",path:"mud3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:360,
6103:{uuid:6103,name:"兽人斥候",path:"mud3", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:120,ap:12,speed:480,
skills:{6001:{uuid:6001,lv:1,cd:0.65,ccd:0}},info:""},
// 4. 远程
6102:{uuid:6102,name:"兽人射手",path:"mud2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:360,
6102:{uuid:6102,name:"兽人射手",path:"mud2", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:80,ap:45,speed:480,
skills:{6001:{uuid:6101,lv:1,cd:1.5,ccd:0}},info:""},
// 6105:{uuid:6105,name:"兽人法师",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:80,ap:20,speed:360,
// 6105:{uuid:6105,name:"兽人法师",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:80,ap:20,speed:480,
// skills:{6001:{uuid:6001,lv:1,cd:1,ccd:0},6003:{uuid:6003,lv:1,cd:10,ccd:0}},info:""},
// 6. 精英/BOSS型
6104:{uuid:6104,name:"亡灵法师(boss)",path:"mud4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:350,ap:30,speed:360,
6104:{uuid:6104,name:"亡灵法师(boss)",path:"mud4", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Long,hp:350,ap:30,speed:480,
skills:{6204:{uuid:6204,lv:1,cd:2,ccd:0},6206:{uuid:6206,lv:1,cd:10,ccd:0}},info:""},
6105:{uuid:6105,name:"兽人首领(BOSS)",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:360,
6105:{uuid:6105,name:"兽人首领(BOSS)",path:"mud5", fac:FacSet.MON,cards_lv:1,lv:1,type:HType.Melee,hp:1500,ap:20,speed:480,
skills:{6002:{uuid:6002,lv:1,cd:2,ccd:0},6005:{uuid:6005,lv:1,cd:10,ccd:0}},info:""},
};

View File

@@ -69,7 +69,7 @@ export class Hero extends ecs.Entity {
// 英雄等级在当前规则下上限为 3避免超配表范围
if(hero_lv>3) hero_lv=3
// 英雄尺寸随等级做轻量放大,强化成长反馈
let size=1+0.1*hero_lv
let size=1.3
// 根据配置路径加载英雄预制体
var path = "game/heros/"+HeroInfo[uuid].path;
var prefab: Prefab = oops.res.get(path, Prefab)!;

View File

@@ -206,8 +206,9 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
const sUp = SkillUpList[_s_uuid] ?? SkillUpList[1001];
const sAp =config.ap+sUp.ap*_skillLv;
const sHit=config.hit_count+sUp.hit_count*_skillLv;
const selectedTargets = this.pickRandomFriendlyTargets(targets, sHit);
const applyTargets = kind === SkillKind.Heal ? this.sortTargetsByLowestHp(selectedTargets) : selectedTargets;
const applyTargets = kind === SkillKind.Heal
? this.pickHealTargetsByMostMissingHp(targets, sHit)
: this.pickRandomFriendlyTargets(targets, sHit);
for (const target of applyTargets) {
if (!target.ent) continue;
const model = target.ent.get(HeroAttrsComp);
@@ -254,16 +255,23 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
return selected;
}
private sortTargetsByLowestHp(targets: HeroViewComp[]): HeroViewComp[] {
private pickHealTargetsByMostMissingHp(targets: HeroViewComp[], hitCount: number): HeroViewComp[] {
if (!targets || targets.length === 0) return [];
const validHitCount = Math.max(1, Math.floor(hitCount));
const sortedTargets = this.sortTargetsByMostMissingHp(targets);
return sortedTargets.slice(0, Math.min(validHitCount, sortedTargets.length));
}
private sortTargetsByMostMissingHp(targets: HeroViewComp[]): HeroViewComp[] {
return [...targets].sort((a, b) => {
const aModel = a.ent?.get(HeroAttrsComp);
const bModel = b.ent?.get(HeroAttrsComp);
const aMissingHp = aModel && aModel.hp_max > 0 ? Math.max(0, aModel.hp_max - aModel.hp) : -1;
const bMissingHp = bModel && bModel.hp_max > 0 ? Math.max(0, bModel.hp_max - bModel.hp) : -1;
if (aMissingHp !== bMissingHp) return bMissingHp - aMissingHp;
const aRatio = aModel && aModel.hp_max > 0 ? aModel.hp / aModel.hp_max : 1;
const bRatio = bModel && bModel.hp_max > 0 ? bModel.hp / bModel.hp_max : 1;
if (aRatio !== bRatio) return aRatio - bRatio;
const aHp = aModel?.hp ?? Number.MAX_SAFE_INTEGER;
const bHp = bModel?.hp ?? Number.MAX_SAFE_INTEGER;
return aHp - bHp;
return aRatio - bRatio;
});
}

View File

@@ -1,5 +1,5 @@
import { mLogger } from "../common/Logger";
import { _decorator, Animation, AnimationClip, EventTouch, Label, Node, NodeEventType, Sprite, SpriteAtlas, Tween, tween, UIOpacity, Vec3, resources } from "cc";
import { _decorator, Animation, AnimationClip, EventTouch, Label, Node, NodeEventType, Sprite, SpriteAtlas, Tween, tween, UIOpacity, Vec3, resources, Light } 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 { CardConfig, CardType, SpecialRefreshCardList, SpecialUpgradeCardList, CKind } from "../common/config/CardSet";
@@ -400,8 +400,9 @@ export class CardComp extends CCComp {
activeFrameNode.children.forEach(child => {
child.active = (child.name === cardLvStr);
});
if(isHighLevel){activeFrameNode.getChildByName("light").active=true}
}
if(this.card_type===CardType.Hero){
const hero = HeroInfo[this.card_uuid];
const heroLv = Math.max(1, Math.floor(this.cardData.hero_lv ?? hero?.lv ?? 1));