diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index b8eb0e0b..57b5fa82 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -183,23 +183,26 @@ export class HeroAttrsComp extends ecs.Comp { // ==================== 属性计算系统 ==================== + private getBaseValue(attrIndex: number): number { + switch (attrIndex) { + case Attrs.HP_MAX: return this.base_hp; + case Attrs.MP_MAX: return this.base_mp; + case Attrs.DEF: return this.base_def; + case Attrs.AP: return this.base_ap; + case Attrs.MAP: return this.base_map; + case Attrs.SPEED: return this.base_speed; + case Attrs.DIS: return this.base_dis; + case Attrs.SHIELD_MAX: return 0; + default: return 0; + } + } + /** * 重新计算单个属性 * @param attrIndex 属性索引 */ recalculateSingleAttr(attrIndex: number) { - // 1. 获取基础值 - const baseValues: Record = { - [Attrs.HP_MAX]: this.base_hp, - [Attrs.MP_MAX]: this.base_mp, - [Attrs.DEF]: this.base_def, - [Attrs.AP]: this.base_ap, - [Attrs.MAP]: this.base_map, - [Attrs.SPEED]: this.base_speed, - [Attrs.SHIELD_MAX]: 0 - }; - - const baseVal = baseValues[attrIndex] !== undefined ? baseValues[attrIndex] : 0; + const baseVal = this.getBaseValue(attrIndex); // 2. 收集所有数值型 buff/debuff let totalValue = baseVal;