fix(战斗): 修正护盾计算并重构技能效果处理

- 修复护盾计算错误,将百分比加成基数从 shield_max 改为 hp_max
- 增加护盾和最大护盾值的非负检查
- 引入 SkillKind 枚举明确技能类型,重构 SCastSystem 中的技能效果处理逻辑
- 将治疗和护盾效果从 Buff 系统剥离,直接作用于 HeroAttrsComp
- 清理未使用的导入和日志输出
This commit is contained in:
panw
2026-03-13 09:52:43 +08:00
parent 6170f47ca6
commit 3b545e3bff
3 changed files with 39 additions and 23 deletions

View File

@@ -141,9 +141,12 @@ export class HeroAttrsComp extends ecs.Comp {
const oldShield = this.shield;
let addValue = value;
if(!isValue){
addValue = value * this.shield_max / 100;
addValue = value * this.hp_max / 100;
}
this.shield += addValue;
this.shield_max += addValue;
if (this.shield < 0) this.shield = 0;
if (this.shield_max < 0) this.shield_max = 0;
this.dirty_shield = true; // 标记护盾需要更新
mLogger.log(this.debugMode, 'HeroAttrs', ` 护盾变更: ${this.hero_name}, 变化=${addValue.toFixed(1)}, ${oldShield.toFixed(1)} -> ${this.shield.toFixed(1)}`);
}