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
+31
View File
@@ -17,6 +17,20 @@ var opening_pick_count := 3
var recruit_interval_years := 0.1
## 定期弹窗候选人数。
var recruit_applicant_count := 3
## 天灵根概率(仅天骄资质中再掷一次)。
var heavenly_root_chance := 0.5
# —— 修炼系统(对应 cfg 的 [cultivation] 节)——
## 基础修炼速度(修为/游戏日)。
var cultivation_base_speed := 10.0
## 宗门灵气浓度(修炼速度系数,D6 建筑系统接入后动态化)。
var qi_concentration := 1.0
## 资质修炼倍率(按下品/中品/上品/天骄索引)。
var aptitude_speed: Array[float] = [0.6, 1.0, 1.5, 2.0]
## 灵根数量修炼倍率(按根数-1 索引:1根/2根/3根)。
var root_count_speed: Array[float] = [1.0, 0.8, 0.6]
## 天灵根额外修炼速度倍率。
var heavenly_bonus := 1.5
## 各难度资质权重表(键 = 难度档位,值 = 下品/中品/上品/天骄 权重)。
var aptitude_weights_by_difficulty: Dictionary = {
@@ -40,6 +54,23 @@ func _load_config() -> void:
opening_pick_count = cfg.get_value("recruitment", "opening_pick_count", opening_pick_count)
recruit_interval_years = cfg.get_value("recruitment", "recruit_interval_years", recruit_interval_years)
recruit_applicant_count = cfg.get_value("recruitment", "recruit_applicant_count", recruit_applicant_count)
heavenly_root_chance = cfg.get_value("recruitment", "heavenly_root_chance", heavenly_root_chance)
# 修炼系统
cultivation_base_speed = cfg.get_value("cultivation", "base_speed", cultivation_base_speed)
qi_concentration = cfg.get_value("cultivation", "qi_concentration", qi_concentration)
heavenly_bonus = cfg.get_value("cultivation", "heavenly_bonus", heavenly_bonus)
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] = []
for v in apt_raw:
arr.append(float(v))
aptitude_speed = arr
var root_raw: Variant = cfg.get_value("cultivation", "root_count_speed", [])
if root_raw is Array and root_raw.size() == root_count_speed.size():
var arr2: Array[float] = []
for v in root_raw:
arr2.append(float(v))
root_count_speed = arr2
# 逐档读取难度权重(INI 数组字面量,如 [45, 35, 15, 5]
for key in aptitude_weights_by_difficulty.keys():
var raw: Variant = cfg.get_value("recruitment_" + key, "aptitude_weights", [])