fix(战斗): 修正护盾计算并重构技能效果处理
- 修复护盾计算错误,将百分比加成基数从 shield_max 改为 hp_max - 增加护盾和最大护盾值的非负检查 - 引入 SkillKind 枚举明确技能类型,重构 SCastSystem 中的技能效果处理逻辑 - 将治疗和护盾效果从 Buff 系统剥离,直接作用于 HeroAttrsComp - 清理未使用的导入和日志输出
This commit is contained in:
@@ -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)}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user