feat: 大境界突破——练气圆满手动花费灵石突破至筑基及以上(D9 完成);失败灵石不返还+修为倒退,配置驱动;修复筑基圆满进度文本越界;文档同步(修炼设计四章/计划表/README)

This commit is contained in:
2026-08-10 00:55:05 +08:00
parent a9de46f1dd
commit 83fbd8fcfc
9 changed files with 245 additions and 43 deletions
+27
View File
@@ -38,6 +38,14 @@ var bottleneck_chances: Array[float] = [0.85, 0.8, 0.75, 0.6]
var level_thresholds: Array[float] = [100.0, 200.0, 350.0, 550.0, 800.0, 1100.0, 1500.0, 2000.0, 2600.0, 3300.0, 4100.0, 5000.0]
## 瓶颈目标层(升到这些层需突破判定)。
var bottleneck_levels: Array[int] = [4, 7, 10, 13]
## 大境界突破灵石花费(索引 0~3 = 升筑基/金丹/元婴/化神)。
var realm_breakthrough_costs: Array[int] = [500, 4000, 12000, 60000]
## 大境界突破成功率(与 realm_breakthrough_costs 一一对应,越往上越难)。
var realm_breakthrough_chances: Array[float] = [0.6, 0.5, 0.4, 0.3]
## 大境界突破失败倒退步数(练气退层数/筑基+退小境,不跨大境界)。
var realm_breakthrough_fail_drop := 3
## 筑基及以上小境门槛(初期→中期/中期→后期/后期→圆满,各大大境界通用)。
var realm_sub_thresholds: Array[float] = [6000.0, 12000.0, 24000.0]
# —— UI 通用(对应 cfg 的 [ui] 节)——
## HUD 字体大小(导出版用默认值,与 cfg 保持同步)。
@@ -117,6 +125,25 @@ func _load_config() -> void:
for v in bn_raw:
arr_bn.append(int(v))
bottleneck_levels = arr_bn
var rb_cost_raw: Variant = cfg.get_value("cultivation", "realm_breakthrough_costs", [])
if rb_cost_raw is Array and rb_cost_raw.size() == realm_breakthrough_costs.size():
var arr_rb: Array[int] = []
for v in rb_cost_raw:
arr_rb.append(int(v))
realm_breakthrough_costs = arr_rb
var rb_ch_raw: Variant = cfg.get_value("cultivation", "realm_breakthrough_chances", [])
if rb_ch_raw is Array and rb_ch_raw.size() == realm_breakthrough_chances.size():
var arr_rch: Array[float] = []
for v in rb_ch_raw:
arr_rch.append(float(v))
realm_breakthrough_chances = arr_rch
realm_breakthrough_fail_drop = cfg.get_value("cultivation", "realm_breakthrough_fail_drop", realm_breakthrough_fail_drop)
var sub_raw: Variant = cfg.get_value("cultivation", "realm_sub_thresholds", [])
if sub_raw is Array and sub_raw.size() == realm_sub_thresholds.size():
var arr_sub: Array[float] = []
for v in sub_raw:
arr_sub.append(float(v))
realm_sub_thresholds = arr_sub
# UI 通用
hud_font_size = cfg.get_value("ui", "hud_font_size", hud_font_size)
# 建筑系统