Files
game-code-4/data/schema/upgrades.schema.json
程基岩(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

82 lines
4.5 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "upgrades.schema.json",
"title": "upgrades 表 schema v0(108 条升级,数值抄录自 Balance Bible v1.0 §2)",
"description": "架构 §3.2 CSV 规范落盘。配比 [B§2]:效率 72(12 班底×6 级,+100%/级加法,成本 C0×r^(10+4n) 取整)+ 点击 12(L1-4 ×2;L5-12 +1% 产出/s)+ 路引 18(10 入职文书 + 8 系统闸门,纯解锁零效果)+ 离线 6(×1.15/级)。与 meta_upgrades.csv 合计 120。ID 稳定永不重编号;display_en 为临时译名待文策渊 glossary。requires=enthrone_ready 表示敕封动作就绪(转世≥2 且宿慧≥60)后才可购(仅 up_gate_tianzi,provenance P-12;W2 初版误置 enthroned 会造成死锁,已修)。",
"x-supported-keywords": [
"type", "properties", "required", "items", "enum", "pattern",
"minimum", "maximum", "minLength", "minItems", "maxItems",
"additionalProperties", "const"
],
"x-unique": ["id"],
"type": "object",
"required": ["sheet", "schema_version", "columns", "rows"],
"properties": {
"sheet": { "const": "upgrades" },
"schema_version": { "const": 0 },
"columns": {
"type": "array",
"items": { "type": "string" },
"minItems": 11
},
"rows": {
"type": "array",
"minItems": 108,
"items": {
"type": "object",
"required": [
"id", "name_cn", "name_en", "type", "target_gen", "unlock_hall",
"effect_type", "effect_param", "requires", "cost", "desc_cn"
],
"properties": {
"id": {
"type": "string",
"pattern": "^up_[a-z0-9_]+$",
"description": "稳定字符串 ID:up_eff_<gen_id>_<1-6> / up_click_<1-12> / up_offline_<1-6> / up_gate_<name>(入职文书 ID 与 generators.unlock_gate 引用一致,W1 已分配)"
},
"name_cn": { "type": "string", "minLength": 1 },
"name_en": { "type": "string", "minLength": 1, "description": "临时译名,待文策渊 glossary" },
"type": {
"type": "string",
"enum": ["efficiency", "click", "gate_hire", "gate_system", "offline"],
"description": "efficiency=班底效率;click=点击;gate_hire=班底入职文书(target_gen 解锁);gate_system=系统闸门;offline=离线效率"
},
"target_gen": {
"type": "string",
"pattern": "^(none|gen_[0-9]{2}_[a-z0-9]+)$",
"description": "efficiency/gate_hire 指向的班底 ID(generators.csv);其余 none"
},
"unlock_hall": {
"type": "string",
"pattern": "^(none|hall_[0-9]{2}_[a-z]+)$",
"description": "出现条件:通过哪殿后可见/可购;efficiency 随所属班底殿门,offline 随 H4(离线收益系统闸门),click 无门"
},
"effect_type": {
"type": "string",
"enum": ["gen_output_add", "click_mult", "click_output_pct", "offline_add", "unlock"],
"description": "gen_output_add=班底产出加法(+param);click_mult=点击价值×param;click_output_pct=点击附加产出/s 的 param 比例(进全局区,P-15);offline_add=离线效率 +param(加法加在衰减表各档速率上,各档硬顶 100%;W4 契约 v2 取代旧 offline_mult ×1.15 乘性链,systems-spec §2.5);unlock=纯解锁(param=0)"
},
"effect_param": {
"type": "number",
"minimum": 0,
"description": "效果参数(见 effect_type);efficiency=1(+100%),click_mult=2,click_output_pct=0.01,offline_add=0.05(长明灯每级 +5%,6 级满 +30%),unlock=0"
},
"requires": {
"type": "string",
"enum": ["none", "enthrone_ready", "enthroned"],
"description": "购买前置条件:none=无;enthrone_ready=转世≥2 且宿慧≥60(敕封动作就绪,仅 up_gate_tianzi,provenance P-12);enthroned=需已受敕(预留枚举,现无行使用)"
},
"cost": {
"type": "integer",
"minimum": 0,
"description": "阴德成本(禁千分位)。效率 = round(C0×r^(10+4n));入职文书 = round(C0×2/3)(g03=800 钉值复现);系统闸门 = 殿门阈值÷2(工程外推, provenance P-5);点击/离线 = [B§2.2/§2.4] 钉值"
},
"desc_cn": { "type": "string", "minLength": 1 }
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}