From e377840a16ba294be4702f20715c6a41b978a8ec 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: Mon, 4 May 2026 09:46:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=85=BB=E6=88=90=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=B1=80=E5=A4=96=E5=85=BB=E6=88=90=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=E6=9C=BA=E5=88=B6=E5=B9=B6=E8=B0=83=E6=95=B4=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加upgradableFieldsLevel字段记录养成等级 修改升级逻辑使用等级计算消耗而非固定倍率 升级时自动增加等级并重新计算下次升级消耗 --- scripts/Contents/Panels/Starter.gd | 7 ++++--- scripts/Statemachine/FieldShow.gd | 3 +++ scripts/Tools/GameRule.gd | 1 - scripts/Tools/OutGameStorage.gd | 10 ++++++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/scripts/Contents/Panels/Starter.gd b/scripts/Contents/Panels/Starter.gd index 4d3348c..bd975e4 100644 --- a/scripts/Contents/Panels/Starter.gd +++ b/scripts/Contents/Panels/Starter.gd @@ -171,8 +171,8 @@ func beforeOpen(_args: Array = []): upgradeFieldsBox.remove_child(child) for field in OutGameStorage.upgradableFieldsAdvance: var fieldShow = ComponentManager.getUIComponent("FieldShow").instantiate() as FieldShow - fieldShow.cost(ItemStore.ItemType.CRYSTAL, 50) - fieldShow.cost(ItemStore.ItemType.DIAMOND, 0) + fieldShow.cost(ItemStore.ItemType.CRYSTAL, 50 * OutGameStorage.upgradableFieldsLevel[fieldShow.field]) + fieldShow.cost(ItemStore.ItemType.DIAMOND, OutGameStorage.upgradableFieldsLevel[fieldShow.field] - 1) fieldShow.upgradable = true fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field] fieldShow.field = field @@ -181,11 +181,12 @@ func beforeOpen(_args: Array = []): fieldShow.upgrade.connect( func(newValue: float): OutGameStorage.upgradableFieldsValue[fieldShow.field] = newValue + OutGameStorage.upgradableFieldsLevel[fieldShow.field] += 1 for index in len(fieldShow.costCounts): if fieldShow.costCounts[index] == 0: fieldShow.costCounts[index] += 1 else: - fieldShow.costCounts[index] *= GameRule.outGameUpgradeMultipiler + fieldShow.costCounts[index] *= (OutGameStorage.upgradableFieldsLevel[fieldShow.field] + 1) / OutGameStorage.upgradableFieldsLevel[fieldShow.field] ) upgradeFieldsBox.add_child(fieldShow) diff --git a/scripts/Statemachine/FieldShow.gd b/scripts/Statemachine/FieldShow.gd index e85612f..650ca93 100644 --- a/scripts/Statemachine/FieldShow.gd +++ b/scripts/Statemachine/FieldShow.gd @@ -29,6 +29,9 @@ func _ready(): func(): if upgradable: if enoughToUpgrade(): + for index in costItems: + var item = costItems[index] + OutGameStorage.inventory[item] -= costCounts[index] value += upgradeValue upgrade.emit(value) rebuildInfo() diff --git a/scripts/Tools/GameRule.gd b/scripts/Tools/GameRule.gd index 84de5b9..53a7a23 100644 --- a/scripts/Tools/GameRule.gd +++ b/scripts/Tools/GameRule.gd @@ -23,4 +23,3 @@ static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸 static var detainTime: float = 250 # 血量如果在这个时间内没有改变才会开始播放降低动画 static var weaponUpdateCost: float = 1.1 # 武器升级后消耗的棒球数量倍数 static var canSpawnMobWhenBossWave: bool = true # Boss波次是否可生成小怪 -static var outGameUpgradeMultipiler: float = 2 # 局外养成升级后物品消耗倍率 diff --git a/scripts/Tools/OutGameStorage.gd b/scripts/Tools/OutGameStorage.gd index 5b37078..ae6809b 100644 --- a/scripts/Tools/OutGameStorage.gd +++ b/scripts/Tools/OutGameStorage.gd @@ -11,11 +11,17 @@ static var upgradableFieldsAdvance = { FieldStore.Entity.MAX_HEALTH: 10, FieldStore.Entity.DAMAGE_MULTIPILER: 0.1, FieldStore.Entity.ATTACK_SPEED: 0.05, - FieldStore.Entity.PRICE_REDUCTION: 0.02 + FieldStore.Entity.PRICE_REDUCTION: 0.02, } static var upgradableFieldsValue = { FieldStore.Entity.MAX_HEALTH: 0, FieldStore.Entity.DAMAGE_MULTIPILER: 0, FieldStore.Entity.ATTACK_SPEED: 0, - FieldStore.Entity.PRICE_REDUCTION: 0 + FieldStore.Entity.PRICE_REDUCTION: 0, } +static var upgradableFieldsLevel = { + FieldStore.Entity.MAX_HEALTH: 1, + FieldStore.Entity.DAMAGE_MULTIPILER: 1, + FieldStore.Entity.ATTACK_SPEED: 1, + FieldStore.Entity.PRICE_REDUCTION: 1, +} \ No newline at end of file