refactor(attr system): 统一使用属性获取方法,让限时buff生效

1. 重构HeroAtkSystem中的暴击、击晕判定逻辑,改用getFinal方法获取抗性
2. 重构Skill.ts中的属性赋值逻辑,替换为对应的最终属性获取方法
3. 修复血量钳制逻辑,使用getFinalHpMax确保限时血量上限buff生效
4. 新增多个属性的最终值获取方法,统一处理限时修饰符
This commit is contained in:
pan
2026-07-23 16:55:33 +08:00
parent 2381812d06
commit 1afa06efb8
3 changed files with 83 additions and 11 deletions

View File

@@ -128,7 +128,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
// 暴击判定
// 使用施法者的暴击率属性damageEvent.Attrs 快照),- 被攻击者的暴击抗性属
const criticalChance = (damageEvent.Attrs[Attrs.critical] || 0) - (TAttrsComp.critical_res || 0);
const criticalChance = (damageEvent.Attrs[Attrs.critical] || 0) - TAttrsComp.getFinalCriticalRes();
const isCrit = this.checkChance(criticalChance);
// 计算基础伤害
@@ -187,7 +187,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
const isFrost = !TAttrsComp.isFrost() && this.checkChance(freezeChance);
// 击晕判定
const stunChance = (damageEvent.Attrs[Attrs.stun_chance] || 0) - (TAttrsComp.stun_res || 0);
const stunChance = (damageEvent.Attrs[Attrs.stun_chance] || 0) - TAttrsComp.getFinalStunRes();
const isStun = !TAttrsComp.isStun() && this.checkChance(stunChance);
// 击退判定