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 属性索引
|
* @param attrIndex 属性索引
|
||||||
*/
|
*/
|
||||||
recalculateSingleAttr(attrIndex: number) {
|
recalculateSingleAttr(attrIndex: number) {
|
||||||
// 1. 获取基础值
|
const baseVal = this.getBaseValue(attrIndex);
|
||||||
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;
|
|
||||||
|
|
||||||
// 2. 收集所有数值型 buff/debuff
|
// 2. 收集所有数值型 buff/debuff
|
||||||
let totalValue = baseVal;
|
let totalValue = baseVal;
|
||||||
|
|||||||
Reference in New Issue
Block a user