refactor(HeroAttrsComp): 将基础属性计算提取为独立方法

将recalculateSingleAttr中的基础属性计算逻辑提取为getBaseValue方法,提高代码可读性和复用性
This commit is contained in:
walkpan
2025-12-20 22:45:08 +08:00
parent d4d470a7ed
commit d6f6db83f2

View File

@@ -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<number, number> = {
[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;