Files
game-code-4/data/sheets/balance_tuning.csv
T
程基岩(engineering-lead) 08dc5020c3 W4 批次:三项设计裁定落地(Boss 战 Plan B / 离线契约 v2 / 长明灯加法化)
Boss 战修复(Plan B,用户拍板):
- HP 公式 15xPxhall_factor -> HP = P x boss_army_seconds_n(S=23.0→28.0 递增,
  每场军列约 23-28 秒清空,战斗时长成为可直接书写的设计旋钮,结构性消除
  高殿 P 抵消导致不可胜的旧 bug);hall_factor 降级为纯叙事/视觉参数
- 新增 souls_par 列(0→90000):开场冲锋 intro_dmg = HP x 10% x clamp(souls/souls_par,0,1),
  上限 20%->10%;删 hp_factor/intro_dmg_souls_factor/intro_dmg_cap_ratio 三列
- 点击伤害 P x κ x combo_mult,κ = (0.010 + 0.052 x click_ratio) x (1 + 0.30 x m06_owned),
  click_ratio = 已购点击升级 / 12(κ 0.010→0.0806,满配点击占比约 20.5%±3pp)
- 防双重计入:L5-12 点击升级 +1% output/s 留全局区(抬 P 同时抬军列 DPS 与点击
  伤害,可接受),不得再计入 κ 分子(recompute 注释固化)

离线契约 v2(P-8,改契约不改表):
- OfflineModel.settle 第三参 offline_mult -> offline_add(加法);各档效率
  min(rate+add, 1.0) 硬顶 100%,离线永不超在线
- 长明灯 x1.15 乘性 -> +5%/级 加法(满级 +30%,各档封顶 100%)
- 0-2h 100% 保持;8h = 6.2 等效小时(77.5% 效率)
- Gate #9 拆 9a/9b/9c:9a FAIL->PASS(0-2h 全额 + 8h∈[5.5,6.5]),
  9b 长明灯满级 8h∈[7.5,8.0] 且 ≤100%,9c 任意配置效率 ≤100%

数据与工具:
- gen_balance_sheets.py 补登 W3 遗留 7 行 tune(防重跑静默丢失),self_check 更新
- boss_battles/upgrades schema 同步(offline_mult->offline_add enum,漏改会违反导入)

测试(runner 7->8 用例,Node 交叉验证 145 断言全过):
- 可胜性哨兵重写为「十殿全可胜」:每殿 S_n<30、军列+点击≥HP、余时∈[2,8]、
  满配余时差≥4、点击占比∈[15,25]、H10≈20.5%±3pp
- κ 四档断言(0.010/0.036/0.062/0.0806,分母 12)
- 新增 test_offline_contract.gd:契约 v2 数值面 + 9a/9b/9c 全 PASS + β 缓议
2026-10-20 17:01:25 +08:00

3.9 KiB

1idkindnumtextdesc_cn
2tune_click_basenumber1[B§2.2] 点击基础值 = 1(与 gen1 成本 15 配对 → 15 次点击首购)
3tune_click_zone_capnumber16[B§1/§2.2] 点击区软上限 ×16(4 级 ×2 满)
4tune_gen_zone_capnumber8[B§1] 班底乘区软上限 ×8(6 级效率满 = ×7,留 1 级余量)
5tune_global_zone_capnumber64[B§1] 全局乘区软上限 ×64
6tune_offline_band1_hnumber2[B§8] 离线 0-2h 速率 100%
7tune_offline_band1_ratenumber1[B§8] 离线 0-2h 速率
8tune_offline_band2_hnumber8[B§8] 离线 2-8h 速率 70%
9tune_offline_band2_ratenumber0.7[B§8] 离线 2-8h 速率
10tune_offline_band3_hnumber24[B§8] 离线 8-24h 速率 40%
11tune_offline_band3_ratenumber0.4[B§8] 离线 8-24h 速率
12tune_offline_band4_ratenumber0.1[B§8] 离线 >24h 速率 10%
13tune_offline_cap_hnumber72[B§8] 离线硬上限 72h 封顶
14tune_wrath_layersnumber22[B§3.2] 冤煞层总数 22
15tune_wrath_cost_basenumber8[B§3.2] 第 n 层成本 = round(8 × n^1.8)
16tune_wrath_cost_expnumber1.8[B§3.2] 冤煞层成本指数
17tune_wrath_bonusnumber0.25[B§3.2] 每层全局 +25%(加法,进全局乘区)
18tune_wrath_penaltynumber0.03[B§3.2] 每层宿慧获取削减 +3%
19tune_wrath_penalty_capnumber0.3[B§3.2] 宿慧削减封顶 30%
20tune_suihui_divnumber1000000[B§4.1] 宿慧 = floor(√(本轮累计阴德/1e6) × 5)
21tune_suihui_multnumber5[B§4.1] 宿慧公式乘数
22tune_suihui_global_pctnumber0.03[B§1/§4.2] 每级宿慧全局产出 +3%(加法,进全局乘区)
23tune_enthrone_bonusnumber0.25[B§4.4] 阴司敕封自动全局恩典 +25%(与 m08 商品字面重叠,见 provenance P-4)
24tune_skip_intervalnumber5[B§4.2] 每 5 级宿慧 → 前 3 档班底各 +25 级(m04 可加快为 4)
25tune_skip_gensnumber3[B§4.2] 跳过机制覆盖前 3 档班底
26tune_skip_levelsnumber25[B§4.2] 跳过机制每档 +25 级
27tune_enthrone_rebirthsnumber2[B§4.4] 阴司敕封触发:转世 ≥2(约第 2-3 轮,累计 8-12h 为其 pacing 后果)
28tune_restart_curvetext01:0.6:0.4:0.3[B§4.3] 重开曲线目标(第 5 轮触底 ≥0.25×);模拟器门 #13 断言
29tune_event_timeout_defaulttext0opt_a[B§7] 冤魂申诉超时默认 = 超度(opt_a)
30tune_souls_divnumber10000[B§6] 超度亡魂 = floor(本轮累计阴德 ÷ 10,000)(叙事计数器,不设闸门;P-14)
31tune_enthrone_suihui_reqnumber60[G§3.4] 阴司敕封解锁条件:宿慧 ≥60([B§4.4] 仅给 8-12h 体感,采信 GDD 数值)
32tune_cam_peek_max_pxnumber320[W3 相机] 偷看(peek)偏移的世界像素上限;超出即夹到此值(架构 §4.3 偷看回弹)
33tune_cam_peek_springnumber42[W3 相机] 偷看回弹弹簧刚度 k(越大回弹越快)
34tune_cam_peek_dampnumber11[W3 相机] 偷看回弹阻尼 c;近临界阻尼约 2*sqrt(k)≈13,取略欠阻尼以保留手感
35tune_cam_follow_taunumber0.35[W3 相机] 进度锚定跟随的指数平滑时间常数(秒)
36tune_cam_zoom_taunumber0.3[W3 相机] 缩放与殿王战推近的指数平滑时间常数(秒)
37tune_boss_preview_minnumber15[B§6] 殿王战战前预告提前分钟数(与 H9-H10 prestige 预告同口径)
38tune_event_first_minnumber3[B§7] 事件系统解锁后首个事件的延迟分钟数(给玩家缓冲,避免刚解锁就来)
39tune_boss_kappa_basenumber0.01[systems-spec §1.2 B2] 殿王战点击伤害 κ 基数(零点击投资时 κ = 0.010;W4 方案 B)
40tune_boss_kappa_slopenumber0.052[systems-spec §1.2 B2] κ 随法器线进度斜率:κ = (base + slope × 已购点击升级/12) × (1 + m06阶×0.30);满配 κ = 0.0806
41tune_boss_intro_capnumber0.1[systems-spec §1.2 B3] 开场冲锋伤害封顶 = HP × 本值(0.10;旧公式 20% 已废止)
42tune_boss_intro_enablednumber1[systems-spec §1.2 B3] 开场冲锋开关(1 = 启用;门 #11 首轮数据回来前默认 1)