From ba865bc2a251ffb1cf7bc64841e79bd4b9acae0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sat, 20 Sep 2025 07:08:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(Weapon):=20=E4=BF=AE=E5=A4=8D=E7=81=B5?= =?UTF-8?q?=E9=AD=82=E7=AD=89=E7=BA=A7=E6=8F=90=E5=8D=87=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=95=86=E5=BA=97=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复灵魂等级提升条件判断错误,将INFINITY-1改为INFINITY 添加updateStore方法集中处理商店更新逻辑 在升级和镶嵌操作后统一调用商店更新方法 --- scripts/Structs/Weapon.gd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/Structs/Weapon.gd b/scripts/Structs/Weapon.gd index a6f11dc..678cd7a 100644 --- a/scripts/Structs/Weapon.gd +++ b/scripts/Structs/Weapon.gd @@ -49,15 +49,17 @@ func _ready(): ItemStore.ItemType.SOUL: soulLevel }) soulLevel -= 1 + updateStore(level, UIState.player) rebuildInfo() ) inlayBtn.pressed.connect( func(): - if soulLevel < WeaponName.SoulLevel.INFINITY - 1: + if soulLevel < WeaponName.SoulLevel.INFINITY: if UIState.player.useItem({ ItemStore.ItemType.SOUL: soulLevel }): soulLevel += 1 + updateStore(level, UIState.player) rebuildInfo() ) for i in sounds.get_children(): @@ -75,11 +77,13 @@ func apply(entity: EntityBase): if allHave: level += 1 entity.inventory[ItemStore.ItemType.BEACHBALL] -= costBeachball - store = update(level, originalStore.duplicate(), entity) + updateStore(level, entity) costBeachball = floor(GameRule.weaponUpdateCost * costBeachball) needEnergy = GameRule.weaponUpdateEnergy * needEnergy rebuildInfo() return allHave +func updateStore(to: int, entity: EntityBase): + store = update(to, originalStore.duplicate(), entity) func multipiler() -> float: if is_instance_valid(UIState.player): return 1 - UIState.player.fields.get(FieldStore.Entity.PRICE_REDUCTION)