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