Files
pixelheros/assets/script/todo.md
walkpan 83e3f14bc7 docs: 添加技能系统优化设计方案文档
添加 Design2.md 和 Design3.md 详细设计方案文档,包含技能系统优化建议和扩展设计
更新 todo.md 记录当前系统存在的关键问题
2025-12-30 22:40:44 +08:00

88 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1. [待评估] HeroAttrsComp 架构问题:数据层与表现层耦合
- 位置assets/script/game/hero/HeroAttrsComp.ts 的 add_hp、add_mp
- 问题:属性组件中直接通过 this.ent.get(HeroViewComp) 更新视图,
数据层与表现层强耦合,不利于复用(例如无头战斗逻辑)。
- TODO后续根据整体架构再决定是否重构方向预留如下
- 移除 HeroAttrsComp 中对 HeroViewComp 的直接依赖,仅维护数值;
- 使用事件或 System 把 hp/mp 变更同步给视图组件;
- 保证 HeroAttrsComp 只处理战斗数值逻辑,不直接操作表现层。
2. [问题] SkillSet 目标组枚举命名与注释语义不一致
- 位置assets/script/game/common/config/SkillSet.ts 的 TGroup
- 现状Ally/Team 的注释与字面含义相反,容易导致配置选错目标阵营。
3. [问题] SkillSet 多字段“配置存在但运行时未生效”,易造成误配
- 位置assets/script/game/common/config/SkillSet.ts + assets/script/game/skill/SkillView.ts
- 现状t_num/hit_num/hitcd/ready/EAnm/DAnm/buffs/neAttrs 等字段当前链路中基本未进入核心逻辑hit_num 的范围命中逻辑在 SkillView 中被注释。
- 风险:策划以为有效,实际上无效果。
4. [问题] EType 定义的结束类型 > 实际支持的结束类型
- 位置assets/script/game/common/config/SkillSet.ts + assets/script/game/skill/SMoveComp.ts + assets/script/game/skill/SkillView.ts
- 现状distanceEnd/countEnd 等缺少对应实现SkillView 仅处理 animationEndSMoveSystem 仅在 timeEnd/collision 才销毁。
- 风险:配置为 distanceEnd/countEnd 可能导致技能不销毁或销毁时机不符合预期。
5. [问题] “穿透/命中次数”概念重复且实现偏一边
- 位置assets/script/game/common/config/HeroAttrs.ts + assets/script/game/common/config/SkillSet.ts + assets/script/game/skill/SkillView.ts
- 现状PIERCE/PUNCTURE 两套概念并存,技能销毁只看 (Skill.hit + Attrs.PUNCTURE)t_num/hit_num 不参与。
6. [问题] TalSet 的 count 配置未生效
- 位置assets/script/game/common/config/TalSet.ts + assets/script/game/hero/TalComp.ts
- 现状talConf 中配置了 count但 TalComp.addTal() 固定把 count 设为 1。
- 风险如“触发后下10次必爆”等配置实际表现会被压缩为 1 次。
7. [问题] 天赋触发源不完整:大量 triType 永远不会触发
- 位置assets/script/game/hero/SACastSystem.ts + assets/script/game/hero/HeroAtkSystem.ts
- 现状:当前只对 ATK/SKILL/MAX 调用 updateCurDMG/LUP/HPL/HPA/DEAD/INIT 等缺少累计来源。
8. [问题] TalEffet 执行分支不完整
- 位置assets/script/game/hero/TalComp.ts
- 现状TalEffet.SHIELD/THORNS 等枚举存在,但 doTriggerTal 未覆盖或未完整实现。
9. [问题] 百分比/概率“单位体系”混乱0-1 与 0-100 混用)
- 位置assets/script/game/hero/HeroAtkSystem.ts + assets/script/game/hero/HeroAttrsComp.ts + assets/script/game/common/config/TalSet.ts + assets/script/game/common/config/TDLevelOptions.ts
- 现状:战斗概率判定使用 0-100add_hp/add_mp 的百分比却按 0-1 乘上限;强化池与天赋表里同时出现 0.14 表示 14% 这种写法。
- 风险:显示/描述与实际生效严重偏差(例如显示 +14%,实际可能只加 0.14 或反过来直接回满)。
10. [问题] TDLevelOptions 强化池当前未接入实际流程
- 位置assets/script/game/common/config/TDLevelOptions.ts
- 现状getNormalBuffs/getTalentBuffs 在代码中未被引用,属于孤岛配置。
11. [问题] 强化池常规等级选项集合恒定
- 位置assets/script/game/common/config/TDLevelOptions.ts
- 现状:多数等级池子只有 4 条且默认抽 4 个,实际仅随机排序,没有“随机性”。
12. [问题] 上限规则仅写在 note 文本,未强制 clamp
- 位置assets/script/game/hero/HeroAttrsComp.ts + assets/script/game/common/config/TDLevelOptions.ts
- 现状clamp 只限制 CRITICAL/DODGE/HITSTUN_CHANCE/FREEZE_CHANCE/LIFESTEAL 等未做强制上限。
13. [严重问题] 攻速/技速对 CD 不生效
- 位置assets/script/game/hero/HeroSkills.ts
- 现状resetCD 里按 AS/SS 计算了 cd但随后又把 cd 覆盖回 cd_max。
- 风险:攻速/技速体系失效,强化与天赋相关数值无法体现。
14. [严重问题] 计数型天赋 key 与属性枚举不一致,导致天赋效果读取失败
- 位置assets/script/game/hero/TalComp.ts + assets/script/game/hero/HeroAtkSystem.ts
- 现状TalComp 写入使用 TalEffet.DMG_RED(等)HeroAtkSystem 读取却用 Attrs.DMG_RED/Attrs.THORNS。
- 风险:减伤/反伤等计数型天赋永远不生效或表现异常。
15. [问题] 多处存在 “|| 0 + xxx” 的运算优先级坑
- 位置assets/script/game/hero/HeroAtkSystem.ts
- 现状:会在属性非 0 时吞掉天赋增量(或相反),导致数值叠加不符合预期。