From 9d4b4f5d9fccebae6bdbabd73bcc43f2cbc93d65 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Thu, 22 Oct 2026 20:18:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A3=85=E5=A4=87=E7=9A=84=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages-user/data-base/src/hero/equipment.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages-user/data-base/src/hero/equipment.ts b/packages-user/data-base/src/hero/equipment.ts index 65d8267..65c1f78 100644 --- a/packages-user/data-base/src/hero/equipment.ts +++ b/packages-user/data-base/src/hero/equipment.ts @@ -293,18 +293,16 @@ export class HeroEquipment implements IHeroEquipment { const keys = new Set>(); const modifiersA = stateA ? [...stateA.getModifiers()] : []; - const addedA: typeof modifiersA = []; for (const [name, modifier] of modifiersA) { const copy = modifier.clone(); // @ts-expect-error 泛型无法推导 clone.addModifier(name, copy); - addedA.push([name, copy]); } for (const [name] of modifiersA) { attrA[name] = clone.getFinalAttribute(name); keys.add(name); } - for (const [name, copy] of addedA) { + for (const [name, copy] of modifiersA) { // @ts-expect-error 泛型无法推导 clone.deleteModifier(name, copy); } @@ -319,13 +317,15 @@ export class HeroEquipment implements IHeroEquipment { attrB[name] = clone.getFinalAttribute(name); keys.add(name); } - - // 第二次没必要再删除了,因为这个 clone 对象不会再被使用到 + for (const [name, copy] of modifiersB) { + // @ts-expect-error 泛型无法推导 + clone.deleteModifier(name, copy); + } // 然后收集键名并对比 const diff: Partial = {}; for (const key of keys) { - const final = this.attribute.getFinalAttribute(key); + const final = clone.getFinalAttribute(key); const valueA = (attrA[key] as number) ?? final; const valueB = (attrB[key] as number) ?? final; diff[key] = (valueA - valueB) as THero[SelectKey];