1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +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)
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)
+3
View File
@@ -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()
-1
View File
@@ -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 # 局外养成升级后物品消耗倍率
+8 -2
View File
@@ -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,
}