feat: 修炼数值配置化,天灵根规则重构,更新主菜单背景

- GameConfig 新增 [cultivation] 修炼系统配置(基础速度/灵气浓度/资质及灵根倍率/天灵根加成)
- 天灵根改为仅天骄资质再掷(heavenly_root_chance=50%),移入 GameConfig 可配置
- Disciple 修炼倍率常量改为从 GameConfig 读取,新增灵根数量倍率方法
- 主菜单背景更换为"图片大门",新增"宗门全景"资源,删除旧 BG1.png
- 同步更新弟子系统设计文档及新增修炼系统设计文档
This commit is contained in:
2026-08-08 14:32:17 +08:00
parent e283f6b2b7
commit b13c20a313
12 changed files with 260 additions and 25 deletions
+146
View File
@@ -0,0 +1,146 @@
# 修炼系统设计(D5:修炼循环)
> 对应开发计划表 D5(8/7):① 修为随时间增长(资质×灵气)② 境界门槛 ③ 突破判定。
> 交付标准:弟子自动修炼,可突破。本文档只描述设计,不包含代码。
> 状态:设计稿,待审阅通过后实现
---
## 一、核心循环
```
每日推进 → 修为增长(资质×天灵根×灵气浓度)→ 达到层门槛 → 升层/突破判定 → 境界推进
```
- 纯挂机机制:弟子自动修炼,玩家无需操作
- 修炼只在游戏时间推进时进行(TimeSystem.day_passed),暂停/弹窗期间冻结
---
## 二、修炼速度
**每日修为增量 = 基础速度 × 资质倍率 × 灵根数量倍率 × 天灵根加成 × 灵气浓度**
| 因子 | 来源 | 说明 |
|------|------|------|
| 基础速度 | 配置 `base_speed`(默认 10 | 修为/游戏日 |
| 资质倍率 | 配置 `aptitude_speed`[0.6, 1.0, 1.5, 2.0] | 按下品/中品/上品/天骄索引 |
| 灵根数量倍率 | 配置 `root_count_speed`[1.0, 0.8, 0.6] | 按根数索引(1根/2根/3根),根数越少修炼越快 |
| 天灵根加成 | 配置 `heavenly_bonus`1.5 | 仅在 is_heavenly 时乘入 |
| 灵气浓度 | 配置 `qi_concentration`(默认 1.0) | D5 固定值;D6 建筑系统接入后动态化 |
> 所有修炼数值统一从 GameConfig 读取(Disciple 不内置倍率常量),避免双份数值漂移。
### 含义
- **资质定天赋上限**:决定倍率主体(0.6~2.0)
- **灵根数量定纯度**:根数越少越纯净(1根 ×1.0、2根 ×0.8、3根 ×0.6
- **天灵根是稀缺加成**:强制单根 + 额外 ×1.5,三个维度独立掷骰
组合示例(天骄资质 + 三灵根 = 2.0 × 0.6 = 1.2,慢于 上品资质 + 单灵根 = 1.5 × 1.0 = 1.5
修为存储用 float(允许小数积累),显示时取整。
---
## 三、境界门槛(本期:练气 1–13 层)
| 层 | 需求修为(配置 `level_thresholds` | 是否瓶颈 |
|----|----------------------------------|---------|
| 1→2 | 100 | 否 |
| 2→3 | 200 | 否 |
| 3→4 | 350 | **是** |
| 4→5 | 550 | 否 |
| 5→6 | 800 | 否 |
| 6→7 | 1100 | **是** |
| 7→8 | 1500 | 否 |
| 8→9 | 2000 | 否 |
| 9→10 | 2600 | **是** |
| 10→11 | 3300 | 否 |
| 11→12 | 4100 | 否 |
| 12→13 | 5000 | **是** |
- **非瓶颈层**:修为满门槛 → 自动升层(无失败)
- **瓶颈层**3→4 / 6→7 / 9→10 / 12→13):修为满后进入突破判定
- 13 层圆满:修为封顶,显示"练气圆满";筑基以上大境界需丹药/灵石资源,**本期不做**(后续 P2 接入)
> 数值均为示例,正式数值在 D9 平衡调整,只改配置不动代码。
---
## 四、突破判定(瓶颈层)
1. 修为 ≥ 瓶颈层门槛时,每日结算后自动尝试突破
2. 掷骰:成功概率 = 配置 `breakthrough_chance`(默认 0.8
3. **成功** → 升层,控制台打印"X 突破至 练气4层"
4. **失败** → 修为扣减 20%(冲关损耗),次日再尝试;控制台打印失败信息
5. 失败不连续重试(每天最多判定一次)
**设计意图**:挂机友好(全自动),但瓶颈制造节奏感与"卡关→等积累"的经营反馈;损耗惩罚避免无脑挂到顶。
---
## 五、CultivationManager(新 Autoload
存放位置:`src/Character/CultivationManager.gd`(与 DiscipleManager 同域,注册顺序在 DiscipleManager 之后、声明于 project.godot
| 接口 | 说明 |
|------|------|
| 监听 `TimeSystem.day_passed` | 每日结算全体弟子 |
| 私有 `_gain_exp(d)` | 按公式累计修为 |
| 私有 `_check_breakthrough(d)` | 门槛判定 + 瓶颈掷骰 |
| 信号 `realm_changed(d)` | 境界变化(详情面板刷新用) |
| 信号 `cultivation_log(text)` | 修炼日志文本(控制台打印/后续日志系统) |
**注意**:只在 `disciples` 名录内结算,候选池不修炼。
---
## 六、配置节(game_config.cfg 新增 [cultivation]
```ini
[cultivation]
base_speed=10 ; 基础修为/日
qi_concentration=1.0 ; 宗门灵气浓度(D6 动态化)
aptitude_speed=[0.6, 1.0, 1.5, 2.0] ; 资质倍率(下品/中品/上品/天骄)
root_count_speed=[1.0, 0.8, 0.6] ; 灵根数量倍率(1根/2根/3根)
heavenly_bonus=1.5 ; 天灵根额外倍率
breakthrough_chance=0.8 ; 瓶颈突破成功率(待接入)
level_thresholds=[100, 200, 350, 550, 800, 1100, 1500, 2000, 2600, 3300, 4100, 5000] ; 待接入
bottleneck_levels=[4, 7, 10, 13] ; 待接入
```
- `aptitude_speed`:与资质枚举一一对应,必须 4 项
- `level_thresholds`:练气 1→2 到 12→13 共 12 个门槛值
- `bottleneck_levels`:升到这些层时需要突破判定
---
## 七、UI 接入(D4 预留区填充)
- **详情弹窗**:信息区追加"修为:1234 / 2000"(当前/本层门槛;13 层显示 练气圆满)
- **名录列表**:境界列实时变化(realm_changed 后自动刷新,现有 disciples_changed 不触发,需详情面板监听 realm_changed
- 修炼日志:控制台 print(本期不做日志界面)
---
## 八、实现拆解(小步可验证)
1. 配置节 [cultivation] + GameConfig 读取
2. Disciple 加 `cultivation_exp: float` 字段 + 门槛查询辅助
3. CultivationManager 骨架:每日结算修为
4. 非瓶颈自动升层
5. 瓶颈突破判定(成功/失败/损耗)
6. 详情面板修为显示 + realm_changed 刷新
7. 挂机验证(加速时间观察多轮突破)+ 提交
---
## 九、验收清单(D5 交付标准)
- [ ] 挂机时弟子修为逐日增长,速度随资质/天灵根不同(下品慢、天骄快)
- [ ] 非瓶颈层修为满自动升层,无失败
- [ ] 瓶颈层(4/7/10/13 层)需突破判定,控制台有成败日志,失败扣 20% 修为
- [ ] 练气 13 层圆满后修为封顶,显示"练气圆满"
- [ ] 详情面板显示修为进度,突破后实时刷新
- [ ] 修改配置(速度/概率/门槛)重启生效