1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +08:00

feat(ArrayTool): 添加字典填充工具方法

refactor(OutGameStorage): 重构升级字段初始化逻辑
使用新的ArrayTool.fill方法简化字典初始化,提高代码可读性

fix(EntityBase): 调整boss死亡掉落物品数量
将boss掉落水晶数量上限从20降低到10,钻石掉落数量改为1-3随机

fix(Starter): 修复升级成本计算逻辑
根据新的升级成本数据结构调整升级显示计算方式
This commit is contained in:
2026-05-04 10:52:17 +08:00
parent 6b31030887
commit f9e512a5e6
4 changed files with 21 additions and 25 deletions
+4 -2
View File
@@ -175,8 +175,10 @@ func rebuildInfo():
upgradeFieldsBox.remove_child(child)
for field in OutGameStorage.upgradableFieldsAdvance:
var fieldShow = ComponentManager.getUIComponent("FieldShow").instantiate() as FieldShow
fieldShow.cost(ItemStore.ItemType.CRYSTAL, OutGameStorage.upgradableFieldsCost[ItemStore.ItemType.CRYSTAL] * (OutGameStorage.upgradableFieldsLevel[field] + 1))
fieldShow.cost(ItemStore.ItemType.DIAMOND, OutGameStorage.upgradableFieldsCost[ItemStore.ItemType.DIAMOND] * OutGameStorage.upgradableFieldsLevel[field])
var level = OutGameStorage.upgradableFieldsLevel[field]
for item in OutGameStorage.upgradableFieldsCost:
var count = OutGameStorage.upgradableFieldsCost[item]
fieldShow.cost(item, count[0] * (level + count[1]))
fieldShow.upgradable = true
fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field]
fieldShow.field = field
+2 -2
View File
@@ -419,7 +419,7 @@ func tryDie(by: BulletBase = null):
fields[FieldStore.Entity.MAX_HEALTH] * randf_range(1 - GameRule.beachballOffset, 1 + GameRule.beachballOffset),
position + MathTool.sampleInCircle(GameRule.itemDroppedSpawnOffset)
)
for i in randi_range(0, 20 if isBoss else 3):
for i in randi_range(0, 10 if isBoss else 3):
ItemDropped.generate(
ItemStore.ItemType.CRYSTAL,
5 if isBoss else 1,
@@ -428,7 +428,7 @@ func tryDie(by: BulletBase = null):
if isBoss:
ItemDropped.generate(
ItemStore.ItemType.DIAMOND,
1,
randi_range(1, 3),
position + MathTool.sampleInCircle(GameRule.itemDroppedSpawnOffset)
)
if isBoss:
+7
View File
@@ -24,3 +24,10 @@ static func betterMap(arr: Array, executor: Callable) -> Array:
for index in len(arr):
result.append(executor.call(arr[index], index, arr))
return result
static func fill(origin: Dictionary, filler: Callable) -> Dictionary:
return origin.keys().reduce(
func(accum, key):
accum[key] = filler.call(key)
return accum,
{}
)
+8 -21
View File
@@ -1,15 +1,8 @@
class_name OutGameStorage
static var maxInitialFeedCount: int = 3
static var maxInitialWeaponCount: int = 3
static var inventory = {
ItemStore.ItemType.CRYSTAL: 0,
ItemStore.ItemType.DIAMOND: 0
}
static var upgradableFieldsCost = {
ItemStore.ItemType.CRYSTAL: 50,
ItemStore.ItemType.DIAMOND: 1,
ItemStore.ItemType.CRYSTAL: [50, 1], # [每级所需,初始等级]
ItemStore.ItemType.DIAMOND: [1, 0],
}
static var upgradableFieldsAdvance = {
FieldStore.Entity.MAX_HEALTH: 10,
@@ -17,15 +10,9 @@ static var upgradableFieldsAdvance = {
FieldStore.Entity.ATTACK_SPEED: 0.05,
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,
}
static var upgradableFieldsLevel = {
FieldStore.Entity.MAX_HEALTH: 0,
FieldStore.Entity.DAMAGE_MULTIPILER: 0,
FieldStore.Entity.ATTACK_SPEED: 0,
FieldStore.Entity.PRICE_REDUCTION: 0,
}
static var upgradableFieldsValue = ArrayTool.fill(upgradableFieldsAdvance, func(_k): return 0)
static var upgradableFieldsLevel = ArrayTool.fill(upgradableFieldsAdvance, func(_k): return 0)
static var maxInitialFeedCount: int = 3
static var maxInitialWeaponCount: int = 3
static var inventory = ArrayTool.fill(upgradableFieldsCost, func(_k): return 0)