feat: 建筑面板——资源按钮入口+建造升级产出(D6 核心)
This commit is contained in:
@@ -47,6 +47,14 @@ var hud_font_size := 32
|
||||
var starting_spirit_stones := 500
|
||||
## 开局赠送灵米(新游戏发放)。
|
||||
var starting_food := 100
|
||||
## 建筑等级上限。
|
||||
var building_max_level := 10
|
||||
|
||||
## 各建筑参数表(键 = 建筑类型名,值 = {cost, output, upgrade_cost_x, upgrade_output_x})。
|
||||
var building_params: Dictionary = {
|
||||
"mine": {"cost": 200, "output": 10, "upgrade_cost_x": 2.0, "upgrade_output_x": 1.5},
|
||||
"field": {"cost": 100, "output": 5, "upgrade_cost_x": 2.0, "upgrade_output_x": 1.5},
|
||||
}
|
||||
|
||||
## 各难度资质权重表(键 = 难度档位,值 = 下品/中品/上品/天骄 权重)。
|
||||
var aptitude_weights_by_difficulty: Dictionary = {
|
||||
@@ -104,6 +112,15 @@ func _load_config() -> void:
|
||||
# 建筑系统
|
||||
starting_spirit_stones = cfg.get_value("building", "starting_spirit_stones", starting_spirit_stones)
|
||||
starting_food = cfg.get_value("building", "starting_food", starting_food)
|
||||
building_max_level = cfg.get_value("building", "max_level", building_max_level)
|
||||
for key in building_params.keys():
|
||||
var p: Dictionary = building_params[key]
|
||||
building_params[key] = {
|
||||
"cost": cfg.get_value("building_" + key, "cost", p["cost"]),
|
||||
"output": cfg.get_value("building_" + key, "output", p["output"]),
|
||||
"upgrade_cost_x": cfg.get_value("building_" + key, "upgrade_cost_x", p["upgrade_cost_x"]),
|
||||
"upgrade_output_x": cfg.get_value("building_" + key, "upgrade_output_x", p["upgrade_output_x"]),
|
||||
}
|
||||
var apt_raw: Variant = cfg.get_value("cultivation", "aptitude_speed", [])
|
||||
if apt_raw is Array and apt_raw.size() == aptitude_speed.size():
|
||||
var arr: Array[float] = []
|
||||
|
||||
@@ -9,6 +9,8 @@ func _ready() -> void:
|
||||
TimeSystem.apply_default_speed()
|
||||
# 开局招募:清空旧数据 → 生成 5 名候选 → 暂停时间等待选择(读档流程接入后由存档还原)
|
||||
DiscipleManager.start_new_game()
|
||||
# 开局建筑:清空旧建筑(读档流程接入后由存档还原)
|
||||
BuildingManager.reset()
|
||||
# 开局赠送资源(数量来自配置;读档流程接入后由存档还原)
|
||||
SectManager.add_spirit_stones(GameConfig.starting_spirit_stones)
|
||||
SectManager.add_food(GameConfig.starting_food)
|
||||
@@ -20,3 +22,7 @@ func _on_top_bar_hud_sign_return_mainmenu() -> void:
|
||||
## 顶部 HUD 的"管理"按钮请求:打开弟子名录面板。
|
||||
func _on_top_bar_hud_sign_open_disciples() -> void:
|
||||
$DisciplesPanel.show_panel()
|
||||
|
||||
## 顶部 HUD 的"资源"按钮请求:打开建筑面板。
|
||||
func _on_top_bar_hud_sign_open_buildings() -> void:
|
||||
$BuildingsPanel.show_panel()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cahux61qqblje" path="res://src/UI/Panels/DisciplesPanel/DisciplesPanel.tscn" id="1_d5cpm"]
|
||||
[ext_resource type="PackedScene" uid="uid://dl0tb68vsw3c6" path="res://src/UI/HUD/TopBarHUD.tscn" id="1_g6xmk"]
|
||||
[ext_resource type="PackedScene" uid="uid://cahbpjpnmbcfv" path="res://src/UI/Panels/RecruitPanel/RecruitPanel.tscn" id="1_k5nrm"]
|
||||
[ext_resource type="PackedScene" path="res://src/UI/Panels/BuildingsPanel/BuildingsPanel.tscn" id="1_b9dpm"]
|
||||
[ext_resource type="Texture2D" uid="uid://cweu17mwblxmg" path="res://assets/sprites/ui/宗门后山.png" id="2_2atgf"]
|
||||
[ext_resource type="Texture2D" uid="uid://dnjuv1btbxm4o" path="res://assets/sprites/ui/宗门全景.png" id="5_58g0x"]
|
||||
|
||||
@@ -35,5 +36,8 @@ layout_mode = 3
|
||||
|
||||
[node name="DisciplesPanel" parent="." unique_id=780000015 instance=ExtResource("1_d5cpm")]
|
||||
|
||||
[node name="BuildingsPanel" parent="." unique_id=795000012 instance=ExtResource("1_b9dpm")]
|
||||
|
||||
[connection signal="sign_open_buildings" from="TopBarHud" to="." method="_on_top_bar_hud_sign_open_buildings"]
|
||||
[connection signal="sign_open_disciples" from="TopBarHud" to="." method="_on_top_bar_hud_sign_open_disciples"]
|
||||
[connection signal="sign_return_mainmenu" from="TopBarHud" to="." method="_on_top_bar_hud_sign_return_mainmenu"]
|
||||
|
||||
Reference in New Issue
Block a user