From d6f6db83f285477865702aa76c5d24ef3c8182fb Mon Sep 17 00:00:00 2001 From: walkpan Date: Sat, 20 Dec 2025 22:45:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor(HeroAttrsComp):=20=E5=B0=86=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E5=B1=9E=E6=80=A7=E8=AE=A1=E7=AE=97=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E4=B8=BA=E7=8B=AC=E7=AB=8B=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将recalculateSingleAttr中的基础属性计算逻辑提取为getBaseValue方法,提高代码可读性和复用性 --- assets/script/game/hero/HeroAttrsComp.ts | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) 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;