mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +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)
|
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, OutGameStorage.upgradableFieldsCost[ItemStore.ItemType.CRYSTAL] * (OutGameStorage.upgradableFieldsLevel[field] + 1))
|
var level = OutGameStorage.upgradableFieldsLevel[field]
|
||||||
fieldShow.cost(ItemStore.ItemType.DIAMOND, OutGameStorage.upgradableFieldsCost[ItemStore.ItemType.DIAMOND] * 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.upgradable = true
|
||||||
fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field]
|
fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field]
|
||||||
fieldShow.field = 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),
|
fields[FieldStore.Entity.MAX_HEALTH] * randf_range(1 - GameRule.beachballOffset, 1 + GameRule.beachballOffset),
|
||||||
position + MathTool.sampleInCircle(GameRule.itemDroppedSpawnOffset)
|
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(
|
ItemDropped.generate(
|
||||||
ItemStore.ItemType.CRYSTAL,
|
ItemStore.ItemType.CRYSTAL,
|
||||||
5 if isBoss else 1,
|
5 if isBoss else 1,
|
||||||
@@ -428,7 +428,7 @@ func tryDie(by: BulletBase = null):
|
|||||||
if isBoss:
|
if isBoss:
|
||||||
ItemDropped.generate(
|
ItemDropped.generate(
|
||||||
ItemStore.ItemType.DIAMOND,
|
ItemStore.ItemType.DIAMOND,
|
||||||
1,
|
randi_range(1, 3),
|
||||||
position + MathTool.sampleInCircle(GameRule.itemDroppedSpawnOffset)
|
position + MathTool.sampleInCircle(GameRule.itemDroppedSpawnOffset)
|
||||||
)
|
)
|
||||||
if isBoss:
|
if isBoss:
|
||||||
|
|||||||
@@ -24,3 +24,10 @@ static func betterMap(arr: Array, executor: Callable) -> Array:
|
|||||||
for index in len(arr):
|
for index in len(arr):
|
||||||
result.append(executor.call(arr[index], index, arr))
|
result.append(executor.call(arr[index], index, arr))
|
||||||
return result
|
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
|
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 = {
|
static var upgradableFieldsCost = {
|
||||||
ItemStore.ItemType.CRYSTAL: 50,
|
ItemStore.ItemType.CRYSTAL: [50, 1], # [每级所需,初始等级]
|
||||||
ItemStore.ItemType.DIAMOND: 1,
|
ItemStore.ItemType.DIAMOND: [1, 0],
|
||||||
}
|
}
|
||||||
static var upgradableFieldsAdvance = {
|
static var upgradableFieldsAdvance = {
|
||||||
FieldStore.Entity.MAX_HEALTH: 10,
|
FieldStore.Entity.MAX_HEALTH: 10,
|
||||||
@@ -17,15 +10,9 @@ static var upgradableFieldsAdvance = {
|
|||||||
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 = ArrayTool.fill(upgradableFieldsAdvance, func(_k): return 0)
|
||||||
FieldStore.Entity.MAX_HEALTH: 0,
|
static var upgradableFieldsLevel = ArrayTool.fill(upgradableFieldsAdvance, func(_k): return 0)
|
||||||
FieldStore.Entity.DAMAGE_MULTIPILER: 0,
|
|
||||||
FieldStore.Entity.ATTACK_SPEED: 0,
|
static var maxInitialFeedCount: int = 3
|
||||||
FieldStore.Entity.PRICE_REDUCTION: 0,
|
static var maxInitialWeaponCount: int = 3
|
||||||
}
|
static var inventory = ArrayTool.fill(upgradableFieldsCost, func(_k): return 0)
|
||||||
static var upgradableFieldsLevel = {
|
|
||||||
FieldStore.Entity.MAX_HEALTH: 0,
|
|
||||||
FieldStore.Entity.DAMAGE_MULTIPILER: 0,
|
|
||||||
FieldStore.Entity.ATTACK_SPEED: 0,
|
|
||||||
FieldStore.Entity.PRICE_REDUCTION: 0,
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user