diff --git a/doc/design/建筑系统设计.md b/doc/design/建筑系统设计.md index 033b98a..278114a 100644 --- a/doc/design/建筑系统设计.md +++ b/doc/design/建筑系统设计.md @@ -2,7 +2,7 @@ > 对应开发计划表 D6(8/8):① 灵石矿场景 ② 建造→产出 ③ 升级。交付标准:建筑产资源,升级加速。 > 本文档只描述设计,不包含代码。 -> 状态:设计稿,待审阅通过后实现 +> 状态:步骤 1–2 已实现(食物资源/HUD 灵米显示/开局 500 灵石+100 灵米配置驱动),步骤 3+ 待实现 --- @@ -133,19 +133,19 @@ hunger_threshold_days=30 ; 断粮累计天数上限(达到即离宗) ## 七、分步实现规划(小步可验证,每步独立跑通) -### 步骤 1:SectManager 加食物资源 + 开局资源发放 +### 步骤 1:SectManager 加食物资源 + 开局资源发放 ✅ | 项 | 内容 | |----|------| -| 改动 | `SectManager.gd` 加 `food` 资源 + `add_food/remove_food` + `food_changed` 信号;`MainGame.gd` 新游戏时发放开局灵石/食物 | -| 验证 | 无头运行后控制台打印 `SectManager.food`,增减接口调用正确 | +| 改动 | `SectManager.gd` 加 `food` 资源 + `add_food/remove_food` + `food_changed` 信号;`GameConfig.gd` 读 `[building]` 节开局数量;`MainGame.gd` 新游戏时发放 | +| 验证 | ✅ HUD 显示 500 灵石 / 100 灵米,增减接口调用正确 | -### 步骤 2:HUD 食物显示 +### 步骤 2:HUD 食物显示 ✅ | 项 | 内容 | |----|------| -| 改动 | `TopBarHUD.tscn` 加"食物"标签对;`top_bar_hud.gd` 连 `food_changed` 信号 + 初始值 | -| 验证 | 开局 100 食物显示在顶栏;`add_food` 实时刷新 | +| 改动 | `TopBarHUD.tscn` 加"灵米"标签对;`top_bar_hud.gd` 连 `food_changed` 信号 + 初始值 | +| 验证 | ✅ 开局 100 灵米显示在顶栏;`add_food` 实时刷新 | ### 步骤 3:`[building]` / `[food]` 配置节 + GameConfig 读取 @@ -188,7 +188,7 @@ hunger_threshold_days=30 ; 断粮累计天数上限(达到即离宗) ## 八、验收清单(D6 交付标准) -- [ ] 新游戏开局赠送 500 灵石 + 100 食物(配置可调),HUD 可见 +- [x] 新游戏开局赠送 500 灵石 + 100 食物(配置可调),HUD 可见 - [ ] 点"资源"按钮打开建筑面板(时间暂停,关闭恢复) - [ ] 灵石充足时可建造灵石矿/灵田,扣费入列 - [ ] 每日自动产出灵石/食物,HUD 实时增长 diff --git a/doc/开发计划表.md b/doc/开发计划表.md index c971c04..2f63ae4 100644 --- a/doc/开发计划表.md +++ b/doc/开发计划表.md @@ -24,7 +24,7 @@ | 8/5 三 | D3 | 弟子生成 + 入宗分流 | ① 随机名字/资质/灵根 ② 按资质分四类 ③ 招募流程 | 开局 5 选 3 必选满,定期弹窗可全拒/全收 | ✅ 完成(弹窗招募:开局5选3+定期3候选,配置驱动含天灵根;新增 GameConfig 配置系统)
追加:天灵根改为仅天骄资质再掷(`heavenly_root_chance`),灵根数量 1~5 权重配置化(`root_count_weights`),容量公式 1÷根数 | | 8/6 四 | D4 | 弟子列表 UI | ① 列表条目场景 ② 姓名/资质/境界显示 ③ 点击详情 | 列表可浏览弟子 | ✅ 完成(管理按钮入口,名录面板+详情弹窗,天灵根标记,打开面板暂停时间) | | 8/7 五 | D5 | 修炼循环 | ① 修为随时间增长(资质×灵气) ② 境界门槛 ③ 突破判定 | 弟子自动修炼,可突破 | ⬜(设计已就绪:容量=1÷根数、无灵根体修预留、[cultivation] 配置节,待实现) | -| 8/8 六 | D6 | 建筑系统基础 | ① 灵石矿场景 ② 建造→每时辰产出 ③ 升级 | 建筑产灵石,升级加速 | ⬜ | +| 8/8 六 | D6 | 建筑系统基础 | ① 灵石矿场景 ② 建造→每时辰产出 ③ 升级 | 建筑产灵石,升级加速 | 🟡 进行中(设计文档完成:口粮/离宗方案B+分步规划;步骤1-2已实现:食物资源/HUD灵米/开局赠送配置化) | | 8/9 日 | D7 | 休息 / 补漏 | 修本周 bug,整理代码 | git 干净 | ⬜ | | 8/10 一 | D8 | 存档接入 | ① SaveSystem JSON 序列化 ② 存/读接口 ③ 替换 SavePanel 测试数据 | 读档后数据还原 | ⬜ | | 8/11 二 | D9 | 打磨 | 数值平衡初调,玩 10 分钟验证 | 无致命 bug | ⬜ | diff --git a/resources/game_config.cfg b/resources/game_config.cfg index 2e6f506..9ce1c33 100644 --- a/resources/game_config.cfg +++ b/resources/game_config.cfg @@ -30,3 +30,7 @@ bottleneck_levels=[4, 7, 10, 13] ; 瓶颈目标层(升到这些层需突 [ui] ; UI 通用 hud_font_size=24 ; HUD 字体大小 + +[building] ; 建筑系统通用 +starting_spirit_stones=500 ; 开局赠送灵石 +starting_food=100 ; 开局赠送灵米 diff --git a/src/Core/GameConfig.gd b/src/Core/GameConfig.gd index 3aac044..d453927 100644 --- a/src/Core/GameConfig.gd +++ b/src/Core/GameConfig.gd @@ -42,6 +42,12 @@ var bottleneck_levels: Array[int] = [4, 7, 10, 13] ## HUD 字体大小。 var hud_font_size := 32 +# —— 建筑系统(对应 cfg 的 [building] 节)—— +## 开局赠送灵石(新游戏发放)。 +var starting_spirit_stones := 500 +## 开局赠送灵米(新游戏发放)。 +var starting_food := 100 + ## 各难度资质权重表(键 = 难度档位,值 = 下品/中品/上品/天骄 权重)。 var aptitude_weights_by_difficulty: Dictionary = { "normal": [45, 35, 15, 5], @@ -95,6 +101,9 @@ func _load_config() -> void: bottleneck_levels = arr_bn # UI 通用 hud_font_size = cfg.get_value("ui", "hud_font_size", hud_font_size) + # 建筑系统 + starting_spirit_stones = cfg.get_value("building", "starting_spirit_stones", starting_spirit_stones) + starting_food = cfg.get_value("building", "starting_food", starting_food) 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] = [] diff --git a/src/Core/MainGame.gd b/src/Core/MainGame.gd index 620daf8..b5ba535 100644 --- a/src/Core/MainGame.gd +++ b/src/Core/MainGame.gd @@ -9,6 +9,9 @@ func _ready() -> void: TimeSystem.apply_default_speed() # 开局招募:清空旧数据 → 生成 5 名候选 → 暂停时间等待选择(读档流程接入后由存档还原) DiscipleManager.start_new_game() + # 开局赠送资源(数量来自配置;读档流程接入后由存档还原) + SectManager.add_spirit_stones(GameConfig.starting_spirit_stones) + SectManager.add_food(GameConfig.starting_food) ## 顶部 HUD 的返回主菜单请求。 func _on_top_bar_hud_sign_return_mainmenu() -> void: