16 Commits

Author SHA1 Message Date
f359eae788 docs(Design): 添加非关键成长三选一的设计文档
补充非关键成长系统的详细设计,包括选项池、数值范围、阶段建议和实现参考
2025-11-28 16:54:46 +08:00
d3ca31fcfa ui变动 2025-11-28 16:14:38 +08:00
509539760d refactor(hero): 优化调试日志输出并添加调试工具方法
添加条件日志方法 debugLog 和 debugWarn 来统一管理调试输出
将 HeroAtkSystem 中的 console.log 调用改为条件输出
启用 HeroViewComp 的调试模式以便开发时查看日志
2025-11-28 10:29:54 +08:00
7a7a6fa02c fix(战斗系统): 修复伤害数值出错问题
- 修复在DamageEvent接口和DamageQueueComp缺少ext_dmg和dmg_ratio字段问题
- 修复HeroAtkSystem的伤害计算逻辑
- 优化HeroViewComp的hp_show和mp_show方法,直接使用model数据
- 默认显示血条并增加调试日志输出
- 移除冗余的debug日志,优化伤害计算流程
2025-11-28 09:59:01 +08:00
40c430546c feat(英雄系统): 添加击杀计数并优化攻击系统变量命名
添加英雄击杀计数功能,用于统计英雄击杀敌人数量
优化HeroAtkSystem中变量命名,将attackerTAttrsComp改为更清晰的CAttrsComp
修复荆棘伤害可能导致英雄死亡时未触发死亡表现的问题
2025-11-27 16:31:22 +08:00
b2cc25b32b feat(战斗系统): 添加反伤机制并优化属性变量命名
添加新的技能配置5000(反伤)和实现反伤逻辑
将targetAttrs统一重命名为TAttrsComp以提高代码一致性
2025-11-27 16:12:23 +08:00
0692d58e01 refactor(天赋系统): 重构天赋效果枚举和属性处理逻辑
- 重新组织TalEffet枚举,按功能分类并添加注释说明
- 移除冗余的DMG_RED属性
- 为HeroAttrsComp添加详细的JSDoc注释
- 优化天赋buff处理方法,区分数值型和计数型天赋
2025-11-27 16:12:12 +08:00
cdfcf1f8f1 refactor(HeroAtkSystem): 移除未使用的DamageQueueHelper导入 2025-11-27 10:49:26 +08:00
dcf739d093 refactor(战斗系统): 重构伤害计算逻辑并统一属性命名
- 将DAMAGE_REDUCTION统一重命名为DMG_RED以提高一致性
- 优化暴击判定逻辑,加入暴击抗性计算
- 重构伤害计算公式,整合易伤和免伤效果
- 移除冗余的calculateDamage方法
- 为枚举值添加注释说明
2025-11-27 10:19:54 +08:00
bbf8dbb8cb refactor(战斗系统): 统一伤害减免属性命名并优化伤害计算逻辑
- 将LDMG枚举值重命名为DAMAGE_REDUCTION以提高可读性
- 修改HeroAtkSystem中的dmgCount方法,直接接收HeroAttrsComp参数
- 在伤害计算中整合天赋系统的伤害减免效果
2025-11-26 16:35:44 +08:00
df3ad88c3e fix(英雄属性): 修复MP更新时视图未同步的问题
修改HeroAttrsComp在更新MP值时调用HeroViewComp的mp_add方法同步视图
重命名HeroViewComp的mp方法为mp_add以更准确描述其功能
移除HeroViewComp中未使用的pow_show方法
2025-11-26 10:14:06 +08:00
ab4d29d42b refactor(GameEvent): 移除未使用的HeroSpeek事件枚举
清理代码中未使用的事件枚举,保持事件列表简洁
2025-11-26 10:09:17 +08:00
9c33bb0f7b feat(技能提示): 添加MP恢复提示功能
添加MP恢复提示类型到TooltipTypes枚举
在TooltipCom组件中实现MP恢复提示的显示逻辑
更新tooltip.prefab结构以支持MP恢复提示
移除未使用的tooltip.prefab.meta文件
移除英雄prefab中的tooltip 说话节点
2025-11-26 10:07:21 +08:00
b965c88961 feat(英雄属性): 添加HP/MP基础属性管理方法并移除health方法冗余参数
添加add_hp、add_mp和add_shield方法用于管理英雄基础属性
移除HeroViewComp.health方法中不再使用的is_num参数
恢复TalComp中HP和MP天赋效果的处理逻辑
2025-11-25 16:45:05 +08:00
b73d756106 refactor(hero): 移除怒气值相关属性和逻辑,修改hp显示逻辑
移除英雄属性组件中的怒气值(pow)属性及相关配置
删除英雄视图组件中怒气值显示和使用的逻辑
简化资源管理,移除不再使用的代码
2025-11-25 16:35:35 +08:00
3edc69deff refactor(skill): 移除溅射伤害设定,溅射以后有特定技能触发
清理不再使用的溅射伤害功能,包括移除SDataCom中的splash字段、Skill和SACastSystem中的相关参数,
以及删除TalSet中的溅射天赋配置
2025-11-25 15:24:38 +08:00
31 changed files with 2078 additions and 3384 deletions

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": false, "enabledContactListener": false,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -671,10 +668,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -682,7 +679,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -715,131 +712,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -851,7 +723,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -866,7 +738,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -882,7 +754,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -897,7 +769,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -914,7 +786,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -942,7 +814,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -957,12 +829,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -980,7 +853,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1014,7 +887,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1050,9 +923,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -960,12 +832,13 @@
"__type__": "873f8d+SolMEo8DiTTxZRh4", "__type__": "873f8d+SolMEo8DiTTxZRh4",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {},
"node": { "node": {
"__id__": 1 "__id__": 1
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -983,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1017,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1053,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -29,31 +29,28 @@
}, },
{ {
"__id__": 37 "__id__": 37
},
{
"__id__": 46
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 55 "__id__": 46
}, },
{ {
"__id__": 57 "__id__": 48
}, },
{ {
"__id__": 59 "__id__": 50
}, },
{ {
"__id__": 61 "__id__": 52
}, },
{ {
"__id__": 63 "__id__": 54
} }
], ],
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 56
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -674,10 +671,10 @@
"__id__": 37 "__id__": 37
}, },
"asset": { "asset": {
"__uuid__": "5b4ca49e-0f12-4478-b56d-bf8198b36b90", "__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"fileId": "0d6ZXmA5dHkZxoGONDL2sE", "fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": { "instance": {
"__id__": 39 "__id__": 39
}, },
@@ -685,7 +682,7 @@
}, },
{ {
"__type__": "cc.PrefabInstance", "__type__": "cc.PrefabInstance",
"fileId": "fe79INE+JI1Jy2Hu0iKLMn", "fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": { "prefabRootNode": {
"__id__": 1 "__id__": 1
}, },
@@ -718,131 +715,6 @@
"propertyPath": [ "propertyPath": [
"_name" "_name"
], ],
"value": "tooltip"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"0d6ZXmA5dHkZxoGONDL2sE"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 4.65,
"y": 129.718,
"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__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 41
},
"propertyPath": [
"_active"
],
"value": false
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 47
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 46
},
"asset": {
"__uuid__": "ae4493bd-cbcc-4392-921c-3e2b0fcd5338",
"__expectedType__": "cc.Prefab"
},
"fileId": "91yoyAQGNDm5ziI7NUChZ+",
"instance": {
"__id__": 48
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "08n1IzuupL3YNn2/tFvc8M",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 49
},
{
"__id__": 51
},
{
"__id__": 52
},
{
"__id__": 53
},
{
"__id__": 54
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 50
},
"propertyPath": [
"_name"
],
"value": "up" "value": "up"
}, },
{ {
@@ -854,7 +726,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@@ -869,7 +741,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@@ -885,7 +757,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@@ -900,7 +772,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 50 "__id__": 41
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@@ -917,7 +789,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 56 "__id__": 47
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -945,7 +817,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 58 "__id__": 49
}, },
"anm": { "anm": {
"__id__": 5 "__id__": 5
@@ -966,7 +838,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 60 "__id__": 51
}, },
"_id": "" "_id": ""
}, },
@@ -984,7 +856,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 62 "__id__": 53
}, },
"enabledContactListener": true, "enabledContactListener": true,
"bullet": false, "bullet": false,
@@ -1018,7 +890,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 64 "__id__": 55
}, },
"tag": 0, "tag": 0,
"_group": 4, "_group": 4,
@@ -1054,9 +926,6 @@
"instance": null, "instance": null,
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
{
"__id__": 46
},
{ {
"__id__": 37 "__id__": 37
}, },

View File

@@ -1,801 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "tooltip",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "tooltip",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 24
}
],
"_active": true,
"_components": [
{
"__id__": 32
}
],
"_prefab": {
"__id__": 34
},
"_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",
"_name": "bg",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 17
},
{
"__id__": 19
},
{
"__id__": 21
}
],
"_prefab": {
"__id__": 23
},
"_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",
"_name": "Button_Border_Circle_H53_White_Bg",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 2
},
"_children": [
{
"__id__": 4
}
],
"_active": true,
"_components": [
{
"__id__": 10
},
{
"__id__": 12
},
{
"__id__": 14
}
],
"_prefab": {
"__id__": 16
},
"_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",
"_name": "BubbleFrame_01_ArrowBg",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 3
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 5
},
{
"__id__": 7
}
],
"_prefab": {
"__id__": 9
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 70.583,
"y": -43.963,
"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.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_contentSize": {
"__type__": "cc.Size",
"width": 31,
"height": 37
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0cSf9kAD1DFbHiUjMIIH+g"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 8
},
"_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@8b3ab",
"__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": {
"__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73",
"__expectedType__": "cc.SpriteAtlas"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "837tIFMjhFy6LI1VDae3SQ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "9bbsSellpJ/7mfHLWpToGK",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_contentSize": {
"__type__": "cc.Size",
"width": 228,
"height": 73
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "55OEMGRiREoarVbxxS4xtp"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 13
},
"_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@df277",
"__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__": "cb93c900-b440-4571-91d1-7da1636e3d73",
"__expectedType__": "cc.SpriteAtlas"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "de5EHTIPtGUoEgaAHAhhfE"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 15
},
"_alignFlags": 45,
"_target": null,
"_left": 1,
"_right": 1,
"_top": 1,
"_bottom": 1,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 50,
"_originalHeight": 53,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53LMej0GtNaJyk91eOlrcd"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "79W04mlENAn6oQ1y1oZyNg",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 18
},
"_contentSize": {
"__type__": "cc.Size",
"width": 230,
"height": 75
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d1/BqGCLlHV4LOZCExXtbR"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 20
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": null,
"_type": 0,
"_fillType": 0,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "09S6er24tADYna5lfOQEkl"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 22
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 100,
"_originalHeight": 50,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3b5Bvues1P/qDyLQHYI8J7"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "fadwGZO+5HPqK+IqWjAe1I",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "words",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 25
},
{
"__id__": 27
},
{
"__id__": 29
}
],
"_prefab": {
"__id__": 31
},
"_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.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_contentSize": {
"__type__": "cc.Size",
"width": 220,
"height": 65
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "60n+Hxfa1P5qORRYWRA3am"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 28
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_string": "点我可以调整出战英雄",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 21,
"_fontSize": 20,
"_fontFamily": "Arial",
"_lineHeight": 25,
"_overflow": 2,
"_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": 1.5,
"_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.CompPrefabInfo",
"fileId": "6e8rPYem5HYojc44/ZRvP+"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 30
},
"_alignFlags": 45,
"_target": null,
"_left": 5,
"_right": 5,
"_top": 5,
"_bottom": 5,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 63,
"_originalHeight": 59.49999999999999,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9cjyQ0wVdFkrdMNAqOGW27"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "9d+dPANj1LBo7dJI/bx9b5",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 33
},
"_contentSize": {
"__type__": "cc.Size",
"width": 230,
"height": 75
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0alpB0Wg1E+5gOjL4DZ451"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "0d6ZXmA5dHkZxoGONDL2sE",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "5b4ca49e-0f12-4478-b56d-bf8198b36b90",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "tooltip"
}
}

View File

@@ -41,22 +41,25 @@
}, },
{ {
"__id__": 112 "__id__": 112
},
{
"__id__": 128
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 128 "__id__": 146
}, },
{ {
"__id__": 130 "__id__": 148
}, },
{ {
"__id__": 132 "__id__": 150
} }
], ],
"_prefab": { "_prefab": {
"__id__": 134 "__id__": 152
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -3229,6 +3232,465 @@
"targetOverrides": null, "targetOverrides": null,
"nestedPrefabInstanceRoots": null "nestedPrefabInstanceRoots": null
}, },
{
"__type__": "cc.Node",
"_name": "add_mp",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 129
}
],
"_active": false,
"_components": [
{
"__id__": 143
}
],
"_prefab": {
"__id__": 145
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 100,
"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",
"_name": "mp",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 128
},
"_children": [
{
"__id__": 130
}
],
"_active": true,
"_components": [
{
"__id__": 138
},
{
"__id__": 140
}
],
"_prefab": {
"__id__": 142
},
"_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",
"_name": "Label",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 129
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 131
},
{
"__id__": 133
},
{
"__id__": 135
}
],
"_prefab": {
"__id__": 137
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -36.930390625,
"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.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 130
},
"_enabled": true,
"__prefab": {
"__id__": 132
},
"_contentSize": {
"__type__": "cc.Size",
"width": 29.19921875,
"height": 50
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f7pa95arBMLryPjDchPW2u"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 130
},
"_enabled": true,
"__prefab": {
"__id__": 134
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 78,
"g": 187,
"b": 248,
"a": 255
},
"_string": "+",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 50,
"_fontSize": 50,
"_fontFamily": "Arial",
"_lineHeight": 50,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "983a109b-a5e3-4ba7-84c5-1c53817ba177",
"__expectedType__": "cc.BitmapFont"
},
"_isSystemFontUsed": false,
"_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.CompPrefabInfo",
"fileId": "f59zx54hJB37o3wtSqIGBV"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 130
},
"_enabled": true,
"__prefab": {
"__id__": 136
},
"_alignFlags": 8,
"_target": null,
"_left": -26.875,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "bff7l/qFpNO5oNUSmuFSLr"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "dde8Se2FBP6YgwyTh2rZbf",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 129
},
"_enabled": true,
"__prefab": {
"__id__": 139
},
"_contentSize": {
"__type__": "cc.Size",
"width": 49.31,
"height": 50
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a7muNmCwZAKpIRc8MvTGGv"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 129
},
"_enabled": true,
"__prefab": {
"__id__": 141
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 78,
"g": 187,
"b": 248,
"a": 255
},
"_string": "50",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 50,
"_fontSize": 50,
"_fontFamily": "Arial",
"_lineHeight": 50,
"_overflow": 0,
"_enableWrapText": true,
"_font": {
"__uuid__": "983a109b-a5e3-4ba7-84c5-1c53817ba177",
"__expectedType__": "cc.BitmapFont"
},
"_isSystemFontUsed": false,
"_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": 1,
"_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.CompPrefabInfo",
"fileId": "2aXJDSKKZKIbjQcZu71V+X"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "38i7UtIApLjqUtKEKBvdcg",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 128
},
"_enabled": true,
"__prefab": {
"__id__": 144
},
"_contentSize": {
"__type__": "cc.Size",
"width": 200,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "59w5YrumVHsLzq3Hx6nzWc"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "240I/BD+VEa7lFN2Uv61xY",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{ {
"__type__": "cc.UITransform", "__type__": "cc.UITransform",
"_name": "", "_name": "",
@@ -3239,7 +3701,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 129 "__id__": 147
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
@@ -3267,7 +3729,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 131 "__id__": 149
}, },
"_id": "" "_id": ""
}, },
@@ -3285,7 +3747,7 @@
}, },
"_enabled": true, "_enabled": true,
"__prefab": { "__prefab": {
"__id__": 133 "__id__": 151
}, },
"playOnLoad": true, "playOnLoad": true,
"_clips": [ "_clips": [

File diff suppressed because it is too large Load Diff

View File

@@ -35,4 +35,64 @@
冰封: 目标无法移动和攻击(cd继续) 3秒后自动解冻 冰封: 目标无法移动和攻击(cd继续) 3秒后自动解冻
沉默: 目标一般技能和必杀技能技能cd清零 沉默: 目标一般技能和必杀技能技能cd清零
击晕: 目标无移动和cd暂停 击晕: 目标无移动和cd暂停
击退: 后退15像素cd减少5点, 击退: 后退15像素cd减少5点,
## 非关键成长三选一(示例池)
用于非关键的成长选项,提供小步稳定增益,不抢关键天赋存在感。数值为建议区间,可按实际平衡调整。
| 组别 | 选项A | 选项B | 选项C | 推荐数值范围 | 阶段建议 | 说明 |
| --- | --- | --- | --- | --- | --- | --- |
| 基础属性(点数) | 力量 +3 | 智力 +3 | 敏捷 +3 | +3 点 | 全阶段 | 走职业系数转化,稳定推动 HP/AP/MAP/AS 等 |
| 攻速系 | 攻速(AS) +10% | 技速(SS) +10% | 移速(SPEED) +8% | +812% | 中期 | 普攻/技能循环提速,维持心流 |
| 暴击系 | 暴击率(CRITICAL) +10% | 暴伤(CRITICAL_DMG) +15% | 命中(HIT) +8% | +815% | 中后期 | 命中稳态配合暴击上限,防过度摇摆 |
| 射击系 | 攻击距离(DIS) +10% | 作用范围(AOE) +10% | 穿透(PIERCE) +1 | +812% / +1 | 中期 | 影响站位与清杂效率PIERCE建议≤2 |
| 生存上限 | 生命上限(HP_MAX) +10% | 护盾上限(SHIELD_MAX) +12% | 生命回复(HP_REGEN) +15% | +1015% | 早期 | 提升容错,抗压波次优先出现 |
| 防御姿态 | 闪避(DODGE) +8% | 格挡(BLOCK) +10% | 减伤(DMG_RED) +10% | +810% | 中期 | 三防不叠加过猛,设软上限 5060% |
| 元素抗性 | 冰抗(ICE_RES) +12% | 火抗(FIRE_RES) +12% | 风抗(WIND_RES) +12% | +1012% | 中后期 | 元素场景针对性减伤,补短板 |
| 元素伤害 | 冰伤(ICE_POWER) +10% | 火伤(FIRE_POWER) +10% | 风伤(WIND_POWER) +10% | +810% | 中期 | 与技能元素类型联动,避免单系过度 |
| 控制概率 | 眩晕(STUN_CHANCE) +6% | 沉默(SILENCE_CHANCE) +6% | 减速(SLOW_CHANCE) +10% | +610% | 中期 | 软控为主CD/停顿联动合理抑制强控链 |
| 妨害状态 | 冻结(FREEZE_CHANCE) +6% | 中毒(POISON_CHANCE) +8% | 燃烧(BURN_CHANCE) +8% | +68% | 中期 | 面向清杂、溃散,触发期望受控 |
| 蓝量循环 | 蓝上限(MP_MAX) +10% | 蓝回复(MP_REGEN) +15% | 吸蓝(MANASTEAL) +6% | +1015% | 早中期 | 技能密度稳定来源,支撑法系 |
| 续航强化 | 吸血(LIFESTEAL) +6% | 治疗效果(HEAL_EFFECT) +12% | 护盾效果(SHIELD_UP) +12% | +612% | 中后期 | 对应不同生存风格,数值递减避免堆满 |
| 稳定系 | 命中(HIT) +10% | 控抗(CON_RES) +10% | 暴抗(CRITICAL_RESIST) +10% | +810% | 中后期 | 降低波动,克制高暴击/高控敌群 |
| 经济成长 | 经验(EXP_GAIN) +10% | 金币(GOLD_GAIN) +10% | 掉落(DROP_CHANCE) +8% | +810% | 转场期 | 低战力节点给经济,避免战斗失衡 |
| 复活保障 | 复活次数(REVIVE_COUNT) +1 | 无敌时间(INVINCIBLE_TIME) +1s | 复活时间(REVIVE_TIME) -10% | +1 / +1s / -10% | 后期 | 高压波次救命,不与关键天赋冲突 |
| 元素对抗 | 物抗(PHYS_RES) +10% | 魔抗(MAGIC_RES) +10% | 物伤加成(PHYS_POWER) +8% | +810% | 中后期 | 根据敌群构成动态出现 |
| 资源提效 | 技能持续(SKILL_DURATION) +8% | 范围(AOE) +10% | 技速(SS) +8% | +810% | 中期 | DOT/场控/召唤类技能收益更佳 |
## 设计理念
- 非关键增益:提供轻量、可叠加的稳定成长,不与关键三选一争夺注意力。
- ERG需求存在(生存)–关系(交互与反馈)–成长(能力提升)均衡覆盖,维持心流。
- 小步快跑:每次选择形成可感知的小增量,累计 35 次后出现显著体感。
- 动态补偿:三选一含“补缺/增强/探索”三类,提高决策质量与多样性。
- 软上限与递减:概率类、穿透等设软上限并递减,避免极端堆叠破坏体验。
## 出现规则与阶段
- 频率:每 23 波或每升 2 级出现一次,单局给予 35 次非关键成长选择。
- 阶段:早期主生存与蓝量,中期主效率与控制,后期主稳定与复活保障。
- 去重:同池短时间不重复,鼓励构筑分散与策略多样性。
- 池权重:根据敌群/技能元素/职业类型动态调整池权重,提升贴合度。
## 数值与软上限建议
- 概率类软上限 5060%,暴击率软上限 6070%,穿透 ≤ 2。
- 递减系数:同类堆叠每层收益降低 1530%,维持平衡与选择张力。
## IAA激励可选
- 单局一次:允许“刷新一次三选一”或“临时解锁第四备选(低权重强项)”。
- 公平性:激励数值较同池低 1020%,避免破坏对局公平与关键天赋权重。
## 落地建议
- 配置复用:非关键三选一统一走天赋 `BUFF` 模式,即时或升级触发。
- 属性枚举:在 TalSet 的 `TalAttrs` 扩充基础属性(HP/MP/AS/SS/CRITICAL/HIT 等)。
- 阶段配表:按波次/等级给不同池的权重与范围,避免压制关键天赋。
- 上限与递减:对核心概率类与强度类属性设置软上限与递减曲线。
## 与代码映射(实现参考)
- 触发类型:可用升级或初始触发,见 `assets/script/game/common/config/TalSet.ts:7` 枚举。
- 效果类型:建议统一使用 `TalEffet.BUFF` + `vType(BType.VALUE/RATIO)`
- 可选属性来源:`assets/script/game/common/config/HeroAttrs.ts:27113` 定义完整 `Attrs`
- 职业成长差异:`assets/script/game/common/config/HeroAttrs.ts:272422` 提供成长系数。
- 攻速/技速影响CD`assets/script/game/hero/HeroSkills.ts:139158`
- 命中/闪避/暴击联动:`assets/script/game/hero/HeroAtkSystem.ts:141162`
- 元素伤害与抗性修正:`assets/script/game/hero/HeroAtkSystem.ts:295306`
- 护盾吸收:`assets/script/game/hero/HeroAtkSystem.ts:422450`

View File

@@ -63,5 +63,4 @@ export enum GameEvent {
GOLD_UPDATE = "GOLD_UPDATE", GOLD_UPDATE = "GOLD_UPDATE",
DIAMOND_UPDATE = "DIAMOND_UPDATE", DIAMOND_UPDATE = "DIAMOND_UPDATE",
MEAT_UPDATE = "MEAT_UPDATE", MEAT_UPDATE = "MEAT_UPDATE",
HeroSpeek = "HeroSpeek",
} }

View File

@@ -146,4 +146,5 @@ export const TooltipTypes = {
lvup:6, lvup:6,
apup:7, apup:7,
hpup:8, hpup:8,
addmp:9,
} }

View File

@@ -12,10 +12,10 @@ export enum BType {
} }
export enum NeAttrs { export enum NeAttrs {
IN_FROST = 0, IN_FROST = 0, // 冰冻状态
IN_STUN = 1, IN_STUN = 1, // 眩晕状态
IN_BURN = 2, IN_BURN = 2, // 灼烧状态
IN_POISON = 3, IN_POISON = 3, // 中毒状态
} }
// ========== 属性枚举 ========== // ========== 属性枚举 ==========
@@ -32,8 +32,6 @@ export enum Attrs {
HP_REGEN = 3, // 生命回复 HP_REGEN = 3, // 生命回复
MP_REGEN = 4, // 魔法回复 MP_REGEN = 4, // 魔法回复
HEAL_EFFECT = 5, // 治疗效果 HEAL_EFFECT = 5, // 治疗效果
POW_MAX = 6, // 最大怒气值
POW_REGEN = 7, // 怒气值回复
// ========== 攻击属性 (10-19) ========== // ========== 攻击属性 (10-19) ==========
AP = 10, // 攻击力 AP = 10, // 攻击力
@@ -50,7 +48,7 @@ export enum Attrs {
MDEF = 21, // 魔法防御 MDEF = 21, // 魔法防御
DODGE = 22, // 闪避率 DODGE = 22, // 闪避率
BLOCK = 23, // 格挡率 BLOCK = 23, // 格挡率
DAMAGE_REDUCTION = 24, // 伤害减免 DMG_RED = 24, // 伤害减免
THORNS = 25, // 反伤 THORNS = 25, // 反伤
CRITICAL_RESIST = 26, // 暴击抗性 CRITICAL_RESIST = 26, // 暴击抗性
CON_RES = 27, // 控制抗性 CON_RES = 27, // 控制抗性
@@ -104,11 +102,9 @@ export enum Attrs {
BURN = 75, // 易伤效果 BURN = 75, // 易伤效果
WFUNY = 77, // 风怒 WFUNY = 77, // 风怒
// ========== 生存与恢复相关 (80-89) ========== // ========== 负面状态相关 (80-89) ==========
DMG_INVUL = 80, //易伤
// ========== 负面状态相关 (90-99) ========== // ========== 基础属性(影响其他属性) (90-99)==========
// ========== 基础属性(影响其他属性)(100-104) ==========
STRENGTH = 90, // 力量(影响物理相关) STRENGTH = 90, // 力量(影响物理相关)
INTELLIGENCE = 91, // 智力(影响魔法相关) INTELLIGENCE = 91, // 智力(影响魔法相关)
AGILITY = 92, // 敏捷(影响速度和闪避) AGILITY = 92, // 敏捷(影响速度和闪避)
@@ -158,8 +154,6 @@ export const AttrsType: Record<Attrs, BType> = {
[Attrs.SHIELD_MAX]: BType.VALUE, // 最大护盾值 - 数值型 [Attrs.SHIELD_MAX]: BType.VALUE, // 最大护盾值 - 数值型
[Attrs.HP_REGEN]: BType.VALUE, // 生命回复 - 数值型 [Attrs.HP_REGEN]: BType.VALUE, // 生命回复 - 数值型
[Attrs.MP_REGEN]: BType.VALUE, // 魔法回复 - 数值型 [Attrs.MP_REGEN]: BType.VALUE, // 魔法回复 - 数值型
[Attrs.POW_MAX]: BType.VALUE, // 最大怒气值 - 数值型
[Attrs.POW_REGEN]: BType.VALUE, // 怒气值回复 - 数值型
[Attrs.HEAL_EFFECT]: BType.RATIO, // 治疗效果 - 百分比型 [Attrs.HEAL_EFFECT]: BType.RATIO, // 治疗效果 - 百分比型
// ========== 攻击属性(数值型) ========== // ========== 攻击属性(数值型) ==========
@@ -177,7 +171,7 @@ export const AttrsType: Record<Attrs, BType> = {
[Attrs.MDEF]: BType.VALUE, // 魔法防御 - 数值型 [Attrs.MDEF]: BType.VALUE, // 魔法防御 - 数值型
[Attrs.DODGE]: BType.RATIO, // 闪避率 - 百分比型 [Attrs.DODGE]: BType.RATIO, // 闪避率 - 百分比型
[Attrs.BLOCK]: BType.RATIO, // 格挡率 - 百分比型 [Attrs.BLOCK]: BType.RATIO, // 格挡率 - 百分比型
[Attrs.DAMAGE_REDUCTION]: BType.RATIO, // 伤害减免 - 百分比型 [Attrs.DMG_RED]: BType.RATIO, // 伤害减免 - 百分比型
[Attrs.THORNS]: BType.RATIO, // 反伤 - 百分比型 [Attrs.THORNS]: BType.RATIO, // 反伤 - 百分比型
// ========== 暴击与命中属性(百分比型) ========== // ========== 暴击与命中属性(百分比型) ==========
@@ -231,9 +225,9 @@ export const AttrsType: Record<Attrs, BType> = {
[Attrs.BURN]: BType.RATIO, // 易伤效果 - 百分比型 [Attrs.BURN]: BType.RATIO, // 易伤效果 - 百分比型
[Attrs.WFUNY]: BType.RATIO, // 未知特殊属性 - 百分比型 [Attrs.WFUNY]: BType.RATIO, // 未知特殊属性 - 百分比型
// ========== 生存与恢复相关(混合类型) ==========
// ========== 负面状态相关(混合类型) ========== // ========== 负面状态相关(混合类型) ==========
[Attrs.DMG_INVUL]: BType.RATIO, //易伤
// ========== 基础属性(数值型) ========== // ========== 基础属性(数值型) ==========
[Attrs.STRENGTH]: BType.VALUE, // 力量 - 数值型 [Attrs.STRENGTH]: BType.VALUE, // 力量 - 数值型

View File

@@ -158,6 +158,10 @@ export interface SkillConfig {
} }
export const SkillSet: Record<number, SkillConfig> = { export const SkillSet: Record<number, SkillConfig> = {
5000:{uuid:5000,name:"反伤",sp_name:"thorns",icon:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.ATK,
ap:0,map:0,cd:0,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:0,with:0,dis:80,ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[],neAttrs:[],info:"反伤",
},
// ========== 基础攻击 ========== 6001-6099 // ========== 基础攻击 ========== 6001-6099
6001: { 6001: {
uuid:6001,name:"挥击",sp_name:"atk_s1",icon:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.ATK, uuid:6001,name:"挥击",sp_name:"atk_s1",icon:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,DType:DType.ATK,

View File

@@ -19,20 +19,24 @@ export enum TriType {
export enum TalEffet { export enum TalEffet {
ATK_DMG=1, // 伤害 ATK_DMG=1, // 伤害 次数+伤害加成如额外5次 伤害+20%
SKILL_DMG=2, // 技能伤害 SKILL_DMG=2, // 技能伤害 次数+伤害加成如额外5次 伤害+20%
HP=3, // 回血 百分比 DMG_RED=10, // 减伤 次数+减伤加成如额外5次 伤害-20%
MP=4, //回蓝 百分比 THORNS=14, //反伤 百分比 次数+反伤加成如额外5次 反伤-20%
BUFF = 5, // 暴击率,闪避率等,可叠加的触发后清零 ///////////////////////////////////////////////////////////////////////
STATS=6, // 状态 HP=3, // 回血 百分比 直接触发回血20%
WFUNY=7, // 风怒 MP=4, //回蓝 百分比 直接触发回蓝20%
SPLASH=8, // 溅射 SHIELD=9, // 护盾 直接触发获得20%的生命值护盾
D_SKILL=9, //两次技能 ////////////////////////////////////////////////////////////////////////
SHIELD=10, // 护盾 BUFF = 5, // 数值叠加 触发后清零: 暴击率,闪避率等,触发后效果取消
LDMG=11, // 减伤 ////////////////////////////////////////////////////////////////////////////////
C_ATK=12, // 普工必爆 STATS=6, // 状态 待定
C_SKILL=13, // 一般技能必暴
C_MSKILL=14, // 必杀技能必暴 WFUNY=7, // 风怒 次数 叠加 如额外5次 风怒
D_SKILL=8, //两次技能 次数 叠加如额外5次 两次技能
C_MSKILL=11, // 必杀技能必暴 次数 叠加 如额外5次 必杀技能必暴
C_ATK=12, // 普工必爆 次数 叠加 如额外5次 普工必爆
C_SKILL=13, // 一般技能必暴 次数 叠加 如额外5次 一般技能必暴
} }
export enum TalTarget { export enum TalTarget {
@@ -48,7 +52,7 @@ export enum TalAttrs {
SILENCE_CHANCE=Attrs.SILENCE_CHANCE, // 沉默概率 SILENCE_CHANCE=Attrs.SILENCE_CHANCE, // 沉默概率
CRITICAL=Attrs.CRITICAL, // 暴击率 CRITICAL=Attrs.CRITICAL, // 暴击率
AP=Attrs.AP, // 攻击力 AP=Attrs.AP, // 攻击力
MP=Attrs.MAP, // 魔法 MP=Attrs.MAP, // 魔法攻击力
} }
/** /**
* 天赋配置接口 * 天赋配置接口
@@ -89,8 +93,7 @@ export const talConf: Record<number, ItalConf> = {
/*** 普通攻击触发 ***/ /*** 普通攻击触发 ***/
7001:{uuid:7001,name:"风怒",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.WFUNY,vType:BType.RATIO, value:50,attrs:TalAttrs.NON, 7001:{uuid:7001,name:"风怒",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.WFUNY,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
desc:"普通攻击3次后, 立即给与目标150%伤害的额外打击"}, desc:"普通攻击3次后, 立即给与目标150%伤害的额外打击"},
7002:{uuid:7002,name:"溅射",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.SPLASH,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
desc:"普通攻击3次后, 会对目标100码内的敌人造成30%伤害"},
7003:{uuid:7003,name:"回血",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON, 7003:{uuid:7003,name:"回血",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON,
desc:"普通攻击3次后, 会回复10%的生命值"}, desc:"普通攻击3次后, 会回复10%的生命值"},
7004:{uuid:7004,name:"回蓝",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.MP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON, 7004:{uuid:7004,name:"回蓝",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.MP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON,
@@ -113,7 +116,7 @@ export const talConf: Record<number, ItalConf> = {
desc:"被攻击3次后, 给于目标50%的伤害"}, desc:"被攻击3次后, 给于目标50%的伤害"},
7102:{uuid:7102,name:"护盾",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.SHIELD,vType:BType.RATIO, value:20,attrs:TalAttrs.NON, 7102:{uuid:7102,name:"护盾",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.SHIELD,vType:BType.RATIO, value:20,attrs:TalAttrs.NON,
desc:"被攻击3次后, 获得20%的生命值护盾"}, desc:"被攻击3次后, 获得20%的生命值护盾"},
7103:{uuid:7103,name:"减伤",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.LDMG,vType:BType.RATIO, value:50,attrs:TalAttrs.NON, 7103:{uuid:7103,name:"减伤",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.DMG_RED,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
desc:"被攻击3次后, 下1次伤害减50%"}, desc:"被攻击3次后, 下1次伤害减50%"},

View File

@@ -21,6 +21,9 @@ export interface DamageEvent {
/** 伤害事件ID用于去重和调试 */ /** 伤害事件ID用于去重和调试 */
eventId: string; eventId: string;
ext_dmg:number //额外伤害
dmg_ratio:number//伤害比例
} }
/** /**
@@ -55,7 +58,7 @@ export class DamageQueueComp extends ecs.Comp {
/** /**
* 添加伤害事件到队列 * 添加伤害事件到队列
*/ */
addDamageEvent(attrs: any, caster: HeroViewComp, s_uuid: number): void { addDamageEvent(attrs: any, caster: HeroViewComp, s_uuid: number,ext_dmg:number=0,dmg_ratio:number=1): void {
const timestamp = Date.now(); const timestamp = Date.now();
const eventId = `${caster.ent.eid}_${s_uuid}_${timestamp}_${Math.random()}`; const eventId = `${caster.ent.eid}_${s_uuid}_${timestamp}_${Math.random()}`;
@@ -64,7 +67,9 @@ export class DamageQueueComp extends ecs.Comp {
caster: caster, caster: caster,
s_uuid: s_uuid, s_uuid: s_uuid,
timestamp: timestamp, timestamp: timestamp,
eventId: eventId eventId: eventId,
ext_dmg:ext_dmg,
dmg_ratio:dmg_ratio,
}; };
this.damageEvents.push(damageEvent); this.damageEvents.push(damageEvent);
@@ -155,7 +160,7 @@ export class DamageQueueHelper {
* 为实体添加伤害事件 * 为实体添加伤害事件
* 如果实体没有伤害队列组件,会自动创建 * 如果实体没有伤害队列组件,会自动创建
*/ */
static addDamageToEntity(entity: ecs.Entity, attrs: any, caster: HeroViewComp, s_uuid: number): void { static addDamageToEntity(entity: ecs.Entity, attrs: any, caster: HeroViewComp, s_uuid: number,ext_dmg:number=0,dmg_ratio:number=1): void {
let damageQueue = entity.get(DamageQueueComp); let damageQueue = entity.get(DamageQueueComp);
// 如果实体没有伤害队列组件,创建一个 // 如果实体没有伤害队列组件,创建一个
@@ -164,7 +169,7 @@ export class DamageQueueHelper {
} }
// 添加伤害事件到队列 // 添加伤害事件到队列
damageQueue.addDamageEvent(attrs, caster, s_uuid); damageQueue.addDamageEvent(attrs, caster, s_uuid,ext_dmg,dmg_ratio);
} }
/** /**

View File

@@ -5,7 +5,7 @@ import { FightSet } from "../common/config/GameSet";
import { SkillSet, DType } from "../common/config/SkillSet"; import { SkillSet, DType } from "../common/config/SkillSet";
import { HeroAttrsComp } from "./HeroAttrsComp"; import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp"; import { HeroViewComp } from "./HeroViewComp";
import { DamageQueueComp, DamageEvent, DamageQueueHelper } from "./DamageQueueComp"; import { DamageQueueComp, DamageEvent } from "./DamageQueueComp";
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
@@ -30,7 +30,7 @@ interface FinalData {
* *
* 重要概念: * 重要概念:
* - damageEvent.Attrs: 施法者属性快照(创建技能时保存) * - damageEvent.Attrs: 施法者属性快照(创建技能时保存)
* - targetAttrs: 被攻击者实时属性 * - TAttrsComp: 被攻击者实时属性
* - 属性来源规范:攻击判定用施法者,防御判定用被攻击者 * - 属性来源规范:攻击判定用施法者,防御判定用被攻击者
*/ */
@ecs.register('HeroAtkSystem') @ecs.register('HeroAtkSystem')
@@ -51,10 +51,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
*/ */
update(e: ecs.Entity): void { update(e: ecs.Entity): void {
if(!smc.mission.play || smc.mission.pause) return; if(!smc.mission.play || smc.mission.pause) return;
const model = e.get(HeroAttrsComp); const TAttrsComp = e.get(HeroAttrsComp);
const damageQueue = e.get(DamageQueueComp); const damageQueue = e.get(DamageQueueComp);
if (!model || !damageQueue || damageQueue.isEmpty()) return; if (!TAttrsComp || !damageQueue || damageQueue.isEmpty()) return;
// 标记正在处理 // 标记正在处理
damageQueue.isProcessing = true; damageQueue.isProcessing = true;
@@ -66,20 +66,13 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
if (!damageEvent) break; if (!damageEvent) break;
// 处理单个伤害事件 // 处理单个伤害事件
const FDData = this.doAttack(e, damageEvent); this.doAttack(e, damageEvent);
processedCount++; processedCount++;
damageQueue.processedCount++; damageQueue.processedCount++;
if (this.debugMode) {
const casterName = damageEvent.caster?.ent?.get(HeroAttrsComp)?.hero_name || "未知";
const casterUuid = damageEvent.caster?.ent?.get(HeroAttrsComp)?.hero_uuid || 0;
console.log(`[HeroAtkSystem] 英雄${model.hero_name} (uuid: ${model.hero_uuid}) 受到 ${casterName}(uuid: ${casterUuid})的 伤害 ${FDData.damage},${FDData.isCrit?"暴击":"普通"}攻击技能ID ${damageEvent.s_uuid}`);
}
// 如果目标已死亡,停止处理后续伤害 // 如果目标已死亡,停止处理后续伤害
if (model.is_dead) { if (TAttrsComp.is_dead) {
if (this.debugMode) { if (this.debugMode) {
console.log(`[HeroAtkSystem] ${model.hero_name} 已死亡,停止处理剩余伤害`); console.log(`[HeroAtkSystem] ${TAttrsComp.hero_name} 已死亡,停止处理剩余伤害`);
} }
damageQueue.clear(); // 清空剩余伤害 damageQueue.clear(); // 清空剩余伤害
break; break;
@@ -91,7 +84,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
e.remove(DamageQueueComp); e.remove(DamageQueueComp);
if (this.debugMode && processedCount > 0) { if (this.debugMode && processedCount > 0) {
console.log(`[HeroAtkSystem] ${model.hero_name} 伤害队列处理完成,共处理 ${processedCount} 个伤害事件`); console.log(`[HeroAtkSystem] ${TAttrsComp.hero_name} 伤害队列处理完成,共处理 ${processedCount} 个伤害事件`);
} }
} }
} }
@@ -109,7 +102,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* - HIT: 命中率(用于闪避计算) * - HIT: 命中率(用于闪避计算)
* - AP/MAP: 攻击力(基础伤害计算) * - AP/MAP: 攻击力(基础伤害计算)
* *
* ✅ 正确使用被攻击者属性(targetAttrs - 实时): * ✅ 正确使用被攻击者属性(TAttrsComp - 实时):
* - DODGE: 闪避率(用于闪避计算) * - DODGE: 闪避率(用于闪避计算)
* - SHIELD_MAX: 护盾最大值(护盾吸收) * - SHIELD_MAX: 护盾最大值(护盾吸收)
* - hp: 当前生命值(伤害应用) * - hp: 当前生命值(伤害应用)
@@ -124,17 +117,17 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* @returns 最终伤害数据(包含伤害值、暴击标记、闪避标记) * @returns 最终伤害数据(包含伤害值、暴击标记、闪避标记)
*/ */
private doAttack(target: ecs.Entity, damageEvent: DamageEvent): FinalData { private doAttack(target: ecs.Entity, damageEvent: DamageEvent): FinalData {
const targetAttrs = target.get(HeroAttrsComp); const TAttrsComp = target.get(HeroAttrsComp);
const targetView = target.get(HeroViewComp); const targetView = target.get(HeroViewComp);
let reDate:FinalData={ let reDate:FinalData={
damage:0, damage:0,
isCrit:false, isCrit:false,
isDodge:false, isDodge:false,
} }
if (!targetAttrs || targetAttrs.is_dead) return reDate; if (!TAttrsComp || TAttrsComp.is_dead) return reDate;
const caster = damageEvent.caster; const caster = damageEvent.caster;
const attackerModel = caster?.ent?.get(HeroAttrsComp); const CAttrsComp = caster?.ent?.get(HeroAttrsComp);
// 获取技能配置 // 获取技能配置
const skillConf = SkillSet[damageEvent.s_uuid]; const skillConf = SkillSet[damageEvent.s_uuid];
@@ -145,20 +138,20 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
// 闪避判定 // 闪避判定
// 闪避成功概率 = 被攻击者闪避率 - 施法者命中率 // 闪避成功概率 = 被攻击者闪避率 - 施法者命中率
// targetAttrs.Attrs[Attrs.DODGE]: 被攻击者的实时闪避属性 // TAttrsComp.Attrs[Attrs.DODGE]: 被攻击者的实时闪避属性
// damageEvent.Attrs[Attrs.HIT]: 施法者在技能创建时的命中属性快照 // damageEvent.Attrs[Attrs.HIT]: 施法者在技能创建时的命中属性快照
const isDodge =this.checkChance((targetAttrs.Attrs[Attrs.DODGE]-damageEvent.Attrs[Attrs.HIT]) || 0); const isDodge =this.checkChance((TAttrsComp.Attrs[Attrs.DODGE]-damageEvent.Attrs[Attrs.HIT]) || 0);
if (isDodge) { if (isDodge) {
// TODO: 触发闪避视图表现 // TODO: 触发闪避视图表现
reDate.isDodge=true; reDate.isDodge=true;
return reDate; return reDate;
} }
// 暴击判定 // 暴击判定
// 使用施法者的暴击率属性damageEvent.Attrs 快照) // 使用施法者的暴击率属性damageEvent.Attrs 快照)- 被攻击者的暴击抗性属性TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]
const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]); const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]-TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]);
if (isCrit) attackerModel?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff // 计算基础伤害
// 计算伤害 let damage = this.dmgCount(damageEvent,TAttrsComp);
let damage = this.dmgCount(damageEvent,targetAttrs.Attrs); if (this.debugMode) console.log("[HeroAtkSystem] dmgCount",damage)
if (isCrit) { if (isCrit) {
// 暴击伤害计算 // 暴击伤害计算
// 使用施法者的暴击伤害加成属性damageEvent.Attrs 快照) // 使用施法者的暴击伤害加成属性damageEvent.Attrs 快照)
@@ -166,20 +159,28 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
const casterCritDmg = damageEvent.Attrs[Attrs.CRITICAL_DMG] || 0; const casterCritDmg = damageEvent.Attrs[Attrs.CRITICAL_DMG] || 0;
damage = Math.floor(damage * (1 + (FightSet.CRIT_DAMAGE + casterCritDmg) / 100)); damage = Math.floor(damage * (1 + (FightSet.CRIT_DAMAGE + casterCritDmg) / 100));
reDate.isCrit=true; reDate.isCrit=true;
CAttrsComp?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff
} }
// 伤害计算考虑易伤等debuff if (this.debugMode) console.log("[HeroAtkSystem] after crit",damage)
damage = this.calculateDamage(targetAttrs, damage);
// 护盾吸收 // 护盾吸收
damage =Math.floor(this.absorbShield(targetAttrs, damage)) damage =Math.floor(this.absorbShield(TAttrsComp, damage))
if (this.debugMode) console.log("[HeroAtkSystem] after shield",damage)
if (damage <= 0) return reDate; if (damage <= 0) return reDate;
// 应用伤害到数据层 // 应用伤害到数据层
targetAttrs.hp -= damage; TAttrsComp.hp -= damage;
targetAttrs.atked_count++; if (this.debugMode) {
const casterName = damageEvent.caster?.ent?.get(HeroAttrsComp)?.hero_name || "未知";
const casterUuid = damageEvent.caster?.ent?.get(HeroAttrsComp)?.hero_uuid || 0;
console.log(`[HeroAtkSystem] 英雄${TAttrsComp.hero_name} (uuid: ${TAttrsComp.hero_uuid}) 受到 ${casterName}(uuid: ${casterUuid})的 伤害 ${damage},${isCrit?"暴击":"普通"}攻击,技能ID ${damageEvent.s_uuid}`);
}
//反伤判定 并应用到施法者
this.check_thorns(TAttrsComp, caster?.ent,damage);
// 击退判定 // 击退判定
// 使用施法者的击退概率属性damageEvent.Attrs 快照) // 使用施法者的击退概率属性damageEvent.Attrs 快照)
// 击退成功后需要清理施法者的相关天赋buff // 击退成功后需要清理施法者的相关天赋buff
const isBack = this.checkChance(damageEvent.Attrs[Attrs.BACK_CHANCE] || 0); const isBack = this.checkChance(damageEvent.Attrs[Attrs.BACK_CHANCE] || 0);
if (isBack) attackerModel?.useValueTalByAttr(Attrs.BACK_CHANCE); if (isBack) CAttrsComp?.useValueTalByAttr(Attrs.BACK_CHANCE);
// ✅ 触发视图层表现(伤害数字、受击动画、后退) // ✅ 触发视图层表现(伤害数字、受击动画、后退)
@@ -187,7 +188,9 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
// 检查死亡 // 检查死亡
if (targetAttrs.hp <= 0) { if (TAttrsComp.hp <= 0) {
// 增加被击杀计数
if (caster) CAttrsComp.Attrs.killed_count++;
this.doDead(target); this.doDead(target);
// ✅ 触发死亡视图表现 // ✅ 触发死亡视图表现
if (targetView) { if (targetView) {
@@ -195,13 +198,37 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
} }
} }
if (this.debugMode) { if (this.debugMode) console.log(`[HeroAtkSystem] ${TAttrsComp.hero_name} 受到 ${damage} 点伤害 (暴击: ${isCrit})`);
console.log(`[HeroAtkSystem] ${targetAttrs.hero_name} 受到 ${damage} 点伤害 (暴击: ${isCrit})`);
}
reDate.damage=damage; reDate.damage=damage;
return reDate; return reDate;
} }
check_thorns(TAttrsComp:HeroAttrsComp, caster: ecs.Entity, damage:number) {
// 检查目标是否有反伤属性,这里受伤的时时施法者
if (!caster||damage<=0) return;
let thornsDamage=0;
thornsDamage=TAttrsComp.Attrs[Attrs.THORNS]||0+TAttrsComp.useCountValTal(Attrs.THORNS);
let CAttrs=caster.get(HeroAttrsComp);
// 计算反伤伤害
let thornsDmg=Math.floor(thornsDamage*damage/100);
// 应用反伤伤害到数据层
CAttrs.hp -= thornsDmg;
CAttrs.atked_count++;
let CView=caster.get(HeroViewComp);
// ✅ 触发视图层表现(伤害数字、受击动画、后退)
if (CView) CView.do_atked(thornsDmg, false, SkillSet[5000].uuid, false);
// 检查死亡
if (CAttrs.hp <= 0) {
this.doDead(caster);
// 增加击杀计数
if (caster) TAttrsComp.Attrs.killed_count++;
// ✅ 触发死亡视图表现
if (CView) {
CView.do_dead();
}
}
}
/** /**
* 详细伤害计算核心方法 * 详细伤害计算核心方法
* *
@@ -228,18 +255,21 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* - 所有除法和乘法计算后都进行取整操作,确保游戏中的伤害值为整数 * - 所有除法和乘法计算后都进行取整操作,确保游戏中的伤害值为整数
* - 元素伤害只应用于魔法伤害部分 * - 元素伤害只应用于魔法伤害部分
*/ */
private dmgCount(damageEvent:any,TAttrs:any){ private dmgCount(damageEvent:DamageEvent,TAttrsComp:HeroAttrsComp){
// 1. 获取技能配置 - 如果技能不存在直接返回0伤害 // 1. 获取技能配置 - 如果技能不存在直接返回0伤害
const CAttrs=damageEvent.Attrs; const CAttrs=damageEvent.Attrs;
const TAttrs=TAttrsComp.Attrs;
let sConf = SkillSet[damageEvent.s_uuid]; let sConf = SkillSet[damageEvent.s_uuid];
if (!sConf) return 0; if (!sConf) return 0;
if (this.debugMode) console.log(`[HeroAtkSystem] 伤害处理对象`,CAttrs,TAttrs);
// 2. 计算原始物理伤害和魔法伤害 // 2. 计算原始物理伤害和魔法伤害
// 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外物理伤害) / 100 * 伤害比例 // 物理伤害基础值 = 技能物理倍率 * (施法者物理攻击力 + 额外伤害) / 100 * 额外伤害比例
let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio; let apBase = (sConf.ap||0)*(CAttrs[Attrs.AP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio;
// 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外魔法伤害) / 100 * 伤害比例 // 魔法伤害基础值 = 技能魔法倍率 * (施法者魔法攻击力 + 额外伤害) / 100 * 额外伤害比例
let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio; let mapBase = (sConf.map||0)*(CAttrs[Attrs.MAP]+damageEvent.ext_dmg)/100*damageEvent.dmg_ratio;
if (this.debugMode) console.log(`[HeroAtkSystem] 物理伤害基础值: ${apBase}, 技能ap=${sConf.ap},施法者物理攻击力: ${CAttrs[Attrs.AP]}, 魔法伤害基础值: ${mapBase}技能map=${sConf.map}
额外伤害:${damageEvent.ext_dmg}, 额外伤害比例:${damageEvent.dmg_ratio}`);
// 3. 获取目标防御属性 // 3. 获取目标防御属性
const def = (TAttrs[Attrs.DEF]||0); // 目标物理防御 const def = (TAttrs[Attrs.DEF]||0); // 目标物理防御
const mdef = (TAttrs[Attrs.MDEF]||0); // 目标魔法防御 const mdef = (TAttrs[Attrs.MDEF]||0); // 目标魔法防御
@@ -252,12 +282,15 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
let apAfter = Math.floor(apBase * (1 - apRed)); // 物理伤害 - 防御减免 let apAfter = Math.floor(apBase * (1 - apRed)); // 物理伤害 - 防御减免
let mapAfter = Math.floor(mapBase * (1 - mapRed)); // 魔法伤害 - 防御减免 let mapAfter = Math.floor(mapBase * (1 - mapRed)); // 魔法伤害 - 防御减免
if (this.debugMode) console.log(`[HeroAtkSystem] 物理伤害基础值: ${apBase}, 物理伤害 - 防御减免: ${apAfter} 魔法伤害基础值: ${mapBase}, 魔法伤害 - 防御减免: ${mapAfter}`);
// 6. 应用物理/魔法攻击力和抗性修正 // 6. 应用物理/魔法攻击力和抗性修正
// 物理伤害修正:基础伤害 * (1 + 物理攻击力加成%) * (1 - 目标物理抗性%) // 物理伤害修正:基础伤害 * (1 + 物理攻击力加成%) * (1 - 目标物理抗性%)
apAfter = this.applyPR(apAfter, CAttrs[Attrs.PHYS_POWER]||0, TAttrs[Attrs.PHYS_RES]||0); apAfter = this.applyPR(apAfter, CAttrs[Attrs.PHYS_POWER]||0, TAttrs[Attrs.PHYS_RES]||0);
// 魔法伤害修正:基础伤害 * (1 + 魔法攻击力加成%) * (1 - 目标魔法抗性%) // 魔法伤害修正:基础伤害 * (1 + 魔法攻击力加成%) * (1 - 目标魔法抗性%)
mapAfter = this.applyPR(mapAfter, CAttrs[Attrs.MAGIC_POWER]||0, TAttrs[Attrs.MAGIC_RES]||0); mapAfter = this.applyPR(mapAfter, CAttrs[Attrs.MAGIC_POWER]||0, TAttrs[Attrs.MAGIC_RES]||0);
if (this.debugMode) console.log(`[HeroAtkSystem] 物理伤害修正后: ${apAfter} 魔法伤害修正后: ${mapAfter} `);
// 7. 根据技能元素类型,应用元素属性加成和抗性修正 // 7. 根据技能元素类型,应用元素属性加成和抗性修正
switch (sConf.DType) { switch (sConf.DType) {
case DType.ICE: case DType.ICE:
@@ -273,14 +306,19 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
mapAfter = this.applyPR(mapAfter, CAttrs[Attrs.WIND_POWER]||0, TAttrs[Attrs.WIND_RES]||0); mapAfter = this.applyPR(mapAfter, CAttrs[Attrs.WIND_POWER]||0, TAttrs[Attrs.WIND_RES]||0);
break; break;
} }
if (this.debugMode) console.log(`[HeroAtkSystem] 物理伤害修正后: ${apAfter} 元素伤害修正后: ${mapAfter}`);
// 8. 计算最终总伤害(物理伤害 + 魔法伤害) // 8. 计算最终总伤害(物理伤害 + 魔法伤害)
let total = apAfter + mapAfter; let total = apAfter + mapAfter;
//9.1 易伤
// 9. 应用最终伤害减免效果如特殊天赋、buff等提供的减免 let DMG_INVUL = TAttrs[Attrs.DMG_INVUL]||0
total = Math.floor(total * (1 - ((TAttrs[Attrs.DAMAGE_REDUCTION]||0)/100))); //9.2 免伤 属性免伤+天赋免伤
let DMG_RED =TAttrs[Attrs.DMG_RED]||0+TAttrsComp.useCountValTal(Attrs.DMG_RED);
// 10. 确保伤害值非负,返回最终伤害 // 10. 确保伤害值非负,返回最终伤害
total = Math.max(0,total);
//11. 易伤减免 免伤属性免伤+天赋免伤
total = Math.floor(total * (1 + ((DMG_INVUL-DMG_RED)/100)));
if (this.debugMode) console.log(`[HeroAtkSystem] 易伤减免后: ${total}`);
return Math.max(0,total); return Math.max(0,total);
} }
@@ -337,16 +375,16 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* 这确保了死亡逻辑的单一性和一致性 * 这确保了死亡逻辑的单一性和一致性
*/ */
private doDead(entity: ecs.Entity): void { private doDead(entity: ecs.Entity): void {
const model = entity.get(HeroAttrsComp); const TAttrsComp = entity.get(HeroAttrsComp);
if (!model || model.is_dead) return; if (!TAttrsComp || TAttrsComp.is_dead) return;
model.is_dead = true; TAttrsComp.is_dead = true;
// 触发死亡事件 // 触发死亡事件
this.onDeath(entity); this.onDeath(entity);
if (this.debugMode) { if (this.debugMode) {
console.log(`[HeroAtkSystem] ${model.hero_name} 死亡`); console.log(`[HeroAtkSystem] ${TAttrsComp.hero_name} 死亡`);
} }
} }
@@ -380,24 +418,6 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
return r < rate; return r < rate;
} }
/**
* 伤害计算考虑易伤等debuff
*
* 预留的伤害计算扩展点,用于处理:
* - 被攻击者的易伤状态(增加受到伤害)
* - 被攻击者的伤害减免状态(减少受到伤害)
* - 元素抗性计算
* - 真实伤害/魔法伤害/物理伤害的类型区分
*
* @param model 被攻击者的属性组件(包含抗性、易伤等状态)
* @param baseDamage 基础伤害值
* @returns 最终伤害值(经过各种加成和减免后的结果)
*/
private calculateDamage(model: HeroAttrsComp, baseDamage: number): number {
// 这里可以添加易伤等debuff的计算逻辑
// 例如如果目标有易伤buff增加受到的伤害
return baseDamage;
}
/** /**
* 护盾吸收伤害 * 护盾吸收伤害
@@ -407,24 +427,24 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* 2. 如果护盾值 < 伤害值:部分吸收,剩余伤害 = 原伤害 - 护盾值 * 2. 如果护盾值 < 伤害值:部分吸收,剩余伤害 = 原伤害 - 护盾值
* 3. 护盾被击破时,重置护盾最大值属性 * 3. 护盾被击破时,重置护盾最大值属性
* *
* @param model 被攻击者的属性组件(包含当前护盾值) * @param TAttrsComp 被攻击者的属性组件(包含当前护盾值)
* @param damage 原始伤害值 * @param damage 原始伤害值
* @returns 剩余伤害值(护盾吸收后的结果) * @returns 剩余伤害值(护盾吸收后的结果)
*/ */
private absorbShield(model: HeroAttrsComp, damage: number): number { private absorbShield(TAttrsComp: HeroAttrsComp, damage: number): number {
if (model.shield <= 0) return damage; if (TAttrsComp.shield <= 0) return damage;
if (model.shield >= damage) { if (TAttrsComp.shield >= damage) {
model.shield -= damage; TAttrsComp.shield -= damage;
if (model.shield <= 0) { if (TAttrsComp.shield <= 0) {
model.shield = 0; TAttrsComp.shield = 0;
model.Attrs[Attrs.SHIELD_MAX] = 0; TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0;
} }
return 0; return 0;
} else { } else {
const remainingDamage = damage - model.shield; const remainingDamage = damage - TAttrsComp.shield;
model.shield = 0; TAttrsComp.shield = 0;
model.Attrs[Attrs.SHIELD_MAX] = 0; TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0;
return remainingDamage; return remainingDamage;
} }
} }
@@ -442,11 +462,11 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* @todo 当前对怪物实体直接返回,后续可以根据需求扩展怪物的被攻击逻辑 * @todo 当前对怪物实体直接返回,后续可以根据需求扩展怪物的被攻击逻辑
*/ */
private onAttacked(entity: ecs.Entity): void { private onAttacked(entity: ecs.Entity): void {
const model = entity.get(HeroAttrsComp); const TAttrsComp = entity.get(HeroAttrsComp);
if (!model || model.is_dead) return; if (!TAttrsComp || TAttrsComp.is_dead) return;
TAttrsComp.atked_count++;
// 这里可以添加被攻击时的特殊处理逻辑 // 这里可以添加被攻击时的特殊处理逻辑
if (model.fac === FacSet.MON) return; if (TAttrsComp.fac === FacSet.MON) return;
// 例如:触发某些天赋效果、反击逻辑等 // 例如:触发某些天赋效果、反击逻辑等
} }
@@ -470,13 +490,13 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
* @important 死亡事件应该幂等,避免重复触发 * @important 死亡事件应该幂等,避免重复触发
*/ */
private onDeath(entity: ecs.Entity): void { private onDeath(entity: ecs.Entity): void {
const model = entity.get(HeroAttrsComp); const TAttrsComp = entity.get(HeroAttrsComp);
if (!model) return; if (!TAttrsComp) return;
if (model.fac === FacSet.MON) { if (TAttrsComp.fac === FacSet.MON) {
// 怪物死亡处理 // 怪物死亡处理
this.scheduleDrop(entity); this.scheduleDrop(entity);
} else if (model.fac === FacSet.HERO) { } else if (TAttrsComp.fac === FacSet.HERO) {
// 英雄死亡处理 // 英雄死亡处理
this.scheduleHeroDeath(entity); this.scheduleHeroDeath(entity);
} }

View File

@@ -3,6 +3,7 @@ import { Attrs, AttrsType, BType, NeAttrs } from "../common/config/HeroAttrs";
import { BuffConf } from "../common/config/SkillSet"; import { BuffConf } from "../common/config/SkillSet";
import { HeroInfo, AttrSet } from "../common/config/heroSet"; import { HeroInfo, AttrSet } from "../common/config/heroSet";
import { HeroSkillsComp } from "./HeroSkills"; import { HeroSkillsComp } from "./HeroSkills";
import { HeroViewComp } from "./HeroViewComp";
interface talTrigger{ interface talTrigger{
@@ -31,7 +32,6 @@ export class HeroAttrsComp extends ecs.Comp {
// ==================== 动态属性值 ==================== // ==================== 动态属性值 ====================
hp: number = 100; // 当前血量 hp: number = 100; // 当前血量
mp: number = 100; // 当前魔法值 mp: number = 100; // 当前魔法值
pow: number = 0; // 当前怒气值
shield: number = 0; // 当前护盾 shield: number = 0; // 当前护盾
Attrs: any = []; // 最终属性数组经过Buff计算后 Attrs: any = []; // 最终属性数组经过Buff计算后
NeAttrs: any = []; // 负面状态数组 NeAttrs: any = []; // 负面状态数组
@@ -65,7 +65,7 @@ export class HeroAttrsComp extends ecs.Comp {
// ==================== 计数统计 ==================== // ==================== 计数统计 ====================
atk_count: number = 0; // 攻击次数 atk_count: number = 0; // 攻击次数
atked_count: number = 0; // 被攻击次数 atked_count: number = 0; // 被攻击次数
killed_count:number=0;
// 注意:技能数据已迁移到 HeroSkillsComp不再存储在这里 // 注意:技能数据已迁移到 HeroSkillsComp不再存储在这里
start(){ start(){
@@ -118,7 +118,37 @@ export class HeroAttrsComp extends ecs.Comp {
} }
} }
} }
/*******************基础属性管理********************/
add_hp(value:number,isValue:boolean){
let addValue = value;
if(!isValue){
addValue = value * this.Attrs[Attrs.HP_MAX];
}
let heroView = this.ent.get(HeroViewComp);
if(heroView){
heroView.health(addValue);
}
this.hp += addValue;
this.hp = Math.max(0, Math.min(this.hp, this.Attrs[Attrs.HP_MAX]));
}
add_mp(value:number,isValue:boolean){
let addValue = value;
if(!isValue){
addValue = value * this.Attrs[Attrs.MP_MAX];
}
let heroView = this.ent.get(HeroViewComp);
if(heroView){
heroView.mp_add(addValue);
}
this.mp += addValue;
this.mp = Math.max(0, Math.min(this.mp, this.Attrs[Attrs.MP_MAX]));
}
add_shield(value:number,isValue:boolean){
let addValue = value;
this.shield += addValue;
this.shield = Math.max(0, Math.min(this.shield, this.Attrs[Attrs.HP_MAX]));
}
// ==================== BUFF 管理 ==================== // ==================== BUFF 管理 ====================
/** /**
* 添加 buff 效果(支持多次叠加) * 添加 buff 效果(支持多次叠加)
@@ -150,6 +180,8 @@ export class HeroAttrsComp extends ecs.Comp {
this.recalculateSingleAttr(attrIndex); this.recalculateSingleAttr(attrIndex);
} }
// ==================== 属性计算系统 ==================== // ==================== 属性计算系统 ====================
/** /**
* 重新计算单个属性 * 重新计算单个属性
@@ -409,6 +441,13 @@ export class HeroAttrsComp extends ecs.Comp {
} }
/**
* 添加数值型天赋buff 数值会进行累加count 时叠加层数
* @param t_uuid 天赋唯一标识
* @param attrIndex 属性索引
* @param bType buff类型(VALUE:数值型, RATIO:百分比型)
* @param value buff值
*/
addValueTal(t_uuid: number, attrIndex?: number, bType?: BType, value: number = 0) { addValueTal(t_uuid: number, attrIndex?: number, bType?: BType, value: number = 0) {
if (attrIndex === undefined || bType === undefined) return; if (attrIndex === undefined || bType === undefined) return;
const buff = this.BUFFS_TAL[t_uuid]; const buff = this.BUFFS_TAL[t_uuid];
@@ -420,6 +459,12 @@ export class HeroAttrsComp extends ecs.Comp {
} }
this.recalculateSingleAttr(attrIndex); this.recalculateSingleAttr(attrIndex);
} }
/**
* 添加计数型天赋每次添加数值已最新额覆盖久的count为可用次数
* @param eff 天赋效果ID
* @param value 天赋值
*/
addCountTal(eff: number, value: number) { addCountTal(eff: number, value: number) {
const t = this.Talents[eff] || { value: 0, count: 0 }; const t = this.Talents[eff] || { value: 0, count: 0 };
t.value = value; t.value = value;
@@ -427,18 +472,34 @@ export class HeroAttrsComp extends ecs.Comp {
this.Talents[eff] = t; this.Talents[eff] = t;
} }
/**
* 使用计数型天赋,如风怒 ,必爆等天赋,只需要返回是否暴击的,使用这个方法
* @param eff 天赋效果ID
* @returns 是否使用成功
*/
useCountTal(eff: number): boolean { useCountTal(eff: number): boolean {
const t = this.Talents[eff]; const t = this.Talents[eff];
if (!t || t.count <= 0) return false; if (!t || t.count <= 0) return false;
t.count -= 1; t.count -= 1;
return true; return true;
} }
/**
* 使用计数型天赋并返回天赋值如额外5次 伤害+20% 5次受伤免伤20% 使用这个方法
* @param eff 天赋效果ID
* @returns 天赋值
*/
useCountValTal(eff: number): number { useCountValTal(eff: number): number {
const t = this.Talents[eff]; const t = this.Talents[eff];
if (!t || t.value <= 0) return 0; if (!t || t.value <= 0) return 0;
t.count -= 1; t.count -= 1;
return t.value; return t.value;
} }
/**
* 根据UUID移除数值型天赋buff
* @param t_uuid 天赋唯一标识
*/
useValueTalByUuid(t_uuid: number) { useValueTalByUuid(t_uuid: number) {
const buff = this.BUFFS_TAL[t_uuid]; const buff = this.BUFFS_TAL[t_uuid];
if (!buff) return; if (!buff) return;
@@ -446,6 +507,11 @@ export class HeroAttrsComp extends ecs.Comp {
delete this.BUFFS_TAL[t_uuid]; delete this.BUFFS_TAL[t_uuid];
this.recalculateSingleAttr(attrIndex); this.recalculateSingleAttr(attrIndex);
} }
/**
* 根据属性索引移除数值型天赋buff
* @param attrIndex 属性索引
*/
useValueTalByAttr(attrIndex: number) { useValueTalByAttr(attrIndex: number) {
let changed = false; let changed = false;
for (const key in this.BUFFS_TAL) { for (const key in this.BUFFS_TAL) {
@@ -495,6 +561,7 @@ export class HeroAttrsComp extends ecs.Comp {
this.is_kalami = false; this.is_kalami = false;
this.atk_count = 0; this.atk_count = 0;
this.atked_count = 0; this.atked_count = 0;
this.killed_count =0;
} }

View File

@@ -26,13 +26,25 @@ export interface BuffInfo {
@ccclass('HeroViewComp') // 定义Cocos Creator 组件 @ccclass('HeroViewComp') // 定义Cocos Creator 组件
@ecs.register('HeroView', false) // 定义ECS 组件 @ecs.register('HeroView', false) // 定义ECS 组件
export class HeroViewComp extends CCComp { export class HeroViewComp extends CCComp {
private debugMode: boolean = true; // 是否启用调试模式
// 添加条件日志方法
private debugLog(...args: any[]): void {
if (this.debugMode) {
console.log(...args);
}
}
private debugWarn(...args: any[]): void {
if (this.debugMode) {
console.warn(...args);
}
}
// ==================== View 层属性(表现相关)==================== // ==================== View 层属性(表现相关)====================
as: HeroSpine = null! as: HeroSpine = null!
status:String = "idle" status:String = "idle"
scale: number = 1; // 显示方向 scale: number = 1; // 显示方向
box_group:number = BoxSet.HERO; // 碰撞组 box_group:number = BoxSet.HERO; // 碰撞组
usePower:boolean = false;
useMp:boolean = false;
realDeadTime:number=10 realDeadTime:number=10
deadCD:number=0 deadCD:number=0
// 血条显示相关 // 血条显示相关
@@ -45,7 +57,7 @@ export class HeroViewComp extends CCComp {
get model() { get model() {
// 🔥 修复添加安全检查防止ent为null时的访问异常 // 🔥 修复添加安全检查防止ent为null时的访问异常
if (!this.ent) { if (!this.ent) {
console.warn("[HeroViewComp] ent is null, returning null for model"); this.debugWarn("[HeroViewComp] ent is null, returning null for model");
return null; return null;
} }
return this.ent.get(HeroAttrsComp); return this.ent.get(HeroAttrsComp);
@@ -89,12 +101,10 @@ export class HeroViewComp extends CCComp {
// } // }
/* 显示角色血*/ /* 显示角色血*/
this.top_node.getChildByName("hp").active = true; this.top_node.getChildByName("hp").active = true;
this.usePower=HeroInfo[this.model.hero_uuid].type==HType.warrior||HeroInfo[this.model.hero_uuid].type==HType.assassin; this.top_node.getChildByName("mp").active = true;
this.useMp=HeroInfo[this.model.hero_uuid].type==HType.mage||HeroInfo[this.model.hero_uuid].type==HType.remote||HeroInfo[this.model.hero_uuid].type==HType.support;
this.top_node.getChildByName("pow").active = this.usePower;
this.top_node.getChildByName("mp").active = this.useMp;
// 初始隐藏血条(被攻击后才显示) // 初始隐藏血条(被攻击后才显示)
this.top_node.active = false; this.top_node.active = true;
} }
/** 初始化 UI 节点引用 */ /** 初始化 UI 节点引用 */
@@ -140,9 +150,9 @@ export class HeroViewComp extends CCComp {
this.processDamageQueue(); // 伤害数字显示队列 this.processDamageQueue(); // 伤害数字显示队列
// ✅ 更新 UI 显示(数据由 HeroAttrSystem 更新) // ✅ 更新 UI 显示(数据由 HeroAttrSystem 更新)
this.hp_show(this.model.hp, this.model.Attrs[Attrs.HP_MAX]); // 移除了每帧调用的 hp_show改为仅在需要时调用
if(this.useMp) this.mp_show(this.model.mp, this.model.Attrs[Attrs.MP_MAX]); this.hp_show();
if(this.usePower) this.pow_show(this.model.pow, this.model.Attrs[Attrs.POW_MAX]); this.mp_show();
this.show_shield(this.model.shield, this.model.Attrs[Attrs.SHIELD_MAX]); this.show_shield(this.model.shield, this.model.Attrs[Attrs.SHIELD_MAX]);
} }
@@ -160,32 +170,29 @@ export class HeroViewComp extends CCComp {
} }
/** 显示血量 */ /** 显示血量 */
private hp_show(hp: number, hp_max: number) { private hp_show() {
// 不再基于血量是否满来决定显示状态,只更新进度条 // 不再基于血量是否满来决定显示状态,只更新进度条
if(!this.top_node.active) return; let hp=this.model.hp;
let hp_max=this.model.Attrs[Attrs.HP_MAX];
let hp_progress = hp / hp_max; this.debugLog("hp_show",hp,hp_max)
this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp_progress; this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp / hp_max;;
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp_progress; this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp / hp_max;;
}, 0.15); }, 0.15);
} }
/** 显示魔法值 */ /** 显示魔法值 */
private mp_show(mp: number, mp_max: number) { private mp_show() {
if(!this.top_node.active) return if(!this.top_node.active) return
let mp=this.model.mp;
let mp_max=this.model.Attrs[Attrs.MP_MAX];
this.debugLog("mp_show",mp,mp_max)
this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max; this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max;
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max; this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max;
}, 0.15); }, 0.15);
} }
private pow_show(pow: number, pow_max: number) {
if(!this.top_node.active) return
this.top_node.getChildByName("pow").getComponent(ProgressBar).progress = pow / pow_max;
this.scheduleOnce(() => {
this.top_node.getChildByName("pow").getChildByName("mpb").getComponent(ProgressBar).progress = pow / pow_max;
}, 0.15);
}
/** 升级特效 */ /** 升级特效 */
private lv_up() { private lv_up() {
var path = "game/skill/buff/buff_lvup"; var path = "game/skill/buff/buff_lvup";
@@ -294,12 +301,18 @@ export class HeroViewComp extends CCComp {
if(this.model && this.model.shield>0) this.show_shield(this.model.shield, this.model.Attrs[Attrs.SHIELD_MAX]); if(this.model && this.model.shield>0) this.show_shield(this.model.shield, this.model.Attrs[Attrs.SHIELD_MAX]);
} }
health(hp: number = 0, is_num:boolean=true) { health(hp: number = 0) {
// 生命值更新由 Model 层处理,这里只负责视图表现 // 生命值更新由 Model 层处理,这里只负责视图表现
this.heathed(); this.heathed();
if(this.model) { this.hp_tip(TooltipTypes.health, hp.toFixed(0));
this.hp_show(hp, this.model.Attrs[Attrs.HP_MAX]); this.top_node.active=true
} this.hp_show();
}
mp_add(mp: number = 0) {
// 生命值更新由 Model 层处理,这里只负责视图表现
this.hp_tip(TooltipTypes.addmp, mp.toFixed(0));
this.top_node.active=true
this.mp_show();
} }
alive(){ alive(){
@@ -331,7 +344,7 @@ export class HeroViewComp extends CCComp {
realDead(){ realDead(){
// 🔥 修复添加model安全检查防止实体销毁过程中的空指针异常 // 🔥 修复添加model安全检查防止实体销毁过程中的空指针异常
if (!this.model) { if (!this.model) {
console.warn("[HeroViewComp] realDead called but model is null, skipping"); this.debugWarn("[HeroViewComp] realDead called but model is null, skipping");
return; return;
} }
if(this.model.fac === FacSet.HERO){ if(this.model.fac === FacSet.HERO){
@@ -390,19 +403,8 @@ export class HeroViewComp extends CCComp {
} }
// 伤害计算和战斗逻辑已迁移到 HeroBattleSystem // 伤害计算和战斗逻辑已迁移到 HeroBattleSystem
/** 死亡触发器(预留,用于天赋/特殊效果) */
do_dead_trigger(){
if(!this.model || this.model.is_dead || this.model.fac === FacSet.MON) return;
// 预留:天赋触发、复活检查等
}
/** 受击触发器(预留,用于天赋/特殊效果) */
do_atked_trigger(){
if(!this.model || this.model.is_dead || this.model.fac === FacSet.MON) return;
// 预留:反击、护盾触发等
}
/** 调试日志(已禁用) */ /** 调试日志(已禁用) */
to_console(value:any, value2:any=null, value3:any=null){ to_console(value:any, value2:any=null, value3:any=null){
@@ -415,7 +417,7 @@ export class HeroViewComp extends CCComp {
switch(skill.act){ switch(skill.act){
case "max": case "max":
this.as.max() this.as.max()
this.tooltip(TooltipTypes.skill, skill.name, skill_id) this.tooltip(TooltipTypes.skill, skill.name)
break break
case "atk": case "atk":
this.as.atk() this.as.atk()
@@ -455,12 +457,12 @@ export class HeroViewComp extends CCComp {
private showDamageImmediate(damage: number, isCrit: boolean, anm:string="atked") { private showDamageImmediate(damage: number, isCrit: boolean, anm:string="atked") {
if (!this.model) return; if (!this.model) return;
this.hp_show(this.model.hp, this.model.Attrs[Attrs.HP_MAX]); this.hp_show();
this.in_atked(anm, this.model.fac==FacSet.HERO?1:-1); this.in_atked(anm, this.model.fac==FacSet.HERO?1:-1);
if (isCrit) { if (isCrit) {
this.hp_tip(TooltipTypes.crit, damage.toFixed(0), damage); this.hp_tip(TooltipTypes.crit, damage.toFixed(0));
} else { } else {
this.hp_tip(TooltipTypes.life, damage.toFixed(0), damage); this.hp_tip(TooltipTypes.life, damage.toFixed(0));
} }
} }
reset() { reset() {
@@ -483,3 +485,8 @@ export class HeroViewComp extends CCComp {
} }
} }

View File

@@ -161,19 +161,17 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat
if (hset === HSSet.atk){ if (hset === HSSet.atk){
let delay = 0.3 let delay = 0.3
let ext_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); let ext_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG);
let splash = heroAttrs.useCountValTal(TalEffet.SPLASH);
heroView.scheduleOnce(() => { heroView.scheduleOnce(() => {
this.createSkill(s_uuid, heroView,targets,ext_dmg,splash); this.createSkill(s_uuid, heroView,targets,ext_dmg);
}, delay); }, delay);
//风怒wfuny 只针对 普通攻击起效 //风怒wfuny 只针对 普通攻击起效
if (heroAttrs.useCountTal(TalEffet.WFUNY)){ if (heroAttrs.useCountTal(TalEffet.WFUNY)){
let ext2_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); let ext2_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG);
let splash2 = heroAttrs.useCountValTal(TalEffet.SPLASH);
let delay = 0.3 let delay = 0.3
heroView.playSkillEffect(s_uuid); heroView.playSkillEffect(s_uuid);
//需要再添加 风怒动画 //需要再添加 风怒动画
heroView.scheduleOnce(() => { heroView.scheduleOnce(() => {
this.createSkill(s_uuid, heroView,targets,ext2_dmg,splash2); this.createSkill(s_uuid, heroView,targets,ext2_dmg);
},delay); },delay);
} }
} }
@@ -214,7 +212,7 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat
/** /**
* 创建技能实体 * 创建技能实体
*/ */
private createSkill(s_uuid: number, caster: HeroViewComp,targets:Vec3[]=[],ext_dmg:number=0,splash:number=0) { private createSkill(s_uuid: number, caster: HeroViewComp,targets:Vec3[]=[],ext_dmg:number=0) {
// 检查节点有效性 // 检查节点有效性
if (!caster.node || !caster.node.isValid) { if (!caster.node || !caster.node.isValid) {
console.warn("[SACastSystem] 施法者节点无效"); console.warn("[SACastSystem] 施法者节点无效");
@@ -239,7 +237,7 @@ export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdat
const targetPos = targets[0]; // 使用第一个目标位置 const targetPos = targets[0]; // 使用第一个目标位置
// console.log(`[SACastSystem]: ${s_uuid}, 起始位置: ${startPos}, 目标位置: ${targetPos}`); // console.log(`[SACastSystem]: ${s_uuid}, 起始位置: ${startPos}, 目标位置: ${targetPos}`);
// 加载技能实体(包括预制体、组件初始化等) // 加载技能实体(包括预制体、组件初始化等)
skill.load(startPos, parent, s_uuid, targetPos, caster,ext_dmg,splash); skill.load(startPos, parent, s_uuid, targetPos, caster,ext_dmg);
} }
/** /**

View File

@@ -208,15 +208,15 @@ export class TalComp extends ecs.Comp {
case TalEffet.SKILL_DMG: case TalEffet.SKILL_DMG:
heroAttrs.addCountTal(TalEffet.SKILL_DMG, talent.value + talent.value_add); heroAttrs.addCountTal(TalEffet.SKILL_DMG, talent.value + talent.value_add);
break; break;
case TalEffet.LDMG: case TalEffet.DMG_RED:
heroAttrs.addCountTal(TalEffet.LDMG, talent.value + talent.value_add); heroAttrs.addCountTal(TalEffet.DMG_RED, talent.value + talent.value_add);
break;
case TalEffet.HP:
heroAttrs.add_hp(talent.value + talent.value_add,talent.vType == BType.VALUE);
break;
case TalEffet.MP:
heroAttrs.add_mp(talent.value + talent.value_add,talent.vType == BType.VALUE);
break; break;
// case TalEffet.HP:
// heroAttrs.addCountTal(TalEffet.HP, talent.value + talent.value_add);
// break;
// case TalEffet.MP:
// heroAttrs.addCountTal(TalEffet.MP, talent.value + talent.value_add);
// break;
case TalEffet.WFUNY: case TalEffet.WFUNY:
heroAttrs.addCountTal(TalEffet.WFUNY, talent.value + talent.value_add); heroAttrs.addCountTal(TalEffet.WFUNY, talent.value + talent.value_add);
break; break;

View File

@@ -13,7 +13,6 @@ export class SDataCom extends ecs.Comp {
fac: number = 0; // 0:hero 1:monster fac: number = 0; // 0:hero 1:monster
s_uuid:number=0 s_uuid:number=0
ext_dmg:number=0 //额外伤害 ext_dmg:number=0 //额外伤害
splash:number=0 //溅射伤害
dmg_ratio:number=1 //伤害比例 dmg_ratio:number=1 //伤害比例
hit_count:number=0 //击中数量 hit_count:number=0 //击中数量
reset() { reset() {
@@ -24,7 +23,6 @@ export class SDataCom extends ecs.Comp {
this.caster=null this.caster=null
this.hit_count=0 this.hit_count=0
this.ext_dmg=0 this.ext_dmg=0
this.splash=0
this.dmg_ratio=1 this.dmg_ratio=1
} }
} }

View File

@@ -29,7 +29,7 @@ export class Skill extends ecs.Entity {
this.addComponents<SMoveDataComp>(SMoveDataComp); this.addComponents<SMoveDataComp>(SMoveDataComp);
} }
load(startPos: Vec3, parent: Node, s_uuid: number, targetPos: Vec3, load(startPos: Vec3, parent: Node, s_uuid: number, targetPos: Vec3,
caster:HeroViewComp,ext_dmg:number=0,splash:number=0) { caster:HeroViewComp,ext_dmg:number=0) {
const config = SkillSet[s_uuid]; const config = SkillSet[s_uuid];
if (!config) { if (!config) {
@@ -94,7 +94,6 @@ export class Skill extends ecs.Entity {
sDataCom.s_uuid=s_uuid sDataCom.s_uuid=s_uuid
sDataCom.fac=cAttrsComp.fac sDataCom.fac=cAttrsComp.fac
sDataCom.ext_dmg=ext_dmg sDataCom.ext_dmg=ext_dmg
sDataCom.splash=splash
} }
/** 模块资源释放 */ /** 模块资源释放 */

View File

@@ -149,7 +149,9 @@ export class SkillView extends CCComp {
target.ent, target.ent,
this.sData.Attrs, this.sData.Attrs,
this.sData.caster, this.sData.caster,
this.sData.s_uuid this.sData.s_uuid,
this.sData.ext_dmg,
this.sData.dmg_ratio,
); );
// 更新技能命中次数 // 更新技能命中次数
this.sData.hit_count++ this.sData.hit_count++

View File

@@ -41,6 +41,14 @@ export class TooltipCom extends CCComp {
this.ent.destroy() this.ent.destroy()
},0.5) },0.5)
break break
case TooltipTypes.addmp:
this.node.setSiblingIndex(110);
this.node.getChildByName("add_mp").getChildByName("mp").getComponent(Label).string = this.value;
this.node.getChildByName("add_mp").active=true;
this.scheduleOnce(()=>{
this.ent.destroy()
},0.5)
break
case TooltipTypes.crit: case TooltipTypes.crit:
this.node.setPosition(v3(this.node.position.x,this.node.position.y)) this.node.setPosition(v3(this.node.position.x,this.node.position.y))
this.node.setSiblingIndex(200); this.node.setSiblingIndex(200);