feat: W2 经济核心+数据管线+灰盒 — Balance Bible v1.0 八表逐值落地,EconomyState/sim 14 门/灰盒主场景/单测(GDScript 待本机引擎验证)

This commit is contained in:
程基岩(engineering-lead) committed 2026-10-19 17:44:53 +08:00
1 parent 856326a766
commit 24e5b0c4cc
58 files changed
+7099 -22

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "events.schema.json",
"title": "events 表 schema v0(4 事件,数值抄录自 Balance Bible v1.0 §7)",
"description": "架构 §3.2 CSV 规范落盘。事件倍率走独立瞬时区,不进全局乘区([B§0.3/§7])。参数列语义(按 type 取用):p_mult=output_mult 全产出倍率 / click_output_mult 产出倍率部分;p_clicks=click_challenge 需点击次数 / click_output_mult 点击倍率 / choice 冤气增益下限;p_window_sec=click_challenge 窗口秒 / choice 冤气增益上限(随殿序 lerp);p_penalty+p_penalty_dur_sec=click_challenge 失败惩罚;opt_a_*/opt_b_*=choice 二选一(merit_burst_sec=阴德爆发秒数 / wrath_gain=冤气增益)。出现前提 = up_gate_events(过 H2,[B§2.3])。冤魂申诉超时默认 opt_a(超度)。",
"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": "events" },
"schema_version": { "const": 0 },
"columns": {
"type": "array",
"items": { "type": "string" },
"minItems": 17
},
"rows": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "object",
"required": [
"id", "name_cn", "name_en", "trigger_min_min", "trigger_max_min",
"duration_sec", "type", "p_mult", "p_clicks", "p_window_sec",
"p_penalty", "p_penalty_dur_sec", "opt_a_type", "opt_a_param",
"opt_b_type", "opt_b_param", "flavor_cn"
],
"properties": {
"id": { "type": "string", "pattern": "^ev_[0-9]{2}_[a-z]+$" },
"name_cn": { "type": "string", "minLength": 1 },
"name_en": { "type": "string", "minLength": 1, "description": "临时译名,待文策渊 glossary" },
"trigger_min_min": { "type": "integer", "minimum": 1, "description": "触发间隔下限(分钟)" },
"trigger_max_min": { "type": "integer", "minimum": 1, "description": "触发间隔上限(分钟,含)" },
"duration_sec": { "type": "integer", "minimum": 1, "description": "持续秒数(冤魂申诉为非阻塞决策窗)" },
"type": {
"type": "string",
"enum": ["output_mult", "click_challenge", "choice", "click_output_mult"]
},
"p_mult": { "type": "number", "minimum": 0 },
"p_clicks": { "type": "integer", "minimum": 0 },
"p_window_sec": { "type": "number", "minimum": 0 },
"p_penalty": { "type": "number", "minimum": 0, "maximum": 1, "description": "click_challenge 失败惩罚倍率(0.5 = -50%)" },
"p_penalty_dur_sec": { "type": "integer", "minimum": 0 },
"opt_a_type": { "type": "string", "enum": ["none", "merit_burst_sec", "wrath_gain"] },
"opt_a_param": { "type": "number", "minimum": 0 },
"opt_b_type": { "type": "string", "enum": ["none", "merit_burst_sec", "wrath_gain"] },
"opt_b_param": { "type": "number", "minimum": 0 },
"flavor_cn": { "type": "string", "minLength": 1 }
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}