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

feat(角色系统): 重构角色生成和升级系统

- 在EntityBase.gd中修改角色生成逻辑,使用FeedCardBase初始化角色属性
- 调整OutGameStorage.gd中的升级字段初始值和成本配置
- 在ComponentManager.gd中添加抽象组件管理功能
- 更新Rooster.tscn的默认武器为ChainGun
- 在Starter.gd中优化升级界面刷新逻辑,提取rebuildInfo方法
- 在MakeFeed.gd中添加feed卡片重建功能
This commit is contained in:
2026-05-04 10:30:54 +08:00
parent 5e82841d58
commit 6b31030887
6 changed files with 32 additions and 17 deletions
+3
View File
@@ -36,6 +36,9 @@ func _ready():
updateValue()
if selectedCount >= UIState.player.fields[FieldStore.Entity.FEED_COUNT_CAN_MADE]:
finish()
for feedCard in feedCards.get_children():
if feedCard is Feed:
feed.rebuildInfo()
)
avaliableFeeds.add_child(feed)
+7 -10
View File
@@ -164,15 +164,19 @@ func beforeOpen(_args: Array = []):
diffEdit.max_value = GameRule.difficultyRange.y
diffEdit.value = GameRule.difficulty
setState(MultiplayerState.ConnectionState.DISCONNECTED)
rebuildInfo()
startSingleplayerBtn.disabled = false
Wave.current = 0
func rebuildInfo():
crystalShow.count = OutGameStorage.inventory[ItemStore.ItemType.CRYSTAL]
diamondShow.count = OutGameStorage.inventory[ItemStore.ItemType.DIAMOND]
for child in upgradeFieldsBox.get_children():
upgradeFieldsBox.remove_child(child)
for field in OutGameStorage.upgradableFieldsAdvance:
var fieldShow = ComponentManager.getUIComponent("FieldShow").instantiate() as FieldShow
fieldShow.cost(ItemStore.ItemType.CRYSTAL, 50 * OutGameStorage.upgradableFieldsLevel[fieldShow.field])
fieldShow.cost(ItemStore.ItemType.DIAMOND, OutGameStorage.upgradableFieldsLevel[fieldShow.field] - 1)
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])
fieldShow.upgradable = true
fieldShow.upgradeValue = OutGameStorage.upgradableFieldsAdvance[field]
fieldShow.field = field
@@ -182,13 +186,6 @@ func beforeOpen(_args: Array = []):
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] *= (OutGameStorage.upgradableFieldsLevel[fieldShow.field] + 1) / OutGameStorage.upgradableFieldsLevel[fieldShow.field]
rebuildInfo()
)
upgradeFieldsBox.add_child(fieldShow)
startSingleplayerBtn.disabled = false
Wave.current = 0