1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(养成系统): 实现局外养成等级机制并调整升级消耗

添加upgradableFieldsLevel字段记录养成等级
修改升级逻辑使用等级计算消耗而非固定倍率
升级时自动增加等级并重新计算下次升级消耗
This commit is contained in:
2026-05-04 09:46:21 +08:00
parent bd85129ecc
commit e377840a16
4 changed files with 15 additions and 6 deletions
+4 -3
View File
@@ -171,8 +171,8 @@ func beforeOpen(_args: Array = []):
upgradeFieldsBox.remove_child(child) upgradeFieldsBox.remove_child(child)
for field in OutGameStorage.upgradableFieldsAdvance: for field in OutGameStorage.upgradableFieldsAdvance:
var fieldShow = ComponentManager.getUIComponent("FieldShow").instantiate() as FieldShow var fieldShow = ComponentManager.getUIComponent("FieldShow").instantiate() as FieldShow
fieldShow.cost(ItemStore.ItemType.CRYSTAL, 50) fieldShow.cost(ItemStore.ItemType.CRYSTAL, 50 * OutGameStorage.upgradableFieldsLevel[fieldShow.field])
fieldShow.cost(ItemStore.ItemType.DIAMOND, 0) fieldShow.cost(ItemStore.ItemType.DIAMOND, OutGameStorage.upgradableFieldsLevel[fieldShow.field] - 1)
fieldShow.upgradable = true fieldShow.upgradable = true
fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field] fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field]
fieldShow.field = field fieldShow.field = field
@@ -181,11 +181,12 @@ func beforeOpen(_args: Array = []):
fieldShow.upgrade.connect( fieldShow.upgrade.connect(
func(newValue: float): func(newValue: float):
OutGameStorage.upgradableFieldsValue[fieldShow.field] = newValue OutGameStorage.upgradableFieldsValue[fieldShow.field] = newValue
OutGameStorage.upgradableFieldsLevel[fieldShow.field] += 1
for index in len(fieldShow.costCounts): for index in len(fieldShow.costCounts):
if fieldShow.costCounts[index] == 0: if fieldShow.costCounts[index] == 0:
fieldShow.costCounts[index] += 1 fieldShow.costCounts[index] += 1
else: else:
fieldShow.costCounts[index] *= GameRule.outGameUpgradeMultipiler fieldShow.costCounts[index] *= (OutGameStorage.upgradableFieldsLevel[fieldShow.field] + 1) / OutGameStorage.upgradableFieldsLevel[fieldShow.field]
) )
upgradeFieldsBox.add_child(fieldShow) upgradeFieldsBox.add_child(fieldShow)
+3
View File
@@ -29,6 +29,9 @@ func _ready():
func(): func():
if upgradable: if upgradable:
if enoughToUpgrade(): if enoughToUpgrade():
for index in costItems:
var item = costItems[index]
OutGameStorage.inventory[item] -= costCounts[index]
value += upgradeValue value += upgradeValue
upgrade.emit(value) upgrade.emit(value)
rebuildInfo() rebuildInfo()
-1
View File
@@ -23,4 +23,3 @@ static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸
static var detainTime: float = 250 # 血量如果在这个时间内没有改变才会开始播放降低动画 static var detainTime: float = 250 # 血量如果在这个时间内没有改变才会开始播放降低动画
static var weaponUpdateCost: float = 1.1 # 武器升级后消耗的棒球数量倍数 static var weaponUpdateCost: float = 1.1 # 武器升级后消耗的棒球数量倍数
static var canSpawnMobWhenBossWave: bool = true # Boss波次是否可生成小怪 static var canSpawnMobWhenBossWave: bool = true # Boss波次是否可生成小怪
static var outGameUpgradeMultipiler: float = 2 # 局外养成升级后物品消耗倍率
+8 -2
View File
@@ -11,11 +11,17 @@ static var upgradableFieldsAdvance = {
FieldStore.Entity.MAX_HEALTH: 10, FieldStore.Entity.MAX_HEALTH: 10,
FieldStore.Entity.DAMAGE_MULTIPILER: 0.1, FieldStore.Entity.DAMAGE_MULTIPILER: 0.1,
FieldStore.Entity.ATTACK_SPEED: 0.05, FieldStore.Entity.ATTACK_SPEED: 0.05,
FieldStore.Entity.PRICE_REDUCTION: 0.02 FieldStore.Entity.PRICE_REDUCTION: 0.02,
} }
static var upgradableFieldsValue = { static var upgradableFieldsValue = {
FieldStore.Entity.MAX_HEALTH: 0, FieldStore.Entity.MAX_HEALTH: 0,
FieldStore.Entity.DAMAGE_MULTIPILER: 0, FieldStore.Entity.DAMAGE_MULTIPILER: 0,
FieldStore.Entity.ATTACK_SPEED: 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,
} }