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:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
{}
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user