Merge branch 'termsweep2-20261026':通关口径统一——通关退役,关卡完成/冒险成功/冒险落幕短语族落地(--docs 域闸绿,回执 domain=docs @b23fa50d,25 文件 145 行)

This commit is contained in:
DKChan committed 2026-10-26 06:05:34 +08:00
commit 6af363825c
25 files changed
+145 -145

No files matched your search

+1 -1
View File
@@ -18,7 +18,7 @@
- **交付前验收 = 跑 `tools/run_all_gates.sh`,按本批改动域选档(`--code` 只跑代码域/`--docs` 只跑文档域/不带参数=两域全量),所选域全绿才合回 master**——它是全部验证闸的唯一入口与唯一清单,**域划分也只写在它这一个地方**,闸件增减与分域调整都只改它,文档禁另列清单。域按**文件性质**判:代码域=`game/` 下非 `.md` 的行为载体(代码/测试脚本/探针/场景/数据表/素材),`game/` 内 `.md` 与 `game/` 外一切路径=文档域;同批两类都有时跑全量档。跑完写回执 `game/tests/.gates/receipt.json`(含 `domain` 字段),合回时由 worktree-guard 按 diff 文件性质推出该验哪个域再校验回执(六况拦截细则见 process-conventions §3.9);非代码面的直改批验收=commit 点 git 钩子自动跑 `--docs`,无 worktree 与回执流程
- 单件直跑(调试期最窄确认用,**不构成验收**):冒烟测试 `python tools/run_smoke.py`(`game/tests/smoke_boot.tscn` 极小启动场景)· 系统测试 `python tools/run_system_test.py`(宿主 `game/tests/system_test.gd`)· 场景探针 `…console.exe --headless --path . res://probe/ui_probe.tscn` · 单元与集成 `… --script res://tests/run_all.gd`
- 调参批量:`--script res://sim/adventure_monte_carlo.gd`(全冒险期望)· `res://sim/reward_expectation.gd`(奖励期望);通关率/难度类测量一律走全冒险
- 调参批量:`--script res://sim/adventure_monte_carlo.gd`(全冒险期望)· `res://sim/reward_expectation.gd`(奖励期望);关卡完成率/难度类测量一律走全冒险
- 数值验证:`python tools/balance_verifier.py`(采集端 `res://sim/verifier_batch.gd`,报告与原始数据落 `sim-data/`)
- 熵增闸(新类别 = 同批修订 Project Layout + 白名单):`python tools/repo_structure_audit.py`
+4 -4
View File
@@ -28,7 +28,7 @@
### 数值语言
- 游戏内伤害与成长数值一律**整数加减**:克制修正、奖励、商店与永久强化的属性提升都走"+1/−1 点"式整数;数字小而可读是设计价值,不是待放大的占位。
- **百分比仅保留三处既有粗档修正**(增益池乘区、护甲等级掷点折扣档、暴击倍率)与开发侧测量工具(难度杠杆扫描、通关率带平移);此后新增数值系统默认整数加法,引入百分比须显式修订本条款。
- **百分比仅保留三处既有粗档修正**(增益池乘区、护甲等级掷点折扣档、暴击倍率)与开发侧测量工具(难度杠杆扫描、关卡完成率带平移);此后新增数值系统默认整数加法,引入百分比须显式修订本条款。
- 全局向下取整(round_direction = floor)不变;整数刻度下的档位粒度以"1 点"为单位设计,避免名义百分比与实际取整值脱钩。
## 一场冒险:关卡串起来的下探
@@ -38,14 +38,14 @@
```
开始冒险(一条命)
→ 关卡:节点链逐节点推进(战斗 / 奖励 / 恢复 / 商店 → 关底 Boss)
→ Boss 倒下 → 关底 Boss 掉钥石 → 通关回血 + 提升三选一 → 下一关
→ Boss 倒下 → 关底 Boss 掉钥石 → 关卡完成回血 + 提升三选一 → 下一关
→ 打穿全部关卡 → 冒险完成
→ 任意一场战斗倒下 → 冒险结束
```
路上的商店房是关底 Boss 前一位的补给点:战斗掉落的 GP 在这花掉,换攻击、生命上限或护甲的提升——打完仗钱到账,进店花掉,带着变强去见关底 Boss。
一条血走完整场冒险:战后剩多少血就带多少进下一场,恢复点回一部分,通关一关回一部分血、再从三选一里挑一件提升带走。所以越往后,你越在意"这局已经走到第几层"。
一条血走完整场冒险:战后剩多少血就带多少进下一场,恢复点回一部分,完成一个关卡回一部分血、再从三选一里挑一件提升带走。所以越往后,你越在意"这局已经走到第几层"。
## 死了之后:为什么想再开一局
@@ -153,7 +153,7 @@
| 层 | 档位语义 | 落地口 |
|---|---|---|
| 秘宝 | 档位越高,解锁条件越苛刻(通关数/Boss 击杀/生涯里程碑谓词);装配面同调位分档(槽位可装 ≤ 槽位档位的件,向下兼容) | `unlock_requires` 字段 + 锻造工坊界面 + 里程碑分档发槽 |
| 秘宝 | 档位越高,解锁条件越苛刻(冒险成功数/Boss 击杀/生涯里程碑谓词);装配面同调位分档(槽位可装 ≤ 槽位档位的件,向下兼容) | `unlock_requires` 字段 + 锻造工坊界面 + 里程碑分档发槽 |
| 奇物 | 档位越高,出现概率越低(配额与权重) | 令牌池配额;专长 rarity 接 Boss 三选一按档配比/加权(约束见下) |
| 地图战斗资源 | 档位=概率位 + 保底上限(T1-T4 四档池) | [地图战斗资源](systems/战斗循环/地图战斗资源.md)「四档概率结构与保底」节 |
+4 -4
View File
@@ -23,7 +23,7 @@
| 文件 | 一句话概要 | 状态 |
|---|---|---|
| `棋盘生成.md` | 棋盘怎么生成、怎么保证可推理可通关 | 已定稿·自旧体系迁移 |
| `棋盘生成.md` | 棋盘怎么生成、怎么保证可推理可清图 | 已定稿·自旧体系迁移 |
| `排雷玩法.md` | 挖格、封印、连锁展开等扫雷规则本体 | 已定稿·自旧体系迁移 |
| `行动经济.md` | 每轮行动点怎么花、停手与刷新的代价 | 已定稿·自旧体系迁移 |
| `地形变异.md` | 格子的非雾变异(首批四类型:荆棘丛/藤蔓缠绕/岩浆/烬覆) | 已定稿·首批类型落地 |
@@ -46,7 +46,7 @@
| `关卡节点图生成.md` | 一关的节点图从哪来——生成器按参数产出合法图 | 已定稿 |
| `冒险结构.md` | 整局冒险的关卡序列、失败与大奖励 | 已定稿·自旧体系迁移 |
| `难度曲线与Boss.md` | 难度曲线、期望值带与 Boss 设计 | 已定稿·自旧体系迁移 |
| `奇物.md` | 一次冒险内各渠道给予玩家的增益总称(专长=触发器句式的机制件 / 属性值提升 / 补给=给系统资源加一笔的转换源凭证 × 三条渠道:奖励节点 / 商店 / 关底 Boss 击败) | 已实现·迭代 20 专长实装批落地(29 行=基础 27+迁入 2,流派机制退役;池结构案D 四级 104,通关兑付=专长三选一按档配比加权) |
| `奇物.md` | 一次冒险内各渠道给予玩家的增益总称(专长=触发器句式的机制件 / 属性值提升 / 补给=给系统资源加一笔的转换源凭证 × 三条渠道:奖励节点 / 商店 / 关底 Boss 击败) | 已实现·迭代 20 专长实装批落地(29 行=基础 27+迁入 2,流派机制退役;池结构案D 四级 104,关卡完成兑付=专长三选一按档配比加权) |
### 跨局循环(`systems/跨局循环/`)
@@ -77,8 +77,8 @@
| `interaction-patterns.md` | 交互 pattern 库:核心 8 成文 + 目录 20 条 | Complete |
| `level-clear.md` | 关卡结算屏 UX spec:大奖励三件套兑付与钥石/GP 结算呈现 | 义务锁定版·视觉终稿后置 |
| `level-map.md` | 关卡画面 UX spec:选路枢纽独立屏三停点布局、GP 常驻徽章、底栏状态栏 | 定稿版·独立屏+视觉终稿已冻结 |
| `node-reward.md` | 节点奖励屏 UX spec:奖励节点提升三选一选择面、七种令牌池与刷新双源(与商店货架同库;通关三选一候选=纯专长,见 level-clear) | v2.9·令牌池在役 |
| `settlement-summary.md` | 结算总结 UX spec:战斗总结结算(战斗胜利面)与冒险总结结算(冒险终结面)——两面分节的纯呈现轻量 spec | v1.4·纯呈现已实装面成文 |
| `node-reward.md` | 节点奖励屏 UX spec:奖励节点提升三选一选择面、七种令牌池与刷新双源(与商店货架同库;关卡完成三选一候选=纯专长,见 level-clear) | v2.9·令牌池在役 |
| `settlement-summary.md` | 结算总结 UX spec:战斗总结结算(战斗胜利面)与冒险总结结算(冒险落幕面)——两面分节的纯呈现轻量 spec | v1.4·纯呈现已实装面成文 |
| `camp.md` | 营地场景 UX spec:可点击场景图与七物件点选、钥石余额、各功能界面入口(存档级/局外呈现面) | v2.1 |
| `shop.md` | 商店覆盖层 UX spec:令牌级货架(与三选一同池)、GP 余额与付费刷新、购买/离开(中循环节点兑付呈现面) | v1.1 |
+1 -1
View File
@@ -110,7 +110,7 @@ Alpha 内以玩法循环本身的内容与表现为主(棋盘、关卡、战
| 战斗屏 | [battle](ux/battle.md) | 在役 |
| 战斗结算总结框 | [settlement-summary](ux/settlement-summary.md) | 在役 |
| 关卡结算屏 | [level-clear](ux/level-clear.md) | 在役 |
| 三选一(奖励节点 / 通关) | [node-reward](ux/node-reward.md) | 部分在役(在役半=通关三选一;未结半=奖励节点现为零兑付直通占位,登记面=待办清单「奖励节点三选一实装」条) |
| 三选一(奖励节点 / 关卡完成) | [node-reward](ux/node-reward.md) | 部分在役(在役半=关卡完成三选一;未结半=奖励节点现为零兑付直通占位,登记面=待办清单「奖励节点三选一实装」条) |
| 商店 | [shop](ux/shop.md) | 在役 |
| 状态面板(局内) | [元进度](systems/跨局循环/元进度.md)(「解锁界面:双入口框架」节) | 在役 |
| 冒险终局面板 | —— | 在役 |
@@ -112,7 +112,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|---|---|
| 战斗 / Boss | 组装定位信息(关卡序号 + 节点深度),移交[战斗结算](../战斗循环/战斗结算.md)开战;战斗结果(胜负与战后生命)经战斗结果上报回流冒险结构(契约语义归[冒险结构](冒险结构.md),本文不复述) |
| 恢复 | 向冒险结构发治疗封顶回报(载荷 = 该关恢复比例,读本关配置行);按比例回血并封顶的执行归冒险结构 |
| 奖励 | 触发节点奖励兑付:提升三选一(与通关三选一共享同一令牌库——七种令牌洗牌不放回抽 3 点选一件,池耗即上限;见下节) |
| 奖励 | 触发节点奖励兑付:提升三选一(与关卡完成三选一共享同一令牌库——七种令牌洗牌不放回抽 3 点选一件,池耗即上限;见下节) |
| 商店 | 打开商店覆盖层(pool 模式:进店抽 3〔shop_draw 封闭流恰一 scope〕+买 1 全重抽;legacy 对照模式:商品陈列读商店表);购买即时生效、经共享池写统一冒险加算区(与关卡大奖励同一笔——库存语义归[冒险结构](冒险结构.md),本文不复述);离开覆盖层即兑付确认。商店房不携带战斗行:零敌人、零棋盘、零战斗初始化 |
**遭遇构成的编排面**——本文对"放什么敌人"的全部职责只有三条:
@@ -127,7 +127,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
### 关卡收束点:先清库、后宣布
关卡收束点(一关就此定局的时点)有两个触发:Boss 战胜利(通关),或主角在任意一场战斗倒下(失败)。收束点的动作次序固定,不可换:
关卡收束点(一关就此定局的时点)有两个触发:Boss 战胜利(关卡完成),或主角在任意一场战斗倒下(失败)。收束点的动作次序固定,不可换:
```
关卡收束点(Boss 战胜利 或 英雄死亡)
@@ -156,7 +156,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
1. 从冒险结构接收开始关卡(关卡序号、当前生命、生效上限),加载本关节点图并呈现选路停点(关卡画面),玩家在图上选出第一跳,行进自所选节点开始(入口节点不自动进入)。
2. 每节点兑付完成并确认后返回关卡画面,玩家再选路前进;岔路选一条、单链点继续;零自动推进。
3. 战斗 / Boss 节点:组装关卡序号 + 节点深度,移交战斗结算开战;战斗结束向冒险结构上报战斗结果。
4. 奖励节点:触发节点奖励兑付 = 提升三选一(与通关三选一共享令牌库);恢复节点:向冒险结构发治疗封顶回报;商店节点:打开商店覆盖层,购买即时生效,离开后兑付确认。
4. 奖励节点:触发节点奖励兑付 = 提升三选一(与关卡完成三选一共享令牌库);恢复节点:向冒险结构发治疗封顶回报;商店节点:打开商店覆盖层,购买即时生效,离开后兑付确认。
5. Boss 战胜利或任意战斗倒下 = 关卡收束点:先调战斗结算的关卡收束清库,再宣布关卡结束。
6. 单链是合法退化形态;三关参数档都含岔口,第一关即有选择(图的来源见[关卡节点图生成](关卡节点图生成.md))。
@@ -180,9 +180,9 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
- 兑付移交:每场开战调用携带(关卡序号 + 节点深度),与节点图上该节点位置一致;每场战斗结束恰一次战斗结果上报。
- 兑付后确认:战斗节点的继续确认挂战斗总结结算(settlement-summary.md),奖励/恢复挂兑付反馈覆盖层;到达与兑付之间无确认步。
- 恢复兑付:治疗封顶回报载荷 = 该关恢复比例(读关卡配置行);满血回复 0 是合法状态(执行语义归冒险结构)。
- 奖励兑付:奖励节点兑付恰触发一次;池空直通空态合法,现行 = 提升三选一(与通关三选一共享令牌库)取一件按件类兑付(spec:node-reward.md v2.x;兑付路由归[冒险结构](冒险结构.md)提升池节)。
- 奖励兑付:奖励节点兑付恰触发一次;池空直通空态合法,现行 = 提升三选一(与关卡完成三选一共享令牌库)取一件按件类兑付(spec:node-reward.md v2.x;兑付路由归[冒险结构](冒险结构.md)提升池节)。
- 商店房编排:每个终点前一位恰一家店、每名玩家一局必经恰一家(所有入口→终点路径都穿过且恰穿过一家店)——由冒烟断言把关,图合法性校验零新增检查;商店房不携带战斗行;行进至此打开商店覆盖层、离开后兑付确认回选路。
- 收束有序且唯一:关卡清库发生在关卡结束宣布之前;每关恰宣布一次关卡结束;Boss 胜 = 通关、倒下 = 失败。
- 收束有序且唯一:关卡清库发生在关卡结束宣布之前;每关恰宣布一次关卡结束;Boss 胜 = 关卡完成、倒下 = 失败。
- 四件接口全款:与冒险结构登记的开始关卡、战斗结果上报、治疗封顶回报、关卡结束逐件对上,不另起平行通道。
- 单链特例合法:单链行集(每步恰一条连线)是合法退化形态;三关参数档都含岔口,第一关即有选择。
- 呈现只读:节点图结构、当前位置、可选下一节点对呈现层只读可见(读数契约归 HUD 框架)。
+39 -39
View File
@@ -5,13 +5,13 @@
## 设计目的
冒险结构管的是"一整局"这个层级:这局要依次下探哪几层、通关一层发什么、倒下之后怎么重来。单场战斗打得再好,也需要这层骨架才能变成"越走越深"的进度感;死亡也需要一个明确的边界——死在哪里、失去什么、留下什么。
冒险结构管的是"一整局"这个层级:这局要依次下探哪几层、完成一层发什么、倒下之后怎么重来。单场战斗打得再好,也需要这层骨架才能变成"越走越深"的进度感;死亡也需要一个明确的边界——死在哪里、失去什么、留下什么。
它还立起本系统的核心张力:主角一条血走完整场冒险,恢复只来自两个显式口,血条跨关只降不自动回。所以越往后,玩家越在意"这局已经走到第几层"。
## 系统范围
边界这样划:冒险结构只管序列与结构层——冒险从哪开始、有几关、通关发什么、失败怎么算、随机种子怎么接。单关内部怎么走节点归关卡节点地图;一场战斗怎么结算归战斗结算;数值曲线归难度曲线与Boss。
边界这样划:冒险结构只管序列与结构层——冒险从哪开始、有几关、关卡完成发什么、失败怎么算、随机种子怎么接。单关内部怎么走节点归关卡节点地图;一场战斗怎么结算归战斗结算;数值曲线归难度曲线与Boss。
负责:
@@ -21,7 +21,7 @@
| 关卡序列 | 关卡表(逐关一行的配置表)行集内容的责任方;推进规则:线性、无跳关 |
| 生命 | 跨战斗生命持久性的冒险侧系统资源:每战交出、战后收回、两个恢复口 |
| GP | 战斗掉落货币的局内系统资源(显示名「GP」):战斗完成统一入账、商店购买出账、冒险收束清零;统一冒险加算区(商店购买与大奖励同账) |
| 关卡大奖励 | 非末关通关的两层兑付:专长三选一(选择型,按档配比加权抽取——迭代 20 换代)+ 部分回血(固定型);钥石退役出大奖励,改 Boss/精英击杀战斗掉落 |
| 关卡大奖励 | 非末关完成的两层兑付:专长三选一(选择型,按档配比加权抽取——迭代 20 换代)+ 部分回血(固定型);钥石退役出大奖励,改 Boss/精英击杀战斗掉落 |
| 失败重开与放弃 | 倒下即冒险终;重开等于全新一轮;放弃与失败同型结算 |
| 主种子接线 | 一场冒险一个主种子,冒险内一切随机数派生自它 |
@@ -33,7 +33,7 @@
| 商店房节点的开闭交互与商品陈列 | [关卡节点地图](关卡节点地图.md) |
| 轮末结算编排与关卡清库接口 | [战斗结算](../战斗循环/战斗结算.md) |
| 节点奖励件的分类与凭证定义、池结构与抽取机制(案D——共享池库存仍归本文) | [奇物](奇物.md) |
| 通关率带、敌我数值与 Boss 设计 | [难度曲线与Boss](难度曲线与Boss.md) |
| 关卡完成率带、敌我数值与 Boss 设计 | [难度曲线与Boss](难度曲线与Boss.md) |
| 钥石与跨局成长 | [元进度](../跨局循环/元进度.md) |
| 冒险总结结算(呈现摘要五件事;呈现 spec:design/gdd/ux/settlement-summary.md——旧称「摘要结算画面」随 spec 命名完成退役)与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) |
@@ -49,12 +49,12 @@
### 冒险的一生:开始、推进与三种结局
"冒险"在本文是一个计量单位:玩家从开始新冒险到出局结算的一段完整游玩,由三关串成(关数读关卡表),全程只有一条命。冒险任何时刻恰处三种状态之一:待机(还没开始,或上一局已结算完毕)、进行中(某一关正在推进)、结算中(一关刚宣布结束,正在算通关兑付与结局)。
"冒险"在本文是一个计量单位:玩家从开始新冒险到出局结算的一段完整游玩,由三关串成(关数读关卡表),全程只有一条命。冒险任何时刻恰处三种状态之一:待机(还没开始,或上一局已结算完毕)、进行中(某一关正在推进)、结算中(一关刚宣布结束,正在算关卡完成兑付与结局)。
```
待机 ──(开始新冒险:注入主种子、生命回满、进第 1 关)──▶ 进行中
进行中 ──(非末关通关)──▶ 部分回血 + 专长三选一停点 ──(玩家点选兑付)──▶ 进下一关(仍在进行中)
进行中 ──(末关通关 / 任意战斗倒下 / 玩家放弃)──▶ 结算中 ──(产出冒险摘要)──▶ 待机
进行中 ──(非末关完成)──▶ 部分回血 + 专长三选一停点 ──(玩家点选兑付)──▶ 进下一关(仍在进行中)
进行中 ──(末关完成 / 任意战斗倒下 / 玩家放弃)──▶ 结算中 ──(产出冒险摘要)──▶ 待机
```
三种结局怎么判、在摘要上留什么标记:
@@ -65,11 +65,11 @@
| 冒险失败 | 任意一场战斗主角倒下 | 未打穿 |
| 冒险放弃 | 玩家主动放弃(仅非战斗期受理) | 未打穿 |
每次结算产出一份**冒险摘要**(本文含义:结算时打出的一份小账单),记五件事:打穿没有、通关几关、止步第几关、钥石入账合计、本局主种子。它是重开后"这局我到第几层"的对照坐标,也是[元进度](../跨局循环/元进度.md)(钥石入账位)与[存档序列化](../表现与支撑/存档序列化.md)(快照域标识与复盘)的输入。
每次结算产出一份**冒险摘要**(本文含义:结算时打出的一份小账单),记五件事:打穿没有、完成几关、止步第几关、钥石入账合计、本局主种子。它是重开后"这局我到第几层"的对照坐标,也是[元进度](../跨局循环/元进度.md)(钥石入账位)与[存档序列化](../表现与支撑/存档序列化.md)(快照域标识与复盘)的输入。
结算受理后只算一次:同一关的结束宣布重复到达时,重复宣布被拒绝并留诊断,系统资源与摘要零变化。
### 关卡序列:一局打几关、怎么算通关
### 关卡序列:一局打几关、怎么算关卡完成
一场冒险由关卡串成。关卡(本文含义:地牢一层的完整推进——一条节点链加一个关底 Boss)的序列读关卡表:逐关一行的配置表,本文是它行集内容的责任方,表本体与读取机制归[数据配置](../表现与支撑/数据配置.md)。
@@ -79,19 +79,19 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
加关纪律:加一关等于一个内容批——节点链行、敌我数值、新元素必须同批落,禁止只加序列不加内容。行集里每个战斗与关底节点都必须在敌人、棋盘生成的数值表里有精确行,冒烟期校验;越界关卡按内容生产缺口拦截。运行期对越界的开始关卡请求与缺失的关卡行一律返回错误并停机——那是配置违约,不是玩家能碰到的状态,不做兜底吞掉。
序列的难度排布消费难度曲线与Boss的逐关通关率带。整局难度由长度叠加:
序列的难度排布消费难度曲线与Boss的逐关关卡完成率带。整局难度由长度叠加:
**结论**:整局通关率 ≈ 各关通关率的连乘——冒险长度就是难度的总闸。
**结论**:冒险成功率 ≈ 各关关卡完成率的连乘——冒险长度就是难度的总闸。
```
整局通关率 = 第 1 关通关率 × 第 2 关通关率 × … × 第 N 关通关率
冒险成功率 = 第 1 关关卡完成率 × 第 2 关关卡完成率 × … × 第 N 关关卡完成率
```
各关通关率目标带的取值归[难度曲线与Boss](难度曲线与Boss.md),本文不复制其数值。
各关关卡完成率目标带的取值归[难度曲线与Boss](难度曲线与Boss.md),本文不复制其数值。
### 生命:一条血走完整场冒险
主角在一场冒险里只有一条血。战斗里扣的、恢复点回的、通关部分回血回的,记的是同一笔;战后剩多少血,就带多少进下一场。关卡切换不做任何生命结算——换的是地图,不是血条。
主角在一场冒险里只有一条血。战斗里扣的、恢复点回的、关卡完成部分回血回的,记的是同一笔;战后剩多少血,就带多少进下一场。关卡切换不做任何生命结算——换的是地图,不是血条。
生命只有四个收支口:
@@ -100,16 +100,16 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
| 冒险开始 | 入 | 生命置满(基础上限读英雄表) |
| 每场战斗开始 | 出 | 生命当前值作为主角生命入参交给这一战 |
| 每场战斗结束 | 入 | 收回战后生命终值并回写(胜负皆报;倒下记 0,冒险终) |
| 恢复点与通关部分回血 | 入 | 全冒险仅有的两个恢复口 |
| 恢复点与关卡完成部分回血 | 入 | 全冒险仅有的两个恢复口 |
战斗开始的生命交接走主角战斗入参覆盖值通道(每战以显式入参传入生命与上限、不改全局表——契约见[战斗结算](../战斗循环/战斗结算.md))。恢复口之一是恢复点节点(关卡节点链上回血的一类节点;节点类型分类学归[关卡节点地图](关卡节点地图.md),本文只写它兑付时生命怎么变):按比例回血并封顶上限,满血时回复 0,是合法状态。另一个恢复口是通关部分回血(见「关卡大奖励」节)。
战斗开始的生命交接走主角战斗入参覆盖值通道(每战以显式入参传入生命与上限、不改全局表——契约见[战斗结算](../战斗循环/战斗结算.md))。恢复口之一是恢复点节点(关卡节点链上回血的一类节点;节点类型分类学归[关卡节点地图](关卡节点地图.md),本文只写它兑付时生命怎么变):按比例回血并封顶上限,满血时回复 0,是合法状态。另一个恢复口是关卡完成部分回血(见「关卡大奖励」节)。
**结论**:生命三处写入口一律封顶在 [0, 生效上限];血条跨关只降不自动回。
```
战后回写: 生命 = 战斗上报的生命终值(倒下记 0,冒险终)
恢复点: 生命 = min( 生命 + floor( 生效上限 × 恢复比例 ÷ 100 ), 生效上限 )
通关回血: 生命 = min( 生命 + floor( 生效上限 × 回血比例 ÷ 100 ), 生效上限 )
关卡完成回血: 生命 = min( 生命 + floor( 生效上限 × 回血比例 ÷ 100 ), 生效上限 )
战斗入参: 每战交给战斗的上参 = 当前生命、生效上限
```
@@ -117,7 +117,7 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
|---|---|---|
| 生效上限 | 基础上限 + 统一冒险加算区累加(三选一属性件 + 商店购买,见 GP 节) | 基础上限读英雄表 |
| 恢复比例 | 恢复点回复生效上限的百分比,逐关配置 | 读关卡表 rest_heal_pct(provisional) |
| 回血比例 | 通关部分回血回复生效上限的百分比,全局 | 读冒险表 clear_heal_pct(provisional) |
| 回血比例 | 关卡完成部分回血回复生效上限的百分比,全局 | 读冒险表 clear_heal_pct(provisional) |
示例轨迹(纯符号示例、不代具体数值;现行行值读英雄表、关卡表与冒险表):
@@ -126,7 +126,7 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
| 冒险开始 | 满血 H₀ / 上限 H₀ |
| 逐场战后 | 递减序列 H₁ > H₂ > …(示例不代数) |
| 恢复点 | min(H₂ + floor(H₀ × 恢复比例 ÷ 100), H₀) |
| 关底 Boss 胜后,通关回血 | min(H₃ + floor(上限 × 回血比例 ÷ 100), 上限)(满血回 0 合法) |
| 关底 Boss 胜后,关卡完成回血 | min(H₃ + floor(上限 × 回血比例 ÷ 100), 上限)(满血回 0 合法) |
| 三选一选上限提升件 | 上限 H₀+Δ 记加算区(对后续每战生效);生命不变 |
| 下一关开局 | 生命当前值 / 生效上限按原值入战(不再自动回满) |
@@ -154,7 +154,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
**共享池账本(v0.13 P1 共享池单点;v0.14 令牌库换代;迭代 20 案D 四级 104 张——池机制事实源=[奇物](奇物.md)「池结构与抽取」节)**:商店货架与奖励节点三选一是**同一个池**——货架候选 = 池∖{GP 袋, 刷新件}∪{凭证} = {攻击, 生命上限, 护甲, 行动点, 回复, 凭证} 六种(GP 袋计价物不自售切边、刷新件不上货架、秘宝件已随同调批出池;凭证与回复随迭代15② 入架——shop.tres pool_shelf 六行);**库存 = 剩余令牌数**(TP0——「池消耗即上限」,种类次数上限退役,与奖励兑付摘牌同一令牌库承载,全冒险一次性跨关卡不补给):商店买一件,奖励面就少一枚;「无限购买」收敛为**钱尽或池空为止**(池空=硬闸、A 链爬价=软闸),空货架合法态。货架 = **令牌级抽签**(同 kind 去重每 kind 至多一卡,价格公式 tier-blind 维持批②裁定,购买消费在架令牌本体 kind+tier)。禁止两渠道各自私记库存——消费走同一入口写同一令牌库(实现=CurioDeck 件(`core/curio_deck.gd`)的令牌多重集单点——池与判定归件,AdventureRunner 为宿主构造与持有、停点编排留宿主;商店货架/定价/购买/刷新归 ShopSession 件(`core/shop_session.gd`),外部调用面由 LevelRunner 同签名委托承载;kind 维度派生计数 taken(件内成员)承载断点附随件与读数)。**货架独立刷新(v0.15 MC-1 2026-10-04——P-C2+Q2 裁)**:进店免费刷新次数(基础 0,天赋/营地侧增益位预留)用尽后 GP 付费刷新(ceil(20×1.8^已付费刷) provisional——调参表旋钮 shop_refresh_*);重抽=同 pool_draw 共享池抽签(shop_draw 恰一新 scope),池空=不可刷新合法态;进店/离开双向清零付费刷计数。**三选一同款付费档(v0.16 2026-10-06 用户令——刷新对齐商店)**:三选一免费双源(刷新件 X/冒险池 Y,机制现行事实源=[秘宝](../跨局循环/秘宝.md)三选一刷新双源节)用尽后 GP 付费刷新——读同 shop_refresh_* 两旋钮(单点调参)、扣同一 GP 冒险账本(LevelRunner.spend_gp 单口)、重抽同 reward_pick 共享池抽签;付费刷计数每停点清零(与进店清零同构);钮常驻选择态、免费与付费两源皆穷=禁用。
### 关卡大奖励:通关回血 + 专长三选一(钥石退役出大奖励)
### 关卡大奖励:关卡完成回血 + 专长三选一(钥石退役出大奖励)
关卡大奖励(本文含义:非末关通关时的固定+选择兑付)自 2026-09-30 用户拍板重构——原「固定发三件」(上限提升/血回满/钥石入账)退役,改两层兑付;钥石挪为 Boss/精英击杀的战斗掉落。**2026-10-11 迭代 20 换代(用户裁 Q1):选择层由提升三选一换代为专长三选一——通关渠道是专长的独占渠道兼唯一直接渠道,候选按档配比加权抽取(机制事实源=[奇物](奇物.md)渠道轴交叉表与「池结构与抽取」节)。** 兑付时点固定:关卡节点地图先调战斗结算的关卡收束接口清空关卡域库存,再向本文宣布关卡结束——大奖励在这之后、下一关开始之前兑付,顺序不可换。非末关每关各兑付一次(现行三关下至多两次,末关不兑付)。
@@ -162,9 +162,9 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
| 层 | 触发时刻 | 类型 | 内容 |
|---|---|---|---|
| 专长三选一 | 关卡通关(非末关) | 玩家选择型 | 候选=专长按档配比加权抽取 3 件呈现(迭代 20 换代),玩家点选 1 件兑付,未选候选不落袋、本次选择不可反悔 |
| 专长三选一 | 关卡完成(非末关) | 玩家选择型 | 候选=专长按档配比加权抽取 3 件呈现(迭代 20 换代),玩家点选 1 件兑付,未选候选不落袋、本次选择不可反悔 |
| 钥石掉落 | Boss / 精英怪击杀 | 战斗掉落型 | Boss 掉 2–3 个钥石(首杀/复杀两档读表)、精英怪掉 1 个(精英怪未实装,设定登记预留) |
| 部分回血 | 关卡通关(非末关) | 固定兑付型 | 回复生效上限 × 回血比例(provisional 20%,参考恢复节点量级),封顶上限、不回满;满血回 0 合法 |
| 部分回血 | 关卡完成(非末关) | 固定兑付型 | 回复生效上限 × 回血比例(provisional 20%,参考恢复节点量级),封顶上限、不回满;满血回 0 合法 |
兑付次序:部分回血先行(按当刻生命与上限结算),随后呈现三选一**选择停点**——零自动推进,必须玩家点选才兑付,重复兑付被拒(结算受理只算一次语义同族)。选择停点可中断:断点附随件扩「奖励选择态 + 件获取次数计数」,续玩已选件不静默丢失;**候选逐位一致系停点快照承载的实现现状、非验收义务**(不一致不影响玩法——2026-10-01 用户裁决,见「冒险断点」节)。
@@ -172,7 +172,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
**秘宝件受同调位约束**(2026-10-09 注:道具件已随迭代 11 第①批 T7 出池——三选一/奖励节点/战斗内渠道现行零道具件投放,下述渠道约束与替换交互无现役触发面,保留作渠道恢复时的契约口径;同调位读数现行事实源=attunement_growth.tres 谓词表实时求值):道具持有上限 = 同调位数。读数源 = 同调位里程碑谓词表 attunement_growth.tres 实时求值(0 起步、硬上限 3、增长 = 通关次数 + Boss 击杀数——同调实施批 2026-10-03 落地,过渡读数源 transitional_sync_slots 已顺带退役;原提案八拍板 git 57da58c 已退役)。获取渠道约束形态(迭代 10 过渡承载):三选一道具件超位触发**替换交互**(现有件与新件 N+1 选 N——丢任一原有件腾位收新,或放弃新件不获取;终态恒 ≤ 同调位);奖励节点与战斗内渠道超位**不授予**(候选拒绝 + 掉落沉没,逐行归因留痕)——停点渠道全覆盖的替换交互随同调实施批统一完成(原待办清单条目已随完成移除)。
最后一关通关不发三选一与部分回血:没有下一战可受益——只做冒险完成结算,末关 Boss 钥石照常入账。设计意图:清库之后才兑付、末关不兑付,都是从「奖励只朝下一战生效」这一条推出来的。
末关完成不发三选一与部分回血:没有下一战可受益——只做冒险完成结算,末关 Boss 钥石照常入账。设计意图:清库之后才兑付、末关不兑付,都是从「奖励只朝下一战生效」这一条推出来的。
**钥石掉落(退役出大奖励)**:钥石渠道自本批起 = Boss 击杀掉落 + 精英怪击杀掉落(精英怪未实装,掉 1 个预留)——「每通关一关固定入账 keystone_per_level」退役。Boss 掉落**逐杀实时入账**:行值读 meta.tres boss_keystone(首杀 3 / 复杀 2,provisional——2026-09-30 拍板贴近「2–3 个」示例量级,保持首杀 ≥ 复杀结构);末关 Boss 击杀照常入账(钥石为战斗掉落,不受「末关不兑付」约束)。钥石为跨局持久资源,消费归[元进度](../跨局循环/元进度.md)(2026-09-17 拍板同一资源语义维持);产出细则与量级配比归元进度设计批。属性件/AP 件值锚与上调约束(换算率估算见调参日志,上调须重扫第二关通关率带)归[难度曲线与Boss](难度曲线与Boss.md)。
@@ -193,7 +193,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
- **停点粒度**:快照只挂选路停点(入口呈现/战斗胜利后/兑付确认后的选路态)——这是唯一可恢复停点形态。战斗进行中不写快照:中断恢复后**当场战斗从头打**,棋盘中局不入档。
- **七字段拍板面**:关卡序号 / 节点位 / 生命 / 本关加成区 / GP 钱包 / 商店已购档 / 已抽模板。附随件(续玩正确性必需,顺带登记):主种子 + 取数计数器(rng 快照契约回填——续玩从断点号位精确续接原随机时间线,已抽模板零重抽)、钥石累计(Boss 掉落逐杀入账的中途值,终局摘要不失真)、已到节点序(关卡画面图条重建)、秘宝库存(奖励节点已选件防静默丢失)、**奖励选择态**(三选一停点中断:已选件 / 同调位替换在途——续玩已选不丢失;候选一致性=快照现状非强求 feature,2026-10-01 用户裁决)、**件获取次数计数**(kind 维度派生账本——断点附随件与读数承载)、**令牌池余库**(bonus_deck 逐枚还原——TP0 扩列,池消耗即上限的续玩正确性承载;旧版断点缺键=满库重建防御口径,单版本周期)、**商店货架态**(当前货架三件 + 本次进店已购次数——P2 甲扩列随迭代 11 第②批;离开店=空架合法态,货架续玩由确定性重放承载:重进店同种子同货架逐位)、**Y 刷新池余量**(attune_refresh_y——冒险周期池消耗余量随断点:续玩优先读断点、不自参数面整额重注入,堵「用完 Y 退菜单再续玩满血复活」可利用漏洞;旧断点缺键回退参数面=旧档行为零变化。2026-10-13 缺陷修批)。
- **中断与退出两口径分离**(2026-09-29 用户裁决):中断(关游戏)= 留断点可续;**退出冒险**(放弃流程)= 失败同型结算 + **清除断点**——退出后「继续上局」不再出现。
- **续玩**:自断点重建到最近停点(逐字段回填 + 随机流回填),停点处玩家重新选路。三结局(通关/失败/放弃)一律清断点——断点只活在一个进行中的冒险上。
- **续玩**:自断点重建到最近停点(逐字段回填 + 随机流回填),停点处玩家重新选路。三结局(冒险成功/失败/放弃)一律清断点——断点只活在一个进行中的冒险上。
- 与测量面的关系:断点面只在注入存档承载的正式冒险路径生效;模拟/冒烟不注入 = 整面静默,MC 逐项比对零扰动。
### 与关卡节点地图的边界:收束点与接口四件套
@@ -205,13 +205,13 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
```
关卡收束点(关底 Boss 被击杀,或主角倒下)
├─ 第一步:关卡节点地图调[战斗结算](../战斗循环/战斗结算.md)的关卡收束接口——清空关卡域库存,返回清空前计数
└─ 第二步:关卡节点地图向冒险结构宣布关卡结束(通关 / 倒下)
├─ 通关且非末关 → 部分回血 + 专长三选一停点 →(玩家点选兑付)开始下一关
├─ 通关且是末关 → 冒险完成结算
└─ 第二步:关卡节点地图向冒险结构宣布关卡结束(关卡完成 / 倒下)
├─ 关卡完成且非末关 → 部分回血 + 专长三选一停点 →(玩家点选兑付)开始下一关
├─ 关卡完成且是末关 → 冒险完成结算
└─ 倒下 → 冒险失败结算
```
本文只接结果、不发指令进战斗:不调用任何战斗域接口,也不碰库存。通关宣布到达时,默认库存已清;出现结构性异常(例如宣布通关但生命不为正)按防御断言拦截。
本文只接结果、不发指令进战斗:不调用任何战斗域接口,也不碰库存。关卡完成宣布到达时,默认库存已清;出现结构性异常(例如宣布关卡完成但生命不为正)按防御断言拦截。
接口契约四件套——开始关卡 / 战斗结果上报 / 治疗封顶回报 / 关卡结束——是关卡节点地图文档的强制输入,本文按现行口径如实登记:
@@ -220,7 +220,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
| 开始关卡 | 本文 → 关卡节点地图 | 冒险开始 / 每次关卡推进 | 关卡序号、当前生命、生效上限 |
| 战斗结果上报 | 关卡节点地图 → 本文 | 每场战斗结束后(胜负皆报) | 战后生命终值(倒下记 0) |
| 治疗封顶回报 | 关卡节点地图 → 本文 | 恢复点节点兑付时 | 恢复比例(读该关配置行);本文按比例回血并封顶 |
| 关卡结束 | 关卡节点地图 → 本文 | 关卡收束点(已先清库) | 结果(通关 / 倒下)、生命终值、节点位置 |
| 关卡结束 | 关卡节点地图 → 本文 | 关卡收束点(已先清库) | 结果(关卡完成 / 倒下)、生命终值、节点位置 |
至于一场战斗在哪个节点开打、打谁,组装编排归关卡节点地图;它组装战斗开始调用时,主角生命与上限取自本文下放的值,攻防属性 = 基础表值 + 统一冒险加算区累加(覆盖值通道)。
@@ -230,7 +230,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
| 方向 | 系统 | 接口要点 |
|---|---|---|
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 逐关通关率带是序列难度排布的输入;三关序列均已生效(地精洞窟→幽暗地域→灰矮人矿城),无未落前置;大奖励与恢复点数值的联动复验归它 |
| 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 逐关关卡完成率带是序列难度排布的输入;三关序列均已生效(地精洞窟→幽暗地域→灰矮人矿城),无未落前置;大奖励与恢复点数值的联动复验归它 |
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 关卡表与冒险表(单行全局)的承载与统一读取,本文是两表的内容与回填责任方;主种子的注入入口(随机服务) |
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 主角战斗入参覆盖值通道(本文供生命与上限);关卡收束接口由关卡节点地图收束点调用,本文零直调;战后生命终值与本战 GP 掉落(gp_dropped)经上报读回 |
| 下游 | [关卡节点地图](关卡节点地图.md) | 接口契约四件套 + 收束点语义,本文是定义源,也是其文档的强制输入 |
@@ -244,8 +244,8 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
2. 开始关卡:把关卡序号、当前生命、生效上限下放关卡节点地图,后者加载节点图并停在入口选路停点(关卡画面),行进自玩家首次选路开始。
3. 每场战斗结束:战斗结果上报到达,生命回写终值;上报为 0(倒下)直接走失败结算。
4. 恢复点节点:治疗封顶回报到达,按比例回血并封顶。
5. 关底 Boss 被击杀 = 收束点:关卡节点地图先调战斗结算清库,再向本文宣布关卡结束(通关)。
6. 非末关通关:部分回血兑付 + 呈现专长三选一停点(玩家点选兑付恰一件),随后开始下一关;末关通关:只做冒险完成结算(Boss 钥石照常逐杀入账)。
5. 关底 Boss 被击杀 = 收束点:关卡节点地图先调战斗结算清库,再向本文宣布关卡结束(关卡完成)。
6. 非末关完成:部分回血兑付 + 呈现专长三选一停点(玩家点选兑付恰一件),随后开始下一关;末关完成:只做冒险完成结算(Boss 钥石照常逐杀入账)。
7. 冒险结算(完成 / 失败 / 放弃)产出冒险摘要,回到待机;重开即全新一轮,回到第 1 步。
## P1 / P2 后置
@@ -267,21 +267,21 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
| 三选一件值(其余) | int [0,999],冒险表 kind×tier 列族 | adventure_table curio_value_*(GP 袋 / AP 件 / 恢复 / 刷新,provisional) | 令牌件值读表;道具件授予件数随秘宝件出池退役 |
| ~~三选一权重~~(v0.14 退役——令牌池档位配额即分布、无独立权重 knob) | — | — | E-S 加权洗牌不放回抽样权重随 TP0 令牌池换代退役 |
| 件次数上限 | ~~int [0,99],冒险表逐件键~~(v0.14 退役——池消耗即上限) | adventure_table token_* 配额列族(TP0 令牌池——kind×tier 配额) | 达上限件先剔出牌库永不再现 → 池耗即枯竭 |
| 通关回血比例 | int [0,100],冒险表单行全局 | adventure_table clear_heal_pct(provisional 20) | 通关部分回血回复生效上限的百分比;封顶上限不回满 |
| 关卡完成回血比例 | int [0,100],冒险表单行全局 | adventure_table clear_heal_pct(provisional 20) | 关卡完成部分回血回复生效上限的百分比;封顶上限不回满 |
| ~~同调位过渡键~~(已退役——迭代 11 第①批 T7,过渡键随表退役) | — | 同调位读数源 = attunement_growth.tres 谓词表实时求值(slot_cap 3) | 切换义务已随 2026-10-03 同调实施批清偿 |
| Boss 钥石掉落 | int [0,999],meta 表逐关行 | meta.tres boss_keystone 首杀 3 / 复杀 2(provisional) | 逐杀实时入账;精英怪掉 1 预留;消费方归元进度 |
| GP 经济参数 | 商店表逐行 | 见 shop.tres gp_drops / level_gp_bonus / pool_shelf / price_a / price_b(provisional,以 shop.tres 为准;legacy products / price_level_bonus 随对照模式保留) | 掉落均值与区间(普通/精英/Boss)、关级掉落加值、货架基价、A/b 价格因子;公式语义归本文,数值所有权归难度曲线与Boss曲线调参批 |
结构冻结(非调参项):序列线性无跳关、终点恒为 Boss(终点可多个、各在路径最深处)、倒下即冒险终、大奖励构成 = 通关部分回血 + 专长三选一(按档配比加权抽取)、一冒险一主种子、收束点先清库后宣布的次序。
结构冻结(非调参项):序列线性无跳关、终点恒为 Boss(终点可多个、各在路径最深处)、倒下即冒险终、大奖励构成 = 关卡完成部分回血 + 专长三选一(按档配比加权抽取)、一冒险一主种子、收束点先清库后宣布的次序。
参数联动:恢复比例与通关回血比例越厚通关越有余量(对冲杠杆语义归难度曲线与Boss);三选一属性件/AP 件抬高后续战斗强度,件值/权重/上限改值须按难度曲线与Boss的口径重扫通关率带(回血比例自「血回满」改 20% 系难度上压方向,带判定顺带呈报)。
参数联动:恢复比例与关卡完成回血比例越厚关卡完成时越有余量(对冲杠杆语义归难度曲线与Boss);三选一属性件/AP 件抬高后续战斗强度,件值/权重/上限改值须按难度曲线与Boss的口径重扫关卡完成率带(回血比例自「血回满」改 20% 系难度上压方向,带判定顺带呈报)。
## 验收标准
- 开始新冒险:主种子注入恰一次,生命账本置满,从第 1 关起步,关卡行集加载零诊断。
- 通关推进:非末关宣布通关后,部分回血恰兑付一次(封顶上限、满血回 0 合法)且三选一恰呈现一次;点选后恰兑付选中一件、未选项零生效;随后开始下一关。
- 末关通关:只做完成结算——不发三选一与回血、无下一关;摘要标记已打穿;钥石 = 逐杀 Boss 掉落合计(末关 Boss 击杀照常入账)。
- 任意战斗倒下:冒险失败结算;摘要记通关数与止步关卡;状态封闭。
- 关卡完成推进:非末关宣布关卡完成后,部分回血恰兑付一次(封顶上限、满血回 0 合法)且三选一恰呈现一次;点选后恰兑付选中一件、未选项零生效;随后开始下一关。
- 末关完成:只做完成结算——不发三选一与回血、无下一关;摘要标记已打穿;钥石 = 逐杀 Boss 掉落合计(末关 Boss 击杀照常入账)。
- 任意战斗倒下:冒险失败结算;摘要记冒险成功数与止步关卡;状态封闭。
- 重开:全状态重置(生命、序列位置、库存域空、摘要新生成)并注入新主种子。
- 生命一致性:每战开始的上参 = 生命当前值与生效上限;战后生命 = 上报终值;三处写入口均封顶在 [0, 生效上限]。
- 恢复点:回复 = floor(生效上限 × 恢复比例 ÷ 100) 后封顶;满血腿回复 0 合法。
@@ -289,7 +289,7 @@ GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜
- 抽签封闭:三选一掷 3 消费 reward_pick 封闭流,同种子同操作序列同三选项;单次零重复;令牌耗尽快即枯竭、不再出现在候选(池消耗即上限)。
- 同调位约束:道具终态持有恒 ≤ 同调位(谓词表实时求值);超位时停点渠道触发替换交互(丢旧收新 / 放弃新件两路),战斗内渠道沉没不入;奖励节点渠道同受约束。(现行零道具件投放——约束保留作契约,见「秘宝件受同调位约束」节注。)
- 钥石逐杀:Boss 击杀后钥石累计增量 = boss_keystone 行值(首杀/复杀两档);大奖励面钥石入账零残留。
- 收束次序:通关宣布到达时库存已被关卡节点地图先行清空;重复的关卡结束宣布被拒绝,状态与摘要零变化。
- 收束次序:关卡完成宣布到达时库存已被关卡节点地图先行清空;重复的关卡结束宣布被拒绝,状态与摘要零变化。
- 覆盖义务:冒烟断言——行集内每个战斗与关底节点(关、深)都必须在敌人与棋盘生成的数值表里命中:敌侧按深度带命中(落带不早于请求深度,禁以顶带 clamp 消解),板侧按解析命中;生成图深度域 L1 0–6/L2 0–9/L3 0–13(参数档 `layers` 实测,provisional);序列关数 = 行集关数。
- 生效前提未兑现(第二关行缺行):以单关冒险运行(合法态),越界关断言显式跳过而非失败。
- 放弃:战斗中的放弃请求被拒绝;非战斗期放弃按失败同型结算,已获大奖励不追回;放弃入口仅在选路停点呈现且只在冒险模式开放。
+2 -2
View File
@@ -179,10 +179,10 @@
│
关底 Boss 击败 ═══╗ ← 打掉关底 Boss 就是「通过这一关」,同一件事
╰──────────╬──▶ 一次专长三选一(专长)
╰──▶ 通关回血 ──▶ 进下一关,带着它继续
╰──▶ 关卡完成回血 ──▶ 进下一关,带着它继续
```
**关键:一关只兑付一次,不是一场战斗给一份。** 触发点是**关底 Boss 被击败**,而这恰好就等于"通过这一关"([冒险结构](冒险结构.md) 定义:通关一关 = 该关关底 Boss 被击杀)——**这两件事是同一个时刻,不是一条链上的两步**。关内普通战斗节点打完了什么也不给,直接往下走。
**关键:一关只兑付一次,不是一场战斗给一份。** 触发点是**关底 Boss 被击败**,而这恰好就等于"通过这一关"([冒险结构](冒险结构.md) 定义:完成一个关卡 = 该关关底 Boss 被击杀)——**这两件事是同一个时刻,不是一条链上的两步**。关内普通战斗节点打完了什么也不给,直接往下走。
奇物处在「一次冒险」这一层:它不是一场战斗里的临时状态,也不跨冒险留存。上游是三条渠道,下游是之后所有关卡的排雷与结算——拿到了,下一关就开始生效。
@@ -19,8 +19,8 @@
|---|---|
| 曲线行值投值 | 敌人、主角、棋盘参数、奖励各类表里"随关卡与深度变化的数值"的取值与摆放(表结构与回填机制归各表 owner) |
| 遭遇数量与攻击浮动 | 每个坐标行的敌人数量区间与攻击浮动宽度(掷定执行归[战斗结算](../战斗循环/战斗结算.md)) |
| 生存链区间模型 | 每战"打不打得过"的三档判定与关级通关恒等式——难度验收的现行模型 |
| 期望值带 | 通关率带、通关余量带、形态带——调参的"正确行为"基准 |
| 生存链区间模型 | 每战"打不打得过"的三档判定与关级恒等式——难度验收的现行模型 |
| 期望值带 | 关卡完成率带、关卡完成余量带、形态带——调参的"正确行为"基准 |
| Boss 设计 | 关底 Boss 的血量锚、数值台阶与专属池配型(独占技 + 权重轮廓);精英修饰只留预留位 |
| 调参联动纪律 | 禁独立调参网络与对账重跑义务的登记与执行 |
@@ -96,7 +96,7 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
护甲等级带宽口径(2026-09-16 定稿落地):结算换算层引入护甲等级掷点(1d20 必中、低掷按缺口三档折扣、nat20 暴击恒全额——档位、折扣与暴击倍率读 `settlement.tres`,规则语义归[战斗结算](../战斗循环/战斗结算.md))后,受伤与输出两侧的峰值 / 谷值构成各含一条掷点带宽——同一刀的最坏 / 最好掷点(含暴击档与折扣档)落进谷值 / 峰值,带宽补扫义务含暴击档与折扣档。**换装点锚定**:基准护甲等级自带对敌方输出期望的结构性削减(具体读数按判定式随行值复算),对比被整体退役的 defense_up 减伤墙是结构性削弱,且伤害下限(任何攻击落地均不为零,下限值读 `settlement.tres`)使"零承伤轮"结构性消失——该方向性偏移与下方已登记的加难杠杆扫描合并处理,不单独重调行值;主角与敌方首关护甲等级行值读配置表(正式行值归怪物设定批)。"零红档"验收与三档判定式不变。
关级通关恒等式:**一关打下来,玩家总输出 ≈ 全关敌方总生命期望 ×(1 + 缓冲);其中奖励侧贡献的输出占比须落在 [15%, 40%] 带内。**
关级恒等式:**一关打下来,玩家总输出 ≈ 全关敌方总生命期望 ×(1 + 缓冲);其中奖励侧贡献的输出占比须落在 [15%, 40%] 带内。**
```
基础攻击合计 + 奖励输出合计 ≈ 敌方总生命期望 × (1 + 缓冲)
@@ -112,10 +112,10 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
| 带 | 定稿口径 | 含义 |
|---|---|---|
| 通关率带 | 口径已换代·现行带 = 四带甲案(2026-10-03 用户拍板):带 A 白板完美执行战役全通率 [0%,10%] / 带 B 白板第一关通过率 [50%,85%] / 带 C 营地满成长战役全通率 [30%,60%](预立) / 带 D 响应曲线每雷边际 ≤15pp·S 形——旧普通档 L1 [35,55] / L2 [10,15] 与完美档 [35,65] 正式作废,全文见本节末「带换代」条。实证:直入口 L2 普通 5% vs 冒险条件口径 L2 90% 同期并存〔「营地检查点」= balance_verifier 营地循环判定段旧称(现名营地循环战役)——2026-09-30 词源考证完成,见审计报告 git 提交 c095916 拍板点 9(已按生命周期条款退役);与冒险结构「没有检查点」铁律的字面相撞就此解除〕 | 四带按类型基准锚定、每条带均有外部锚点:带 B 管首关 = 过滤器不是墙;带 A 管白板全通的顶尖难度;带 C 留元进度爬升空间(满成长实装后启用);带 D 管响应曲线无悬崖 |
| 通关余量带 | 通关者通关时剩余生命的 p90 / p10 按现生命轴上限百分比表达(压缩前绝对血量带已作废;界值重标随验收批) | **通关余量** = 通关瞬间还剩多少血。余量太肥说明赢得太从容,压生存侧;太瘦说明"剩一两滴血惨胜"成常态,抬治疗供给或恢复点收益 |
| 关卡完成余量带 | 关卡完成者关卡完成时剩余生命的 p90 / p10 按现生命轴上限百分比表达(压缩前绝对血量带已作废;界值重标随验收批) | **关卡完成余量** = 关卡完成瞬间还剩多少血。余量太肥说明赢得太从容,压生存侧;太瘦说明"剩一两滴血惨胜"成常态,抬治疗供给或恢复点收益 |
| 第一关形态带 | 教学位绿档 + 中段黄档 + Boss 黄档不红 | **形态带**管一关内各战三档判定的排布形状:第一战必须稳过,中段有输的可能,Boss 战紧但不许是配置事故 |
更高加成档(攻击翻倍、三倍)的通关率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),该指向已过期(「最近的减伤调整批」所指批次已关闭未执行);期望承伤占比带复验义务挂起,随数值批重开时核销。
更高加成档(攻击翻倍、三倍)的关卡完成率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),该指向已过期(「最近的减伤调整批」所指批次已关闭未执行);期望承伤占比带复验义务挂起,随数值批重开时核销。
第三关口径(第三关内容批):L3 全部行值 provisional-pending-growth,上述各带对 L3 暂不适用——零成长基线下的红档属预期(主角成长侧前置 = GP+商店房批,已于 2026-09-20 落地:GP 掉落 + 商店房 + 格面 GP),现行冒烟的首遇绿档断言按「成长代理档 atk+200 / hp+100」口径执行;正式通关率带与首遇绿档口径随玩家成长落地换装,归曲线调参批统一收带。
@@ -131,7 +131,7 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
| 带 | 定稿口径 | 外部锚点 |
|---|---|---|
| **带 A** 白板(零局外)完美执行战役全通率 | **[0%, 10%]** | 尖塔每局胜率 ≈9%(1800 万局统计)、FTL 普通通关 9.5% |
| **带 A** 白板(零局外)完美执行战役全通率 | **[0%, 10%]** | 尖塔每局胜率 ≈9%(1800 万局统计)、FTL 普通冒险成功 9.5% |
| **带 B** 白板第一关通过率 | **[50%, 85%]**(首关=过滤器不是墙) | 尖塔 Act1 Boss 81.7–85.1%、死亡细胞首 Boss 72.9% |
| **带 C** 营地满成长战役全通率 | **[30%, 60%]**(预立——读数须元进度满成长实装后) | Hades 满镜depth参考、带 A→C 5–10 倍爬升跨度 |
| **带 D** 响应曲线形状 | 每雷边际 ≤15pp 且 S 形连续、无 >25pp 单步跳变 | 悬崖回归量化验收(现行实测 ≈39pp/雷,超 2.6 倍) |
@@ -195,7 +195,7 @@ boss_hp ≈ round( Σ普通战斗敌方生命期望 × r_boss ) r_boss
Σ 的逐数闭合口径:数量走开战掷骰的区间期望(区间中点),教学位同样掷骰、按区间期望计入;各坐标行值一律读敌人表,本文不重复登记具体数值——防与配置双写失同步。
Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板参数仍受[棋盘生成](../排雷循环/棋盘生成.md)的可推理率绝对锚约束——加难不许加到不可推理。Boss 战胜利即关卡通关,编排归[冒险结构](冒险结构.md);登场仪式感归[战斗表现](../战斗循环/战斗表现.md)。
Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板参数仍受[棋盘生成](../排雷循环/棋盘生成.md)的可推理率绝对锚约束——加难不许加到不可推理。Boss 战胜利即关卡完成,编排归[冒险结构](冒险结构.md);登场仪式感归[战斗表现](../战斗循环/战斗表现.md)。
### 护甲克制:本文锁行值,矩阵本体归战斗结算
@@ -209,14 +209,14 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
| 联动组 | 对方 | 纪律 |
|---|---|---|
| 敌方生命 ↔ 奖励供给 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 单边移动必须走关级通关恒等式的联合检算 |
| 敌方生命 ↔ 奖励供给 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 单边移动必须走关级恒等式的联合检算 |
| 数量区间 ↔ 棋盘密度与惩罚上限 | [棋盘生成](../排雷循环/棋盘生成.md)、[战斗结算](../战斗循环/战斗结算.md) | 成群行上线前强制复算挖掘风险不等式 |
| 密度 ↔ 可推理率 ↔ 生成尝试上限 | [棋盘生成](../排雷循环/棋盘生成.md) | 三元组联动;禁止为难度牺牲可推理率绝对锚 |
| 每轮行动点 ↔ 停手转存规模 | [行动经济](../排雷循环/行动经济.md) | 联动评估记录归本文,调参所有权在行动经济 |
| 削弱强度 ↔ 当量锚 | [增益状态](../战斗循环/增益状态.md)、[战斗结算](../战斗循环/战斗结算.md) | 联动值禁独立调参,修订须重跑锚对照 |
| 护甲类型 ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间(2026-09-19 充能退役——原"充能投桶与量"联动半边废止) |
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档——档位读 `settlement.tres`;nat20 暴击形式留档,倍率同表),护甲等级行值变更仍须复算生存链区间——现行行值读 `hero.tres` / `enemy.tres` 的 armor_class 列(均暂定),敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
| GP 供给 ↔ 商品定价 | [冒险结构](冒险结构.md)、[关卡节点地图](关卡节点地图.md) | 供给 × 定价 = 入关属性参数,单边移动须复算分层通关率带(商店与 GP 经济杠杆节)——动供给必复算分层带,禁独立调参 |
| GP 供给 ↔ 商品定价 | [冒险结构](冒险结构.md)、[关卡节点地图](关卡节点地图.md) | 供给 × 定价 = 入关属性参数,单边移动须复算分层关卡完成率带(商店与 GP 经济杠杆节)——动供给必复算分层带,禁独立调参 |
| 封印溢价系数 δ ↔ 完美乘数 p_perfect ↔ ap_per_round | [战斗结算](../战斗循环/战斗结算.md)、[行动经济](../排雷循环/行动经济.md) | 封印激励三件套同窗检算(防封印 rush 复发:δ 与 ×2 叠加通胀、AP 吞吐上限)——任一变动须重跑双画像封印率读数(2026-10-05 判式换代批新增) |
| η 读数 ↔ 模拟画像定义 ↔ 可推理率 ι ↔ min_safe_count/生成尝试上限 | sim 档位、[棋盘生成](../排雷循环/棋盘生成.md) | η 是画像条件量:画像重构即锚漂移,重锚顺带;可推理率三元组既有联动扩一员(2026-10-05 判式换代批新增) |
| β 带端点 β_lo/β_hi ↔ D_ref ↔ hero max_hp ↔ AC 折算档(5pp 系数) | [战斗结算](../战斗循环/战斗结算.md) | 带是 D_ref 的函数:换锚(D_ref/max_hp)须全带重推;AC 档值变更改 5pp 系数,同罪(2026-10-05 判式换代批新增) |
@@ -240,7 +240,7 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 奖励表与奖励配置表的机制与回填;本文投权重、威力、档位、注入参数 |
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 五条经济契约对账结论是本文的调参约束输入;结算侧数值(矩阵、完美乘数、参考敞口)投值归本文 |
| 上游 | [行动经济](../排雷循环/行动经济.md) | 每轮行动点表值的联动观测;调参所有权在对方 |
| 下游 | [冒险结构](冒险结构.md) | 关卡序列的难度排布消费期望值带;通关率带是其大奖励与恢复点强度的标定基准 |
| 下游 | [冒险结构](冒险结构.md) | 关卡序列的难度排布消费期望值带;关卡完成率带是其大奖励与恢复点强度的标定基准 |
| 下游 | [关卡节点地图](关卡节点地图.md) | 节点深度语义与精英节点形态联动(未设计——Boss = 最深深度行约定即预留接口) |
| 下游 | [元进度](../跨局循环/元进度.md) | 区间平移换算率是其解锁强度的换算接入口(结构位预留) |
| 下游 | [增益状态](../战斗循环/增益状态.md) | 状态强度行值的联动评估(禁独立调参) |
@@ -251,8 +251,8 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
1. 设计期:按两条轴把行值直填敌人、主角、棋盘参数、奖励各数据表——运行时零公式,游戏只读表。
2. 冒险推进到战斗节点,[战斗结算](../战斗循环/战斗结算.md)发起战斗:开战时按行值的数量区间与攻击浮动,用封闭随机流掷定本战实际值;教学位与新敌种首遇位同样走这套掷骰——教学位的数量也是掷出来的区间(行值读表),只是区间要求它在任何掷骰结果下都满足绿档。
3. 各表按坐标行值实例化敌人与棋盘,整场战斗按既有机制运作——本系统不在场。
4. 战斗产出实际战绩(承伤、输出、治疗、通关余量),供调参期消费。
5. 调参期批量扫描复算:通关率带、三档区间判定、通关余量带、输出占比带、关级恒等式。
4. 战斗产出实际战绩(承伤、输出、治疗、关卡完成余量),供调参期消费。
5. 调参期批量扫描复算:关卡完成率带、三档区间判定、关卡完成余量带、输出占比带、关级恒等式。
6. 越带或红档 → 回滚行值或登记「待办」;禁止静默出带、禁止带病前进。
## P1 / P2 后置
@@ -261,8 +261,8 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|---|---|---|
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),域内取样扫描已执行(迭代 5——r_boss 0.8 档,见「Boss 设计」节加难走廊行),全杠杆落带扫描未完成;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已顺带实测,见 v0.7) |
| P1 | 挖掘风险不等式与清图支配性对账重跑 | **挖掘风险不等式半边已完成(2026-10-05 判式换代批,迭代14②号卡)**——判式三层重立写入文档+条件二封印溢价机制闭合+β 带判读制度化(残留=u=3 β=1.17 微破下限登记态,不强制回滚;δ 敏感度判读顺带出口报告),本行对挖掘风险不等式的「重跑义务」改判读回执:后续调参按 β 带检算执行,不再立独立重跑批。清图支配性已于 2026-09-19 按现行值链重跑(裁决②"非支配设计态"维持——缺口收窄主读数 L1≈24/L2≈45 当量〔u=1〕,设计权威回执=git 提交 2ca3e20,重跑入口 tools/clear_dominance_audit.py);调参批执行时按当期行值顺带重跑 |
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
| P1 | 迭代 10 奖励重构带重扫义务 | 恢复经济收紧(通关血回满→部分回血 20%,难度上压方向)+ 局内成长节奏变动(三选一件值/权重/次数上限 knob 全读冒险表;AP 件 = 每场战斗开始首轮 +1 AP 的强度敏感轴)——通关率带重扫随曲线调参批现行窗执行;Boss 钥石掉落重锚(首杀 3/复杀 2)连带元进度产出标定义务重开(归元进度设计批) |
| P1 | 真人冒险成功率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
| P1 | 迭代 10 奖励重构带重扫义务 | 恢复经济收紧(关卡完成回满血→部分回血 20%,难度上压方向)+ 局内成长节奏变动(三选一件值/权重/次数上限 knob 全读冒险表;AP 件 = 每场战斗开始首轮 +1 AP 的强度敏感轴)——关卡完成率带重扫随曲线调参批现行窗执行;Boss 钥石掉落重锚(首杀 3/复杀 2)连带元进度产出标定义务重开(归元进度设计批) |
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(登记 [待办清单](../../../../待办清单.md)) |
| P2 | 精英节点完整语义与修饰乘数表首行 | 随[关卡节点地图](关卡节点地图.md)定稿联动;首个使用场景 = 精英节点;精英怪设定三特征已登记(迭代 10 批,见「曲线雕刻」表注),钥石掉 1 个预留挂钩 meta.tres boss_keystone 精英行(随实装批落) |
| P2 | 区间平移换算率定稿 | 接口启用形态已定稿(2026-09-18 元进度定稿批);剩余面 = 首版三行折算数值随[元进度](../跨局循环/元进度.md)设计批模拟读数标定 |
@@ -325,8 +325,8 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
- 教学位绿档:第一关第一战与各新敌种首遇位的区间判定为绿档。
- 形态带成立:第一关形态 = 教学位绿 + 中段黄 + Boss 黄不红。
- 通关率带:**2026-10-03 带换代(用户拍板四带甲案)**——带 A 白板完美执行战役 [0,10%] / 带 B 白板 L1 [50,85%] / 带 C 满成长 [30,60%] 预立 / 带 D 响应曲线 ≤15pp·S 形;旧普通 L1 [35,55] / L2 [10,15]、完美 [35,65] 正式作废。测量口径维持冒险条件通关率(balance_verifier 冒险段派生);四带定稿全文见「期望值带」节「带换代」条。
- 通关余量带:通关者剩余生命 p90 / p10 按现生命轴上限百分比表达,界值重标随验收批。
- 恒等式闭合:关级通关恒等式逐项对账闭合,残差 <5%(provisional 阈值);奖励输出占比 ∈ [15%, 40%]。
- 关卡完成余量带:关卡完成者剩余生命 p90 / p10 按现生命轴上限百分比表达,界值重标随验收批。
- 恒等式闭合:关级恒等式逐项对账闭合,残差 <5%(provisional 阈值);奖励输出占比 ∈ [15%, 40%]。
- Boss 锚在案:每个 Boss 行的血量锚比率记录在案且落在现行带内;越带须登记,不静默变更。
- 联动可审计:任何行值修订在调参日志留有对应联动组的联合检算记录;越带必须回滚或登记——禁止静默出带、禁止带病前进。
- 商店 / GP 杠杆在案:GP 掉落与价格行值读商店表;shop=off/on 双格分层读数与带平移登记随曲线调参批执行——执行前 shop=on 读数不判读、不混入现行带。
@@ -77,7 +77,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
**替换制**:Boss/精英图命中全局型时,布置段跳过 region 布置(该图既无 region 片、也无格子级变异标记)——L2 完美 Boss 承伤已越 ≤50% 带,region 叠全局的叠加制火上浇油,不采纳。**兜底回落**:Boss/精英图的全局候选池为空时(含第 1 关 Boss 解锁门控未达=免疫,第 1 关是过滤器不是墙的教学保护)回落 region 布置,即回批前行为(保守向后兼容,防配置缺行静默裸奔——provisional)。
**恒定制**:第 2/3 关 Boss 图 100% 带一型(非掷定结果——配置事实;全局取用确定性,不消费布置随机流=零取号合法态)。首发型=**贫矿脉(skewed_veins)**:资源面偏斜(resource_face)——整图修正资源摇号分布,不动任何格子数据、不动生成端:进攻族(增伤/爆裂/穿刺/奥术)权重等比上浮,生存族(回血/护甲)权重按 effect_value% 下调,白名单三行(削弱/GP/行动点)恒不动,下调量按进攻族原权重比例重分配、正向池合计恒 77。玩家体验=回复与护甲类资源出现频率下降、攻击类资源出现频率上升(生存资源变薄、进攻资源变肥),玩家转向用进攻续命的主动策略——不是纯挨打。第 2/3 关双关同型(关间台阶由第 3 关既有新内容满足)。清图槽(clear_default/clear_blast)是独立池,不受偏斜影响。资源投影的执行面(摇号前权重合成、合成序=图级先件级后)归[地图战斗资源](../战斗循环/地图战斗资源.md)。
**恒定制**:第 2/3 关 Boss 图 100% 带一型(非掷定结果——配置事实;全局取用确定性,不消费布置随机流=零取号合法态)。首发型=**贫矿脉(skewed_veins)**:资源面偏斜(resource_face)——整图修正资源摇号分布,不动任何格子数据、不动生成端:进攻族(增伤/爆裂/穿刺/奥术)权重等比上浮,生存族(回血/护甲)权重按 effect_value% 下调,白名单三行(削弱/GP/行动点)恒不动,下调量按进攻族原权重比例重分配、正向池合计恒 77。玩家体验=回复与护甲类资源出现频率下降、攻击类资源出现频率上升(生存资源变薄、进攻资源变肥),玩家转向用进攻续命的主动策略——不是纯挨打。第 2/3 关两关同型(关间台阶由第 3 关既有新内容满足)。清图槽(clear_default/clear_blast)是独立池,不受偏斜影响。资源投影的执行面(摇号前权重合成、合成序=图级先件级后)归[地图战斗资源](../战斗循环/地图战斗资源.md)。
**三层预告**(整图语义=规则级偏离,藏着等于暗改规则——区别于 region 遭遇式口径):①开战横幅一行(整图变异非空时显示)②HUD 常驻角标(战斗全程可见防中局遗忘,空态隐藏)③帮助手册一行(零交互教学)。呈现承载归 [HUD 框架](../表现与支撑/HUD框架.md)。
@@ -1,11 +1,11 @@
# 棋盘生成
> 一句话:棋盘怎么生成、怎么保证可推理可通关
> 一句话:棋盘怎么生成、怎么保证可推理可清图
> 状态:已定稿(自旧体系迁移)
## 设计目的
棋盘生成是全项目扫雷图的唯一生产者:战斗结算每要一张新图,它就按关卡序号与节点深度对应的参数行,确定性造出一张可推理、可通关的雷图。它在生成时刻就作出质量承诺——玩家只会输给自己选的赌(比如终局只能猜的一格),不会拿到大面积无解的局;这是核心循环里"推理的确定性"卖点的生成端保障。同种子同参数必产同图,回放、测试、复盘都能精确复现——确定性既是卖点,也是调试工具。
棋盘生成是全项目扫雷图的唯一生产者:战斗结算每要一张新图,它就按关卡序号与节点深度对应的参数行,确定性造出一张可推理、可清图的雷图。它在生成时刻就作出质量承诺——玩家只会输给自己选的赌(比如终局只能猜的一格),不会拿到大面积无解的局;这是核心循环里"推理的确定性"卖点的生成端保障。同种子同参数必产同图,回放、测试、复盘都能精确复现——确定性既是卖点,也是调试工具。
## 系统范围
@@ -222,7 +222,7 @@
- 数字恒真:每个非危险格的数字恒等于其八邻雷数。
- 布雷纪律:N ≥ 1、实际雷数 ≤ N、实际安全格数 ≥ min_safe_count。
- 无开局白给板:开局免费展开域 ≠ 全部安全格,违例尝试弃用重试。
- 可通关:每个安全格都能从出生区沿安全格八向连通到达;合法性闸先于质量评分。
- 可清图:每个安全格都能从出生区沿安全格八向连通到达;合法性闸先于质量评分。
- 及格线:每张图实测可推理率 ≥ 该行及格线;任何行及格线 ≥ 0.85。
- 重试有界:实际重试次数落在 [1, max_gen_attempts];同一次生成内的重试不开新随机流。
- 成本闸:max_gen_attempts × 宽 × 高超过成本闸护栏常数(结构护栏常数,见 `data/schemas/board_gen_table.gd`)的行加载期被拒;玩法代码零墙钟依赖、零全局随机函数。
@@ -106,7 +106,7 @@
后续轮次行动点 = max(0, ap_per_round + 当轮排队净值) (加成轴不跨轮重复兑现)
```
加成轴是战斗开始的一次性基线抬升,不是逐轮增税;修正队列(上节)与加成轴在开轮时相加兑现,互不挤占。「每战 +1 AP」的强度评估与通关率带重扫义务归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批。
加成轴是战斗开始的一次性基线抬升,不是逐轮增税;修正队列(上节)与加成轴在开轮时相加兑现,互不挤占。「每战 +1 AP」的强度评估与关卡完成率带重扫义务归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批。
### 封印标中的兑付约束
@@ -88,7 +88,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
| `keystone_balance` | 钥石余额——只增不减(消费除外) | [元进度](../跨局循环/元进度.md) |
| `forge_levels` | 属性锻造三档等级(生命上限/基础攻击/护甲等级) | [元进度](../跨局循环/元进度.md) |
| `item_unlocks` | 已解锁道具集合(道具工坊消费) | [元进度](../跨局循环/元进度.md) |
| `level_clear_counts` | 每关通关次数(键 = 关卡序号字符串) | [元进度](../跨局循环/元进度.md) |
| `level_clear_counts` | 每关完成次数(键 = 关卡序号字符串) | [元进度](../跨局循环/元进度.md) |
| `boss_first_kill` | Boss 首杀标记位(键 = 关卡序号字符串) | [元进度](../跨局循环/元进度.md) |
| `boss_kill_count` | Boss 击杀总数(含重复——同调位增长谓词计数源,v4) | [元进度](../跨局循环/元进度.md) |
| `attunement_equipped` | 同调装配关系持久(冒险中途不可换装,v4) | [秘宝](../跨局循环/秘宝.md)(承载语义归[元进度](../跨局循环/元进度.md)) |
@@ -99,7 +99,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
| `recent_summaries` | 最近冒险摘要副本,最新在前,最多 10 条 | [冒险结构](../冒险循环/冒险结构.md) |
| `first_adventure_done` | 首冒险完成标记(新档默认 false;旧档缺省按已完成兜底) | [元进度](../跨局循环/元进度.md) |
| `adventure_total` | 冒险总局数终身计数(开局即计、含放弃与失败,v6) | [生涯](../跨局循环/生涯.md) |
| `adventure_cleared` | 通关局数终身计数(三关全通才计 1,v6;秘宝条件解锁计数键) | [生涯](../跨局循环/生涯.md) |
| `adventure_cleared` | 冒险成功局数终身计数(三关全通才计 1,v6;秘宝条件解锁计数键) | [生涯](../跨局循环/生涯.md) |
| `vision_used` | 真视类工具累计使用次数终身计数(迭代 22 新增——信标网络解锁行为条件;**v6 域后扩列补零、不升版本**;写入唯一经 `add_vision_used`,冒险收束聚合入账;断点随件键=`vision_counter_used`,续玩回填缺省 0) | [秘宝](../跨局循环/秘宝.md) |
| ~~`forge_levels`~~ | ~~属性锻造三档等级~~ | **已退役**(迭代 21 T5:行族/访问器/域随攻防所有权切分删除——`save_manager.gd:12-14/:399-401` 白名单收窄;继任 = 锻造工坊路线等级域,见下行计划登记) |
| `forge_routes`(**已落地 v7——锻造工坊实装批 T5,迭代 23**) | {levels: 六路线等级(sword/spear/staff/light/heavy/ward), unlocked: 直购解锁路线 id 清单, weapon: 当前武器路线 id, armor: 当前甲路线 id};无特效域;旧档缺键补齐 = 初始持有态 | [锻造工坊](../跨局循环/锻造工坊.md) |
@@ -117,7 +117,7 @@ v4/v5/v6 各域缺键由读取方按默认值补齐(空集合/0),旧档零
正式冒险收束(adventure_finished)──▶ apply_adventure_summary 入账 ──▶ 原子写盘(落当前激活槽)
营地钥石消费(元进度实现批接线)──▶ 每笔变更后即时写盘(落当前激活槽)
冒险停点(choices_presented 选路停点)──▶ 断点快照写盘(迭代 8 卡①)
冒险三结局收束(通关/失败/放弃)──▶ 清除断点 + 原子写盘(迭代 8 卡①/T3 退出口径)
冒险三结局收束(冒险成功/失败/放弃)──▶ 清除断点 + 原子写盘(迭代 8 卡①/T3 退出口径)
```
写盘时机纪律:**凡钥石发生变动的时刻都要落盘**——正式冒险收束写一次,营地内每笔消费后即时写(元进度实现批接线)。这是"钥石不丢"判据的最强保证:任何时刻拔电源,玩家最多丢当前这一局的局内进程,不丢档。
@@ -152,7 +152,7 @@ v4/v5/v6 各域缺键由读取方按默认值补齐(空集合/0),旧档零
| 方向 | 系统 / 文档 | 接口要点 |
|---|---|---|
| 下游 | [元进度](../跨局循环/元进度.md) | 钥石余额、锻造等级、通关次数、首杀标记的持久化承载方;对方以"钥石不丢"为验收,本系统以不破坏它为约束 |
| 下游 | [元进度](../跨局循环/元进度.md) | 钥石余额、锻造等级、关卡完成次数、首杀标记的持久化承载方;对方以"钥石不丢"为验收,本系统以不破坏它为约束 |
| 下游 | [冒险结构](../冒险循环/冒险结构.md) | 冒险摘要五件事副本入档(cap 10);快照与复盘的持久化承接 P1 后置 |
| 协作 | [数据配置](数据配置.md) | 表与档分家:数值口径永远以加载时的表为准 |
+8 -8
View File
@@ -40,7 +40,7 @@
## 在核心循环中的位置
```
一场冒险(排雷 → 结算 → 下探 → 死亡或通关)──▶ 冒险之外:钥石入存档 → 营地换永久强化 ──▶ 更厚的存档开局下一局
一场冒险(排雷 → 结算 → 下探 → 死亡或冒险成功)──▶ 冒险之外:钥石入存档 → 营地换永久强化 ──▶ 更厚的存档开局下一局
```
元进度不是一场冒险里的一段,而是贴在「死亡重开」出口外面的跨局局:局内胜负归零,钥石与永久强化不归零。它不改动单局循环的任何规则——没有它,一场冒险照常成立。
@@ -79,15 +79,15 @@
### 区间平移换算率:永久强化怎么影响难度验收
解锁让玩家变强,难度验收区间随之需要平移——双方约定(难度曲线与Boss 定稿口径)永久强化的影响**不直接改难度判据**,而是按统一换算率折算成通关率带的平移量后套用:完美档 gate 与 normal 目标带的判读口径不变,带随解锁等级平移。
解锁让玩家变强,难度验收区间随之需要平移——双方约定(难度曲线与Boss 定稿口径)永久强化的影响**不直接改难度判据**,而是按统一换算率折算成关卡完成率带的平移量后套用:完美档 gate 与 normal 目标带的判读口径不变,带随解锁等级平移。
换算率表(registry 键 `meta_progression_conversion_table`,数值行读 `data/tables/meta.tres` conversion 行族)登记三个属性维度(2026-09-18 拍板;"行" = 表内一条记录,一个属性维度即一行条目,全仓与"行值"同义)。现行表值(2026-09-23 换算率标定批投值——OFAT 冒险注入档与白板同种子配对的逐关条件通关率差实测,冒险条件口径 + 当日数值包现行态;报告=git 提交 7f24b64(已按生命周期条款退役),判定端 ④ 段可复判):
| 换算行 | 折算语义 | 每级带平移量(现行表值) |
|---|---|---|
| 生命上限强化 | 每级折算为通关率带平移量 | **6 点** |
| 基础攻击强化 | 每级折算为通关率带平移量 | **9 点** |
| 护甲等级强化 | 每级折算为通关率带平移量 | **1 点** |
| 生命上限强化 | 每级折算为关卡完成率带平移量 | **6 点** |
| 基础攻击强化 | 每级折算为关卡完成率带平移量 | **9 点** |
| 护甲等级强化 | 每级折算为关卡完成率带平移量 | **1 点** |
判定端(tools/balance_verifier.py)表值驱动消费:验收带按解锁状态 flat÷每级flat×表值平移后套用,表改则判定随动。护甲行强条目重测义务已于标定批履行(解锁后参数实测,非基线外推);标定同时暴露并修复护甲断链(begin_battle `hero_armor_class` 参数零消费——主角护甲锻造与加算区护甲轴的生效值此前未进战斗),修复见 battle_orchestrator `_defender_ac` 批注。
@@ -113,8 +113,8 @@
| 方向 | 系统 / 文档 | 接口要点 |
|---|---|---|
| 上游 | [冒险结构](../冒险循环/冒险结构.md) | 关卡收束与钥石入账挂点——钥石入账的局内事件源;冒险摘要(通关几关、记了多少、Boss 首杀标记)由本系统消费 |
| 上游 | [存档序列化](../表现与支撑/存档序列化.md) | 钥石余额、永久强化等级表、通关次数表、首杀标记的持久化承载方 |
| 上游 | [冒险结构](../冒险循环/冒险结构.md) | 关卡收束与钥石入账挂点——钥石入账的局内事件源;冒险摘要(完成几关、记了多少、Boss 首杀标记)由本系统消费 |
| 上游 | [存档序列化](../表现与支撑/存档序列化.md) | 钥石余额、永久强化等级表、关卡完成次数表、首杀标记的持久化承载方 |
| 上游 | [数据配置](../表现与支撑/数据配置.md) | 换算率表与定价表的承载与读取机制——本系统为内容回填责任方 |
| 下游 | [冒险结构](../冒险循环/冒险结构.md) | 冒险开始参数面——永久强化在开局注入的通道(无解锁时空参数) |
| 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 解锁状态经区间平移换算率接入难度验收(带平移) |
@@ -123,7 +123,7 @@
## P0 最小闭环
MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体排 Alpha),P0 的语义就是那条硬边界:单局循环零元进度完整成立。Alpha 期最小集合:钥石能跨冒险入账并存进存档;属性锻造至少一档强化能在下一局开局生效(换算率表对应行先行);通关次数渠道能解锁至少一件道具;玩家能在营地入口看懂自己有几枚钥石、换了什么。
MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)整体排 Alpha),P0 的语义就是那条硬边界:单局循环零元进度完整成立。Alpha 期最小集合:钥石能跨冒险入账并存进存档;属性锻造至少一档强化能在下一局开局生效(换算率表对应行先行);关卡完成次数渠道能解锁至少一件道具;玩家能在营地入口看懂自己有几枚钥石、换了什么。
## P1 / P2 后置
+1 -1
View File
@@ -112,7 +112,7 @@ Fork 组是封闭词表三组(2026-10-11 裁:克制专精整组砍除,类
「每关限次」的计数生命周期(2026-10-11 歧义扫描裁甲):限次计数随单次冒险持久、按关重置、新冒险清零、断点续玩保留。
A/B 态只放规则面:节点行持 a/b 双效果键(封闭规则键词表 RULE_KEYS 六键——**已随迭代 21 T3 扩签落地**:posture 双键收每关首轮窗、sense 锋/守双键限次按关重置、economy 聚/散双键接线),效果按激活态取值,不接数值线。两侧的设计判据是「不同强、非强弱」:MC 配对锚验收两侧通关率差 <~3pp(**迭代 21 V19 已验:perfect+max 档三组配对差全部 0.0pp 在带**)。
A/B 态只放规则面:节点行持 a/b 双效果键(封闭规则键词表 RULE_KEYS 六键——**已随迭代 21 T3 扩签落地**:posture 双键收每关首轮窗、sense 锋/守双键限次按关重置、economy 聚/散双键接线),效果按激活态取值,不接数值线。两侧的设计判据是「不同强、非强弱」:MC 配对锚验收两侧关卡完成率差 <~3pp(**迭代 21 V19 已验:perfect+max 档三组配对差全部 0.0pp 在带**)。
层级纪律(红线):局外树只放全局规则件——effects 禁 archetype 键(schema 加载致命);规则改写型特性(流派件)只走局内随机渠道,永不入树。
+2 -2
View File
@@ -40,14 +40,14 @@
| 内容 | 数据源 | 现状 |
|---|---|---|
| 冒险总局数 / 通关局数 | `adventure_total` / `adventure_cleared` 两终身计数域(save v6——期一已落地) | 现成(2026-10-07 迭代 18 卡④期一实装) |
| 各关通关次数 | `clear_count(level_index)`(`save_manager.gd:238`) | 现成 |
| 各关完成次数 | `clear_count(level_index)`(`save_manager.gd:238`) | 现成 |
| Boss 首杀与总击杀 | `boss_first_kill_marked`(`save_manager.gd:242`)/ `boss_kill_count`(`:250`) | 现成 |
| 钥石余额 | `keystone_balance`(`save_manager.gd:202`) | 现成。累计收支流水不在存(加钥石与花钥石只动余额,`:206`/`:211`)——如要做属新增流水域,期一实装批另呈报,本文只登记 |
| ~~三柜台解锁完成度概览~~ | (整行删——2026-10-12 用户裁:生涯页不统计天赋树与账号成长态,只统计终身计数;数据源 forge_level/workshop_status/tree_nodes 三投影随天赋树实装批退役,体验验证清单⑲两观测项同步摘除) | — |
### 历史冒险回看(期二)
数据面现役事实:每局冒险收束时已有逐局摘要自动入档——`recent_summaries`(默认域 `save_manager.gd:116`、值拷贝访问器 `:316`、入账原语 `:325-338` 逐局插最前并按上限截断),上限 `SUMMARY_CAP := 10`(`:40`)。摘要字段在冒险收束时组装(`adventure_runner.gd:812-826` 的 `_settle`:结局 result、通关关数 levels_cleared、止步关 stopped_at、钥石合计 keystone_total、本局主种子 master_seed,另附逐杀掉落 keystone_drops 与终局专长持有集 relics(存档键名沿用历史形态)等);摘要的内容口径 owner = [冒险结构](../冒险循环/冒险结构.md),本文不复述其口径。
数据面现役事实:每局冒险收束时已有逐局摘要自动入档——`recent_summaries`(默认域 `save_manager.gd:116`、值拷贝访问器 `:316`、入账原语 `:325-338` 逐局插最前并按上限截断),上限 `SUMMARY_CAP := 10`(`:40`)。摘要字段在冒险收束时组装(`adventure_runner.gd:812-826` 的 `_settle`:结局 result、完成关数 levels_cleared、止步关 stopped_at、钥石合计 keystone_total、本局主种子 master_seed,另附逐杀掉落 keystone_drops 与终局专长持有集 relics(存档键名沿用历史形态)等);摘要的内容口径 owner = [冒险结构](../冒险循环/冒险结构.md),本文不复述其口径。
2026-10-06 用户裁(P2 甲):每局一行摘要,行内给**结局 / 到达关卡 / 钥石收入 / 用时**四件事,上限存最近 N 局。对应三件实绩(本批代码级复核确认的缺口,非新建数据面):
+3 -3
View File
@@ -17,7 +17,7 @@
- **旧目录退役指针**:旧目录九件、魔法提灯、机制向三件处置已全数退役入素材库(表一 14 件)——现行目录见下方「目录(重设计 v1)」节;代码旧行已全数删除(迭代 20 先行删 2 行+迭代 22 T1 删 12 行,2026-10-12)。
- **三选一刷新双源**:刷新能力=**存量+临时**两笔系统资源——存量=持久(开局注入基值 0;来源=秘宝匣刷新升级行购买〔meta.tres attune_refresh_upgrade 行族〕+刷新练习件加仓;跨呈现持续、用完即无)、临时量=每次三选一呈现重置为基线 0(来源=效果件的临时注入,未用不结转);**消耗顺序=先扣临时、不足再扣存量**(2026-10-10 用户复述定案;代码字段名 X/Y 与两笔的字母对表归实装批 T0,正文不依赖字母)。重抽复用现有洗牌逻辑(reward_pick),池规则全保留;自动游玩模式默认不刷。**GP 付费档(2026-10-06 用户令)**:免费双源用尽后可 GP 付费刷新,价=ceil(20×1.8^本次停点已付费刷) provisional(与商店货架刷新读同两个调参参数 shop_refresh_*,单点调参);付费刷计数每停点清零;钱包=冒险 GP 同一笔系统资源(唯一入口 LevelRunner.spend_gp);余额不足=钮禁用(不隐藏)。店内专长凭证三选一暂不挂刷新面(扩面须先裁凭证保底计数交互)。**两笔语义**两笔语义的框架定义见[核心循环](../../01-核心循环.md)「生命周期轴」节。「三选一呈现」是比节点更细的事件——奖励节点、Boss 通关奖励、商店(凭证)三处都触发。奇物「刷新次数+1」类资源件的语义=存量一次性加仓。
- **🔴 承重契约**(红线;其中真视范围等由数据加载校验强制):效果不允许写成直接加减属性的裸数值——效果类型只能取封闭白名单;真视(直接标出危险格的效果,定义见「核心规则」)单次范围 ≤3×3;核心逻辑不做异步等待;零随机;排雷玩法零特判;危险格与安全格的分布同池冻结——资源类件只能调整权重投影、不能改池结构;**棋盘事实不可变**(秘宝效果不移除、不增改危险格位置与邻接数字——效果形态只允许信息呈现与开格动作;2026-10-10 用户裁,原爆破工兵包「中立移除」即违规形态、随件退役废止)。
- **验收分层**:难度验收分两层——同调系统关闭时沿用现行通关率验收带;开启时验收带按投值平移(归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)投值;商店开关分层同法)。
- **验收分层**:难度验收分两层——同调系统关闭时沿用现行关卡完成率验收带;开启时验收带按投值平移(归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)投值;商店开关分层同法)。
## 目录(重设计 v1)
@@ -47,14 +47,14 @@
| 代号 | item_id | 一句话 | 写哪笔系统资源/时点 | 解锁(迭代 22 实态) | 效果实现 |
|---|---|---|---|---|---|
| 双管装填 | twin_loader | 每战前 2 轮各 +1 AP | AP 池/轮始 | 钥石 25 provisional | 订阅行 round_start→grant_ap |
| 远程镐 | ranged_pick | 挖掘距离 +1(可挖距英雄 2 格的格) | 可达性规则/常时 | 条件:生涯通关 ≥1 provisional | 参数面 dig_range_bonus |
| 远程镐 | ranged_pick | 挖掘距离 +1(可挖距英雄 2 格的格) | 可达性规则/常时 | 条件:生涯冒险成功 ≥1 provisional | 参数面 dig_range_bonus |
| 刷新执照 | refresh_license | 商店免费刷新 +2/店 | 商店刷新计数/进店时 | 条件:Boss 击杀 ≥3 provisional | 参数面 shop_refresh_bonus |
### 稀有档(2 件)
| 代号 | item_id | 一句话 | 写哪笔系统资源/时点 | 解锁(迭代 22 实态) | 效果实现 |
|---|---|---|---|---|---|
| 天眼 | sky_eye | 每关一次:选 3×3,危险格显示且安全格直接开 | 真视+开格复合/主动 | 条件:通关 ≥3 且 Boss 击杀 ≥4 provisional | reveal_tiles+safe_dig(关卡级充能;安全格开格按普通挖格全额兑付免 AP——C5 裁) |
| 天眼 | sky_eye | 每关一次:选 3×3,危险格显示且安全格直接开 | 真视+开格复合/主动 | 条件:冒险成功 ≥3 且 Boss 击杀 ≥4 provisional | reveal_tiles+safe_dig(关卡级充能;安全格开格按普通挖格全额兑付免 AP——C5 裁) |
| 信标网络 | beacon_network | 封印不限相邻(可对任何未开格封印) | 封印的可达性规则/常时 | 条件:真视类工具累计使用 ≥10 provisional(vision_used 生涯计数域) | 参数面 flag_range_free |
## 设计骨架(可设计方向 × 代价空间)
+3 -3
View File
@@ -42,7 +42,7 @@
存档 → 冒险 → 关卡(关卡画面 = 节点图选路常驻枢纽) → 【战斗屏】
├─ 胜利 → 返回关卡画面选下一节点(落地奖励/恢复节点时开节点覆盖层确认 → 下一场战斗屏)
├─ 胜利(末节点 Boss)→ 关卡结算(level_clear,spec:[level-clear.md](level-clear.md))→ 下关
└─ 失败 → 冒险终结 → 返回存档/营地
└─ 失败 → 冒险落幕 → 返回存档/营地
```
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(独立屏的常驻枢纽形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 紫赤描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。
@@ -69,7 +69,7 @@
|---|---|---|
| 关卡画面(选路枢纽) | 敌方全灭(战斗结算判定段 verdict=win)且非末节点 | 不可逆:battle_over 已发生,RAP 清零;落地奖励/恢复节点时开节点覆盖层确认(NodeOverlay,关卡画面域) |
| 关卡结算 | Boss 战胜利 → level_clear(spec:[level-clear.md](level-clear.md)) | 不可逆:~~关卡收束清库义务载体 = 秘宝背包~~(秘宝过渡形态〔关卡域库存/局内两步使用〕已随迭代 11 第①批退役——现行形态 = 营地同调装配、整局冒险生效,无关卡域清库面〔旧关卡域库存 treasure_inventory 为投放渠道全退役后恒空的机械惰性承载,拆线归实装批——见战斗结算「轮次生命周期」节注〕,见秘宝.md) |
| 冒险终结 | 主角 HP=0(verdict=lose) | 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性) |
| 冒险落幕 | 主角 HP=0(verdict=lose) | 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性) |
| 无中途退出 | — | MVP 不设战斗内放弃/暂停菜单(回合制无时间压力;如需暂停留 Playtest 诊断按钮,调试用) |
---
@@ -250,7 +250,7 @@
| 结算明细带 | ~~展开回看~~(已随 P-C7 退役——带保留单行摘要,回看归「生涯」) | —— | —— | —— |
| 状态小图标(B 区站桩) | 悬停 | hover | 状态 tooltip(来源+语义+剩余结算次数) | 只读 |
| 胜利 overlay | 下一节点 | 左键 | → 关卡画面(选路枢纽)/ 关卡结算(末节点) | LevelRunner 推进 |
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险终结 |
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险落幕 |
**单意图帧纪律**(排雷玩法×6⑥):一帧内 collected 意图整批提交,stop 点击终结当帧收集;F4 语义序仲裁为防御性兜底。悬停预承诺三态光标:移动(箭头)/挖(镐)/封印(印记形)——左键双义(移动 vs 挖)的消歧完全依赖格态一瞥可辨 + 光标区分(误挖不可逆的感知保险)。
+13 -13
View File
@@ -15,8 +15,8 @@
一句话目的:**让「打穿了一关」的收束感落在一笔算得清的账上,并把「这关带我变强」变成玩家自己做的决定。**
- 专长三选一承载局内成长的选择权:候选 = 纯专长(通关渠道只出专长——迭代 15② 渠道分离)、点选一件兑付、另两件丢弃不可反悔
- 部分回血承载收束反馈:通关不再自动回满,回血量一眼可读(满血回 0 合法)
- 专长三选一承载局内成长的选择权:候选 = 纯专长(关卡完成渠道只出专长——迭代 15② 渠道分离)、点选一件兑付、另两件丢弃不可反悔
- 部分回血承载收束反馈:关卡完成不再自动回满,回血量一眼可读(满血回 0 合法)
- 钥石增量**不在本屏**(迭代 10 起):Boss 击杀进账时刻的钥石增量行已迁战斗总结结算([settlement-summary.md](settlement-summary.md) v1.1)——单一展示面原则,本屏不重复
若此屏缺失或难用:奖励选择沦为无声的自动发放(选择权缺失);三选一停点不可中断则续玩丢选择。
@@ -28,16 +28,16 @@
| 时刻 | 载体(目标形态,迭代 10 实装) | 呈现内容 |
|---|---|---|
| Boss 战胜利(非末关) | 战斗总结结算([settlement-summary.md](settlement-summary.md))→ 确认后进**本屏** | 战利品行含钥石增量行 → 本屏:部分回血反馈 + 三选一三卡 |
| 非末关通关(本屏默认态) | 三选一覆盖层(curio_pick_overlay——与奖励节点共用面) | 部分回血兑付行 + 三张专长选项卡(点选+确认+兑付反馈) |
| 末关通关 / 失败 / 放弃 | 冒险结算(复用战斗终局 overlay) | 冒险摘要五件事 + 钥石入账明细——**相邻域**(冒险终结面,非本屏职责) |
| 非末关完成(本屏默认态) | 三选一覆盖层(curio_pick_overlay——与奖励节点共用面) | 部分回血兑付行 + 三张专长选项卡(点选+确认+兑付反馈) |
| 末关完成 / 失败 / 放弃 | 冒险结算(复用战斗终局 overlay) | 冒险摘要五件事 + 钥石入账明细——**相邻域**(冒险落幕面,非本屏职责) |
## Navigation Position
```
战斗屏 ──胜利(末节点 Boss)──▶ 战斗总结结算(GP/钥石增量行)──确认──▶ 【关卡结算(level_clear)】
├─ 非末关:回血反馈 + 三选一点选兑付 → 下一关开始(→ 关卡画面选路)
└─ 末关通关:直通冒险结算(相邻域)→ 返回存档/营地
失败不经本屏(战斗屏失败分支直达冒险终结)。
└─ 末关完成:直通冒险结算(相邻域)→ 返回存档/营地
失败不经本屏(战斗屏失败分支直达冒险落幕)。
```
- 上游屏:战斗总结结算(Boss 胜利确认——settlement-summary.md v1.1)
@@ -59,7 +59,7 @@
1. **三张提升选项卡**(第一注视点):件名称 + 一行效果读数(值读冒险表)——选择型奖励的本体;已达次数上限的件不出现(剔牌库在先);候选 = 纯专长(迭代 15② 渠道分离——原六种池抽三与秘宝件直显分别随迭代 12 TP0/迭代 11①退役)
2. **部分回血兑付行**:回血量(前后生命读数,如「生命 34 → 42」);满血回 0 时呈「生命已满」反馈而非 0 字样
3. **兑付反馈**(确认后):选中件效果一行(如「攻击 +1」)+ 另两件已丢弃提示
4. ~~同调位替换子交互~~(已随渠道退役:秘宝件自迭代 11① 起不再入三选一池、通关候选 = 纯专长,本屏无道具件候选——替换子交互不于本屏触发;同调装配归营地)
4. ~~同调位替换子交互~~(已随渠道退役:秘宝件自迭代 11① 起不再入三选一池、关卡完成候选 = 纯专长,本屏无道具件候选——替换子交互不于本屏触发;同调装配归营地)
**禁入清单**(两铁律推导):战斗小循环数据(结算明细、状态效果——留在战斗屏);GP(呈现位已拍板 = 战斗总结结算 + 关卡画面常驻);**钥石增量与累计**(迭代 10 起归战斗总结结算增量行 + 冒险总结结算收束明细——本屏零钥石元素);营地界面全量;冒险摘要五件事(末关时由相邻域冒险结算屏承载);已达上限件(不出现在候选)。
@@ -67,10 +67,10 @@
| State | Trigger | What Changes |
|---|---|---|
| 三选一选择态(默认) | 非末关通关,候选已抽定 | 三卡呈现(零自动推进)→ 点选 → 确认 → 兑付反馈 → 继续 |
| ~~同调位替换子态~~ | ~~点选秘宝件且库存满位~~ | 已随渠道退役(秘宝件出池、通关候选 = 纯专长——本屏无道具件候选) |
| 三选一选择态(默认) | 非末关完成,候选已抽定 | 三卡呈现(零自动推进)→ 点选 → 确认 → 兑付反馈 → 继续 |
| ~~同调位替换子态~~ | ~~点选秘宝件且库存满位~~ | 已随渠道退役(秘宝件出池、关卡完成候选 = 纯专长——本屏无道具件候选) |
| 兑付反馈态 | 确认兑付后 | 选中件效果一行 + 丢弃提示 → 继续钮点亮 |
| 末关通关 | level_clear 且末关 | 直通冒险结算——不发三选一与回血(奖励只朝下一战生效);本屏不出现 |
| 末关完成 | level_clear 且末关 | 直通冒险结算——不发三选一与回血(奖励只朝下一战生效);本屏不出现 |
| Boss 入口语境 | 击杀 Boss(恒为本屏入口前置) | 入口演出归战斗屏;钥石增量行归战斗总结结算——本屏不另设 |
## Interaction Map
@@ -102,11 +102,11 @@
## Acceptance Criteria
- [ ] 非末关通关必经本屏:三选一恰呈现一次(零自动推进)、点选后恰兑付一件(重复兑付被拒)、未选项零生效
- [ ] 非末关完成必经本屏:三选一恰呈现一次(零自动推进)、点选后恰兑付一件(重复兑付被拒)、未选项零生效
- [ ] 三候选读数可见且与 bonus_pick 载荷一致(件名称 + 效果行值);同种子同三候选
- [ ] 部分回血兑付行可见且封顶上限;满血回 0 呈合法态文案
- [ ] ~~同调位替换子交互~~(已随渠道退役——本屏无道具件候选,见 Information Hierarchy 第 4 条注)
- [ ] 末关通关分支正确直通冒险结算(不发三选一与回血),冒险摘要五件事完整
- [ ] 末关完成分支正确直通冒险结算(不发三选一与回血),冒险摘要五件事完整
- [ ] 确认前冒险状态冻结(无后台推进、无战斗事件串扰);选择停点中断 → 续玩已选不丢失(**候选一致性=停点快照承载的实现现状、非验收义务**——2026-10-01 用户裁决)
- [ ] 呈现遵循 HUD框架 可访问性基线(对比 ≥4.5:1、字号下限、纯鼠标可完成;减动效 = 静态化)
- [ ] 本屏零钥石元素、零 GP 元素(禁入清单机检随冒烟断言)
@@ -114,7 +114,7 @@
## Open Questions
1. **GP 增量展示面归属——已完成(2026-09-27 用户拍板)**:战斗胜利出现战斗总结结算、展示获得的资源(GP 增量+总量;迭代 10 起追加 Boss/精英钥石增量行);战斗失败出现冒险总结结算、确认后回存档首页。本屏不承载 GP 与钥石,无遗留。两面呈现 spec:[settlement-summary.md](settlement-summary.md) v1.1
2. **末关分支形态**:末关通关时直通冒险结算(现行维持)——随完整屏形态实装批一并定
2. **末关分支形态**:末关完成时直通冒险结算(现行维持)——随完整屏形态实装批一并定
3. **钥石呈现三面化——已完成(迭代 10 契约 6 推荐案)**:战斗总结结算(Boss/精英击杀增量行)+ 冒险总结结算(收束明细)+ 营地存量——「进账时刻 / 收束明细 / 存量可用」不同义不构成重复展示;本屏旧「钥石增量+累计」呈现随大奖励重构退役
4. **视觉终稿**:以表现层样张过审为前置(待办清单登记);本 spec 的 AC 为功能性判据,不含视觉终稿判据。**本批渲染层验证冻结(用户 2026-10-01)**——实装后目检清单顺带交付,实机目检待用户批准后补闸
5. **替换子交互视觉形态——已随渠道退役**:秘宝件出池后本屏无道具件候选,替换子交互不于本屏触发(原功能性判据留档)
+5 -5
View File
@@ -39,7 +39,7 @@
├─ 选奖励/恢复节点 → 节点覆盖层(NodeOverlay,本屏域内弹出)
├─ 选商店节点 → 商店覆盖层(本屏域内弹出)
└─ Boss 胜利 → 关卡结算(level-clear.md)→ 下一关开始 → 回本屏
放弃冒险(任意选路停点)→ 冒险终结 → 返回存档/营地
放弃冒险(任意选路停点)→ 冒险落幕 → 返回存档/营地
```
- 上游屏:关卡结算确认(下一关开始)或冒险开始
@@ -90,7 +90,7 @@
**布局决策 2 —— 图上直接点击选路(2026-09-27 拍板)**:候选节点的亮金描边本身是可点目标,悬停预承诺(pattern 4)后点击即提交——**候选按钮整列退役,图上点击为唯一提交通道**。实装注记:route_overlay.gd 现行候选按钮列与 `press_candidate` 探针入口随实装批拆除改造(图上命中换整图公式族命中),ui_click_probe 选路段同步改写。
**布局决策 3 —— 放弃冒险二次确认(2026-09-27 拍板)**:放弃 = 整局冒险终结,不可逆(pattern 7 破坏性确认)。首击转入确认态(按钮文案变「再点一次确认放弃——不可逆」,危险红边框脉冲约 3 秒,超时回落),二击才提交。代价语义(已获大奖励保留、同失败结算)常驻按钮文案。
**布局决策 3 —— 放弃冒险二次确认(2026-09-27 拍板)**:放弃 = 整局冒险落幕,不可逆(pattern 7 破坏性确认)。首击转入确认态(按钮文案变「再点一次确认放弃——不可逆」,危险红边框脉冲约 3 秒,超时回落),二击才提交。代价语义(已获大奖励保留、同失败结算)常驻按钮文案。
**布局决策 4 —— 底部状态栏(2026-09-27 拍板,原提案为顶栏 HP 读数)**:底栏作为状态展示——生命、属性、本关已选加成三项常读;顶栏保持关卡名 + GP 两件。单一展示面注记:与 [battle.md](battle.md) C 区「奇物列表(预留)」为不同屏的不同展示面——两屏循环口径各自独立(选路规划消费 vs 战斗内决策消费),不构成同屏重复。
@@ -136,7 +136,7 @@
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|---|---|---|---|---|
| 候选节点(图上,唯一通道) | 提交选路 | 左键 | 悬停预承诺(描边加粗 + 通道增亮 + 指针)→ 点击本屏关闭 | `route_chosen(node_id)` → `LevelRunner.pick_next_node`——到达即兑付,无进入前确认步 |
| 放弃冒险按钮 | 终结整局冒险 | 左键(二击提交——首击转确认态,2026-09-27 布局决策 3) | 危险红族反馈 | `abandon_requested` → 组合根走冒险终结(同失败结算——已获大奖励保留) |
| 放弃冒险按钮 | 终结整局冒险 | 左键(二击提交——首击转确认态,2026-09-27 布局决策 3) | 危险红族反馈 | `abandon_requested` → 组合根走冒险落幕(同失败结算——已获大奖励保留) |
**零自动推进纪律**(关卡节点地图 定稿):本屏是唯一的行进发起口——不选就停在图上;没有任何定时、默认或顺延的自动前进路径。兑付后确认挂各兑付面(战斗总结结算〔settlement-summary.md〕/ 节点覆盖层 / 商店覆盖层离开动作),本屏不重复确认步。
@@ -152,7 +152,7 @@
| 生命读数 | `runner.hero_hp` / `runner.effective_max_hp()`(跨战斗生命携带) | Read | 已拍板(2026-09-27):底栏状态栏承载 |
| 属性与本关加成 | `runner.effective_atk() / effective_ac() / effective_max_hp()` 与 `bonus` 统一冒险加算区(锻造/大奖励/商店购买/节点奖励同账) | Read | 已拍板:底栏承载;无推送信号——组合根打开本屏 / 兑付确认回执后重查(命令式刷新纪律,同行动经济) |
| 选路提交 | LevelRunner | **Write** | 唯一写路径 = `route_chosen` → 组合根 → `pick_next_node`;本屏零其他写面 |
| 放弃请求 | 组合根 | **Write** | `abandon_requested` → 冒险终结流程(归冒险结构) |
| 放弃请求 | 组合根 | **Write** | `abandon_requested` → 冒险落幕流程(归冒险结构) |
**架构注记**:与 battle.md 同族——UI 不拥有任何游戏状态,全部读经核心只读面,全部写经组合根;呈现层直接订阅的推进信号属 HUD框架 已锁两线之一(战斗结算明细流水 + 关卡节点地图推进信号)。
@@ -206,7 +206,7 @@
- [ ] 图上点击为唯一选路提交通道(候选按钮退役,2026-09-27 拍板);悬停预承诺反馈可见;ui_click_probe 选路段随实装批改造后全绿
- [ ] 底部状态栏三组读数可见且与 runner 现值一致(生命当前/上限、攻击/AC 有效值、本关加成增量——零加成隐藏);兑付确认返回后读数刷新
- [ ] 放弃按钮仅冒险模式可见(调试两层不可达);单击不提交、确认态超时回落、二击才终结(已拍板)
- [ ] 放弃后走冒险终结(同失败结算),已获大奖励保留语义可见
- [ ] 放弃后走冒险落幕(同失败结算),已获大奖励保留语义可见
**模态与测试**
+2 -2
View File
@@ -2,11 +2,11 @@
> 状态:v2.9(池与交互形态同 v2.4;档名对齐四级档位框架、配额对齐现行结构锚)
> 事实源:`game/presentation/views/curio_pick_overlay.gd`(三选一覆盖层共用面)+ `main.gd`(奖励节点分支——`adventure.node_bonus_candidates/apply_node_bonus`)+ `battle_narrator.gd`(node_bonus_header)
> 相邻:[level-clear](level-clear.md)(通关三选一面——同一覆盖层的另一上下文)/ [level-map](level-map.md)(关卡画面)/ [秘宝](../systems/跨局循环/秘宝.md)(道具件内容权威——本批起为局外同调件,不再入三选一牌库)/ [冒险结构](../systems/冒险循环/冒险结构.md)(共享池令牌库账本)
> 相邻:[level-clear](level-clear.md)(关卡完成三选一面——同一覆盖层的另一上下文)/ [level-map](level-map.md)(关卡画面)/ [秘宝](../systems/跨局循环/秘宝.md)(道具件内容权威——本批起为局外同调件,不再入三选一牌库)/ [冒险结构](../systems/冒险循环/冒险结构.md)(共享池令牌库账本)
## 定位
奖励节点(reward node)到达即开的**提升三选一选择面**:**七种×档位**令牌池(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件 × 普通/优秀/稀有(+传说头奖位留空)——v2.2 起秘宝件随同调批退役出池;v2.4 起=固定配额令牌池;刷新件随迭代15② T6 入池〔优秀档 2,恢复件同批挤占收窄——adventure_table CURIO_KINDS 第七类〕),与商店货架同库同账(v2.3)、同池耗语义、同 reward_pick 封闭流。**通关三选一自迭代 15② 渠道分离起候选 = 纯专长,与本面不再同池**;与通关面的差异另在上下文:无部分回血、无钥石增量行,兑付后「继续」回图选路(不推进关卡)。
奖励节点(reward node)到达即开的**提升三选一选择面**:**七种×档位**令牌池(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件 × 普通/优秀/稀有(+传说头奖位留空)——v2.2 起秘宝件随同调批退役出池;v2.4 起=固定配额令牌池;刷新件随迭代15② T6 入池〔优秀档 2,恢复件同批挤占收窄——adventure_table CURIO_KINDS 第七类〕),与商店货架同库同账(v2.3)、同池耗语义、同 reward_pick 封闭流。**关卡完成三选一自迭代 15② 渠道分离起候选 = 纯专长,与本面不再同池**;与关卡完成面的差异另在上下文:无部分回血、无钥石增量行,兑付后「继续」回图选路(不推进关卡)。
## 布局与交互
+3 -3
View File
@@ -9,7 +9,7 @@
本 spec 承载两个**已实装**的结算总结呈现面(2026-09-27 用户拍板定名,接线登记待办清单状态记录):
- **战斗总结结算**——冒险模式普通战斗胜利时的总结覆盖层(战斗小循环的出口呈现);
- **冒险总结结算**——冒险终结(倒下 / 末关通关 / 放弃)时的终局覆盖层(冒险大循环的收束呈现)。
- **冒险总结结算**——冒险落幕(倒下 / 末关完成 / 放弃)时的终局覆盖层(冒险大循环的收束呈现)。
两面是两个循环层级的事,各成一节互不混写。本 spec 纯呈现:不定义任何机制,数据锚与归属全部指路上游文档。
@@ -21,9 +21,9 @@
- 数据锚:增量 = `battle_finished` 载荷 `gp_dropped`;总量 = runner.gp 现值(LevelRunner 入账先于呈现连接——次序依赖在案,M-1 迭代 2 T5 接线)。
- 出口:「下一节点」→ 关卡画面选路(零自动推进)。
## 冒险总结结算(冒险终结面)
## 冒险总结结算(冒险落幕面)
- 触发:主角倒下(verdict=lose)/ 末关通关 / 玩家放弃——三结局同面(`adventure_finished` 收束)。
- 触发:主角倒下(verdict=lose)/ 末关完成 / 玩家放弃——三结局同面(`adventure_finished` 收束)。
- 载体:与战斗面同一个 battle_end_overlay(2026-09-29 迭代 6 T7 接线)——末关通关走 `open_victory`(金蜡封 +「本局 GP 入账 · 合计 N」行,GP 收束清零前的呈现侧影子账);倒下 / 放弃走 `open_defeat`(暮蓝)。无独立「冒险终局面板」实体,待办清单状态记录旧称随本条完成。
- 呈现内容:冒险摘要五件事(定义归[冒险结构](../systems/冒险循环/冒险结构.md))+ 钥石写入明细(= 本局逐杀 Boss 掉落合计;消费归[元进度](../systems/跨局循环/元进度.md) settle_adventure——迭代 10 起大奖励面不再产钥石)+ GP 合计行。
- 出口:确认 → 回存档首页。
+6 -3
View File
@@ -35,9 +35,10 @@
| 停手 / 转存率 | 主动结束本轮的动作 / 停手时行动点转入 RAP 的比例(现役 1:1,可被秘宝改写) |
| GP | 冒险内的一次性货币:局内获取与消费、冒险结束清零、不入存档(GP 是唯一正式命名,「金币」全库禁用,2026-10-18 用户裁) |
| 钥石 | 跨局持久货币:关卡大奖励与 Boss 掉落入账、存档持久、营地柜台消费(见[元进度](systems/跨局循环/元进度.md)) |
| 通关 | **打通整局冒险**(三关全通)——与「通过关卡」非同义词(2026-10-11 用户裁定);计数器=adventure_cleared |
| 通过第 N 关 | 打通第 N 关卡;计数器=每关通关次数表(level_clear_counts) |
| 三选一 | 奖励呈现形式:从池中抽三件选一(奖励节点/Boss 通关/商店三处触发;可消费刷新次数重抽) |
| 关卡完成 | 打通第 N 关(全称「通过第 N 关」);计数器=每关完成次数表(level_clear_counts)。「通关」已退役——单关=关卡完成、整局=冒险成功,2026-10-26 用户裁主体明确短语族替代歧义单义词 |
| 冒险成功 | 打通整局冒险(三关全通;冒险落幕的胜利结局);计数器=adventure_cleared |
| 冒险落幕 | 一局冒险的终结统称(冒险成功/倒下/放弃三态之一);呈现面=冒险总结结算 |
| 三选一 | 奖励呈现形式:从池中抽三件选一(奖励节点/Boss 关卡完成/商店三处触发;可消费刷新次数重抽) |
| 补给 | 奇物三分类之一:给某一笔系统资源做一次性加仓的凭证件(刷新券/储备金袋/时沙/小 GP 袋/应急口粮),到手即结算、加完消尽。定义见[奇物](systems/冒险循环/奇物.md) §1.3。2026-10-19 由原名「资源」改定——原类名与系统资源同词 |
| 盲赌 | 在无法推理的格子上不靠信息直接挖开的决策;信息类道具的价值=减少盲赌次数 |
@@ -159,6 +160,8 @@
| 轻闸 / 重闸 / 三查 | (随 2026-10-22 频率规则消亡,无替代词——检出工作区零测试;卡内只测自己改的东西;全量只在收尾与合回两个时机。机制词「去重闸」含「重闸」二字但与此无关,不在退役之列) |
| 魔法道具 | 秘宝(2026-10-26 用户裁入表:AUXILIARY_ITEMS 旧中文规范名,2026-10-05 已更名) |
| 罕见(档位名) | 稀有(2026-10-26 用户裁入表:旧三档档位名,现行四级第三档=稀有;散文形容词义不受限) |
| 通关 | 关卡完成(单关)/冒险成功(整局)——2026-10-26 用户裁:主体明确短语族替代歧义单义词 |
| 冒险终结 | 冒险落幕——2026-10-26 通关口径统一批 |
## 对外命名纪律(玩家可见命名,2026-10-11 用户令)
+8
View File
@@ -81,6 +81,11 @@ RETIRED_TERMS = [
# (档名映射见 adventure_table.gd 头注)——散文形容词义的「罕见」人工判读,不算档位名残留。
("魔法道具", "2026-10-05", "秘宝(AUXILIARY_ITEMS 中文规范名)", "消歧更名批;2026-10-26 用户裁入表防再犯(旧词残留清扫批)"),
("罕见", "2026-10-26", "稀有(四级档名第三档——旧三档名换代);散文形容词义人工判读", "档位旧名退役(旧词残留清扫批 2026-10-26 用户裁入表)"),
# —— 通关口径统一批(2026-10-26 用户裁):权威=design/gdd/术语表.md「退役词对照」——
# 主体明确短语族替代歧义单义词:单关=关卡完成、整局=冒险成功、终结统称=冒险落幕。
# 「」引语内的「通关×」是 UI 引语(玩家可见字样另按对外命名纪律裁),见 TERM_CONTEXT_EXEMPT。
("通关", "2026-10-26", "关卡完成(单关)/冒险成功(整局)", "通关口径统一批——主体明确短语族替代歧义单义词(2026-10-26 用户裁)"),
("冒险终结", "2026-10-26", "冒险落幕", "通关口径统一批——终结事件词随批换代"),
]
DEFAULT_DIRS = ["design/gdd", "design/art"]
@@ -143,6 +148,9 @@ TERM_CONTEXT_EXEMPT = {
# 拔旗(2026-09-19 退役「旗无移除手段」):待办清单「件派生动词白名单」条目说的是
# 「将来件池 ≥30 种后可能开放的第三盘面动作」,是待评估的设计意图而非在用机制。
"拔旗|撤旗": re.compile(r"件派生动词白名单|第三盘面动作|非信息类"),
# 通关(2026-10-26 退役):「」引语内的「通关×」是 UI 引语——玩家可见字样不属本闸管辖
# (另按对外命名纪律单独裁),不算正文残留。
"通关": re.compile(r"「[^」]*通关[^」]*」"),
}
# 行级白名单信号:命中任一即归"留档类"(变更记录类词面不入白名单——此类节自 2026-10-19
+9 -9
View File
@@ -10,7 +10,7 @@
> **✅ 已核销(2026-10-14)**:用户实机目检回报完成,未呈报问题(qa 收尾批)——下五项同批核销。
- **Boss 专长三选一呈现**:非末关通关停点候选=全专长新 29 件(按档配比加权——普通打底/稀有稀缺);旧「提升三选一」属性件不再出现于通关渠道;回血读数照旧随载荷。
- **Boss 专长三选一呈现**:非末关完成停点候选=全专长新 29 件(按档配比加权——普通打底/稀有稀缺);旧「提升三选一」属性件不再出现于关卡完成渠道;回血读数照旧随载荷。
- **曝光槽三卡观感**:奖励节点/商店三选一=2 格全池+1 格优秀档以上子池(子池空回退全池);新凭证四件(储备金袋/同调电池/时沙/完美保险)稀有档投放观感〔**其中两件已于 2026-10-18 用户裁退出本池**:同调电池删除、完美保险改归专长——该项投放观感对这两件不再适用,余储备金袋/时沙仍有效〕。
- **卡面文案与稀有度档位显示**:新 29 件专长 display_name/desc 直读行字段(封印/陷阱风味系命名);四级档位(普通/优秀/稀有/传说)在卡面档位显示位是否正确渲染。
- **同调电池选件面**〔**2026-10-18 整条注销**——观测对象同调电池经用户裁删除,不复存在;注销前状态=核心面 choose_battery_target 已落但呈现层选件窗从未接线,该项「若呈现缺窗则登记缺陷」的使命随件删终止〕:拾取同调电池后的充能分配交互(choose_battery_target 核心面已落,呈现层选件窗=本批登记观测——若呈现缺窗,登记缺陷回反哺点)。
@@ -87,7 +87,7 @@
### ⑨ 真人批试玩指引(验收重测批修正锚,2026-09-19 立项——照此单试玩即可)
**怎么玩**:开始界面前把天赋加成清零(基线档 = atk+0%/hp+0%,即"零永久天赋"原始状态),然后正常打 3–5 局。种子不用记——日志按局自动落盘,事后由分析工具取数。打第一关还是两关都行,通关与否都有效。
**怎么玩**:开始界面前把天赋加成清零(基线档 = atk+0%/hp+0%,即"零永久天赋"原始状态),然后正常打 3–5 局。种子不用记——日志按局自动落盘,事后由分析工具取数。打第一关还是两关都行,成功与否都有效。
**局中留意什么**(对号入座 ①–⑧;不用刻意记数,体感即可):
1. **Boss 战节奏**(①,最高优先):打不打得动、拖了几轮、恢复点够不够用;
@@ -98,7 +98,7 @@
6. **刷新冲动**(⑦基线复核):有没有"想换一张图"的时刻?觉得刷新 1 行动点贵不贵?
7. **速杀自察**(⑥):打完战斗时图上是不是还剩大半没挖(跳过棋盘直接杀敌的冲动多不多)。
**局后随手记**(一句话即可,事后对日志):每局大概掉了多少血 / 有没有整轮一点血没掉的轮次 / 通关与否 / 有没有"这局特别顺/特别倒霉"的体感(种子体感核对用)。
**局后随手记**(一句话即可,事后对日志):每局大概掉了多少血 / 有没有整轮一点血没掉的轮次 / 成功与否 / 有没有"这局特别顺/特别倒霉"的体感(种子体感核对用)。
**结果回流**:日志取数 → 真人修正系数 k(真人整关承伤中位 ÷ 模拟完美档中位;**正常预期 k>0.5、预警线 k<0.3**——2026-10-03 用户裁)并入 T19 标定报告(落 design/qa/,换代 2026-09-19 判读报告为现行锚);①–⑤ 体感按各条目的回流位分流。
@@ -111,7 +111,7 @@
- **逐行结算演出复验**:完全退出游戏后重启(减动效开关在启动时加载——首轮目检「零动画」系该开关遗留开启,已翻回),战斗停手看轮末结算是否一行一行滚出(弹道/受击闪白/伤害数字逐行)。机制系迭代 8 已落地(排播队列 0.3/0.22s),非迭代 10 事项;若重启后仍无演出再报 bug 批。
- **道具件卡片直显复验**:三选一抽到秘宝件时,卡片应直显「秘宝 / 探巢摆钟 · 真视 3×3」式具体道具(掷定前置已实装,node-reward.md v2.1)——不再是「随机获得一件」盲选。
- **通关节奏体感**:血回满→20% 部分回血 + 三选一选件后,L2/L3 的紧张度与「这局能走多远」驱动是否成立(读数带内:普通 L1 41.8%/L2 10.2%——体感不满不当场改数,归曲线调参批)。
- **关卡完成节奏体感**:血回满→20% 部分回血 + 三选一选件后,L2/L3 的紧张度与「这局能走多远」驱动是否成立(读数带内:普通 L1 41.8%/L2 10.2%——体感不满不当场改数,归曲线调参批)。
- **钥石节奏体感**:Boss 逐杀掉落(首杀 3/复杀 2/2/3)后营地积累速度明显变慢——元进度产出重标(均值 1.38/3.01)归元进度设计批,体感反馈是其输入。
### ⑪ Boss 图整图变异(贫矿脉)目检项(2026-10-04 全局作用域变异首发批顺带登记——**目检改排:随 UI 优化批之后统一验证**,用户 2026-10-04 裁「先做完 UI 优化再一起验证」)
@@ -172,7 +172,7 @@
### ⑰ 奇物渠道分离与凭证目检(2026-10-05 奇物词族对齐与渠道分离批顺带登记——迭代15②号卡)
- **专长兑付时点(单列检查项——契约①核心)**:关底 Boss 被击败那一刻应弹出通关三选一(候选应全为专长件=卡面只写单件名与效果);**战斗结算面不应出现任何奇物授予**;普通战斗节点打完不给任何奇物。
- **专长兑付时点(单列检查项——契约①核心)**:关底 Boss 被击败那一刻应弹出关卡完成三选一(候选应全为专长件=卡面只写单件名与效果);**战斗结算面不应出现任何奇物授予**;普通战斗节点打完不给任何奇物。
- **凭证目检**:奖励节点/商店偶见「奇物凭证」卡(价与其他商品相当);选中/买下同一时刻应**直接开出一次奇物三选一**(不进持有集、无库存残留);同局第二次买到应正常(限购 1——第三次起不再出现)。
- **商店货架目检**:货架应偶见「应急回复」行(T6 补回复);原吞噬流件「零特性挤卡保底」已随渠道分离退役——货架不再出现替卡行为。
- **红灯信号**:战斗结算后弹奇物;凭证进持有集;货架出现专长单件(非凭证形态);refresh 件写进角色加成区。
@@ -191,7 +191,7 @@
- **入口与开合**:〔入口已换代——迭代 33 卡② 撤主菜单生涯钮后无玩家可见入口,待迭代 34 卡④ 营地笔记本接入;接入前本项验到页内容即可〕点开全屏页、点「返回」回上层(开始层钮可见性随开合正确恢复)。
- **页呈现两类六项**:组一·冒险战绩(冒险总局数 / 通关局数〔括注「三关全通」〕 / 各关通关次数〔一行三关,关名带层号〕 / Boss 首杀〔X/3 关〕 / Boss 总击杀);组二·资源(钥石余额徽)——数值与存档实况一致(对照:玩几局后总局数含放弃与失败、三关全通才计通关)。〔原「属性锻造已购合计」「天赋树已购概览」两观测项随生涯页三投影删除摘除——2026-10-12 用户裁⑧,天赋树实装批顺带〕
- **旧档载入**:v5 现役档(升级前存档)载入后生涯页正常显示,总局数/通关局数从 0 起计(终身计数域 v6 新增,缺省补零),钥石等既有进度原样。
- **旧档载入**:v5 现役档(升级前存档)载入后生涯页正常显示,总局数/冒险成功局数从 0 起计(终身计数域 v6 新增,缺省补零),钥石等既有进度原样。
- **零跳转与局内零入口**:页内除「返回」外无任何前往他处的按钮;冒险进行中(战斗屏/关卡地图屏/状态面板)无生涯入口。
- **对比度与零动效**:页文字亮墨族在深棕底上可读(机检 3 对已入 ui_contrast 闸);开页/关页无过渡动画。
- **红灯信号**:计数与实玩局数对不上(收束入账重复或漏计);旧档载入返回错误或计数域显示异常;页内出现购买/跳转入口;入口在局内可点。
@@ -208,7 +208,7 @@
### ㉑ 秘宝解锁-装配正常流程体验(迭代 22 秘宝体系实现重构落地批顺带登记——2026-10-12)
- **解锁面**:攒钥石→秘宝匣柜台钥石购买(余额不足钮禁用、购买后行板即时刷新为已解锁);条件件进度呈现(远程镐=通关 1 次/刷新执照=Boss 击杀 3 次/天眼=通关 3 且 Boss 4/信标网络=真视使用 10——达标未解锁时开营地/冒险收束即自动入账)。
- **解锁面**:攒钥石→秘宝匣柜台钥石购买(余额不足钮禁用、购买后行板即时刷新为已解锁);条件件进度呈现(远程镐=冒险成功 1 次/刷新执照=Boss 击杀 3 次/天眼=冒险成功 3 且 Boss 4/信标网络=真视使用 10——达标未解锁时开营地/冒险收束即自动入账)。
- **装配面**:槽位=树同调位点亮数(未点亮树=0 槽不能装配);件档≤格档(普通/优秀/稀有递增向下兼容——稀有件装普通格被拒);未解锁件装配钮禁用;满位禁选。
- **生效面抽查**:晨操令/双管装填首轮 AP、阔视野带视野 8→12、巢穴预告开局报雷数 toast、线香单格真视(战斗级一次)、天眼 3×3 安全格直开(关卡级一次)、试炼镐每开 8 安全格自动 AP+1(自动兑付——C 区秘宝槽悬停浮窗看进度 N/8;AP 恰归零时兑付优先、轮不结束)、储备罐停手转存变厚、远程镐距 2 可挖、信标网络任意格封印、刷新练习/刷新执照加仓。(原「HUD 兑换钮积点滑耗」观测点随 2026-10-12 反哺批⑤自动兑付裁决换代)
- **装配不可变**:冒险中无任何换装入口(三选一/奖励节点/战斗内零替换交互——旧替换子交互已拆)。
@@ -342,7 +342,7 @@
| # | 目检项 | 判据 |
|---|---|---|
| 1 | 主菜单三钮观感 | 左列只剩「进入存档/设置/退出游戏」三钮,布局不失衡、无旧钮残留(卡② 目检项) |
| 2 | 选档界面三槽观感 | 从「进入存档」进入:三槽逐行呈现、槽卡只显示摘要三项(钥石/通关局数/冒险总局数),无断点/种子等第四项(卡③ 目检项) |
| 2 | 选档界面三槽观感 | 从「进入存档」进入:三槽逐行呈现、槽卡只显示摘要三项(钥石/冒险成功局数/冒险总局数),无断点/种子等第四项(卡③ 目检项) |
| 3 | 删档确认文案 | 点「删档」先出二次确认窗,文案读顺、取消不删、确认才删且槽就地回空(卡③ 目检项) |
| 4 | 旧档首次启动迁移(可选——开发者向) | 盘上留有旧 `save.json` 时首次启动:旧档内容出现在槽 1(摘要三项=旧档进度),源改名 `.migrated.bak` 留盘,其余两槽呈白板(卡① 附带观察项,push_warning 留痕非玩家面) |
| 5 | 空槽新档链 | 空槽点「新档」→进入营地,槽卡就地翻为有档形态(进档+删档钮) |
@@ -405,7 +405,7 @@
|---|---|---|
| 1 | 棋盘观感逐像素(卡③) | 普通/优秀/稀有档瓦片、封印纹、数字墨族、英雄待机/行走/撞击/挖掘四态与朝向、缩格重排与缺位回退——拆件后同链,与改前零漂移 |
| 2 | 商店(卡④) | 进店货架绘制、刷新(免费额度/付费价)、购买扣款与文案、离店再进店(货架入断点)与改前一致 |
| 3 | 三选一停点(卡④) | 关底通关三选一呈现、刷新钮、空池跳过、专长凭证替换、确认后回血与加算区读数与改前一致 |
| 3 | 三选一停点(卡④) | 关底关卡完成三选一呈现、刷新钮、空池跳过、专长凭证替换、确认后回血与加算区读数与改前一致 |
| 4 | 断点续玩(卡④) | 中途关退出→「继续上局」→停在原节点,GP/生命/道具库存/特性/凭证限购读数一致 |
| 5 | 卡① 指定两项 | 蓄力敌(heavy 技能敌)意图三档观感;同名敌受击闪白与弹道落点落对个体 |
| 6 | 卡① 其余行为面 | 蓄力三档观感分档、战斗结束庆祝浮动不叠加、批量模拟与调试浮窗互斥(连点不并发) |
+1 -12
View File
@@ -9,7 +9,7 @@
- 存在理由已消失:S13 基线键治本已入库(master 37625317,键=文件|规则|函数名,判定=改小/持平不红、仅较登记值恶化判红)⇒ 撤除这 25 条属纯代码改动、不碰基线(但须与拆件同批——单撤会让三处测试直引与探针直读面成片红,见缺口⑤)。
- 撤装置后的实测计数(迭代 37 批内逐卡缺口盘点):只撤 25 条转发属性=adventure_runner 类变量 42→38、公开方法 23 不减;level_runner 类变量 38→30、公开方法 54 不减;board_view 类变量 45→32。结论=单撤装置只还计数债、职责混合零解,撤除必须与拆件同批。
- 本体问题:adventure_runner 现 42 成员/23 公开方法/65 函数/989 行(level_runner 38/54、board_view 45/27 同状——只撤装置到不了阈值),按变化原因数混着七件事(生命周期与状态机/英雄账本与生命/三选一停点兑付/刷新 X 与 Y 双源/断点 schema 写读/呈现事件转发/商店池装配接线),属 God Class+Data Clump;卡④ 只搬数据未搬决策,件的封装是名义的——测试仍从宿主面直改件内多重集(game/tests/unit/core/adventure_feats_test.gd:390-393、feat_vouchers_test.gd:92-93、level_shop_economy_test.gd:1351-1353)。
- 验收面预案要点(迭代 37 批内成文,写卡输入):每新件至少一条真实入口断言(RewardStop 走 start_adventure→通关三选一→选件→断言加算区/池余量/停点态清零;HeroLedger 的 rest 与 heal 封顶走真链;BreakpointSchema 承〔wr2〕三条+ui_click_probe wc2 续玩真链);撤销证明逐单元「回退本批 hunk→断言红→还原复绿」、禁注入式变异;断点 27 键键名/缺省/回退策略逐键冻结;RNG 流名(reward_pick)与消费序零漂移;`tools/gdstyle_baseline.txt` 禁改、计数下降属改善不判红;MC 与基线数据逐项比对是否发起由用户裁(触及存档/RNG/结算面)。
- 验收面预案要点(迭代 37 批内成文,写卡输入):每新件至少一条真实入口断言(RewardStop 走 start_adventure→关卡完成三选一→选件→断言加算区/池余量/停点态清零;HeroLedger 的 rest 与 heal 封顶走真链;BreakpointSchema 承〔wr2〕三条+ui_click_probe wc2 续玩真链);撤销证明逐单元「回退本批 hunk→断言红→还原复绿」、禁注入式变异;断点 27 键键名/缺省/回退策略逐键冻结;RNG 流名(reward_pick)与消费序零漂移;`tools/gdstyle_baseline.txt` 禁改、计数下降属改善不判红;MC 与基线数据逐项比对是否发起由用户裁(触及存档/RNG/结算面)。
- 目标切法(待裁,非结论;各件收编范围=迭代 37 批内按变化原因划界的成文要点):AdventureFlow(留名 adventure_runner;收 state/level_index/levels_total/_runner/_pending_next_level/_last_level_payload 与 start/resume/关序推进/结算受理方法族=状态机+关序推进+结算受理一次)/RewardStop(收停点三态 _curio_pending/_curio_result/_node_curio_pending、刷新双源 _attune_refresh_x/_refresh_stock 与 pick_curio/refresh 族/兑付推进方法族)/CurioDeck(已在册:池与凭证计数已入件)/HeroLedger(收 ledger/run_ledger/_base_override/_override/purchased/keystone/_feats 与 effective_max_hp/apply_rest 等=数值叠加与生命口径)/BreakpointSchema(收 BREAKPOINT_FIELDS 27 键登记的派生段与 _snapshot_breakpoint/_bp_read/`_resume_*` 六小函数=存档格式);呈现转名(`_forward_*` 六件+信号面)下沉装配层。判据=件拥有状态与决策、宿主不留同名数据槽、件→宿主只传值不回调宿主私有族。
- 相关文档:design/engineering/architecture/architecture.md(模块归属表须随拆分登记新件)· design/gdd/systems/表现与支撑/存档序列化.md(断点域契约,27 键冻结面)· 迭代 37 卡④ 契约 1 冻结公开面(commit e5ee4d04),正是本条无法在批内完成的原因(需求卡片已退役,口径见 git 历史)
@@ -639,17 +639,6 @@
---
#### 「通关」与「通过第 N 关」两种口径混用——统一与否待裁(2026-10-18 登记,来源=批次移交)
**实况**:「通关」一词既被用来指「打完一整局冒险」,也被用来指「通过第 N 关」,2026-10-18 实测 design/gdd 内 188 处(此前状态文件记 273 处,口径是全仓)。歧义直接影响难度曲线读数与验收判据的表述——同一个「通关率」两种读法差一个数量级。待裁:是否定单一口径并逐处改写。
- 相关文档:design/gdd/01-核心循环.md 与难度曲线、验收类文档的措辞口径
**改动面**:文档
**状态**:待裁决
---
#### 调试入口写死行必须在发布前删除——game/presentation/main.gd:196(2026-10-18 登记,来源=批次移交)
**实况**:2026-10-16 用户令把调试入口改为恒开,`game/presentation/main.gd:196` 的 `_debug_entry` 现恒为 true、不再读环境变量(2026-10-18 实查该行仍为 `_debug_entry = true` 并带「发布前清」注释;:197 是最顶层浮层角标的可见性赋值)。发布前删掉 :196 这一行即可——角标可见性随门控失效自动隐藏,无第二处改动点。不删的后果:正式包里调试浮层与角标常显。证据=该行代码注释与 2026-10-16 调试入口批的实装记录。**2026-10-25 写卡会话查明+裁点**:现行行号 :199;删行涟漪面=三处钉「恒开令」的既有断言(system_test V2f/ui_click_probe:325/ui_tune_probe:116-126)随发布态换代+验证集清单/README/渲染基线三处随动;用户裁点 D 甲=确认纯删(开发态人工调试 UI 入口同断、CLI 测量面不受影响)。