refactor(HeroAttrsComp): 将基础属性计算提取为独立方法
将recalculateSingleAttr中的基础属性计算逻辑提取为getBaseValue方法,提高代码可读性和复用性
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user