diff --git a/design/art/art-bible.md b/design/art/art-bible.md index 737dd973..75384d5e 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -81,7 +81,7 @@ ### 2.2 轮末自动战斗结算 -- **主情绪**:延迟兑现的清算爽感——扫雷之因逐行兑现为战果;若 战斗结算/奖励道具经济 落实「完美排雷」类高光兑现(创意风险 #2,待 GDD 定夺),以其为全场喝彩级的最高反馈档 +- **主情绪**:延迟兑现的清算爽感——扫雷之因逐行兑现为战果;若 战斗结算/地图战斗资源 落实「完美排雷」类高光兑现(创意风险 #2,待 GDD 定夺),以其为全场喝彩级的最高反馈档 - **色彩性格**:明度不变,色彩转向金橙主导、饱和拉高;数字色转译为弹道色沿行推进 - **氛围形容词**:酣畅、递进、一气呵成 - **能量**:7/10,随连击爬升 @@ -206,7 +206,7 @@ ### 4.3 biome 色板换皮规则 -**换皮只换四槽,永不变信**。模板按 biome_tag 键索引,棋盘生成产物 `board_biome` 标签直接消费;清单与词表 owner 待 关卡节点地图/地形变异/奖励道具经济,本节只定模板: +**换皮只换四槽,永不变信**。模板按 biome_tag 键索引,棋盘生成产物 `board_biome` 标签直接消费;清单与词表 owner 待 关卡节点地图/地形变异/地图战斗资源,本节只定模板: - `tile_closed` 未开底 / `tile_open` 已开底:L 与饱和同 4.1 硬指标,避禁入色相带 - `wall_ambient` 墙雾氛围 tint:可带主题色相,L≥0.30 @@ -236,9 +236,9 @@ ### 4.6 图标键契约(Icon Key Contract,2026-09-13 冻结) -> **白话**:图标键 = "哪个数据行配哪枚图标"的固定对照表——效果、奖励、格面类型、敌种各自的数据表主键(effect_id / reward_id / cell_type / enemy_id)直接作图标键,一枚键配一枚专属纹样。**本节冻结的是键与通道的分配,不冻结终稿美术**:纹样造型、具体色值、动画帧归格子样张(§1.4)与 asset-spec 批。先行冻结是为了 HUD框架/战斗表现开工不必等美术终稿;映射一经冻结**全局恒定、跨 run 禁重掷**(敌人系统 Rule 8③ 与奖励道具经济 reward_id 键恒定同款纪律),增键走本节修订,禁运行时换图。 +> **白话**:图标键 = "哪个数据行配哪枚图标"的固定对照表——效果、奖励、格面类型、敌种各自的数据表主键(effect_id / reward_id / cell_type / enemy_id)直接作图标键,一枚键配一枚专属纹样。**本节冻结的是键与通道的分配,不冻结终稿美术**:纹样造型、具体色值、动画帧归格子样张(§1.4)与 asset-spec 批。先行冻结是为了 HUD框架/战斗表现开工不必等美术终稿;映射一经冻结**全局恒定、跨 run 禁重掷**(敌人系统 Rule 8③ 与地图战斗资源 reward_id 键恒定同款纪律),增键走本节修订,禁运行时换图。 > -> 承接义务:增益状态×4②(effect_id→icon 映射键契约)· 奖励道具经济×5①(奖励身份恒定可读)· 敌人系统×4①②(敌种图像线索清单成文 + 全局恒定)· 极性提案 §3(类型图标/极性视觉语言)。引用方:HUD框架、战斗表现、教学引导、奖励道具经济库存呈现。 +> 承接义务:增益状态×4②(effect_id→icon 映射键契约)· 地图战斗资源×5①(奖励身份恒定可读)· 敌人系统×4①②(敌种图像线索清单成文 + 全局恒定)· 极性提案 §3(类型图标/极性视觉语言)。引用方:HUD框架、战斗表现、教学引导、地图战斗资源库存呈现。 **通道分配(全键族通用,双通道之"形+色")**: @@ -262,7 +262,7 @@ - **sapped = 极性提案 OQ-3 新增负向行**(提案 §2,已拍板待实施)——**键先冻结,行未入 StatusEffectTable 前禁引用**(增益状态新数据行随提案实施批,悬空引用按 fail-fast 同款纪律处理)。 - 呈现位 = HUD 状态槽(增益状态×4①);堆叠层数呈现归 HUD框架/战斗表现,不入本契约。 -#### 4.6.2 奖励徽章键(奖励道具经济 GDD 默认根八行 = 2026-09-11 两级奖励批登记值) +#### 4.6.2 奖励徽章键(地图战斗资源 GDD 默认根八行 = 2026-09-11 两级奖励批登记值) | 键(reward_id) | category | 徽章语义锚 | 备注 | |---|---|---|---| @@ -273,7 +273,7 @@ | knife_t1 | damage_item(可选) | 刀(基础档) | 刀形 + 档位记号 | | knife_adv | damage_item(可选) | 刀(精工档) | 与 knife_t1 同族、档位可辨——库存常读条并排必须互辨 | | heal_pack | heal_pack(可选) | 治疗包 | 稀缺强治疗(可选治疗唯一形态) | -| clear_knife | damage_item(清图槽) | 清图奖励刀 | **切片批已更替为 clear_blast**(一次性群伤 40,instant_aoe——奖励道具经济 GDD 修订待批);clear_blast 键并列预留,启用随批 | +| clear_knife | damage_item(清图槽) | 清图奖励刀 | **切片批已更替为 clear_blast**(一次性群伤 40,instant_aoe——地图战斗资源 GDD 修订待批);clear_blast 键并列预留,启用随批 | - 即时类四行徽章只在已开格/结算明细呈现(零库存);可选类三件(knife_t1/knife_adv/heal_pack)为库存徽章,互辨性是硬需求。 - 格面预读徽章按**家族类型**(§4.6.3)呈现、不按行(提案 R1"图标呈现家族类型");可选类格图标 = 家族类型 + 道具徽章语言区分(呈现细则归 HUD框架 义务)。 @@ -290,7 +290,7 @@ | weaken | 削弱族 | 钝化/压制(提案新增正向类型) | - **呈现约束(提案 R3,冻结)**:全部未开格呈现类型徽章、不呈现极性、不呈现雷/安——推雷仍是扫雷本征推理;类型分布即先验(提案 R3 拍板),**徽章误读率 = 提案 §4 指标 3**,样张批须做误读抽测。 -- **状态声明**:提案 v3"已拍板待实施"——本契约先行冻结防 HUD框架/战斗表现设计倒挂;weaken 入池、雷格 roll 等机制随提案实施批(奖励道具经济 pool_tag/cell_type/polarity 扩列),键集五值封闭、扩键走本节修订。 +- **状态声明**:提案 v3"已拍板待实施"——本契约先行冻结防 HUD框架/战斗表现设计倒挂;weaken 入池、雷格 roll 等机制随提案实施批(地图战斗资源 pool_tag/cell_type/polarity 扩列),键集五值封闭、扩键走本节修订。 - 与 §4.6.1 的关系:同语义域的键(attack↔attack_up 等)可共族设计,键分立、纹样须可区分(格面小记号级对槽内图标级)。 #### 4.6.4 敌种线索键(敌人系统 Rule 8 契约化;映射键 = enemy_id) diff --git a/design/gdd/00-游戏概念.md b/design/gdd/00-游戏概念.md index f8c235a7..c246e504 100644 --- a/design/gdd/00-游戏概念.md +++ b/design/gdd/00-游戏概念.md @@ -47,16 +47,16 @@ | 专名 | 是什么 | 出处条目 | |---|---|---| -| 显影尘 | 信息类辅助道具 | aux_items | -| 工兵令 | 加行动点的辅助道具 | aux_items | -| 探宝罗盘 | 预读奖励身份的辅助道具 | aux_items | -| 探巢摆钟 | 探知巢穴位置的辅助道具 | aux_items | -| 地穴全图卷 | 全图级稀有辅助道具 | aux_items | -| 爆破工兵包 | 行动点 + 探巢的稀有辅助道具 | aux_items | +| 显影尘 | 信息类魔法道具 | aux_items | +| 工兵令 | 加行动点的魔法道具 | aux_items | +| 探宝罗盘 | 预读奖励身份的魔法道具 | aux_items | +| 探巢摆钟 | 探知巢穴位置的魔法道具 | aux_items | +| 地穴全图卷 | 全图级稀有魔法道具 | aux_items | +| 爆破工兵包 | 行动点 + 探巢的稀有魔法道具 | aux_items | | 地精 / 熊地精 / 食人魔酋长 | 首发三敌种(末者为 Boss) | enemy | | 第一层 · 苔藓回廊 | 首关层名 | level_table | -注意:部分辅助道具的现行效果定义绑定已被移除的地形变异类型,其效果定位待后续内容批重定;名称暂按登记保留,重定时随批修订。 +注意:部分魔法道具的现行效果定义绑定已被移除的地形变异类型,其效果定位待后续内容批重定;名称暂按登记保留,重定时随批修订。 另:元进度资源定名**钥石**——每一层关底 Boss 看守他那块区域的钥石,击杀即取走,用于在存档内解锁永久提升(属性 / 怪物遭遇 / 道具池)。2026-09-14 用户拍板,registry 术语登记随元进度设计批补登。 diff --git a/design/gdd/02-系统清单.md b/design/gdd/02-系统清单.md index b8bd1bf5..8f3cbe9c 100644 --- a/design/gdd/02-系统清单.md +++ b/design/gdd/02-系统清单.md @@ -23,7 +23,7 @@ | `排雷玩法.md` | 挖格、插旗、连锁展开等扫雷规则本体 | 已定稿·自旧体系迁移 | | `行动经济.md` | 每轮行动点怎么花、停手与刷新的代价 | 已定稿·自旧体系迁移 | | `地形变异.md` | 格子的非雾变异(岩浆/冰冻等,待定) | 已定稿·自旧体系迁移 | -| `辅助道具.md` | 扫雷侧辅助道具(显影、探测类) | 已定稿·自旧体系迁移 | +| `魔法道具.md` | 扫雷侧魔法道具(显影、探测类) | 已定稿·自旧体系迁移 | ### 战斗循环(`systems/战斗循环/`) @@ -32,7 +32,7 @@ | `战斗结算.md` | 轮末结算的编排与逐行兑现 | 已定稿·自旧体系迁移 | | `敌人系统.md` | 敌人数据、行为环、意图呈现 | 已定稿·自旧体系迁移 | | `增益状态.md` | 增益/减益状态的容器、叠层与衰减 | 已定稿·自旧体系迁移 | -| `奖励道具经济.md` | 奖励产出、道具库存与使用窗口 | 已定稿·自旧体系迁移 | +| `地图战斗资源.md` | 格面资源的产出、极性字典与清图奖励封装 | 已定稿·自旧体系迁移 | | `战斗表现.md` | 战斗动画与演出(旧体系未单独成文) | 范围草案·待设计 | ### 冒险循环(`systems/冒险循环/`) @@ -65,11 +65,11 @@ | 排雷循环 | 排雷玩法 | `MINESWEEPER_RULES` | a2 | | 排雷循环 | 行动经济 | `ACTION_ECONOMY` | a3 | | 排雷循环 | 地形变异 | `TERRAIN_VARIATION` | a4 | -| 排雷循环 | 辅助道具 | `AUXILIARY_ITEMS` | a5 | +| 排雷循环 | 魔法道具 | `AUXILIARY_ITEMS` | a5 | | 战斗循环 | 战斗结算 | `COMBAT_RESOLUTION` | b1 | | 战斗循环 | 敌人系统 | `ENEMY_SYSTEM` | b2 | | 战斗循环 | 增益状态 | `STATUS_EFFECT` | b3 | -| 战斗循环 | 奖励道具经济 | `REWARD_ITEM_ECONOMY` | b4 | +| 战斗循环 | 地图战斗资源 | `REWARD_ITEM_ECONOMY` | b4 | | 战斗循环 | 战斗表现 | `COMBAT_PRESENTATION` | b5 | | 冒险循环 | 关卡节点地图 | `LEVEL_NODE_MAP` | c1 | | 冒险循环 | 冒险结构 | `ADVENTURE_STRUCTURE` | c2 | @@ -82,6 +82,8 @@ | 表现与支撑 | 教学引导 | `TUTORIAL` | d5 | | 表现与支撑 | 设置与本地化 | `SETTINGS_LOCALIZATION` | d6 | +> 2026-09-16 更名批注记:英文代号 `REWARD_ITEM_ECONOMY`(地图战斗资源)与 `AUXILIARY_ITEMS`(魔法道具)暂沿用更名前名称(代码标识符与工具链口径),与中文名的对齐另批执行。 + > 四个循环本身的英文代号为 `MINESWEEPER_CYCLE`(排雷循环)、`COMBAT_CYCLE`(战斗循环)、`ADVENTURE_CYCLE`(冒险循环)、`PRESENTATION_SUPPORT`(表现与支撑)。 > 旧版参考:`../archive/gdd-2026-09-14/systems-index.md` @@ -92,3 +94,5 @@ |---|---|---| | v0.1 | 2026-09-15 | 根索引随新骨架建立:循环 × 子系统总表 + 子系统命名对照表 | | v0.2 | 2026-09-15 | 雾格残留清理:`地形变异.md` 概要行去掉"雾格已从设计中移除"的迁移期注记(移除事实以[不做清单](05-不做清单.md)为单一出处)。文档树形状不变 | +| v0.3 | 2026-09-16 | 更名批(用户拍板 2026-09-16):两个系统中文规范名更名——"奖励道具经济"→"地图战斗资源"、"辅助道具"→"魔法道具";循环表文件行与命名对照表中文规范名同步(文件重命名 地图战斗资源.md / 魔法道具.md);英文代号暂沿用更名前名称,对齐另批 | +| v0.4 | 2026-09-16 | 格面资源批 UI 欠账收口(2026-09-15 格面资源批删除可选类道具后,本索引与 UX 文档的随批修订):`地图战斗资源.md` 概要行由"奖励产出、道具库存与使用窗口"(格面资源批前旧描述)改为与其 GDD 头部一致的一句话口径"格面资源的产出、极性字典与清图奖励封装";同批收口 battle.md / HUD框架.md 中随可选类道具删除而失义的道具窗口条款(文档本体修订见各文版本历史) | diff --git a/design/gdd/03-内容规模.md b/design/gdd/03-内容规模.md index 1824c091..097f41a8 100644 --- a/design/gdd/03-内容规模.md +++ b/design/gdd/03-内容规模.md @@ -1,6 +1,6 @@ # 内容规模 -一句话体量:**一关、三种敌人、两档棋盘、八种战斗道具、六种辅助道具、六种状态**——刚好撑起一次完整的"扫雷决策 → 战斗兑现"循环,除此之外一律不做。以下数字以 `data/tables/` 实际行数与 `design/registry/entities.yaml` 登记为准。 +一句话体量:**一关、三种敌人、两档棋盘、八种战斗道具、六种魔法道具、六种状态**——刚好撑起一次完整的"扫雷决策 → 战斗兑现"循环,除此之外一律不做。以下数字以 `data/tables/` 实际行数与 `design/registry/entities.yaml` 登记为准。 ## 关卡 @@ -48,7 +48,7 @@ MVP 做到两关:第二层不新造结构,与第一层共用节点链模板 MVP 就这么多:两个增益、两件小救急、两把刀、一个清图大奖。不做道具之间的组合协同。 -## 扫雷辅助道具 +## 扫雷魔法道具 registry 登记 **六种**(数据表未建,属待落地内容):显影尘、工兵令、探宝罗盘、探巢摆钟、地穴全图卷、爆破工兵包——四个常规单功能加两个稀有组合。MVP 不新增第七种。 @@ -80,7 +80,7 @@ MVP 不加新状态。 - 战后自动回复——回复只有道具与恢复点两个来源 - 元进度与跨局成长 - 新敌种、新棋盘档位、更高密度、同深度多敌种混搭 -- 第七种辅助道具、第七种状态 +- 第七种魔法道具、第七种状态 > 旧版参考:../archive/gdd-2026-09-14/gdd.md diff --git a/design/gdd/systems/冒险循环/关卡节点地图.md b/design/gdd/systems/冒险循环/关卡节点地图.md index 4dc34cd0..9a5f1f6b 100644 --- a/design/gdd/systems/冒险循环/关卡节点地图.md +++ b/design/gdd/systems/冒险循环/关卡节点地图.md @@ -12,7 +12,7 @@ ## 系统范围 -边界这样划:链上"有哪些节点"归冒险结构——关卡序列与链模板是它管的关卡表内容;本系统管"在这条链上怎么走、走到每一步发生什么"。战斗内部发生什么归战斗结算与敌人系统,奖励给什么归奖励道具经济。本系统是行进与触发的编排层,自己不生产任何数值。 +边界这样划:链上"有哪些节点"归冒险结构——关卡序列与链模板是它管的关卡表内容;本系统管"在这条链上怎么走、走到每一步发生什么"。战斗内部发生什么归战斗结算与敌人系统,奖励给什么归地图战斗资源。本系统是行进与触发的编排层,自己不生产任何数值。 负责: @@ -30,7 +30,7 @@ |---|---| | 关卡序列与链上有哪些节点(链模板、关数) | [冒险结构](冒险结构.md) | | 关卡大奖励、跨关血量账本、失败重开 | [冒险结构](冒险结构.md) | -| 节点奖励与格面资源的内容语义 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 节点奖励与格面资源的内容语义 | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 战斗内的结算编排、胜负判定、伤害合成 | [战斗结算](../战斗循环/战斗结算.md) | | 敌人表数据、行为环、开战时按坐标生成单位 | [敌人系统](../战斗循环/敌人系统.md) | | 敌我数值曲线与遭遇投放节奏 | [难度曲线与Boss](难度曲线与Boss.md) | @@ -88,7 +88,7 @@ | 名字 | 指什么 | 归属 | |---|---|---| | 节点奖励 | 奖励点节点给的奖励 | 本文域(机制待设计) | -| 格面资源 | 雷图上格子关联的资源对象(安全格与雷格同池携带,极性由动作决定) | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 格面资源 | 雷图上格子关联的资源对象(安全格与雷格同池携带,极性由动作决定) | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 节点奖励覆盖层 | 节点奖励的呈现候选形态 | 呈现侧候选,未定稿 | ## 依赖与输出 @@ -98,7 +98,7 @@ | 方向 | 系统 / 文档 | 接口要点 | |---|---|---| | 上游 / 下游 | [冒险结构](冒险结构.md) | 接口契约四件套(开始关卡 / 战斗结果上报 / 治疗封顶回报 / 关卡结束):向下接开始关卡,向上报战斗结果、恢复请求与关卡结束 | -| 上游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 节点奖励兑付:兑付触发归本文,内容语义归它(库存已随可选类删除下线;未来功能道具的候选渠道之一,见其待拍板) | +| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 节点奖励兑付:兑付触发归本文,内容语义归它(库存已随可选类删除下线;未来功能道具的候选渠道之一,见其待拍板) | | 上游 | [敌人系统](../战斗循环/敌人系统.md) | 遭遇坐标的消费方:本文交出坐标,按坐标生成单位归它 | | 上游 | [难度曲线与Boss](难度曲线与Boss.md) | 敌我数值曲线与遭遇投放节奏的调参所有权 | | 下游 | [战斗结算](../战斗循环/战斗结算.md) | 本文是两个调用入口的发起方:战斗发起组装、关卡收束(清库) | @@ -122,7 +122,7 @@ | 优先级 | 内容 | 后置原因 | |---|---|---| | P1 | 遭遇构成细则(哪个节点放哪种遭遇、数量怎么定) | 依赖敌人表键结构的改键裁决(见待拍板);投放节奏的调参所有权归难度曲线与Boss | -| P1 | 节点奖励机制设计 | 名字已拍板、机制未设计;与奖励道具经济的兑付接口对齐后展开;用户已定方向(2026-09-15)——长周期功能道具经其他渠道加入,节点奖励为候选渠道 | +| P1 | 节点奖励机制设计 | 名字已拍板、机制未设计;与地图战斗资源的兑付接口对齐后展开;用户已定方向(2026-09-15)——长周期功能道具经其他渠道加入,节点奖励为候选渠道 | | P2 | 路径分支地图 | 已拍板后置([不做清单](../../05-不做清单.md)):分支是加分项,当前体量撑不起有意义的岔路 | | P2 | 精英节点与精英遭遇 | 与分支地图联动设计,随精英与 Boss 编码位改键同批 | diff --git a/design/gdd/systems/冒险循环/冒险结构.md b/design/gdd/systems/冒险循环/冒险结构.md index 2fc09cdc..8532b615 100644 --- a/design/gdd/systems/冒险循环/冒险结构.md +++ b/design/gdd/systems/冒险循环/冒险结构.md @@ -31,7 +31,7 @@ |---|---| | 单关内节点行进与兑付触发 | [关卡节点地图](关卡节点地图.md) | | 轮末结算编排与关卡清库接口 | [战斗结算](../战斗循环/战斗结算.md) | -| 节点奖励内容与库存语义 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 节点奖励内容与库存语义 | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 通关率带、敌我数值与 Boss 设计 | [难度曲线与Boss](难度曲线与Boss.md) | | 钥石与跨局成长 | [元进度](元进度.md) | | 摘要结算画面与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) | diff --git a/design/gdd/systems/冒险循环/难度曲线与Boss.md b/design/gdd/systems/冒险循环/难度曲线与Boss.md index c9bf4557..f06c0939 100644 --- a/design/gdd/systems/冒险循环/难度曲线与Boss.md +++ b/design/gdd/systems/冒险循环/难度曲线与Boss.md @@ -32,7 +32,7 @@ | 生成算法与可推理率度量 | [棋盘生成](../排雷循环/棋盘生成.md)(本文只投参数行值,禁反向调用生成) | | 结算规则、伤害合成与护甲克制矩阵本体 | [战斗结算](../战斗循环/战斗结算.md)(本文只投矩阵数值) | | 敌种机制、行为环语义与表结构 | [敌人系统](../战斗循环/敌人系统.md)(本文只投行值) | -| 奖励机制、库存与注入机制 | [奖励道具经济](../战斗循环/奖励道具经济.md)(本文只投权重、威力、注入参数) | +| 奖励机制、库存与注入机制 | [地图战斗资源](../战斗循环/地图战斗资源.md)(本文只投权重、威力、注入参数) | | 关卡序列与节点链结构 | [冒险结构](冒险结构.md)与[关卡节点地图](关卡节点地图.md) | | 元进度解锁内容 | [元进度](元进度.md)(本文只提供换算率接入口) | | 配置表承载与读取机制 | [数据配置](../表现与支撑/数据配置.md) | @@ -95,6 +95,8 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的 | 输出峰值 / 谷值 | 玩家最好 / 最坏一轮的总输出(分量构成同上) | | 一次性伤害 | 清障炸药一类当场引爆的大额伤害 | +护甲等级带宽口径(2026-09-15 护甲等级批):结算换算层引入护甲等级掷点(必中、低掷按档位折扣,规则归[战斗结算](../战斗循环/战斗结算.md))后,受伤与输出两侧的峰值 / 谷值构成各含一条掷点带宽——同一刀的最坏 / 最好掷点落进谷值 / 峰值。掷点按 EV 中性引入:期望伤害对齐现行表值,现行行值不重调;折扣档位与掷点形式定稿前,区间扫描维持"全额无折扣"口径,带宽项随定稿批补扫。"零红档"验收与三档判定式不变。 + 关级通关恒等式:**一关打下来,玩家总输出 ≈ 全关敌方总生命期望 ×(1 + 缓冲);其中奖励侧贡献的输出占比须落在 [15%, 40%] 带内。** ``` @@ -153,12 +155,13 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍 | 联动组 | 对方 | 纪律 | |---|---|---| -| 敌方生命 ↔ 奖励供给 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 单边移动必须走关级通关恒等式的联合检算 | +| 敌方生命 ↔ 奖励供给 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 单边移动必须走关级通关恒等式的联合检算 | | 数量区间 ↔ 棋盘密度与惩罚上限 | [棋盘生成](../排雷循环/棋盘生成.md)、[战斗结算](../战斗循环/战斗结算.md) | 成群行上线前强制复算挖掘风险不等式 | | 密度 ↔ 可推理率 ↔ 生成尝试上限 | [棋盘生成](../排雷循环/棋盘生成.md) | 三元组联动;禁止为难度牺牲可推理率绝对锚 | | 每轮行动点 ↔ 停手转存规模 | [行动经济](../排雷循环/行动经济.md) | 联动评估记录归本文,调参所有权在行动经济 | | 削弱强度 ↔ 当量锚 | [增益状态](../战斗循环/增益状态.md)、[战斗结算](../战斗循环/战斗结算.md) | 联动值禁独立调参,修订须重跑锚对照 | | 护甲类型 ↔ 充能奖励(投桶与量) ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间;改充能的投桶或量属奖励侧改动,须重跑本表数值 | +| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);EV 中性锚定现行表值,掷点形式与档位定稿前禁投值 | 五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收,其中挖掘风险不等式与清图支配性两条的现行验算已破线或存在缺口(现状见其「待拍板」),重跑义务落在本系统的下一次调参批执行——这是本系统当前最优先的调参义务。完美排雷乘数的调参权在本系统。 @@ -173,7 +176,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍 | 上游 | [数据配置](../表现与支撑/数据配置.md) | 全部数值表的承载、加载校验与类型化读取;本文只投值不改结构 | | 上游 | [敌人系统](../战斗循环/敌人系统.md) | 敌人表与主角表的字段语义与回填;本文投曲线行值与数量区间、攻击浮动宽度 | | 上游 | [棋盘生成](../排雷循环/棋盘生成.md) | 棋盘参数表的键与字段语义;本文投参数行值;禁反向调用生成 | -| 上游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 奖励表与奖励配置表的机制与回填;本文投权重、威力、档位、注入参数 | +| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 奖励表与奖励配置表的机制与回填;本文投权重、威力、档位、注入参数 | | 上游 | [战斗结算](../战斗循环/战斗结算.md) | 五条经济契约对账结论是本文的调参约束输入;结算侧数值(充能、矩阵、完美乘数、参考敞口)投值归本文 | | 上游 | [行动经济](../排雷循环/行动经济.md) | 每轮行动点表值的联动观测;调参所有权在对方 | | 下游 | [冒险结构](冒险结构.md) | 关卡序列的难度排布消费期望值带;通关率带是其大奖励与恢复点强度的标定基准 | @@ -241,7 +244,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍 | 克制矩阵 | 克制 150 / 中性 100 / 被克 50 | 消费归[战斗结算](../战斗循环/战斗结算.md) | | 完美排雷乘数 | 200(翻倍) | 调参权本文 | | 当量参考敞口 | 12 | 变更触发全量对账重跑 | -| 注入概率初值 / 衰减 | 0.4 / 0.5(加难候选 0.6) | 注入机制归[奖励道具经济](../战斗循环/奖励道具经济.md) | +| 注入概率初值 / 衰减 | 0.4 / 0.5(加难候选 0.6) | 注入机制归[地图战斗资源](../战斗循环/地图战斗资源.md) | | 清障炸药威力区间 | 25–55(中点 40) | 清图槽当场引爆 | | 状态强度 | 增伤 +50 / 减伤 −30 / 削弱 −65 / 伏击 +3(每层) | 联动评估归本文,禁独立调参 | @@ -270,7 +273,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍 | 第二关深度轴行值未填充 | 第二关仅有 D0 锚行,D1–D4 敌人行与棋盘行待填;这是两关序列生效的前提,填齐前冒险按单关运行(合法态) | 本文,随第二关内容批 | | 第二关的新内容投放缺口 | 曲线规则要求每关至少投放一项新内容;三敌种已全部在第一关登场,原表述中第二关的"解锁新元素"绑定已从设计中移除的机制(见[不做清单](../../05-不做清单.md))——第二关投放什么待定,现行口径填不上 | 本文提案,用户裁决 | | 区间平移换算率数值未定 | "生命上限 +10 ≈ 多撑约 1 轮、攻击翻倍 ≈ 击杀区间约减半"是量级估算(provisional);作为元进度接入口,数值待实测标定 | 随[元进度](元进度.md)定稿 | -| 速杀退化预警阈值未定 | 高加成档速杀低难度行是成长兑现的合法形态、不做修复,但"战斗结束未开资格格占比"预警的阈值与联动调参未定(登记见[奖励道具经济](../战斗循环/奖励道具经济.md)「待拍板」) | 本文调参批 | +| 速杀退化预警阈值未定 | 高加成档速杀低难度行是成长兑现的合法形态、不做修复,但"战斗结束未开资格格占比"预警的阈值与联动调参未定(登记见[地图战斗资源](../战斗循环/地图战斗资源.md)「待拍板」) | 本文调参批 | ## 版本历史 @@ -279,3 +282,4 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍 | v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 | | v0.2 | 2026-09-15 | 教学位掷骰自洽(用户拍板:代码不动、文档对齐):删除"教学位/首遇位固定不掷"豁免口径,教学位地精数量明确为开战掷骰区间 [1,2];D0 行数量列改 [1,2];Boss 血量锚 Σ=153.5 补逐数验算(区间期望口径下闭合) | | v0.3 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的雾相关供给验算失义条目(原供给与对账验算含雾板分层、雾成本负担比等输入分量);第二关新内容投放缺口条目改为引用「已从设计中移除的机制」(见不做清单)。曲线规则、供给带与对账义务不变 | +| v0.4 | 2026-09-15 | **护甲等级批(与战斗结算 / 敌人系统 / registry 同批登记)**:生存链区间模型补记护甲等级掷点带宽口径——峰值/谷值构成各含最坏/最好掷点带宽;EV 中性引入成文(期望伤害对齐现行表值、现行行值不重调,折扣档位与掷点形式定稿前区间扫描维持全额口径、带宽项随定稿批补扫,"零红档"验收与三档判定式不变);调参联动表新增"护甲等级 ↔ 攻击基线 ↔ 区间带宽"一行 | diff --git a/design/gdd/systems/战斗循环/奖励道具经济.md b/design/gdd/systems/战斗循环/地图战斗资源.md similarity index 96% rename from design/gdd/systems/战斗循环/奖励道具经济.md rename to design/gdd/systems/战斗循环/地图战斗资源.md index 687f9b24..3d38e8d7 100644 --- a/design/gdd/systems/战斗循环/奖励道具经济.md +++ b/design/gdd/systems/战斗循环/地图战斗资源.md @@ -1,4 +1,4 @@ -# 奖励道具经济 +# 地图战斗资源 > 一句话:格面资源的产出、极性字典与清图奖励封装 > 状态:已定稿(自旧体系迁移) @@ -6,12 +6,10 @@ ## 设计目的 -奖励道具经济是战斗域的资源层:每张雷图上每个格子携带什么资源、资源怎么摇定、正向与负向各兑付成什么效果、清图时整张板发什么,由它统一裁决。核心抽象是**格面资源(CellResource)**——关联到格子上的资源对象:装板时摇定类型身份,安全格与雷格一视同仁、同一类型池;资源本身不分好坏,被当成奖励还是惩罚,由玩家对这一格做的动作在结算期决定——开安全格、标中雷是正向,开雷格、标错安全格是负向(极性矩阵的定义归本文,路由执行归[战斗结算](战斗结算.md))。开局初始展开白送的那批格是**封锁格**——恒无资源,不再有任何加成(定义见[排雷玩法](../排雷循环/排雷玩法.md))。 +地图战斗资源是战斗域的资源层:每张雷图上每个格子携带什么资源、资源怎么摇定、正向与负向各兑付成什么效果、清图时整张板发什么,由它统一裁决。核心抽象是**格面资源(CellResource)**——关联到格子上的资源对象:装板时摇定类型身份,安全格与雷格一视同仁、同一类型池;资源本身不分好坏,被当成奖励还是惩罚,由玩家对这一格做的动作在结算期决定——开安全格、标中雷是正向,开雷格、标错安全格是负向(极性矩阵的定义归本文,路由执行归[战斗结算](战斗结算.md))。开局初始展开白送的那批格是**封锁格**——恒无资源,不再有任何加成(定义见[排雷玩法](../排雷循环/排雷玩法.md))。 它守住三件事:每个非封锁格都有资源可兑(结构保证,不靠逐次掷运气);类型身份在装板期一次摇定、全程只读(在"数字恒真"的推理之外,类型是第二层规划素材);每个兑付都能在结算明细里指回挖开的哪一格。缺了这一层,挖格没有收益语言,"扫雷攒因、战斗结果"的兑现就断在最后一环。 -(批注:系统名"奖励道具经济"沿袭可选类道具时代,道具已删除,名实不符——更名候选见「待拍板」。) - ## 系统范围 边界这样划:本系统管"资源是什么、身份怎么摇定、正向负向各兑付什么、清图对象怎么配";发奖与兑付的编排归[战斗结算](战斗结算.md),增益本体归[增益状态](增益状态.md),画成什么样归[HUD 框架](../表现与支撑/HUD框架.md)。本系统零界面、除摇号外零随机:同一串操作驱动两个实例,结果逐位相同。 @@ -139,7 +137,7 @@ | 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 权重、档位、威力与池内容的调参所有权(全部 provisional) | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 呈现义务归其:已开格资源身份常读、类型图标预读的呈现深度、结算明细行、清图奖励行强调 | | 下游 | [教学引导](../表现与支撑/教学引导.md) | "读敌拍板、抢类型"教学口径的来源 | -| 下游 | [辅助道具](../排雷循环/辅助道具.md) | 相邻:辅助道具的背包与使用归其管;预读类道具读取本系统的身份查询面 | +| 下游 | [魔法道具](../排雷循环/魔法道具.md) | 相邻:魔法道具的背包与使用归其管;预读类道具读取本系统的身份查询面 | 负空间:本系统不订阅事件、不画界面、除摇号外不用任何随机数;何时调接口、按什么顺序调,全归[战斗结算](战斗结算.md)。库存、道具使用窗口、可选类供给已随可选类道具删除(2026-09-15)整体下线,不再属于本系统。 @@ -204,9 +202,8 @@ | 条目 | 现状与失义原因 | 建议归属 | |---|---|---| -| 系统更名 | 可选类道具已删除,"奖励道具经济"名实不符;候选如"格面资源经济"。更名牵动全仓链接与根索引,须整批执行 | 本文与[02-系统清单](../../02-系统清单.md)整批 | | 功能道具的正式渠道 | 用户已定方向(更强力、更长周期的功能性道具经其他渠道加入),渠道设计未定;节点奖励([关卡节点地图](../冒险循环/关卡节点地图.md)域)是候选之一 | [关卡节点地图](../冒险循环/关卡节点地图.md)定稿批 | -| 资源预读与推理的边界 | 预读允许到什么深度未定:[不做清单](../../05-不做清单.md)裁定未开格不显示奖励身份、允许恢复推理原料类道具;现役预读道具探宝罗盘(预读 3×3 窗口内未开格的奖励身份,归[辅助道具](../排雷循环/辅助道具.md))为窄域,未开格类型图标常显与推理保护之间的界线待拍板 | [辅助道具](../排雷循环/辅助道具.md)定稿批与[HUD 框架](../表现与支撑/HUD框架.md) | +| 资源预读与推理的边界 | 预读允许到什么深度未定:[不做清单](../../05-不做清单.md)裁定未开格不显示奖励身份、允许恢复推理原料类道具;现役预读道具探宝罗盘(预读 3×3 窗口内未开格的奖励身份,归[魔法道具](../排雷循环/魔法道具.md))为窄域,未开格类型图标常显与推理保护之间的界线待拍板 | [魔法道具](../排雷循环/魔法道具.md)定稿批与[HUD 框架](../表现与支撑/HUD框架.md) | | heal 负向直伤的量级锚 | −4 为 provisional 直觉值,未过行动经济当量对账 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批 | | 连锁批量兑付的溢出吸收 | 一条大连锁一次给出大量正向兑付,超出增益叠层上限时如何处理(折算、顺延或显式接受)未定 | [战斗结算](战斗结算.md)与[增益状态](增益状态.md)条目化 | @@ -218,3 +215,4 @@ | v0.2 | 2026-09-15 | 可选类注入递减基准对齐代码:逐图减半改为按实际获取件数递减;补明注入覆盖即时身份与"发放即获取、未挖到不计数"语义;验收标准首件保证改"必注入"口径 | | v0.3 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的雾格相关定价约束三条失义条目与随之取消的奖励配置表档位过滤门限 t_fog_min | | v0.4 | 2026-09-15 | **格面资源批(用户拍板,2026-09-15)**:① 核心抽象改为格面资源(CellResource)——安全格与雷格一视同仁、单一类型池装板期摇定,极性由「动作 × 格型」矩阵决定(开安全格/标中雷 = 正向,开雷格/标错安全格 = 负向),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;② 五型字典(attack/defense/heal/blast/weaken,正负各一行;weaken 负向 sapped 为新行,heal 负向为不经增益状态的直伤);③ 封锁格(初始展开格)恒无资源;④ 清图奖励改述为板级、可配置可替换的清图奖励对象,图类型差异化插槽保留;⑤ **可选类道具(刀/治疗包)整体删除**——供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口的数据面全部下线,RewardConfigTable 随批废止;功能道具经其他渠道加入的结构位登记 P1;⑥ 行动经济对账锚与难度曲线重推义务随批登记(见 registry 修订记录) | +| v0.5 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"奖励道具经济"→"地图战斗资源"——定义双向(正负由动作×格型决定)、格面承载、只在战斗结算生效;文件同步重命名;「待拍板」系统更名条目关闭;英文代号 REWARD_ITEM_ECONOMY 暂沿用 | diff --git a/design/gdd/systems/战斗循环/增益状态.md b/design/gdd/systems/战斗循环/增益状态.md index ab233b09..fdd62f40 100644 --- a/design/gdd/systems/战斗循环/增益状态.md +++ b/design/gdd/systems/战斗循环/增益状态.md @@ -29,7 +29,7 @@ |---|---| | 事实产生与授予裁决(去重、恰好一次) | [战斗结算](战斗结算.md) | | 效果在结算公式里的用法(乘除侧读法、地板、作用顺序) | [战斗结算](战斗结算.md) | -| 增益与削弱档位的当量对照验收 | [奖励道具经济](奖励道具经济.md)与[战斗结算](战斗结算.md) | +| 增益与削弱档位的当量对照验收 | [地图战斗资源](地图战斗资源.md)与[战斗结算](战斗结算.md) | | 固定值量纲(伏击)的定义与惩罚上限 | [敌人系统](敌人系统.md) | | 状态栏、图标、明细行的呈现 | [HUD 框架](../表现与支撑/HUD框架.md) | @@ -69,7 +69,7 @@ | 安全格 | 挖开安全格拿到增益 | 主角 | | 标中旗 | 轮末旗判定标中(巢穴被控制) | 敌方,削弱 | | 踩雷 | 挖开惩罚格、惊动巢穴 | 敌方,增强 | -| 清图奖励 | 清图奖励槽含增益时 | 随行定,路径归[奖励道具经济](奖励道具经济.md)定稿 | +| 清图奖励 | 清图奖励槽含增益时 | 随行定,路径归[地图战斗资源](地图战斗资源.md)定稿 | | 标空旗 | 轮末旗判定标空(标了但格不是雷) | 反噬三选一:敌方暴走、敌方伏击或主角失衡;载体裁决归[战斗结算](战斗结算.md)的标错反噬机制 | 容器是只记账、不裁决的仓库:上游叫它施加几次,它就入账几次。同一笔事实被重复转化两次,就入两层——它不去重、不合并事实,"事实到授予恰好一次"由战斗结算保证。同轮多笔授予按调用方给定的次序先后入列,容器保证入账顺序稳定可读。 @@ -170,7 +170,7 @@ MVP 阶段状态表恰有六行:两个主角增益(挖安全格拿)、三 | 相邻 | [排雷玩法](../排雷循环/排雷玩法.md) | 棋盘事实的事件源头;与本容器零直接接口——事实一律经战斗结算转化 | | 相邻 | [行动经济](../排雷循环/行动经济.md) | 契约相邻、无运行时接口:五条经济契约在本侧的数据落点就是状态表行值 | | 下游 | [敌人系统](敌人系统.md) | 伏击行固定值量纲的定义方与惩罚上限锚的验收方 | -| 下游 | [奖励道具经济](奖励道具经济.md) | 清图奖励含增益时经授予入口进入;增益与削弱档位的锚验收方之一 | +| 下游 | [地图战斗资源](地图战斗资源.md) | 清图奖励含增益时经授予入口进入;增益与削弱档位的锚验收方之一 | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 状态栏数据源;有利/有害极性呈现、无状态时空槽隐藏、状态到图标的映射,三义务归口 | 容器对外是一组封闭的被动入口,全部布尔或计数返回:战斗开始(开账)、授予(唯一进货口)、查询生效清单(只读,按授予先后排列)、轮末衰减(返回本轮移除数)、战斗结束(全清回空)。它不发任何事件、不做任何界面动作——呈现刷新点在战斗结算编排完成之后。 @@ -192,7 +192,7 @@ MVP 阶段状态表恰有六行:两个主角增益(挖安全格拿)、三 | 优先级 | 内容 | 后置原因 | |---|---|---| | P1 | 刷新、并存两类合并策略的首批内容行 | 语义已定义、容器已承载;MVP 六行全用叠加,这两类暂无实际内容,首批上线时随批补验收 | -| P1 | 清图奖励含增益的授予路径 | 来源类别已预留;内容与档位归[奖励道具经济](奖励道具经济.md)定稿 | +| P1 | 清图奖励含增益的授予路径 | 来源类别已预留;内容与档位归[地图战斗资源](地图战斗资源.md)定稿 | | P1 | 单体寻址扩展位 | 现行对敌效果一律全体共享;首个"只作用于其中一个敌人"的效果上线时给实例加目标字段 | | P2 | 驱散 / 延时 / 转移接口 | 状态一旦生效,玩家没有任何手段摘掉、延后或挪给别人——省掉一整类界面复杂度是明确的设计决定;要加属于新增接口的修订,不是调参 | | P2 | 并存行高频授予(持续伤害类)的容量语义 | 并存实例数上界 = 受理授予数,有界确定、无满层语义;MVP 无并存内容行,首个并存内容行上线时随批复核容量读法 | @@ -239,7 +239,7 @@ MVP 阶段状态表恰有六行:两个主角增益(挖安全格拿)、三 | 条目 | 内容 | |---|---| | 叠层不续命的读感 | 同种状态叠层只加层数、剩余次数不动("重复拿同款不续命")。旧体系把这条登记为试玩证伪项(配套教学口径"同轮拿满优于跨轮叠"),实测是否读得懂、要不要改成叠层顺带续命,尚未执行、尚未裁决 | -| 削弱档位的最终数值 | 削弱取值域 [60,85] 与投值 −65 来自旧体系裁决;"标中旗必须比随便挖一格更值"的当量终值由[战斗结算](战斗结算.md)与[奖励道具经济](奖励道具经济.md)共裁,尚未闭合 | +| 削弱档位的最终数值 | 削弱取值域 [60,85] 与投值 −65 来自旧体系裁决;"标中旗必须比随便挖一格更值"的当量终值由[战斗结算](战斗结算.md)与[地图战斗资源](地图战斗资源.md)共裁,尚未闭合 | | 单体寻址的接口扩展位 | 对敌效果现行一律全体存活敌人共享一份层数;将来若要"只削弱其中一个",需要给实例加目标寻址字段——扩展位已预留,首个单体效果上线时补列,并随之裁决归集与呈现语义 | | 空刷新的可见性 | 刷新类策略在剩余次数已满时再授予是合法空操作(返回成功、无任何变化),与"溢出不静默吞"的诚实原则存在张力;MVP 无刷新类内容行,首批刷新行上线时随批裁决 | diff --git a/design/gdd/systems/战斗循环/战斗结算.md b/design/gdd/systems/战斗循环/战斗结算.md index 8875f61f..fc05feed 100644 --- a/design/gdd/systems/战斗循环/战斗结算.md +++ b/design/gdd/systems/战斗循环/战斗结算.md @@ -35,7 +35,7 @@ | 棋盘怎么生成 | [棋盘生成](../排雷循环/棋盘生成.md) | | 单位血量递减、行动环与存活判定 | [敌人系统](敌人系统.md) | | 增益/减益状态的容器、叠层与效果实例 | [增益状态](增益状态.md) | -| 格面资源行值、权重档位与极性字典 | [奖励道具经济](奖励道具经济.md) | +| 格面资源行值、权重档位与极性字典 | [地图战斗资源](地图战斗资源.md) | | 关卡序列、关卡大奖励与失败 | [冒险结构](../冒险循环/冒险结构.md) | | 界面呈现与结算动画 | [HUD 框架](../表现与支撑/HUD框架.md)与[战斗表现](战斗表现.md) | @@ -65,7 +65,7 @@ | ④ 衰减段 | 移除到期的临时效果;每轮恰好一次,含末轮——清图奖励先兑付、效果后衰减 | | ⑤ 判定段 | 先判主角倒下(负),再判敌人清空(胜),都不满足则继续下一轮 | -结算本体是纯逻辑步骤流:零随机、零界面依赖、禁止动画等待。触发只读行动经济的相位读数与轮末标记,这条消息有棋盘路径和停手路径两个发射源,到达先后不承载语义。这些性质共同保证结算完全可回放:同样的种子、同样的事件序列,跑出的步骤流逐行相同——录像回放与断言复测都建立在它上面。唯一的随机例外是战斗开始时掷骰定敌方实际数量,它发生在结算步骤流之外。 +结算本体是纯逻辑步骤流:零界面依赖、禁止动画等待,随机消费只走封闭随机流。触发只读行动经济的相位读数与轮末标记,这条消息有棋盘路径和停手路径两个发射源,到达先后不承载语义。这些性质共同保证结算可回放:同样的种子、同样的事件序列,跑出的步骤流逐位复现——录像回放与断言复测都建立在它上面。随机消费恰两处:战斗开始掷骰定敌方实际数量与攻击基线浮动,属于初始化随机、发生在结算步骤流之外;护甲等级掷点(2026-09-15 护甲等级批引入)属于回合内随机、发生在步骤流之内——两处都消费封闭随机流,掷点流归属见「待拍板」。 举证:五段为流程编排,无计算;段序常量存配置表,加载时校验与定稿顺序完全一致,不一致拒绝启动。 @@ -76,7 +76,7 @@ | 行型 | 什么时候写 | |---|---| | 效果行 | 增益/减益段每条效果一行:本次授予贡献值与池合成值分列,防误读 | -| 伤害行 | 每次伤害一行:目标、伤害分量、修正终值、击杀标记 | +| 伤害行 | 每次伤害一行:目标、伤害分量、修正终值、击杀标记;吃护甲等级掷点的分量,掷点读数与折扣档位随行留档(行型封闭清单不变) | | 治疗行 | 治疗生效一行:封顶后的真实回复量 | | 溢出未生效行 | 踩雷超出伏击上限,超出的每颗一行 | | 奖励未生效行 | 满层拒收、满血治疗等合法例外一行 | @@ -121,7 +121,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × 授予段消费结算队列。**队列与抵消过滤**:挖掘期玩家对格子的每个动作——开格、标旗、撤旗——都进入结算队列;结算先做一遍遍历过滤再兑付,不走逐动作出栈直算——标旗后被撤旗的,该次标旗动作不结算(零兑付,行动点已耗即变相惩罚);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每旗判定恰好一次。 -兑付走**极性矩阵**(定义归[奖励道具经济](奖励道具经济.md)):开安全格 → 该格格面资源的正向;开雷格 → 负向;标中旗 → 该雷格资源的正向;标错旗 → 该安全格资源的负向。五型字典里每型各有一行正向、一行负向——伏击不再是踩雷的固定产物,只保留为 blast 型的负向一行。 +兑付走**极性矩阵**(定义归[地图战斗资源](地图战斗资源.md)):开安全格 → 该格格面资源的正向;开雷格 → 负向;标中旗 → 该雷格资源的正向;标错旗 → 该安全格资源的负向。五型字典里每型各有一行正向、一行负向——伏击不再是踩雷的固定产物,只保留为 blast 型的负向一行。 | 批 | 兑付 | |---|---| @@ -174,18 +174,25 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × 两条都是奖励侧现行定义(暂存结算表 `charge_grants`,正式归属见「待拍板」):换桶、换量、或把开格奖励换成增益与道具,都不触动攻击类型与甲效矩阵。 -**结论**:先合成、再取整、全程非负;溢杀丢弃、治疗封顶、死亡即时判定。 +**护甲等级掷点:必中、非归零,只吃基础攻击分量**(2026-09-15 拍板新增)。防守方由此多了一条数值轴——护甲等级(数据键 `armor_class`,provisional):攻击永远命中,没有 miss、没有零收益白回合;只有吃掷点的分量在掷点低于防守方护甲等级时按减伤档位打折,档位再重也不归零。掷点只吃基础攻击分量:主角先手攻击的普通分量,敌方攻击拍与重击拍的基线伤害(基线 × 重击倍率);穿刺与魔法两个充能分量不吃。棋盘来源一律无视护甲等级——伏击附加、道具伤害、清障炸药、奖励即时伤害全部必中全额,这是本机制的边界切口,与"奖励/惩罚必中"同构。护甲等级(数值轴)与护甲类型(轻甲 / 魔法护甲 / 重甲的克制属性轴)是两个概念,文档、表字段与代码键不得混用。 + +掷点折扣按 EV 中性引入:期望伤害对齐现行表值,现行数值不重调;[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)的生存链区间模型按掷点带宽口径复核,"零红档"验收保留。掷点形式与数值域未定,见「待拍板」。 + +**结论**:先合成、再取整、全程非负;吃掷点分量必中非归零、低掷按档位折扣;溢杀丢弃、治疗封顶、死亡即时判定。 ``` 敌方一次攻击 = floor( 裸伤害 × 主角防御乘数 × 敌方输出乘数 );伏击为后置加法,不进乘区 乘数 = 1 + 池合成值 ÷ 100;池内加算、每池独立封顶 ±100 百分点 → 乘数域 [0, 2] +护甲等级掷点:掷点 ≥ 防守方护甲等级 → 全额;掷点 < 护甲等级 → 吃掷点分量 × 档位折扣(取整沿全局向下取整) +吃掷点分量 = 主角普通分量 / 敌方攻击拍与重击拍基线;穿刺、魔法、伏击附加与棋盘来源伤害不掷不折 治疗量 = min( 当前生命 + 表值, 生命上限 ) ``` | 边界 | 规则 | |---|---| | 修正池封顶 | 同侧百分比修正加算后每池独立收口 ±100 百分点;乘数可为 0——敌人输出归零、主角本结算免伤,是合法设计态而非异常 | -| 零值伤害 | 合成后为 0 时不调扣血接口,改写零值伤害行——免伤与零输出必须可见 | +| 零值伤害 | 合成后为 0 时不调扣血接口,改写零值伤害行——免伤与零输出必须可见;折扣取整后为 0 走同一条既有路,不新增行型 | +| 护甲等级掷点 | 必中非归零:掷点低于防守方护甲等级按档位折扣、档位不设零档;只吃基础攻击分量(主角普通分量、敌方攻击/重击拍基线),棋盘来源伤害不掷不折 | | 溢杀 | 一刀超出目标剩余生命的部分丢弃:不转移给下一个敌人、不存续、无负生命中间态 | | 治疗 | 生命不溢出上限;满血正向治疗零兑付,记"奖励未生效"行 | | 死亡判定 | 生命归 0 即倒下;敌人受击即死;主角倒下战斗段立即短路;判定段先判主角、再判敌人(防御性次序) | @@ -202,10 +209,10 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × ├─ 继续(敌未清、主角活着)→ 通知"同图继续" → 下一轮开轮 ├─ 换图(本轮清图)→ 旧板退役 → 生成新板 → 装板 → 资源预分配恰一次 → 通知"换图" → 下一轮开轮 ├─ 战斗结束(胜 / 负)→ 清理敌人与状态 → 发出战斗结束信号 → 休眠,等下一场战斗 - └─ 关卡结束(上层显式调用)→ 清空辅助道具背包,给出可见反馈 + └─ 关卡结束(上层显式调用)→ 清空魔法道具背包,给出可见反馈 ``` -停手与耗尽收轮的回合恒为同图继续;换图指令只允许出现在清图轮,其他轮发换图属于程序错误、立即上抛。辅助道具背包以关卡为界:战斗结束不清背包,跨战斗延续;关卡结束时一次性清空,清空前先返回快照计数,作为"剩余辅助道具随关卡结束清空"的可见反馈。战斗道具背包已随可选类删除(2026-09-15)下线。 +停手与耗尽收轮的回合恒为同图继续;换图指令只允许出现在清图轮,其他轮发换图属于程序错误、立即上抛。魔法道具背包以关卡为界:战斗结束不清背包,跨战斗延续;关卡结束时一次性清空,清空前先返回快照计数,作为"剩余魔法道具随关卡结束清空"的可见反馈。战斗道具背包已随可选类删除(2026-09-15)下线。 挖掘期刷新是玩家在挖掘中途主动换图,经[行动经济](../排雷循环/行动经济.md)扣费:扣费成功后按"旧板退役、生成新板、装板、资源预分配恰一次"编排,本轮不打断——没有结算段、没有轮次结束。储备不足被拒是玩家决策的合法结果,不是编排错误。刷新图不发清图奖励,完美排雷计数随装板重置。 @@ -219,13 +226,13 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × | 方向 | 系统 | 接口要点 | |---|---|---| -| 上游 | [数据配置](../表现与支撑/数据配置.md) | 结算配置表(段序、当量、封顶、充能与甲效参数)的承载与读取,本系统是回填责任方;战斗中热重载被闸门拒绝 | +| 上游 | [数据配置](../表现与支撑/数据配置.md) | 结算配置表(段序、当量、封顶、充能、甲效与护甲等级掷点参数)的承载与读取,本系统是回填责任方;战斗中热重载被闸门拒绝 | | 上游 | [行动经济](../排雷循环/行动经济.md) | 轮末两字段消息的接收方;回发换图指令、结算完成与战斗结束通知;挖掘期刷新经它扣费;五条经济契约的对账责任方 | | 上游 | [排雷玩法](../排雷循环/排雷玩法.md) | 订阅其三事件流(挖开格、旗判定、轮次结束);换图时调用装板与退役 | | 上游 | [棋盘生成](../排雷循环/棋盘生成.md) | 换图时调用其生成接口 | -| 上游 | [敌人系统](敌人系统.md) | 单位接口全调用面:生成、查询、扣血、推进、默认目标、伏击授予、清场 | +| 上游 | [敌人系统](敌人系统.md) | 单位接口全调用面:生成、查询、扣血、推进、默认目标、伏击授予、清场;护甲等级(防守方掷点判定读数)随单位数据供给 | | 上游 | [增益状态](增益状态.md) | 状态容器接口全调用面:开域、授予、读值、衰减、闭域 | -| 上游 | [奖励道具经济](奖励道具经济.md) | 格面资源接口:预分配、身份查询、受理、清图对象、当量供给投影、映射退役 | +| 上游 | [地图战斗资源](地图战斗资源.md) | 格面资源接口:预分配、身份查询、受理、清图对象、当量供给投影、映射退役 | | 上游 | [冒险结构](../冒险循环/冒险结构.md) | 战斗触发、遭遇上下文与主角入参覆盖值(provisional,MVP 冒烟直供) | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 明细流水是结算明细屏的统一数据源;未生效类行须带形状冗余防误读 | | 下游 | [战斗表现](战斗表现.md) | 结算步骤流是战斗动画回放的脚本源 | @@ -238,7 +245,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × 3. 轮末自动触发五段结算,触发与事件到达序无关。 4. 授予段先做抵消过滤(标旗后被撤旗的不结算),再按极性矩阵三批兑现:开安全格 / 标中旗兑正向、开雷格 / 标错旗兑负向、清图发清图奖励对象(完美翻倍)。 5. 增益合成、主角先手加逐敌还手、衰减恰好一次。 -6. 判定段先主角后敌人:继续通知同图、清图换图续轮、胜负走战斗结束清理(辅助道具背包不清)。 +6. 判定段先主角后敌人:继续通知同图、清图换图续轮、胜负走战斗结束清理(魔法道具背包不清)。 7. 明细流水全程落行,供呈现、回放与导出。 ## P1 / P2 后置 @@ -251,7 +258,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × ## 调参表 -结算用到的全部数值——当量、封顶、乘数、段序常量、充能与甲效参数——都存结算配置表,代码里零数值字面量;改数值就是改表回填。表值以快照进结算,战斗中途改表不生效。已锁字段与数值以 [registry 的 settlement_table 条目](../../../registry/entities.yaml) 为准。 +结算用到的全部数值——当量、封顶、乘数、段序常量、充能、甲效与护甲等级掷点参数——都存结算配置表,代码里零数值字面量;改数值就是改表回填。表值以快照进结算,战斗中途改表不生效。已锁字段与数值以 [registry 的 settlement_table 条目](../../../registry/entities.yaml) 为准。 | 参数 | 域 | 现行值 | 说明 | |---|---|---|---| @@ -259,6 +266,9 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × | 完美乘数 | percent {100, 200} | 200(provisional) | 100 为仅高光、无第二份;域外加载拒绝 | | 充能奖励定义 `charge_grants` | Dictionary:触发源 → {attack_type, per_unit, cap} | 开格 → 穿刺 1/格(计数上限 8)· 标中旗 → 魔法 2/雷(无上限)(provisional) | 奖励侧定义:附加伤害储备按攻击类型分桶,本字典决定哪个源投哪个桶、每单位几点、单轮计数上限;整表替换不改攻击类型与甲效矩阵(正式归属见「待拍板」) | | 甲效矩阵 | percent | 克制 150 / 中性 100 / 被克 50(provisional) | 键集 = 攻击类型 {普通, 穿刺, 魔法} × 护甲类型 {轻甲, 魔法护甲, 重甲},3×3 满格结构冻结;数值归调参 | +| 护甲等级掷点 | 形式未定:d20 / 百面骰 / 区间均匀 | 未定(provisional,见「待拍板」) | 回合内随机:每吃掷点分量逐次掷骰,掷点低于防守方护甲等级触发档位折扣;流归属未定(见「待拍板」) | +| 减伤档位表 | 掷点差距档 → 折扣百分比,档数未定 | 未定(provisional) | 分级折扣载体;档位不设零档(非归零);EV 中性——期望伤害对齐现行表值,现行数值不重调 | +| 护甲等级 `armor_class`(防守方字段) | 未定(随掷点形式定稿) | 未定(provisional) | 字段本体在敌人表与主角表(归[敌人系统](敌人系统.md)),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md);与护甲类型(克制属性轴)两概念不得混用 | | 段序常量 | 固定五段 | 结构冻结 | 加载期恒等校验,违例拒绝启动 | | 池封顶 | ±100 百分点 | 结构冻结 | 乘数域随之 [0, 2] | | 取整方向 | 向下取整 | 结构冻结 | 单一规则,非调参项 | @@ -275,10 +285,12 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × - 伏击守恒:blast 负向兑付超出上限时兑付数等于上限,超出部分逐颗记"溢出未生效"行;多敌共享同一伏击池值。 - 完美排雷:零误标且至少一面标中时第二份兑付恰一次并发高光行;出现误标或零标中则无高光;计数换图重置。 - 战斗段次序:主角先手后逐敌"查攻击、结算伤害、推进"各恰一次;主角倒下立即短路,剩余敌人不行动。 +- 护甲等级掷点:吃掷点分量(主角普通分量、敌方攻击/重击拍基线)逐次掷骰——掷点不低于防守方护甲等级全额兑付,低于则按档位折扣且档位不设零档;穿刺/魔法分量与棋盘来源伤害(伏击附加、道具、清障炸药、奖励即时)不掷不折。 +- 折扣零值归路:折扣取整后为 0 走既有零值伤害行,不新增行型;掷点读数与档位随该伤害行留档。 - 数值边界:合成后零伤害不扣血、写零值行;溢杀丢弃不转移;治疗封顶不溢出;全程无负值。 - 出口分发:先判主角倒下(负)再判敌清空(胜);停手与耗尽轮恒同图,清图轮才允许换图。 -- 关卡收束:关卡结束清空辅助道具背包恰一次并返回清空前计数;战斗结束不清背包。 -- 可回放:同种子同输入两遍步骤流逐行相同;结算路径零随机、零界面等待。 +- 关卡收束:关卡结束清空魔法道具背包恰一次并返回清空前计数;战斗结束不清背包。 +- 可回放(封闭随机流口径):同种子同输入两遍步骤流逐位复现;随机消费仅限封闭随机流——开战掷骰(初始化随机)与护甲等级掷点(回合内随机),无未登记随机源、零界面等待。 - 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。 - 行型封闭:流水只出现本文登记的 10 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。 @@ -289,9 +301,11 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × | 条目 | 现状与失义原因 | 建议归属 | |---|---|---| | 挖掘风险不等式对账破线 | 归档记录现行值链(防御增益时长 1、行值 −30、现行难度曲线)下两参考板形首版验算破线,多敌满配深度破线;破线已升格为曲线级约束,相关参数处禁独立调参联动网络;对账须在难度曲线调参批重跑 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md)提案,本系统闭合共裁 | -| 清图支配性保守地板缺口 | "推到底清图不吃亏"的对账未闭合:非完美板形的清图期望收益低于"挖完确定格就弃图刷新";已裁"清图非严格支配"为设计态,保守地板当量缺口仍在案;对账须在难度曲线调参批重跑 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md),奖励量级联动[奖励道具经济](奖励道具经济.md) | -| 连锁批量奖励的溢出处理 | 一条大连锁给出的奖励超出叠层上限时如何处理未定(现行按显式接受、零补偿执行) | [奖励道具经济](奖励道具经济.md)与本系统条目化 | -| 充能奖励的正式归属 | 充能(按攻击类型分桶的附加伤害储备)现作为奖励定义暂存结算表 `charge_grants`(触发源 → {attack_type, per_unit, cap});奖励的正式载体([奖励道具经济](奖励道具经济.md) 的奖励类别 / 效果面,或数据配置的独立奖励定义表)未定——定稿前由本系统代管 | [奖励道具经济](奖励道具经济.md)与本系统共裁,键位随定稿批迁移 | +| 清图支配性保守地板缺口 | "推到底清图不吃亏"的对账未闭合:非完美板形的清图期望收益低于"挖完确定格就弃图刷新";已裁"清图非严格支配"为设计态,保守地板当量缺口仍在案;对账须在难度曲线调参批重跑 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md),奖励量级联动[地图战斗资源](地图战斗资源.md) | +| 连锁批量奖励的溢出处理 | 一条大连锁给出的奖励超出叠层上限时如何处理未定(现行按显式接受、零补偿执行) | [地图战斗资源](地图战斗资源.md)与本系统条目化 | +| 充能奖励的正式归属 | 充能(按攻击类型分桶的附加伤害储备)现作为奖励定义暂存结算表 `charge_grants`(触发源 → {attack_type, per_unit, cap});奖励的正式载体([地图战斗资源](地图战斗资源.md) 的奖励类别 / 效果面,或数据配置的独立奖励定义表)未定——定稿前由本系统代管 | [地图战斗资源](地图战斗资源.md)与本系统共裁,键位随定稿批迁移 | +| 护甲等级掷点形式与数值域 | 掷点形式(d20 / 百面骰 / 区间均匀)未定;护甲等级数值域与减伤档位表(档数、折扣百分比)未定,折扣乘算与取整的精确时点(逐分量 / 合成后)未钉——定稿前敌人表/主角表的 armor_class 行值与结算表掷点参数均无值可填 | 本系统提案,[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)数值共裁 | +| 护甲等级掷点的随机流归属 | rng_service 流封闭清单(board_gen / reward_roll / encounter)不含结算内掷点消费:新增封闭流须改代码并过 P1 支柱评审;复用 encounter 流则改变其"战斗实例化期恰一 scope"的绑定语义——两案未裁 | [数据配置](../表现与支撑/数据配置.md)与本系统共裁,随定稿批执行 | ## 版本历史 @@ -304,3 +318,4 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 × | v0.5 | 2026-09-15 | 攻击/护甲命名去位置化(全仓统一,跨文档 + registry + 切片代码同批):攻击分量与充能池 {基础, 伤害A, 伤害B} → {普通, 穿刺, 魔法}(数据键 {base, dmg_a, dmg_b} → {normal, pierce, magic}),敌方护甲 {无甲, 护甲A, 护甲B} → {轻甲, 魔法护甲, 重甲}(数据键 {none, a, b} → {light, ward, heavy},映射沿教学梯度 none→light / a→ward / b→heavy);战斗段把甲效表从"三档措辞"改为 3×3 显式矩阵(行 = 攻击类型、列 = 护甲类型,克制 ×150 / 中性 ×100 / 被克 ×50,普通行恒 100)并补语义列;hero_attack 行分量字段 base/dmg_a/dmg_b → normal/pierce/magic;调参表参数名与措辞同步(伤害A→穿刺、伤害B→魔法、"被对位克制"→"被克");registry 与 敌人系统/难度曲线与Boss/03-内容规模/切片 schema·tres·core·presentation·smoke 同批改键(旧名仅在本次修订与各文件批次注记中作为"原名"留存) | | v0.6 | 2026-09-15 | **攻击类型与奖励抽象分离**(用户裁定"攻击类型的定义和格子奖励要分离开;开格\|标雷 → 奖励;奖励如何定义是可以修改的;不要将两者绑定"):修正 v0.5 遗留的焊死命名——攻击类型是**伤害的属性轴**(只决定查甲效表哪一行,定义里不含任何棋盘来源);充能是**按攻击类型分桶的附加伤害储备**,"谁能充、充哪个桶"归**奖励定义**,开格 / 标中旗 / 踩雷 / 清图一律只作奖励触发源。战斗段:矩阵表去掉来源措辞(语义列改"穿透附魔护甲…"),新增"谁往桶里放东西属奖励定义"一段与"奖励触发源 × 现行奖励内容 × 换算上限"表;授予段:挖格批与旗判定批改为"按奖励定义累加充能计数"并加一句充能归属说明;调参表:穿刺每格 / 魔法每雷两行合并为「充能奖励定义 `charge_grants`」(触发源 → {attack_type, per_unit, cap}),v0.5 落下的 pierce_per_cell / pierce_cap / magic_per_flag 同批作废;新增「待拍板」条目登记充能奖励的正式归属。切片同批:`charge_grants` 承接三字段、`_charge_counts`(只计数)与 `_charge_points()`(按奖励定义投桶)、round_facts 改 `charge_counts` / `charge_points`、冒烟加"奖励定义在位 ×2 + 改投桶行为断言" | | v0.7 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 段序七段 → 五段——道具使用窗口与道具段随可选类道具整体删除(2026-09-15 用户裁定)下线,段序常量与 registry settlement_table 同步修订;② 授予段改述为"结算队列 + 抵消过滤":开格 / 标旗 / 撤旗入队,标旗后被撤旗的动作不结算(零兑付、行动点不返);③ 兑付统一走极性矩阵(开安全格 / 标中旗 = 正向,开雷格 / 标错旗 = 负向,字典归奖励道具经济),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;④ 明细行型 15 → 10(删道具行 / 已消耗未生效行 / 使用被拒行 / 窗口打开锚行 / 窗口跳过锚行),两层豁免集合改两类 + 三类;⑤ 战斗道具背包与库存语义下线,关卡收束只清辅助道具背包;⑥ 收益对照表 flat 类措辞去道具;验收标准改五段全序 + 抵消过滤 + 极性路由正确,删窗口类断言。行动经济 F1 对账锚(伏击共享池)与难度曲线重推义务随批登记(见 registry 修订记录),切片侧修改指导随批产出 | +| v0.8 | 2026-09-15 | **护甲等级批(用户拍板登记,只改文档与 registry、不动代码)**:战斗段新增护甲等级掷点规则——必中、非归零,掷点低于防守方护甲等级按减伤档位折扣,没有 miss、没有零收益白回合;只吃基础攻击分量(主角普通分量 / 敌方攻击拍与重击拍基线),穿刺/魔法充能分量不吃;棋盘来源(伏击附加、道具、清障炸药、奖励即时)一律无视;护甲等级(数值轴,数据键 `armor_class`)与护甲类型(克制属性轴)命名区分成文。随机口径修订:结算换算层首次引入回合内随机,可回放契约从"结算路径零随机"改为"封闭随机流可回放"(同种子同输入逐位复现);开战掷骰属初始化随机维持不变。调参表新增护甲等级掷点 / 减伤档位表 / `armor_class` 三行(全部 provisional 未定值);伤害行补掷点读数与折扣档位随行留档(行型 10 类封闭不变);验收标准新增护甲等级掷点与折扣零值归路两条、可回放条改封闭随机流口径;EV 中性引入成文(期望伤害对齐现行表值,"零红档"验收保留);待拍板新增"掷点形式与数值域""掷点的随机流归属"两条 | diff --git a/design/gdd/systems/战斗循环/敌人系统.md b/design/gdd/systems/战斗循环/敌人系统.md index 265da3d7..46cc9e33 100644 --- a/design/gdd/systems/战斗循环/敌人系统.md +++ b/design/gdd/systems/战斗循环/敌人系统.md @@ -30,7 +30,7 @@ |---|---| | 结算编排与伤害消费(何时调用、伤害合成、死亡判定时机、护甲克制矩阵) | [战斗结算](战斗结算.md) | | 状态层数的存放与衰减(伏击层池、削弱层池) | [增益状态](增益状态.md) | -| 奖励内容与掉落 | [奖励道具经济](奖励道具经济.md) | +| 奖励内容与掉落 | [地图战斗资源](地图战斗资源.md) | | 棋盘规则(挖格、插旗、惊动巢穴等事实的发生) | [排雷玩法](../排雷循环/排雷玩法.md) | | 遭遇构成(何时开战、坐标与数量怎么定)与跨战斗血量保留 | [关卡节点地图](../冒险循环/关卡节点地图.md) | | 单位数值曲线与难度修饰 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | @@ -72,19 +72,19 @@ |---|---| | 敌方效果对全体生效 | 场上敌人全同种,范围效果作用于所有存活敌人是天然兼容的默认;"只打某一个"的单体寻址暂不开放(见 P1) | | 每个坐标只出一种敌种 | 敌人表按(关卡序号 × 节点深度)存放,同一坐标的行集内敌种唯一,违规加载期报错止动;同关随深度换敌种合法 | -| 主角数据行 | 主角战斗数值单独放一张全局单行表:生命上限、基础攻击力两字段(见调参表) | +| 主角数据行 | 主角战斗数值单独放一张全局单行表:生命上限、基础攻击力、护甲等级三字段(见调参表) | | 基础攻击恒存在 | 基础攻击不许配 0(配置为 0 加载期拒绝)——零基线乘任何百分比增益恒为零,"胜利路径恒有"的保障从数据层杜绝死锁 | -| 先手攻击不是行为环拍 | 每次结算战斗段主角先手攻击顺位最前的存活敌人,这是固定动作;奖励侧的道具与增益是基础攻击之外的规划面伤害,归[奖励道具经济](奖励道具经济.md) | +| 先手攻击不是行为环拍 | 每次结算战斗段主角先手攻击顺位最前的存活敌人,这是固定动作;奖励侧的道具与增益是基础攻击之外的规划面伤害,归[地图战斗资源](地图战斗资源.md) | 首发敌种共三种,名字是玩家可见专名:地精、熊地精、食人魔酋长(末者为首发关底 Boss)。 -| 敌种 | 行为环 | 护甲类型 | 现行定位 | -|---|---|---|---| -| 地精 | 攻击(单拍环) | 轻甲 | 首发杂兵;教学位节点 ×[1,2],开战掷定 | -| 熊地精 | 攻击 / 蓄力 / 重击(三拍环) | 魔法护甲 | 首发主力;重击倍率 2 | -| 食人魔酋长 | 攻击 / 攻击 / 蓄力 / 重击(四拍 Boss 环) | 重甲 | 首发关底 Boss;重击倍率 2 | +| 敌种 | 行为环 | 护甲类型 | 护甲等级 | 现行定位 | +|---|---|---|---|---| +| 地精 | 攻击(单拍环) | 轻甲 | 未定(provisional) | 首发杂兵;教学位节点 ×[1,2],开战掷定 | +| 熊地精 | 攻击 / 蓄力 / 重击(三拍环) | 魔法护甲 | 未定(provisional) | 首发主力;重击倍率 2 | +| 食人魔酋长 | 攻击 / 攻击 / 蓄力 / 重击(四拍 Boss 环) | 重甲 | 未定(provisional) | 首发关底 Boss;重击倍率 2 | -护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据。举证:生成与护甲为数据面规则,无计算。 +护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据。护甲等级是另一条数值轴(防守方字段,基础攻击掷点的折扣判定读数——2026-09-15 护甲等级批新增):敌人表与主角表各增 `armor_class` 一列,掷点与折扣的结算归[战斗结算](战斗结算.md),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)且未定稿——三敌种与主角的护甲等级行值随定稿批落值,两条轴的概念与字段不得混用。举证:生成与护甲为数据面规则,无计算。 ### 行为环:敌人按排好的剧本轮流出招,走到哪一拍零随机 @@ -161,7 +161,7 @@ | 上游 | [数据配置](../表现与支撑/数据配置.md) | 敌人表与主角表的 schema 承载与类型化读取;本系统是两表的回填责任方 | | 相邻 | [增益状态](增益状态.md) | 伏击词条的量纲与作用域由本系统定稿并登记;层数容器与轮末衰减归它,层数由战斗结算读出后作参数传入——运行时零直接调用 | | 下游 | [战斗结算](战斗结算.md) | 胜负判定素材(敌全灭 / 主角归零)与伤害分量(基线 + 伏击)的供给方;护甲克制矩阵归它 | -| 下游 | [奖励道具经济](奖励道具经济.md) | 固定顺位是道具伤害的默认目标规则;基础攻击恒在,奖励侧是基础攻击之外的规划面伤害 | +| 下游 | [地图战斗资源](地图战斗资源.md) | 固定顺位是道具伤害的默认目标规则;基础攻击恒在,奖励侧是基础攻击之外的规划面伤害 | | 下游 | [关卡节点地图](../冒险循环/关卡节点地图.md) | 遭遇构成(何时开战、坐标与数量怎么定)归它;跨战斗血量是否保留归冒险循环裁决 | | 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 两表曲线数值与遭遇分布的调参所有权归它;难度修饰施加点在行值快照之前(MVP 零修饰) | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 线索映射清单、单位顺位与血条、敌方增益层数的呈现归它(引用不转述) | @@ -202,6 +202,7 @@ | unit_count_max | [unit_count, 3],可省略 | 缺省 = 定值 | 数量区间上界;开战时在区间内掷定本战实际数量 | | atk_min / atk_max | [0, 999] 可选配对 | ±3 浮动(provisional) | 攻击基线区间:开战掷定一次、整战持久;缺省 = 定值行 | | armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 地精轻甲 / 熊地精魔法护甲 / 酋长重甲 | 克制结算归[战斗结算](战斗结算.md) | +| armor_class(护甲等级) | 未定(随掷点形式定稿,provisional) | 未定 | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念不得混用 | | hp | [1, 999] | provisional | 单位生命基线(难度修饰前) | | atk | [0, 999] | provisional | 攻击基线;0 合法 = 纯伏击伤敌种 | | heavy_multiplier | [1, 16] | 2(provisional) | 无重击拍的敌种不消费,非校验项 | @@ -214,10 +215,11 @@ |---|---|---|---| | max_hp | [1, 999] | provisional(出处待查) | 主角生命上限 | | atk | [1, 999] | 6(原型锚 provisional) | 基础攻击;配 0 加载期拒绝——基础攻击恒在 | +| armor_class(护甲等级) | 未定(随掷点形式定稿,provisional) | 未定 | 主角作为防守方的护甲等级,口径同敌人表;掷点结算归[战斗结算](战斗结算.md) | -三敌种现行行值(全部 provisional,出处 registry):地精教学位 24 生命 / 7 攻击 ×[1,2](开战掷定)、群行 13/5 ×[2,3];熊地精 40/9 ×1、群行 18/6 ×[2,3]、深层锚行 30/7;食人魔酋长 150/9 ×1。 +三敌种现行行值(全部 provisional,出处 registry):地精教学位 24 生命 / 7 攻击 ×[1,2](开战掷定)、群行 13/5 ×[2,3];熊地精 40/9 ×1、群行 18/6 ×[2,3]、深层锚行 30/7;食人魔酋长 150/9 ×1。护甲等级行值未定(provisional,见「待拍板」)。 -结构冻结(非调参项,修订走本文流程):行为拍枚举封闭、死亡即不动手、先作用后推进、伏击层池共享读法、附加后置加法、伏击按主角血量点计量纲、固定顺位、每坐标恰一敌种、零随机。联动纪律:单轮上限 × 攻击基线(支配边界联动)、数量 × 上限(单结算上界双线性)、倍率 × 攻击(重击拍支配)禁止独立调参,联调须重跑方向性预检并同步 registry(见待拍板)。 +结构冻结(非调参项,修订走本文流程):行为拍枚举封闭、死亡即不动手、先作用后推进、伏击层池共享读法、附加后置加法、伏击按主角血量点计量纲、固定顺位、每坐标恰一敌种、零随机(口径修订 2026-09-15:本系统自身语义零随机不变——行为环与顺位由结算次数唯一决定;随机消费一律在[战斗结算](战斗结算.md)结算换算层按封闭随机流掷定,可回放契约 = 同种子同输入逐位复现)。联动纪律:单轮上限 × 攻击基线(支配边界联动)、数量 × 上限(单结算上界双线性)、倍率 × 攻击(重击拍支配)禁止独立调参,联调须重跑方向性预检并同步 registry(见待拍板)。 ## 验收标准 @@ -244,6 +246,7 @@ | 标错惩罚的数值 | [排雷玩法](../排雷循环/排雷玩法.md)已登记:控制失败(标空)的惩罚候选"敌方伏击 +1"未定案;落地前标空只判不中 | 数值归本文,兑付归[战斗结算](战斗结算.md) | | 同深度第二敌种与精英 / Boss 编码位 | 现键结构(关卡序号 × 节点深度 × 敌种)无编码位;混编遭遇下伏击上限取哪行值未定义——现行结构恒单行值 | 随[关卡节点地图](../冒险循环/关卡节点地图.md)定稿改键一并裁决 | | 敌方攻击区间的正式侧落文 | registry 已登记攻击基线区间(开战掷定、整战持久),归档文档未含此字段;正式侧文档与 registry 修订批随对应 ADR 同批待落 | 数据配置接口漂移通道 | +| 护甲等级(armor_class)行值未定 | 字段已随 2026-09-15 护甲等级批登记(敌人表与主角表各一列);掷点形式、数值域与减伤档位未定,定稿前行值无值可填——裁决与联动登记见[战斗结算](战斗结算.md)「待拍板」 | 随掷点形式定稿批,投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | ## 版本历史 @@ -251,3 +254,4 @@ |---|---|---| | v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 | | v0.2 | 2026-09-15 | 教学位掷骰口径自洽(随[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)同批修订):unit_count 字段说明、地精敌种定位与现行行值句中"教学位固定 1 只/固定不掷"改为 ×[1,2] 开战掷定 | +| v0.3 | 2026-09-15 | **护甲等级批(用户拍板登记,与战斗结算 / 难度曲线与Boss / registry 同批,不动代码)**:敌人表与主角表 schema 各增 armor_class(护甲等级)字段(取值域随掷点形式定稿,provisional);三敌种表补护甲等级列(行值未定);护甲等级(数值轴)与护甲类型(克制属性轴)命名区分成文;结构冻结清单"零随机"措辞按新口径修订——本系统自身语义零随机不变,掷点随机在战斗结算换算层按封闭随机流消费、可回放契约 = 同种子同输入逐位复现;待拍板新增"护甲等级行值未定"条目 | diff --git a/design/gdd/systems/排雷循环/地形变异.md b/design/gdd/systems/排雷循环/地形变异.md index 4a7061e4..6fbe16ae 100644 --- a/design/gdd/systems/排雷循环/地形变异.md +++ b/design/gdd/systems/排雷循环/地形变异.md @@ -22,7 +22,7 @@ | 数据侧行为约定 | 变异是格子的只读数据,随图生成、随图消亡;读取方按数据行动 | | 零特判原则 | 禁止任何系统为变异改写扫雷规则本体——框架的承重约束(见核心规则) | | 布置接口结构位 | 变异在棋盘生成期布置;布置约束与参数待定稿,结构位保留 | -| 反制道具配套义务 | 未来每定稿一类变异,随批配至少一件反制道具(义务在本系统,道具本体归辅助道具) | +| 反制道具配套义务 | 未来每定稿一类变异,随批配至少一件反制道具(义务在本系统,道具本体归魔法道具) | 不负责: @@ -30,7 +30,7 @@ |---|---| | 布置算法与参数(摆几个、多大、摆哪) | [棋盘生成](棋盘生成.md) | | 挖格、插旗、连锁展开的规则本体 | [排雷玩法](排雷玩法.md) | -| 反制道具的效果、时效与定价 | [辅助道具](辅助道具.md) | +| 反制道具的效果、时效与定价 | [魔法道具](魔法道具.md) | | 数值表本体与读取机制 | [数据配置](../表现与支撑/数据配置.md) | | 界面呈现 | [HUD 框架](../表现与支撑/HUD框架.md) | | 教学口径 | [教学引导](../表现与支撑/教学引导.md) | @@ -76,7 +76,7 @@ ### 反制道具配套义务 -未来每定稿一类变异,必须随批配套至少一件反制道具(针对该变异、给玩家提供应对手段的道具),不让任何变异成为只亏不赚的纯税。这条配套义务的归属方是本系统;"反制"作为道具的一个维度,由辅助道具的五维度框架承接,反制道具的具体效果、时效与定价都归辅助道具定稿。 +未来每定稿一类变异,必须随批配套至少一件反制道具(针对该变异、给玩家提供应对手段的道具),不让任何变异成为只亏不赚的纯税。这条配套义务的归属方是本系统;"反制"作为道具的一个维度,由魔法道具的五维度框架承接,反制道具的具体效果、时效与定价都归魔法道具定稿。 ## 依赖与输出 @@ -87,7 +87,7 @@ | 上游 | [数据配置](../表现与支撑/数据配置.md) | 变异类型清单的表结构承载与统一读取;本系统是清单内容的回填责任方 | | 上游 | [棋盘生成](棋盘生成.md) | 生成期布置的结构位(管线预留段);布置约束与参数待定稿 | | 下游 | [排雷玩法](排雷玩法.md) | 零特判义务的承接方:执行逻辑不按变异分支,只按格子数据行动 | -| 下游 | [辅助道具](辅助道具.md) | 反制道具配套义务的承接方(五维度框架的"反制"维度) | +| 下游 | [魔法道具](魔法道具.md) | 反制道具配套义务的承接方(五维度框架的"反制"维度) | | 相邻 | [行动经济](行动经济.md) | "地形成本修饰"价目钩子(不同格子不同价)暂缓启用,待本系统首批变异定稿后重议(见该文档 P1/P2 后置) | ## P0 最小闭环 diff --git a/design/gdd/systems/排雷循环/排雷玩法.md b/design/gdd/systems/排雷循环/排雷玩法.md index 98236eee..5d18f072 100644 --- a/design/gdd/systems/排雷循环/排雷玩法.md +++ b/design/gdd/systems/排雷循环/排雷玩法.md @@ -31,7 +31,7 @@ | 行动点价目与扣费 | [行动经济](行动经济.md) | | 棋盘怎么生成、可推理性保证 | [棋盘生成](棋盘生成.md) | | 轮次编排与收益兑现 | [战斗结算](../战斗循环/战斗结算.md) | -| 格面资源内容与极性兑付档位 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 格面资源内容与极性兑付档位 | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 界面呈现 | [HUD 框架](../表现与支撑/HUD框架.md) | ## 在核心循环中的位置 @@ -75,7 +75,7 @@ 每个已开安全格都亮着一个数字,恒等于它周围 8 格里的雷数。这条"数字恒真"是全部推理的地基:数据层从不说谎,呈现层怎么遮掩都不改真值——任何让数字失真的实现都在禁止之列。 -挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未插旗的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只花首格挖掘的 1 点,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[奖励道具经济](../战斗循环/奖励道具经济.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。 +挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未插旗的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只花首格挖掘的 1 点,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[地图战斗资源](../战斗循环/地图战斗资源.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。 连锁遇到旗就停:旗格不被链开,也不给更远的格当传播跳板。旗花 1 点行动点,正是玩家亲手买下的"链阻断器"——对一片不敢确定的地,提前插一面旗,塌方到它为止。 @@ -98,7 +98,7 @@ ### 每张新图白送一片开阔地:开局初始展开 -每装上一张新图,本系统在同一个事务里免费翻开出生 3×3(小人出生的那片安全区),加上与它连成一片的开阔地——凡是与出生区连通的 0 格地带全部亮起。展开完成后,小人落在出生 3×3 的中心格。这片初始展开每次装板只发生一次,跨轮不重放;换新图时按新板重来。这批格是**封锁格**:已开、计入清图进度,但恒不携带格面资源——不再有任何加成(资源分配规则归[奖励道具经济](../战斗循环/奖励道具经济.md))。 +每装上一张新图,本系统在同一个事务里免费翻开出生 3×3(小人出生的那片安全区),加上与它连成一片的开阔地——凡是与出生区连通的 0 格地带全部亮起。展开完成后,小人落在出生 3×3 的中心格。这片初始展开每次装板只发生一次,跨轮不重放;换新图时按新板重来。这批格是**封锁格**:已开、计入清图进度,但恒不携带格面资源——不再有任何加成(资源分配规则归[地图战斗资源](../战斗循环/地图战斗资源.md))。 初始展开守四条铁律: @@ -140,7 +140,7 @@ 标旗与撤旗都是动作,轮末结算时走[战斗结算](../战斗循环/战斗结算.md)的抵消过滤:标旗后当轮又被撤旗的,该次标旗不进入兑付(判定批以在场旗位为基线,不在场即不判)——零兑付、行动点不返还;开格事实不可撤。旗不参与清图判定,但带旗的格没挖开就照常挡着——全图标旗一格不挖,永远清不了图。 -标空就是标错,玩家读到的是控制失败——惩罚兑付为该安全格格面资源的负向(极性矩阵,归[奖励道具经济](../战斗循环/奖励道具经济.md)与[战斗结算](../战斗循环/战斗结算.md)),本系统只报"标空"事实。 +标空就是标错,玩家读到的是控制失败——惩罚兑付为该安全格格面资源的负向(极性矩阵,归[地图战斗资源](../战斗循环/地图战斗资源.md)与[战斗结算](../战斗循环/战斗结算.md)),本系统只报"标空"事实。 换图时旗全量消失,两条路径待遇不同:清图换图发生在轮末,旧旗先走完当轮判定、再随旧图清空;挖掘期刷新换图不打断当轮,旧旗没等到判定就失效——零兑付,插旗花的行动点也不返还。战斗结束、整板退役时同样清空。 @@ -173,7 +173,7 @@ | 事件 | 何时发 | 内容 | |---|---|---| -| 挖开格 | 每开一格(初始展开、连锁、单挖各算) | 哪格、安全还是雷、数字、经哪条路开的、有无格面资源资格(封锁格恒无;安全格与雷格恒有——资源本体与极性兑付归[奖励道具经济](../战斗循环/奖励道具经济.md),本系统不区分) | +| 挖开格 | 每开一格(初始展开、连锁、单挖各算) | 哪格、安全还是雷、数字、经哪条路开的、有无格面资源资格(封锁格恒无;安全格与雷格恒有——资源本体与极性兑付归[地图战斗资源](../战斗循环/地图战斗资源.md),本系统不区分) | | 旗判定 | 每次轮次结束时逐旗一条 | 哪面旗、标中还是标空 | | 轮次结束 | 每轮恰一条 | 这轮怎么结束的(清图 / 耗尽)、下一轮换不换图的建议 | @@ -197,7 +197,7 @@ | 上游 | [棋盘生成](棋盘生成.md) | 棋盘产物的消费方;装板时校验结构前提(出生区无雷、数字恒真等),违例拒绝装板 | | 上游 | [行动经济](行动经济.md) | 唯一扣费入口:本系统判棋盘面后请账本扣费,绝不自行扣减;挖成后上报连锁规模与清图事实;停手意图经批次入口转交 | | 下游 | [战斗结算](../战斗循环/战斗结算.md) | 三事件的订阅方、轮末兑现方;换新图指令由它回发 | -| 下游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 本系统只上报"这格有无格面资源资格"的事实;资源内容与极性兑付不经本系统 | +| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 本系统只上报"这格有无格面资源资格"的事实;资源内容与极性兑付不经本系统 | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 呈现义务归 HUD 框架 | ## P0 最小闭环 @@ -216,7 +216,7 @@ | 优先级 | 内容 | 后置原因 | |---|---|---| -| P2 | 探测类道具的查询接口 | 接口归[辅助道具](辅助道具.md)定稿,本系统不预写 | +| P2 | 探测类道具的查询接口 | 接口归[魔法道具](魔法道具.md)定稿,本系统不预写 | | P2 | 地形变异接入的格面规则 | 地形变异尚未定稿;接入时走本文修订流程 | ## 调参表 @@ -245,7 +245,7 @@ | 条目 | 现状与失义原因 | 建议归属 | |---|---|---| -| 连锁批量奖励的溢出吸收 | 一条大连锁一次给出大量奖励资格,超出增益叠层上限时如何处理(折算、顺延或显式接受)未定 | [战斗结算](../战斗循环/战斗结算.md)与[奖励道具经济](../战斗循环/奖励道具经济.md)条目化 | +| 连锁批量奖励的溢出吸收 | 一条大连锁一次给出大量奖励资格,超出增益叠层上限时如何处理(折算、顺延或显式接受)未定 | [战斗结算](../战斗循环/战斗结算.md)与[地图战斗资源](../战斗循环/地图战斗资源.md)条目化 | ## 版本历史 diff --git a/design/gdd/systems/排雷循环/棋盘生成.md b/design/gdd/systems/排雷循环/棋盘生成.md index 8d558460..adbe414c 100644 --- a/design/gdd/systems/排雷循环/棋盘生成.md +++ b/design/gdd/systems/排雷循环/棋盘生成.md @@ -31,7 +31,7 @@ | 换图时机与轮次编排 | [战斗结算](../战斗循环/战斗结算.md)(本系统纯被调用) | | 难度数值定多少 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md)(调参所有权在对方) | | 变异内容与解锁节奏 | [地形变异](地形变异.md)(本系统只消费其候选池门控) | -| 奖励内容与图类型差异化插槽 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 奖励内容与图类型差异化插槽 | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 界面呈现 | [HUD 框架](../表现与支撑/HUD框架.md) | | 配置表承载与读取机制 | [数据配置](../表现与支撑/数据配置.md)(本系统是该表的回填责任方) | @@ -149,7 +149,7 @@ ### 图类型标签与第三轴预留:主题恒定、Boss 板有座位 -每张图带一组图类型标签(board_biome 字段;biome 即图的主题、题材)。同关卡同深度的所有图,主题静态恒定——不存在逐图重掷主题的接口,"不会上钓鱼的当"是结构保证而非文案。现行值只有占位 {"dungeon"}(provisional):标签词表尚未定稿,定稿前只校验非空,定稿后补域校验。这组标签是表现侧换色板与[奖励道具经济](../战斗循环/奖励道具经济.md)图类型差异化插槽的数据源。本节为数据约定,无计算。 +每张图带一组图类型标签(board_biome 字段;biome 即图的主题、题材)。同关卡同深度的所有图,主题静态恒定——不存在逐图重掷主题的接口,"不会上钓鱼的当"是结构保证而非文案。现行值只有占位 {"dungeon"}(provisional):标签词表尚未定稿,定稿前只校验非空,定稿后补域校验。这组标签是表现侧换色板与[地图战斗资源](../战斗循环/地图战斗资源.md)图类型差异化插槽的数据源。本节为数据约定,无计算。 参数表的键是关卡序号 × 节点深度,难度沿这两条轴雕刻;精英与 Boss 修饰是预留的第三条轴。本系统不定任何修饰数值,只锁定落点约定——这也是[关卡节点地图](../冒险循环/关卡节点地图.md)与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)两份文档的输入: @@ -172,7 +172,7 @@ | 下游 | [行动经济](行动经济.md) | 单向事实依赖:P(安全)(挖掘目标格为安全格的概率)是对方挖掘风险不等式的概率锚,锚值由本系统供给——实测可推理率分布的低分位值,不是及格线参数 | | 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 参数数值所有权方;只按表调参,禁反向调用生成 | | 下游 | [关卡节点地图](../冒险循环/关卡节点地图.md) | 第三轴 Boss 板落点约定的共同输入 | -| 下游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | board_biome 作图类型上下文(行参数静态恒定) | +| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | board_biome 作图类型上下文(行参数静态恒定) | | 对外接口 | 形态 | |---|---| diff --git a/design/gdd/systems/排雷循环/行动经济.md b/design/gdd/systems/排雷循环/行动经济.md index c784170f..6849ff46 100644 --- a/design/gdd/systems/排雷循环/行动经济.md +++ b/design/gdd/systems/排雷循环/行动经济.md @@ -30,7 +30,7 @@ |---|---| | 棋盘规则与动作执行 | [排雷玩法](排雷玩法.md) | | 轮次编排与结算兑现 | [战斗结算](../战斗循环/战斗结算.md) | -| 奖励内容与档位 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 奖励内容与档位 | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 数值表本体与读取机制 | [数据配置](../表现与支撑/数据配置.md)(本系统只回填自己的表) | | 界面呈现 | [HUD 框架](../表现与支撑/HUD框架.md) | | 教学口径的呈现 | [教学引导](../表现与支撑/教学引导.md) | @@ -132,7 +132,7 @@ | P(安全) / P(雷) | 挖掘目标格为安全格 / 为雷的概率 | [棋盘生成](棋盘生成.md)的可推理率参数 | | 增益当量下界 | 最低档安全格增益换算值 | 战斗结算的效果对照表 | | 敌方增益当量上界 | 踩雷惩罚的换算上限 | [敌人系统](../战斗循环/敌人系统.md)的惩罚上限表 | -| 清图奖励当量 | 清图奖励的换算值 | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 清图奖励当量 | 清图奖励的换算值 | [地图战斗资源](../战斗循环/地图战斗资源.md) | ### 配置纪律 @@ -145,7 +145,7 @@ | 上游 | [数据配置](../表现与支撑/数据配置.md) | 配置表 schema 与类型化读取;本系统是该表的回填责任方 | | 上游 | [排雷玩法](排雷玩法.md) | 挖/插/拔的调用方:只判棋盘合法性,扣费必须过账本 | | 下游 | [战斗结算](../战斗循环/战斗结算.md) | 轮末两字段消息的接收方;回发换图指令与战斗结束信号;五条经济契约的对账责任方 | -| 下游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 清图奖励内容与图类型差异化插槽的归口 | +| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 清图奖励内容与图类型差异化插槽的归口 | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 行动点与储备池常显;刷新入口;清零反馈;动作被拒原因的双源呈现(棋盘非法 vs 资源不足) | | 下游 | [教学引导](../表现与支撑/教学引导.md) | 价目与"储备池战斗结束清零"的教学口径来源 | @@ -165,7 +165,7 @@ | 优先级 | 内容 | 后置原因 | |---|---|---| | P1 | 储备池跨战斗携带开关 | 现行每场战斗清零(防滚雪球);是否解禁连刷策略,等实测数据说话 | -| P1 | 清图奖励按图类型差异化 | 结构位已预留,内容归奖励道具经济的表设计 | +| P1 | 清图奖励按图类型差异化 | 结构位已预留,内容归地图战斗资源的表设计 | | P2 | 地形成本修饰(不同格子不同价) | MVP 价目均匀是有意简化;钩子已预留,待地形变异首批类型定稿 | | P2 | 行动点耗尽的教学提示 | 规则已定"0 点即收轮";若新手困惑,加提示不改规则,归教学引导 | diff --git a/design/gdd/systems/排雷循环/辅助道具.md b/design/gdd/systems/排雷循环/魔法道具.md similarity index 91% rename from design/gdd/systems/排雷循环/辅助道具.md rename to design/gdd/systems/排雷循环/魔法道具.md index 30f4db5f..45195ff3 100644 --- a/design/gdd/systems/排雷循环/辅助道具.md +++ b/design/gdd/systems/排雷循环/魔法道具.md @@ -1,16 +1,16 @@ -# 辅助道具 +# 魔法道具 -> 一句话:扫雷侧辅助道具(显影、探测类) +> 一句话:扫雷侧魔法道具(显影、探测类) > 状态:已定稿(自旧体系迁移) > 旧版参考:../../../archive/gdd-2026-09-14/a5-minesweeper-aux-items.md ## 设计目的 -挖掘期玩家偶尔会撞上"推理断头"的时刻:数字读不出下一格的把握,或者面前一片格子不知道哪格有货。辅助道具就是挖掘期的信息与行动力市场——它们是地牢里前人探险者留下的遗落物,从战斗奖励里捡来,在挖掘的关键时刻主动花掉:买回一点推理原料、提前看见惩罚格或奖励的身份,或者干脆给当轮加行动点。买情报的代价是真实的:产出道具的那个格子就出不了战斗奖励,花在一张图上的情报在弃图时一并沉没。道具零随机——它不掷骰子,只把棋盘上已经存在的事实交给玩家。 +挖掘期玩家偶尔会撞上"推理断头"的时刻:数字读不出下一格的把握,或者面前一片格子不知道哪格有货。魔法道具就是挖掘期的信息与行动力市场——它们是地牢里前人探险者留下的遗落物,从战斗奖励里捡来,在挖掘的关键时刻主动花掉:买回一点推理原料、提前看见惩罚格或奖励的身份,或者干脆给当轮加行动点。买情报的代价是真实的:产出道具的那个格子就出不了战斗奖励,花在一张图上的情报在弃图时一并沉没。道具零随机——它不掷骰子,只把棋盘上已经存在的事实交给玩家。 ## 系统范围 -边界这样划:辅助道具管四件事——道具本体怎么定义、从哪获取、怎么使用、信息存在哪。它不管道具掉不掉、掉多少(归掉落池的归口),不管行动点怎么扣(归账本),也不自己画界面。本系统的边界锚是[不做清单](../../05-不做清单.md)的一条裁定:允许"恢复推理原料"类道具(显影、预读),不允许道具替代推理。 +边界这样划:魔法道具管四件事——道具本体怎么定义、从哪获取、怎么使用、信息存在哪。它不管道具掉不掉、掉多少(归掉落池的归口),不管行动点怎么扣(归账本),也不自己画界面。本系统的边界锚是[不做清单](../../05-不做清单.md)的一条裁定:允许"恢复推理原料"类道具(显影、预读),不允许道具替代推理。 负责: @@ -18,7 +18,7 @@ |---|---| | 道具定义表 | 六件道具的字段定义:名称、维度、效果组合、目标形态、数值;承重护栏在加载期校验中强制 | | 五维度框架与覆盖检查 | 每件道具至少归入一个维度;加载后自动检查每个维度至少有一件可用道具 | -| 关卡域库存 | 辅助道具的关卡背包:跨轮、跨图、跨战斗延续,关卡结束清空;与战斗道具背包是两个独立容器 | +| 关卡域库存 | 魔法道具的关卡背包:跨轮、跨图、跨战斗延续,关卡结束清空;与战斗道具背包是两个独立容器 | | 使用规则与目标校验 | 什么时候能用、目标合不合法、失败分几级、哪一级不消耗 | | 板级叠加层 | 道具信息的自持容器:按效果分类的格集,随图消亡、不回写棋盘 | @@ -26,7 +26,7 @@ | 不负责 | 归谁 | |---|---| -| 掉落池权重与档位、掉多少 | [奖励道具经济](../战斗循环/奖励道具经济.md)(数值 provisional 归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)) | +| 掉落池权重与档位、掉多少 | [地图战斗资源](../战斗循环/地图战斗资源.md)(数值 provisional 归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)) | | 授予路由与使用编排的调用权 | [战斗结算](../战斗循环/战斗结算.md) | | 行动点账本与加量过账 | [行动经济](行动经济.md) | | 棋盘规则本体与动作执行 | [排雷玩法](排雷玩法.md) | @@ -76,9 +76,9 @@ ### 道具从哪来:掉落池获取与关卡域库存 -道具不卖、不合成,唯一来路是战斗奖励:辅助道具作为一个奖励类别进入掉落池,权重与档位归[奖励道具经济](../战斗循环/奖励道具经济.md)管,本系统只定义道具本体。玩家挖开带道具的格子时,[战斗结算](../战斗循环/战斗结算.md)把道具路由进辅助道具的关卡背包——它和战斗道具背包是两个独立容器,互不混装,寿命相同:都活到关卡结束,无论输赢,关卡末同批清空。 +道具不卖、不合成,唯一来路是战斗奖励:魔法道具作为一个奖励类别进入掉落池,权重与档位归[地图战斗资源](../战斗循环/地图战斗资源.md)管,本系统只定义道具本体。玩家挖开带道具的格子时,[战斗结算](../战斗循环/战斗结算.md)把道具路由进魔法道具的关卡背包——它和战斗道具背包是两个独立容器,互不混装,寿命相同:都活到关卡结束,无论输赢,关卡末同批清空。 -每件道具记录它从哪个格子的哪一轮被捡到,来源可归因;用一件少一件、不能反悔;背包不设上限,稀缺完全由掉落权重控制——按默认权重,辅助道具期望约每板 1.7 件、稀有件约每六板一件(provisional 读数,随权重联动)。本节无计算,供给读数见调参表。 +每件道具记录它从哪个格子的哪一轮被捡到,来源可归因;用一件少一件、不能反悔;背包不设上限,稀缺完全由掉落权重控制——按默认权重,魔法道具期望约每板 1.7 件、稀有件约每六板一件(provisional 读数,随权重联动)。本节无计算,供给读数见调参表。 ### 什么时候怎么用:挖掘期发起,战斗结算编排 @@ -97,7 +97,7 @@ ### 信息住在哪:板级叠加层,随图消亡 -道具产生的信息不写进棋盘,而是记入独立的板级叠加层——按效果分类的格集(现行有效的是真视格集与预读格集)。叠加层只记"哪些格要额外显示":数字永远读棋盘真值,奖励身份永远读奖励表,行动点走行动经济的账本,本系统不持有任何一份副本。这带来一条承重设计:排雷玩法的代码里没有任何一行"为了辅助道具"而写的判断——叠加层是派生信息层,零回写任何其他系统的状态。 +道具产生的信息不写进棋盘,而是记入独立的板级叠加层——按效果分类的格集(现行有效的是真视格集与预读格集)。叠加层只记"哪些格要额外显示":数字永远读棋盘真值,奖励身份永远读奖励表,行动点走行动经济的账本,本系统不持有任何一份副本。这带来一条承重设计:排雷玩法的代码里没有任何一行"为了魔法道具"而写的判断——叠加层是派生信息层,零回写任何其他系统的状态。 叠加层随图消亡:清图换新图、花储备换新图的弃图刷新(见[行动经济](行动经济.md))、战斗结束,三者任一发生叠加层即清空,已花道具不返还——在一张图上花的情报随这张图沉没,这是设计意图不是疏漏。效果即时可见:使用发生在挖掘期,信息当场改变棋盘呈现,不进轮末结算明细。本节纯流程,无计算。 @@ -111,7 +111,7 @@ | 方向 | 系统 | 接口要点 | |---|---|---| -| 上游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 辅助道具作为奖励类别进入掉落池;权重、档位与投放归其管 | +| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 魔法道具作为奖励类别进入掉落池;权重、档位与投放归其管 | | 上游 | [战斗结算](../战斗循环/战斗结算.md) | 授予路由与使用编排的唯一调用方:四步固定次序的受理,叠加层与库存的清空也由它编排 | | 上游 | [行动经济](行动经济.md) | 加行动点效果经其账本入口入账;使用道具本身不过账本、零扣费 | | 上游 | [排雷玩法](排雷玩法.md) | 目标校验与信息呈现读取棋盘只读面;对侧代码零本系统分支 | @@ -119,13 +119,13 @@ | 上游 | [数据配置](../表现与支撑/数据配置.md) | 道具定义表的 schema 承载与加载校验通道;本系统是该表的回填责任方 | | 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 库存条常读、使用交互与目标拾取、叠加层信息呈现、关卡末清空反馈 | | 下游 | [教学引导](../表现与支撑/教学引导.md) | 教学候选:"买情报"闭环与"真视不是保护"的措辞口径(非阻塞) | -| 双向 | 各对侧系统 | 旧体系遗留 21 项跨系统义务(编排入口、呈现义务、表值回填等)逐项挂在对侧修订批核销,清单全文见 registry 辅助道具条目的 obligations 字段 | +| 双向 | 各对侧系统 | 旧体系遗留 21 项跨系统义务(编排入口、呈现义务、表值回填等)逐项挂在对侧修订批核销,清单全文见 registry 魔法道具条目的 obligations 字段 | 负空间:本系统不监听事件、不画界面、不用随机数、不写任何其他系统的数据;信息只来自三个既有事实源——棋盘真值、奖励身份、行动点账本。 ## P0 最小闭环 -1. 每张图开出前,掉落池已定好哪些格子带辅助道具(归奖励道具经济)。 +1. 每张图开出前,掉落池已定好哪些格子带魔法道具(归地图战斗资源)。 2. 玩家挖开这样的格子,战斗结算把道具路由进关卡域库存,记录来源格与轮次。 3. 挖掘期玩家选中道具与目标发起使用,战斗结算按上文四步编排受理。 4. 呈现层重查刷新:玩家看到情报或行动点入账,继续挖格决策。 @@ -169,7 +169,7 @@ playtest 预警(预注册,归难度曲线与Boss): - 护栏强制:任何标出惩罚格的道具定义,目标域字段超过 3×3 时数据加载直接报错拒绝;现行六件道具加载通过。 - 覆盖检查:加载后自动检查五个维度各有至少一件掉落权重为正的道具;按现行内容,信息与反制两维度报缺(见待拍板)。 -- 两包正交:捡到辅助道具不进战斗道具背包;两包寿命相同,关卡结束(无论输赢)同批清空。 +- 两包正交:捡到魔法道具不进战斗道具背包;两包寿命相同,关卡结束(无论输赢)同批清空。 - 使用窗口:非挖掘期的使用请求被拒绝且不消耗;挖掘期任意时点可发起。 - 零消耗拒绝:目标不合法(例如点在已挖开的格子上)时道具不消耗、库存不变、反馈可辨认;板级零信息时图标置灰、入口禁用。 - 边缘受理:3×3 窗口中心格贴板角时照常受理,按窗口与棋盘的交集(角 4 格)结算并正常消耗。 @@ -184,14 +184,15 @@ playtest 预警(预注册,归难度曲线与Boss): | 条目 | 失义原因 | 建议归属 | |---|---|---| -| 显影尘效果重定 | 原效果"显影"为恢复雾下推理原料(雾格数字显影,时效本图持续);雾格已于 2026-09-14 从设计中移除(见[不做清单](../../05-不做清单.md)),效果整体失义。名称按登记保留,不另起名 | 辅助道具内容重定批(信息维度载体) | -| 地穴全图卷效果重定 | 原效果为全图显影 × 全图预读的组合:预读半边不涉雾、仍然成立;显影半边随雾格移除失义。重定需拍板:保留为纯全图预读,还是另配信息半边 | 辅助道具内容重定批(随批) | +| 显影尘效果重定 | 原效果"显影"为恢复雾下推理原料(雾格数字显影,时效本图持续);雾格已于 2026-09-14 从设计中移除(见[不做清单](../../05-不做清单.md)),效果整体失义。名称按登记保留,不另起名 | 魔法道具内容重定批(信息维度载体) | +| 地穴全图卷效果重定 | 原效果为全图显影 × 全图预读的组合:预读半边不涉雾、仍然成立;显影半边随雾格移除失义。重定需拍板:保留为纯全图预读,还是另配信息半边 | 魔法道具内容重定批(随批) | | 反制维度承载失义 | 反制维度的唯一承载是显影尘,经由地形变异"雾"行的反制道具绑定(绑定值 [probe_dust]);雾行移除后绑定悬空。"每变异至少一件反制道具"的框架契约本身不受影响 | 地形变异新类型建行批,与显影尘重定批合流 | -| 维度覆盖检查破缺 | 信息、反制两维度现行无有效承载道具,加载后的覆盖检查在现行六件内容上无法通过。需拍板:检查对失义维度临时豁免,还是加速重定补齐 | 辅助道具内容重定批(含数据校验面) | -| 失义道具的掉落投放 | 获取与可用性本就解耦(可先捡后用);显影尘与地穴全图卷效果待重定期间是否继续进掉落池投放,未定 | 奖励道具经济的奖励池修订批 | +| 维度覆盖检查破缺 | 信息、反制两维度现行无有效承载道具,加载后的覆盖检查在现行六件内容上无法通过。需拍板:检查对失义维度临时豁免,还是加速重定补齐 | 魔法道具内容重定批(含数据校验面) | +| 失义道具的掉落投放 | 获取与可用性本就解耦(可先捡后用);显影尘与地穴全图卷效果待重定期间是否继续进掉落池投放,未定 | 地图战斗资源的奖励池修订批 | ## 版本历史 | 版本 | 日期 | 改动 | |---|---|---| | v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 | +| v0.2 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"辅助道具"→"魔法道具"——定位已非纯数值道具,含信息/妙用向效果;文件同步重命名;英文代号 AUXILIARY_ITEMS 暂沿用 | diff --git a/design/gdd/systems/表现与支撑/HUD框架.md b/design/gdd/systems/表现与支撑/HUD框架.md index 5f096e11..959818ae 100644 --- a/design/gdd/systems/表现与支撑/HUD框架.md +++ b/design/gdd/systems/表现与支撑/HUD框架.md @@ -18,13 +18,13 @@ HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、 | 负责 | 说明 | |---|---| -| 战斗屏五区布局 | 五区系统级契约与常驻组件呈现形态;棋盘格尺寸定值档与装板校验 | +| 战斗屏四区布局 | 四区系统级契约与常驻组件呈现形态;棋盘格尺寸定值档与装板校验 | | 输入翻译 | 鼠标操作翻译成意图批次、一帧内整批提交;悬停预承诺与可挖域指示 | | 提示体系 | toast 轻提示与一次性提示;拒绝反馈的呈现映射 | | 模态覆盖层家族 | 图例面板、明细回看、胜负终局共用的层级纪律 | | 订阅与载荷契约 | 呈现层订阅纪律、信号载荷的消费侧断言 | | 程序化占位 | 美术终稿前的代码占位策略与图标键挂接 | -| 游玩遥测 | 拒绝、刷新尝试、窗口选择等观测行,写入试玩日志供调参取数 | +| 游玩遥测 | 拒绝、刷新尝试等观测行,写入试玩日志供调参取数 | | 可访问性基线 | 字号、对比、闪烁、减动效、纯鼠标的验收底线 | 不负责: @@ -50,21 +50,20 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 本章六节:前三节定画面的骨架与进出规则(屏、弹层、刷新),后三节定数据与资产怎么进来(载荷、占位、底线)。 -### 战斗屏五区双舞台:挖掘与结算同屏不切场景 +### 战斗屏四区双舞台:挖掘与结算同屏不切场景 战斗屏是 MVP 唯一的玩法屏,采用"双舞台"布局——战斗画面与扫雷图两块区域同屏常驻、互不顶替:挖掘期敌人在上方待机可见,轮末结算在原地逐行展开,全程不切换场景。"扫雷的因"与"战斗的果"因此永远摆在一起,因果不需要玩家凭记忆拼接。 -五区各管一块: +四区各管一块: | 区 | 位置与尺寸 | 管什么 | |---|---|---| | A 关卡进度条 | 全宽 28px 顶栏 | 节点链步进与当前位置 | | B 战斗画面 | 全宽 252px | 英雄卡、敌人卡、轮次阶段指示、结算明细带 | | C 角色信息 | 左下 240×520 | 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘 | -| D 扫雷图 | 中下约 760×520 | 行动点条与按钮组、棋盘本体、toast 槽 | -| E 道具栏 | 右下 280×520 | 库存常读列表;窗口态在原位点亮 | +| D 扫雷图 | 中下约 1036×520(原右下面板删除后横向加宽) | 行动点条与按钮组、棋盘本体、toast 槽 | -分区尺寸与组件落位的像素级裁决归 [battle.md](../../../ux/battle.md);五区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。 +分区尺寸与组件落位的像素级裁决归 [battle.md](../../../ux/battle.md);四区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。 **结论**:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px([battle.md](../../../ux/battle.md) 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即报错中止。 @@ -79,10 +78,10 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 |---|---|---| | N | 棋盘边长格数 | 10 或 12([棋盘生成](../排雷循环/棋盘生成.md)的两档尺寸) | | 定值档 | 12×12 → 36px;10×10 → 45px | 结构冻结 | -| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 1280×800 下 760 / 476(520 减行动点条 44) | +| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 1280×800 下 1036 / 476(520 减行动点条 44) | | 边距 | 水平 / 垂直 | 各 16px | -1280×800 下实算:可用高度 460px,12×12 得 38 ≥ 36、10×10 得 46 ≥ 45,两档都通过。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。 +1280×800 下实算:可用高度 460px,12×12 得 38 ≥ 36、10×10 得 46 ≥ 45,两档都通过。宽度向同理余量充裕(1036−16 远大于 12 格定值档所需)。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。 ### 提示与弹层:轻提示随起随消、重弹层排队进出 @@ -92,7 +91,6 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 |---|---|---| | toast | 非模态 | 自动消退 2.5 秒,不打断挖掘 | | 图例面板 / 明细回看 / 胜负终局 | 模态 | 同一张登记序栈:统一入栈出栈、后开置顶、关闭逐层恢复 | -| 道具窗口 | 非模态(不入栈) | 道具栏原位点亮;激活期间锁定棋盘区输入 | 两条纪律横跨两族。其一,"第一次遇到"类提示(本作没有双击快开、挖不相邻格要先走近)走 toast,每场冒险至多弹一次。其二,拒绝反馈不属于一次性族——每次被拒都要可感知,且图标与文案双通道冗余(不靠颜色单独承载);棋盘面拒绝(动作不合棋盘规则,目标格边框闪)与资源面拒绝(行动点或储备不足,数字脉冲)必须可区分。图例面板恒可随时打开回看,不设解锁门。 @@ -109,7 +107,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | 棋盘(旗、小人位置) | 意图批次调用返回后重查 | | 行动点 / 储备 | 每次写路径回执后重读 | | 状态效果 | 绑定结算编排完成时点 | -| 库存 | 写路径回执后重查 | +| 已开格奖励身份 | 已开格揭显时经身份解析只读回调查询(`query_identity`,组合根注入) | 就地更新指只改变化的字段、不整块重建界面——整块重建会把敌人卡死亡灰化这类就地状态吞掉。 @@ -145,7 +143,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | 输入 | 全部操作纯鼠标可完成 | | 中文字体 | 随包内置并设为默认——运行时默认字体无中文字形 | -按钮文案以 4 个汉字为宽度上限(「停手」「跳过」等),译成西文不破版。正式的分层方案(文本缩放、色盲模式、按键重映射)待专项文档定稿,见 P1 后置。 +按钮文案以 4 个汉字为宽度上限(「停手」「弃图刷新」等),译成西文不破版。正式的分层方案(文本缩放、色盲模式、按键重映射)待专项文档定稿,见 P1 后置。 ## 依赖与输出 @@ -155,12 +153,12 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 |---|---|---| | 上游 | [排雷玩法](../排雷循环/排雷玩法.md) | 棋盘只读投影(格态、数字、旗、小人)与移动路径查询;玩家意图批次经组合根提交 | | 上游 | [行动经济](../排雷循环/行动经济.md) | 行动点 / 储备 / 相位只读值;刷新入口可用性预判加返回值兜底 | -| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 明细流水是结算明细带与道具窗口的统一数据源;窗口选择提交 | +| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 明细流水是结算明细带的统一数据源(现行 10 类行封闭协议);段序编排信号经组合根接线 | | 上游 | [敌人系统](../战斗循环/敌人系统.md) | 英雄与敌人的只读投影(血量、顺位、当前拍、存活) | | 上游 | [增益状态](../战斗循环/增益状态.md) | 状态投影经战斗结算呈现面取得,零直读 | -| 上游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 库存查询与奖励身份投影经战斗结算取得,零直读 | +| 上游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 已开格奖励身份投影(`query_identity` 只读回调,组合根注入)零直读 | | 上游 | [关卡节点地图](../冒险循环/关卡节点地图.md) | 节点链、当前节点、跨战斗生命携带的读数;胜利后推进 | -| 下游 | [战斗表现](../战斗循环/战斗表现.md) | 交付五区布局、明细带呈现位、敌人卡呈现语义;它只叠加动画密度与演出 | +| 下游 | [战斗表现](../战斗循环/战斗表现.md) | 交付四区布局、明细带呈现位、敌人卡呈现语义;它只叠加动画密度与演出 | | 下游 | [音频](音频.md) | 挂点事件源(明细行类型流、toast 触发);MVP 无音频 | | 下游 | [教学引导](教学引导.md) | toast 与图例面板两个承载位——教学内容装进这两个容器 | | 下游 | [设置与本地化](设置与本地化.md) | 中文字体随包、按钮宽度、术语表等契约的消费方 | @@ -171,22 +169,21 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 |---|---| | [排雷玩法](../排雷循环/排雷玩法.md) | 已开 / 未开格态一眼可辨;悬停预承诺与可挖域常驻指示;移动路径预览即合法性指示;每次拒绝可感知且棋盘面细因可区分;停手被改判可感知 | | [行动经济](../排雷循环/行动经济.md) | 行动点与储备常显;储备清零反馈;棋盘面与资源面拒绝可区分;刷新入口与代价可读 | -| [战斗结算](../战斗循环/战斗结算.md) | 四类未生效明细行的呈现;道具使用窗口呈现;高光行强调;关卡末库存清空反馈 | +| [战斗结算](../战斗循环/战斗结算.md) | 未生效类明细行(溢出未生效 / 奖励未生效)的呈现;高光行强调 | | [敌人系统](../战斗循环/敌人系统.md) | 意图线索映射成文且全局恒定;单位顺位与血条可读;敌方共享层数各卡同值 | | [增益状态](../战斗循环/增益状态.md) | 状态栏常显;无状态时整排槽隐藏;有利 / 有害极性呈现不看数值符号 | -| [奖励道具经济](../战斗循环/奖励道具经济.md) | 已开格与库存的奖励身份常读;窗口至多选用一件;禁用件带原因 | -| [辅助道具](../排雷循环/辅助道具.md) | 库存条常读;使用交互与目标拾取;板级叠加层信息呈现 | +| [地图战斗资源](../战斗循环/地图战斗资源.md) | 已开格的奖励身份常读 | +| [魔法道具](../排雷循环/魔法道具.md) | 库存条常读;使用交互与目标拾取;板级叠加层信息呈现 | | [棋盘生成](../排雷循环/棋盘生成.md) | 零合法板的诚实告知(数据面经战斗结算上抛,本系统只管提示形态) | ## P0 最小闭环 -1. 进入战斗屏:五区同屏就绪,半秒内首格可点。 +1. 进入战斗屏:四区同屏就绪,半秒内首格可点。 2. 挖掘期鼠标操作经单意图帧整批提交(唯一写路径,经组合根)。 3. 回执链:组合根重查只读面,界面字段级就地刷新。 4. 轮末进入结算:棋盘区锁输入,明细带展开逐行兑现(战斗结算流水驱动)。 -5. 窗口锚点:道具栏原位点亮,选用或跳过后回结算流。 -6. 终局呈现(胜利 / 失败)伴随状态全清与储备清零反馈。 -7. 关卡末库存清空反馈后进下一节点或返回。 +5. 终局呈现(胜利 / 失败)伴随状态全清与储备清零反馈。 +6. 关卡末清库反馈:义务载体 = 魔法道具背包,随魔法道具 P0 落地(现行切片无库存容器,直接进下一节点或返回)。 ## P1 / P2 后置 @@ -198,7 +195,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档;MVP 以覆盖层反馈承载 | | P2 | 提示一次性作用域升级为存档级"一生一次" | 归[存档序列化](存档序列化.md)与[元进度](../冒险循环/元进度.md)后重议 | | P2 | 调试面板退役 | 正式侧归元进度;诊断按钮保留为调试设施 | -| P2 | 探测类辅助道具的显影呈现面 | 接口归[辅助道具](../排雷循环/辅助道具.md)定稿批 | +| P2 | 探测类魔法道具的显影呈现面 | 接口归[魔法道具](../排雷循环/魔法道具.md)定稿批 | | P2 | 音频挂点出声 | MVP 无音频,归[音频](音频.md) | ## 调参表 @@ -215,13 +212,13 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | reduce_motion_scale | 每段动画 | 0.5 或跳终态 | 减动效开关系数 | | detail_band_height | 结算明细带 | 24 / 84 px | 摘要 / 实时流两态高度 | -结构冻结(非调参项,改动走文档修订):五区布局与分区尺寸、双舞台常驻、窗口原位激活、单意图帧纪律、弹层层级纪律、图标键映射契约、程序化占位策略、订阅纪律。性能预算为引用值:同屏 draw calls < 200、进入战斗屏 500ms 内可交互。 +结构冻结(非调参项,改动走文档修订):四区布局与分区尺寸、双舞台常驻、单意图帧纪律、弹层层级纪律、图标键映射契约、程序化占位策略、订阅纪律。性能预算为引用值:同屏 draw calls < 200、进入战斗屏 500ms 内可交互。 ## 验收标准 以下判据逐条可测,全部通过才算闭环达标。 -- 五区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。 +- 四区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。 - 两档板装板后格边长取定值档(36 / 45px)且可行性校验通过;数字字号不低于下限、整数倍缩放无模糊。 - 已开 / 未开格态在灰度截图下可逐格分类;已引爆雷格"可通行可读"(已开底加巢穴纹、可作移动目标)。 - 悬停光标三语义(移动 / 挖 / 旗)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。 @@ -229,10 +226,9 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 - 每次拒绝可感知:棋盘面、资源面、相位三类各有呈现且前两类可区分;停手被改判(本轮已清图)玩家可感知;拒绝反馈图标加文案双通道。 - 结算逐行实时滚出且每行带来源标注;未生效类行聚合计数并带形状冗余;零值行不被吞;效果行的单次贡献与池合成值分示、禁相加误读。 - 高光三档:标中旗行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。 -- 道具窗口原位点亮、至多选一件、禁用件带原因、空库存不弹窗、提交的是窗口条目位置。 - 状态槽显示图标加层数加剩余结算次数,悬停见来源;极性按键级表呈现(金满框 / 红缺框),空态整排隐藏、数据框上移补位;战斗结束全清有微文案。 - 敌人卡:意图徽标是下一拍预告且挖掘期全程可见、映射跨局恒定、顺位可读、血量数字可读、敌方共享层数各卡同值;死亡灰化加碎裂退场(禁止瞬间消失)且就地更新不丢灰化态。 -- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂,关卡末库存清空反馈随后到达。 +- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地补验收)。 - 任一模态层打开时遮挡物隐藏或输入锁定、关闭逐层恢复;tooltip 与明细行等动态区固定槽高、换行裁剪不推挤布局。 - 终局呈现只消费流水与快照:核心对象销毁后呈现层对生命周期状态零回读;终局后重放渲染与实时渲染一致。 - 消费的每份载荷逐字段断言通过(缺字段、多字段都算失败)。 @@ -246,8 +242,8 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | 条目 | 失义原因 / 现状 | 建议归属 | |---|---|---| | 敌种线索键集差异 | 切片临时敌名与文档冻结键集(蛆虫 / 伏击兽)不一致,映射表以文档键集为锚 | [敌人系统](../战斗循环/敌人系统.md)修订批对齐 | -| 未开格类型徽章呈现时机 | [art-bible](../../../art/art-bible.md) §4.6.3(提案已拍板待实施)要求未开格呈现家族类型徽章;[奖励道具经济](../战斗循环/奖励道具经济.md)现行锁定 MVP 只在已开格呈现——两口径未对齐 | [奖励道具经济](../战斗循环/奖励道具经济.md)极性提案实施批与本文共裁 | -| 呈现只读面契约登记缺口 | 终局快照、战斗存活查询、库存计数、奖励身份查询等呈现面函数已随切片实现,现行[战斗结算](../战斗循环/战斗结算.md)文档未登记对应对外契约 | [战斗结算](../战斗循环/战斗结算.md)修订批补登记 | +| 未开格类型徽章呈现时机 | [art-bible](../../../art/art-bible.md) §4.6.3(提案已拍板待实施)要求未开格呈现家族类型徽章;[地图战斗资源](../战斗循环/地图战斗资源.md)现行锁定 MVP 只在已开格呈现——两口径未对齐 | [地图战斗资源](../战斗循环/地图战斗资源.md)极性提案实施批与本文共裁 | +| 呈现只读面契约登记缺口 | 终局快照、战斗存活查询、奖励身份查询等呈现面函数已随切片实现,现行[战斗结算](../战斗循环/战斗结算.md)文档未登记对应对外契约 | [战斗结算](../战斗循环/战斗结算.md)修订批补登记 | | 轮内已用刷新次数读数缺口 | 刷新按钮"本轮剩 N 次"文案所需的读数在[行动经济](../排雷循环/行动经济.md)无只读口,客户端无法现读 | [行动经济](../排雷循环/行动经济.md)补只读观测量 | ## 版本历史 @@ -256,3 +252,4 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 |---|---|---| | v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 | | v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」五条雾失义登记(雾图例条目、雾首遇一次性提示、四格态中的两个雾态、雾纹带与已开雾格 tint 残留、雾区全开合并域完成信号)。现行口径 = 格态两态一眼可辨(已开 / 未开)、图例面板只载现行格态与变异语义;通用变异框架的纹带形状通道保留为未来变异类型的呈现位 | +| v0.3 | 2026-09-16 | 格面资源批 UI 欠账收口(可选类道具与其轮末窗口已随 2026-09-15 代码批删除):战斗屏布局五区 → 四区(删 E 道具栏行,D 区加宽至约 1036px 并同步装板校验变量);删道具窗口弹层条款(原位点亮、非模态不入栈)、P0 闭环窗口锚点条目、「道具窗口原位点亮 / 至多选一件 / 禁用件带原因 / 空库存不弹窗」验收行;依赖与输出表的窗口选择提交、道具使用窗口呈现、库存查询义务删除或改述为现行口径(奖励身份投影经 `query_identity` 只读回调,零直读);关卡末清库反馈义务改载魔法道具背包,随魔法道具 P0 落地。魔法道具预留义务行与「待拍板」登记保持 | diff --git a/design/gdd/systems/表现与支撑/教学引导.md b/design/gdd/systems/表现与支撑/教学引导.md index e59c7095..a4dad8de 100644 --- a/design/gdd/systems/表现与支撑/教学引导.md +++ b/design/gdd/systems/表现与支撑/教学引导.md @@ -59,7 +59,7 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来 | chord 不存在的首遇提示 | [HUD 框架](HUD框架.md)(承接排雷玩法的呈现义务) | 经典扫雷玩家会习惯性双击数字格——本作没有 chord,点数字格 = 移动小人。每场冒险提示一次,非模态 | | 挖非相邻格的首次提示 | [HUD 框架](HUD框架.md) | 挖与旗都限小人 8 向相邻的格子,第一次越界操作时提示 | | 增益叠层节奏 | [增益状态](../战斗循环/增益状态.md) | "同一轮拿满优于跨轮慢慢叠"——增益有结算次数衰减,教学要传达这个节奏 | -| 库存关卡末清空 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 道具库存随关卡结束清空,需有反馈与教学条目 | +| 库存关卡末清空 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 道具库存随关卡结束清空,需有反馈与教学条目 | ### 内容原则 diff --git a/design/gdd/systems/表现与支撑/数据配置.md b/design/gdd/systems/表现与支撑/数据配置.md index b30ec6a2..a7df7b87 100644 --- a/design/gdd/systems/表现与支撑/数据配置.md +++ b/design/gdd/systems/表现与支撑/数据配置.md @@ -63,10 +63,10 @@ | 敌人表 `EnemyTable` | 敌种基线数值、遭遇数量区间、护甲类型、行为环(进度键表) | [敌人系统](../战斗循环/敌人系统.md) | | 主角表 `HeroTable` | 主角生命上限与基础攻击 | [敌人系统](../战斗循环/敌人系统.md) | | 状态效果表 `StatusEffectTable` | 增益/减益效果定义行 | [增益状态](../战斗循环/增益状态.md) | -| 奖励表 `RewardTable` | 奖励条目、类别、权重与档位 | [奖励道具经济](../战斗循环/奖励道具经济.md) | -| 奖励配置表 `RewardConfigTable` | 奖励供给控制参数(单行全局) | [奖励道具经济](../战斗循环/奖励道具经济.md) | +| 奖励表 `RewardTable` | 奖励条目、类别、权重与档位 | [地图战斗资源](../战斗循环/地图战斗资源.md) | +| 奖励配置表 `RewardConfigTable` | 奖励供给控制参数(单行全局) | [地图战斗资源](../战斗循环/地图战斗资源.md) | | 结算表 `SettlementTable` | 结算段序、当量参考敞口、封顶与克制矩阵(单行全局) | [战斗结算](../战斗循环/战斗结算.md) | -| 辅助道具表 `AuxItemTable` | 辅助道具定义行 | [辅助道具](../排雷循环/辅助道具.md) | +| 魔法道具表 `AuxItemTable` | 魔法道具定义行 | [魔法道具](../排雷循环/魔法道具.md) | | 难度表 `DifficultyTable` | 难度修饰乘数(占位空表) | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | | 关卡表 `LevelTable` | 逐关节点链与层名 | [冒险结构](../冒险循环/冒险结构.md) | | 冒险表 `AdventureTable` | 关卡大奖励与代币记账(单行全局) | [冒险结构](../冒险循环/冒险结构.md) | @@ -83,7 +83,7 @@ | 流名 | 消费方 | 用途:何时取号 | |---|---|---| | board_gen | [棋盘生成](../排雷循环/棋盘生成.md) | 每次生成新雷图(换图时)取号,布雷随机全部由此流供给 | -| reward_roll | [奖励道具经济](../战斗循环/奖励道具经济.md) | 每次装板时的奖励预分配批(格子奖励批 + 清图奖励批)取号 | +| reward_roll | [地图战斗资源](../战斗循环/地图战斗资源.md) | 每次装板时的奖励预分配批(格子奖励批 + 清图奖励批)取号 | | encounter | [战斗结算](../战斗循环/战斗结算.md) | 每场战斗实例化取号,掷骰决定敌方实际数量 | 取数有两个入口。玩法代码用取号入口:每调用一次,该流计数器加一并派生新种子,同一事件内共享同一实例。测试与预览用纯函数入口:按指定序号计算种子、不推计数器——预览不污染正式序列。种子由登记的派生公式计算,纯函数、跨引擎版本恒定,并登记了可复算的黄金向量。 @@ -147,9 +147,9 @@ | 下游 | [地形变异](../排雷循环/地形变异.md) | 变异表承载(空清单合法态) | | 下游 | [敌人系统](../战斗循环/敌人系统.md) | 敌人表与主角表承载 | | 下游 | [增益状态](../战斗循环/增益状态.md) | 状态效果表承载;悬空引用校验的被指方 | -| 下游 | [奖励道具经济](../战斗循环/奖励道具经济.md) | 奖励表与奖励配置表承载;reward_roll 流取号 | +| 下游 | [地图战斗资源](../战斗循环/地图战斗资源.md) | 奖励表与奖励配置表承载;reward_roll 流取号 | | 下游 | [战斗结算](../战斗循环/战斗结算.md) | 结算表承载;热重载闸门置位与复位;encounter 流取号 | -| 下游 | [辅助道具](../排雷循环/辅助道具.md) | 辅助道具表承载 | +| 下游 | [魔法道具](../排雷循环/魔法道具.md) | 魔法道具表承载 | | 下游 | [冒险结构](../冒险循环/冒险结构.md) | 关卡表与冒险表承载(登记现状见「待拍板」);主种子注入入口 | | 下游 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) | 难度表承载(占位);进度坐标查行的消费方 | | 下游 | [元进度](../冒险循环/元进度.md) | 元进度表占位承载 | diff --git a/design/gdd/systems/表现与支撑/音频.md b/design/gdd/systems/表现与支撑/音频.md index 0c39dc75..afed160c 100644 --- a/design/gdd/systems/表现与支撑/音频.md +++ b/design/gdd/systems/表现与支撑/音频.md @@ -75,7 +75,7 @@ | 清图奖励专属音 | 挂点清单 | 清图奖励行是轮末的仪式峰值,要有专属的音 | | 坍塌显形连锁音效 | [游戏概念](../../00-游戏概念.md)的概念层拍板 | 与[战斗表现](../战斗循环/战斗表现.md)的连锁动画同批配对登记,本文承接音效半边(见下节) | | 蓄力拍的音频前摇 | [敌人系统](../战斗循环/敌人系统.md)的后置登记 | 敌人蓄力那拍的声音预告,作为读招的第二通道,登记为垂直切片可选项 | -| 道具使用的音频反馈 | [辅助道具](../排雷循环/辅助道具.md)的后置登记 | 道具使用的反馈音,表现打磨项后置,排 Alpha | +| 道具使用的音频反馈 | [魔法道具](../排雷循环/魔法道具.md)的后置登记 | 道具使用的反馈音,表现打磨项后置,排 Alpha | ### 坍塌显形:与连锁动画配对的音效半边 @@ -104,7 +104,7 @@ | P1 | 正式音效:四个基础反馈位与挂点清单全部出声 | 正式音频排 Alpha——MVP 打磨项排后 | | P1 | 坍塌显形连锁音效 | 须与[战斗表现](../战斗循环/战斗表现.md)的连锁动画对位设计,批次未定 | | P1 | 蓄力拍音频前摇 | [敌人系统](../战斗循环/敌人系统.md)登记为垂直切片可选项,读招的第二通道 | -| P1 | 道具使用音频反馈 | [辅助道具](../排雷循环/辅助道具.md)登记,表现打磨项排 Alpha | +| P1 | 道具使用音频反馈 | [魔法道具](../排雷循环/魔法道具.md)登记,表现打磨项排 Alpha | | P2 | 音乐方向与场景编排 | 顶层口径:等核心循环验证后再定 | ## 调参表 diff --git a/design/registry/entities.yaml b/design/registry/entities.yaml index 7cd79d39..17461eca 100644 --- a/design/registry/entities.yaml +++ b/design/registry/entities.yaml @@ -23,10 +23,10 @@ entities: streams: [board_gen, reward_roll, encounter] stream_names: 当前封闭清单(增流需改代码 + P1 支柱评审;combat_var 已于 2026-09-07 full 评审删除——玩法随机不预置基础设施;**encounter 增流 2026-09-12 用户拍板**——遭遇随机化批 难度曲线与Boss GDD Core Rule 8,scope_event_binding = 每次战斗实例化恰一 scope,挖掘决策域之外 P1 合规) stream_facade: open_stream(stream) 取号(计数器+1→派生→返回已播种实例);derive_at(stream, scope) 纯函数供测试/预览(不推计数器) - scope_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(格奖励批 + 清图奖励批)(奖励道具经济——2026-09-09 接口漂移改写,原"每次奖励结算 roll 批次";奖励道具经济 Rule 2/AC-1 为契约源);encounter=每次战斗实例化恰一 scope(战斗结算 begin_battle 实例化期、扫雷开始前——unit_count 区间均匀骰,挖掘决策域之外 P1 合规) + scope_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(格奖励批 + 清图奖励批)(地图战斗资源——2026-09-09 接口漂移改写,原"每次奖励结算 roll 批次";地图战斗资源 Rule 2/AC-1 为契约源);encounter=每次战斗实例化恰一 scope(战斗结算 begin_battle 实例化期、扫雷开始前——unit_count 区间均匀骰,挖掘决策域之外 P1 合规) unseeded_access: 致命中止 snapshot_contract: 续玩/复盘快照 = master_seed + 各流 scope 计数器(消费方 存档序列化) - referenced_by: [棋盘生成, 战斗结算, 奖励道具经济, 冒险结构, 存档序列化] + referenced_by: [棋盘生成, 战斗结算, 地图战斗资源, 冒险结构, 存档序列化] - name: stream_seed_derivation type: formula @@ -43,7 +43,7 @@ entities: reproducibility_claim: 同冒险内同流各 scope 无碰撞 + 跨版本恒定(不做跨 master_seed 全局单射声明) master_seed_int64_min: 致命(abs 恒等回绕→与 0 静默别名) set_master_seed_precondition: 仅全流计数器全零时受理(3 流——2026-09-14 数据配置 漂移批口径) - referenced_by: [棋盘生成, 战斗结算, 奖励道具经济, 冒险结构, 存档序列化] + referenced_by: [棋盘生成, 战斗结算, 地图战斗资源, 冒险结构, 存档序列化] - name: difficulty_row_resolution type: formula @@ -79,22 +79,22 @@ entities: flag_rules: 旗 = 排雷玩法 棋盘状态单态(原口袋旗双态作废);随图存续,清图/刷新消失;标中旗 = 怪物 debuff(三向效果定稿),兑付一次性、资格以雷格实例为键(每雷本次战斗至多兑付一次;放置实例仅为当轮结算载体;拔旗重插不恢复已消费资格——2026-09-07 三轮评审改定,OQ5/F1 条款 2) round_end_carrier: 双发射源(2026-09-07 修订)——棋盘路径(ap_exhausted/cleared)由 排雷玩法 外发(systems-index 原裁决不变),停手路径(stopped)由 行动经济 直发;payload 同构 (path_tag, continuation_hint) arbitration_priority: cleared > stopped > ap_exhausted(同帧/同批次结束路径总仲裁;stop-first 批次腿 deferral 至 排雷玩法 集成测试,义务清单见 systems-index 门禁记录) - downstream_contract: 行动经济 F1 五条款(① 效果当量对照单一线性换算 · ② 标中旗锚严格 > 最低档 + 连锁放大边际基准 + 总吞吐对账 · ③ 挖掘风险不等式 P(安全)×buff > P(雷)×敌方增益,战斗结算 单一闭合 owner · ④ 清图奖励 > 0 且 奖励道具经济 差异化插槽(图类型战斗域恒定) · ⑤ 清图 vs 弃图刷新支配性,战斗结算 闭合强制检查点)——2026-09-07 三轮评审定稿 + downstream_contract: 行动经济 F1 五条款(① 效果当量对照单一线性换算 · ② 标中旗锚严格 > 最低档 + 连锁放大边际基准 + 总吞吐对账 · ③ 挖掘风险不等式 P(安全)×buff > P(雷)×敌方增益,战斗结算 单一闭合 owner · ④ 清图奖励 > 0 且 地图战斗资源 差异化插槽(图类型战斗域恒定) · ⑤ 清图 vs 弃图刷新支配性,战斗结算 闭合强制检查点)——2026-09-07 三轮评审定稿 cross_field_validation: 任一动作成本(dig/flag_place/flag_pull)≤ ap_per_round——ActionEconomyTable schema validate() 跨字段类别,违规加载期致命(2026-09-07 三轮评审增补;条件性夹具登记 数据配置 校验双通道) - referenced_by: [棋盘生成, 排雷玩法, 地形变异, 战斗结算, 增益状态, 奖励道具经济, HUD框架, 教学引导] + referenced_by: [棋盘生成, 排雷玩法, 地形变异, 战斗结算, 增益状态, 地图战斗资源, HUD框架, 教学引导] - name: variation_table type: schema_data owner: design/gdd/systems/排雷循环/地形变异.md attributes: table: VariationTable(数据配置 承载,键 = variant_id;地形变异 回填 owner,2026-09-08 定稿回填) - fields: variant_id(String 主键唯一)/ display_name / unlock_level(int [1,999],knob)/ scope(enum region|global,global 预留 难度曲线与Boss)/ info_mask(enum none|hide_numbers)/ cell_constraint(enum any|safe_nonzero)/ biome_tag(StringList,∅=通配,knob)/ counter_item_ids(StringList,辅助道具 预留,非 knob——2026-09-08 re-review 修正 ✓ 误标) + fields: variant_id(String 主键唯一)/ display_name / unlock_level(int [1,999],knob)/ scope(enum region|global,global 预留 难度曲线与Boss)/ info_mask(enum none|hide_numbers)/ cell_constraint(enum any|safe_nonzero)/ biome_tag(StringList,∅=通配,knob)/ counter_item_ids(StringList,魔法道具 预留,非 knob——2026-09-08 re-review 修正 ✓ 误标) mvp_content: 空清单(合法态)——无任何机制已定稿的变异类型;岩浆/冰冻只登记名字、无 MVP 行(垂直切片随关卡解锁建行,建行批随批配 ≥1 反制道具——aux_items 框架内容契约) zero_special_casing: 连锁/数字计数/清图/旗/价目/结算零特判——既有系统行为不感知变异状态(排雷玩法 执行逻辑无变异分支;地形变异 Rule 3 的推论) rule4_exemption: 定义表非进度成长表,键 = variant_id,进度语义承载于 unlock_level 列(数据配置 Rule 4 豁免,schema 注释承载) cross_field_validation: info_mask=hide_numbers ⇒ cell_constraint=safe_nonzero——VariationTable schema validate() 跨字段类别,违规加载期致命(2026-09-08 re-review 增;防未来 hide_numbers+any 行静默击穿 EC4 连锁停止;地形变异 夹具 variation_mask_constraint 承载) - dangling_ref_policy: counter_item_ids 为 数据配置 的引用型字段——现行空清单下无引用行,取值悬空;首个真实引用随未来变异行建行批回填,届时激活悬空校验(数据配置 修订批;条件性夹具 aux_dangling_counter 登记 辅助道具 GDD AC-13) - referenced_by: [棋盘生成, 排雷玩法, 辅助道具] + dangling_ref_policy: counter_item_ids 为 数据配置 的引用型字段——现行空清单下无引用行,取值悬空;首个真实引用随未来变异行建行批回填,届时激活悬空校验(数据配置 修订批;条件性夹具 aux_dangling_counter 登记 魔法道具 GDD AC-13) + referenced_by: [棋盘生成, 排雷玩法, 魔法道具] - name: variant_pool_gate type: formula @@ -129,18 +129,18 @@ entities: enrage: { display_name: 暴走(敌方增伤), target_side: enemy, magnitude: "+25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-12 标错反噬批上线——三池之一(进 enemy_output 池) off_guard: { display_name: 失衡(我方承伤加深), target_side: hero, magnitude: "+25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-12 标错反噬批上线——三池之一(进 hero_defense 池,承伤 ×1.25);2026-09-15 格面资源批起 = defense 型负向(标错 defense 型安全格 / 踩到 defense 型雷格兑付) sapped: { display_name: 乏力(我方输出降低), target_side: hero, magnitude: "-25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-15 格面资源批新增——weaken 型负向(标错 weaken 型安全格 / 踩到 weaken 型雷格兑付),进 hero_offense 池(attack_up 镜像);值 provisional - value_status: 七行值全部 provisional(2026-09-15 四行→六行——标错反噬批 enrage/off_guard 两行收编;六行→七行——格面资源批 sapped 收编为 weaken 型负向;伏击复用为反噬第三池项〔现为 blast 型负向〕),验收锚——weaken→行动经济 F1 条款 2(奖励道具经济/战斗结算)· ambush 量纲→敌人系统(条款 3,**量纲已定稿见 ambush_unit_definition**)· 对照表→战斗结算(条款 1)· **weaken 已按 战斗结算 F0 裁决修订 −25→−65(2026-09-10,值域 [60,85]、终值共裁 战斗结算 OQ2——见 anchor_warning 回执)** - ambush_unit_definition: **量纲已定稿(2026-09-09 敌人系统 GDD Rule 6/F2——registry OQ2 关闭条件兑现)**:+3 flat = 每层伏击为每次攻击类行为(attack/heavy)附加 3 点主角 HP 伤害(后置加法、不进倍乘);charge 拍零兑付(空拍蒸发);值仍 provisional(锚验收归 奖励道具经济/战斗结算——行动经济 F1 条款 3;敌人系统 供给 cap 表值与单结算自然边界口径见 clause3_supply 条目) - anchor_warning: weaken 行 vs 行动经济 F1 条款 2 锚两独立线性代理同向预检不过(百分点·结算暴露 25 vs 100;原型战斗量级 ≈1 vs ≈4 当量)——战斗结算 对照验收优先裁决,登记 战斗结算 强制检查点输入。**修复空间不对称(2026-09-09 增补)**:每结算瞬时当量归一 m_w≥51 可行(F2 越域界随移 AP 界 −408%/表界 −816%);每 AP 总暴露归一 m_w>100 被 percent ∈ [-100,100] 域禁止(该分支不可行)——OQ1 前置步骤:战斗结算 先钉死归一口径,口径落定前禁止数值修订;落总暴露则现实解 = 奖励道具经济 重定最低档参照。**参照对象迁移注记(2026-09-09 奖励道具经济 评审;2026-09-11 回迁)**:最低档安全格 buff 当量的参照对象曾迁 defense_up 当量(attack_up 时为死行——奖励道具经济 F4 迁移)——**2026-09-11 用户裁决"基础攻击恒存在"(HeroTable.atk 域 [1,999]、0 加载拒绝、MVP=6)后 attack_up 复活,参照对象回迁 attack_up 当量**(消费面 = 主角战斗段先手攻击——战斗结算 GDD 同批;defense_up 迁移退役为历史记录,attack_up 入池时 tier_min_buff 重算);本条与 clause3_supply.direction_precheck 的 25 vs 100 预检算术系 attack_up 口径历史登记——defense_up |−50|×dur2 与 attack_up 数值巧合全等(100pp),今日结论不变;**迁移后预检未按新参照重跑**的义务已于 2026-09-14 战斗结算 重算批兑现(F0/F1 按 attack_up 当量重跑 + F1 锚对照实物改 attack_up 行——本迁移注记关闭)。**F0 裁决回执(2026-09-10 战斗结算 GDD——红警关闭)**:归一口径 = **每结算瞬时当量**(总暴露分支被 percent schema 域禁止 + 与"单结算自然边界"已锁事实冲突,排除);m_w 修订 −25 → **值域 [60,85]/默认 −65**(mvp_content.weaken 已同批改写——锚两腿 @D_ref=12:7.8 > 6.0 严格大于 ✓ / 7.8 ≥ E_dig 4.5 ✓〔E_dig 读数 2026-09-14 战斗结算 重算批按 难度曲线与Boss v3 曲线重推——原 7.2 随口径退役〕);地板 = 乘数零点 −100pp、交叉层数 = ⌈100/m_w⌉ = 2(原"7 层触地板"预读按 −400% 合成带估读,更正);defense_up 参照保持(总暴露分支的"重定参照"现实解未采纳);终值 = 奖励道具经济/战斗结算 共裁(战斗结算 OQ2);增益状态 GDD 正文不改以本条为准(收编先例) + value_status: 七行值全部 provisional(2026-09-15 四行→六行——标错反噬批 enrage/off_guard 两行收编;六行→七行——格面资源批 sapped 收编为 weaken 型负向;伏击复用为反噬第三池项〔现为 blast 型负向〕),验收锚——weaken→行动经济 F1 条款 2(地图战斗资源/战斗结算)· ambush 量纲→敌人系统(条款 3,**量纲已定稿见 ambush_unit_definition**)· 对照表→战斗结算(条款 1)· **weaken 已按 战斗结算 F0 裁决修订 −25→−65(2026-09-10,值域 [60,85]、终值共裁 战斗结算 OQ2——见 anchor_warning 回执)** + ambush_unit_definition: **量纲已定稿(2026-09-09 敌人系统 GDD Rule 6/F2——registry OQ2 关闭条件兑现)**:+3 flat = 每层伏击为每次攻击类行为(attack/heavy)附加 3 点主角 HP 伤害(后置加法、不进倍乘);charge 拍零兑付(空拍蒸发);值仍 provisional(锚验收归 地图战斗资源/战斗结算——行动经济 F1 条款 3;敌人系统 供给 cap 表值与单结算自然边界口径见 clause3_supply 条目) + anchor_warning: weaken 行 vs 行动经济 F1 条款 2 锚两独立线性代理同向预检不过(百分点·结算暴露 25 vs 100;原型战斗量级 ≈1 vs ≈4 当量)——战斗结算 对照验收优先裁决,登记 战斗结算 强制检查点输入。**修复空间不对称(2026-09-09 增补)**:每结算瞬时当量归一 m_w≥51 可行(F2 越域界随移 AP 界 −408%/表界 −816%);每 AP 总暴露归一 m_w>100 被 percent ∈ [-100,100] 域禁止(该分支不可行)——OQ1 前置步骤:战斗结算 先钉死归一口径,口径落定前禁止数值修订;落总暴露则现实解 = 地图战斗资源 重定最低档参照。**参照对象迁移注记(2026-09-09 地图战斗资源 评审;2026-09-11 回迁)**:最低档安全格 buff 当量的参照对象曾迁 defense_up 当量(attack_up 时为死行——地图战斗资源 F4 迁移)——**2026-09-11 用户裁决"基础攻击恒存在"(HeroTable.atk 域 [1,999]、0 加载拒绝、MVP=6)后 attack_up 复活,参照对象回迁 attack_up 当量**(消费面 = 主角战斗段先手攻击——战斗结算 GDD 同批;defense_up 迁移退役为历史记录,attack_up 入池时 tier_min_buff 重算);本条与 clause3_supply.direction_precheck 的 25 vs 100 预检算术系 attack_up 口径历史登记——defense_up |−50|×dur2 与 attack_up 数值巧合全等(100pp),今日结论不变;**迁移后预检未按新参照重跑**的义务已于 2026-09-14 战斗结算 重算批兑现(F0/F1 按 attack_up 当量重跑 + F1 锚对照实物改 attack_up 行——本迁移注记关闭)。**F0 裁决回执(2026-09-10 战斗结算 GDD——红警关闭)**:归一口径 = **每结算瞬时当量**(总暴露分支被 percent schema 域禁止 + 与"单结算自然边界"已锁事实冲突,排除);m_w 修订 −25 → **值域 [60,85]/默认 −65**(mvp_content.weaken 已同批改写——锚两腿 @D_ref=12:7.8 > 6.0 严格大于 ✓ / 7.8 ≥ E_dig 4.5 ✓〔E_dig 读数 2026-09-14 战斗结算 重算批按 难度曲线与Boss v3 曲线重推——原 7.2 随口径退役〕);地板 = 乘数零点 −100pp、交叉层数 = ⌈100/m_w⌉ = 2(原"7 层触地板"预读按 −400% 合成带估读,更正);defense_up 参照保持(总暴露分支的"重定参照"现实解未采纳);终值 = 地图战斗资源/战斗结算 共裁(战斗结算 OQ2);增益状态 GDD 正文不改以本条为准(收编先例) rule4_exemption: 定义表非进度成长表,键 = effect_id(数据配置 Rule 4 豁免,schema 注释承载) single_enemy_assumption: **回验结果 = 不成立——敌人系统 定多敌(用户 2026-09-09 拍板;同日 敌人系统 GDD 兑现 增益状态 预授权接口漂移条款)**:MVP 战斗 = 1–3 个同敌种敌单位(EnemyTable.unit_count);效果 side-wide 语义改"全体存活敌单位"(层数 = side 共享池,**增益状态 现接口零变更兼容**);target_ref(单体寻址)= 扩展位义务——首个单体效果上线时 增益状态 补列(随批:战斗结算 归集语义/HUD框架 呈现裁决);增益状态 GDD 正文不改,以本条为准(行动经济 OQ5 收编先例) - mechanics: 战斗域统一状态容器(三向效果同构实例)· 单一时限量纲 remaining_settlements(先兑付后衰减,每轮结算 −1,dur=1=一次性;跨轮跨图延续、battle_over 全清不跨战斗)· 按行叠层(stack 授予不触碰 R;refresh 重置取实例授予时快照 D;合并在授予时、结算作用顺序归 战斗结算——两序分离)· 满层授予拒绝原子(false+容器零写)· 合成 = L×m 加算、percent 越域不 clamp(地板/换算归 战斗结算 SettlementTable)· 授予集中在 战斗结算 结算编排(排雷玩法/奖励道具经济 零直接接口)· 零随机(无 RNG 流消费)· 零信号外发(纯被动容器) + mechanics: 战斗域统一状态容器(三向效果同构实例)· 单一时限量纲 remaining_settlements(先兑付后衰减,每轮结算 −1,dur=1=一次性;跨轮跨图延续、battle_over 全清不跨战斗)· 按行叠层(stack 授予不触碰 R;refresh 重置取实例授予时快照 D;合并在授予时、结算作用顺序归 战斗结算——两序分离)· 满层授予拒绝原子(false+容器零写)· 合成 = L×m 加算、percent 越域不 clamp(地板/换算归 战斗结算 SettlementTable)· 授予集中在 战斗结算 结算编排(排雷玩法/地图战斗资源 零直接接口)· 零随机(无 RNG 流消费)· 零信号外发(纯被动容器) api: notify_battle_start / apply_effect(effect_id, source) -> bool / query_active(side) -> Array(插入序;六归因字段+display_name+授予时快照投影)/ decay_round() -> int / notify_battle_end() -> bool——战斗结算 消费契约,provisional 登记 settlement_obligations: 八项(战斗结算 GDD 门禁评审缺项即 blocking)——① 同轮多授予按确定次序调用 ② 事实→授予恰一次转化(增益状态 不去重)③ percent→乘数换算方向与合成值地板成文 ④ 最后一轮 decay 判定 ⑤ F1 条款 1 效果档位对照表以 增益状态 实例为对照实物 ⑥ 每结算编排恰一次 decay_round(2026-09-09 增——decay 基数=1 先决条件)⑦ 结算明细按授予流水逐条标注来源(合并坍缩归因补偿,2026-09-09 增)⑧ “溢出未生效”行进结算明细协议(Rule 5 后半承载,2026-09-09 增)。**履行回执(2026-09-10)**:八项已全数落位 战斗结算 GDD(Core Rules 3/5/8/10/11 + Formulas F0–F2——落位映射 = 战斗结算 AC 覆盖矩阵"上游义务 23 条"行;③的 AP/表界数值随 F0 修订更新为 −520%/−1040%) - presentation_obligations: (2026-09-09 登记 systems-index,缺项即 blocking)HUD框架×4——HUD 常显+EC12 空态规格定稿 / effect_id→icon 映射键契约(形状+色相双通道)/ 有利有害极性呈现映射(数据源 = 战斗结算 SettlementTable 效果语义,非 magnitude 符号)/ 全清状态栏去留;战斗表现×2——溢出行呈现 / origin_cell→玩家可读形态(缩略图/格子高亮);教学引导——“同轮拿满优于跨轮叠”教学(OQ7 配套);奖励道具经济——奖励身份预读(创意风险 #1 切面) - ownership_note: 行动经济 OQ5“标中旗 debuff 档位归 奖励道具经济 表设计”经用户 2026-09-08 拍板收编——初值定稿权归 增益状态(2026-09-15 起为七行:标错反噬批两行 + 格面资源批 sapped 一行随批收编),锚验收权仍归 奖励道具经济/战斗结算,修订走接口漂移回写本条 - dangling_ref_policy: effect_id 悬空校验**已激活**(2026-09-09 奖励道具经济 RewardTable 首个 effect_id 引用行〔defense_up〕回填——dangling_ref_policy"首个引用字段 owner 补"条款兑现;条件性夹具 = 奖励道具经济 reward_dangling_effect〔AC-17〕) - referenced_by: [战斗结算, 奖励道具经济, 敌人系统, HUD框架, 教学引导, 战斗表现] + presentation_obligations: (2026-09-09 登记 systems-index,缺项即 blocking)HUD框架×4——HUD 常显+EC12 空态规格定稿 / effect_id→icon 映射键契约(形状+色相双通道)/ 有利有害极性呈现映射(数据源 = 战斗结算 SettlementTable 效果语义,非 magnitude 符号)/ 全清状态栏去留;战斗表现×2——溢出行呈现 / origin_cell→玩家可读形态(缩略图/格子高亮);教学引导——“同轮拿满优于跨轮叠”教学(OQ7 配套);地图战斗资源——奖励身份预读(创意风险 #1 切面) + ownership_note: 行动经济 OQ5“标中旗 debuff 档位归 地图战斗资源 表设计”经用户 2026-09-08 拍板收编——初值定稿权归 增益状态(2026-09-15 起为七行:标错反噬批两行 + 格面资源批 sapped 一行随批收编),锚验收权仍归 地图战斗资源/战斗结算,修订走接口漂移回写本条 + dangling_ref_policy: effect_id 悬空校验**已激活**(2026-09-09 地图战斗资源 RewardTable 首个 effect_id 引用行〔defense_up〕回填——dangling_ref_policy"首个引用字段 owner 补"条款兑现;条件性夹具 = 地图战斗资源 reward_dangling_effect〔AC-17〕) + referenced_by: [战斗结算, 地图战斗资源, 敌人系统, HUD框架, 教学引导, 战斗表现] - name: board_gen_table type: schema_data @@ -156,7 +156,7 @@ entities: mvp_reference_rows: L1·D0(10×10/d0.10/t0.95/min_safe50/att16)与 L2·D0(12×12/d0.12/t0.92/min_safe60/att16)参考行——**全部 provisional,仅 schema 自洽性证明,曲线数值归 难度曲线与Boss 调参所有权** minesweeper_dual_containment: 双包含回验登记 排雷玩法 GDD——① 排雷玩法 实际展开域 ⊆ 棋盘生成 排除域(既有)② 棋盘生成 求解器初始态 ⊆ 排雷玩法 实际初始展开域(F1 注记④度量保真对偶) golden_vectors: 推理器黄金图回归向量协议(五类手工核验小板,整数对比对禁浮点容差,逐格信息源推导记录入版本库;换 solver_rules/信息源/metric_version = GDD 修订 + 向量重制)——数据配置 R2 先例同源 - referenced_by: [排雷玩法, 战斗结算, 奖励道具经济, 难度曲线与Boss, 存档序列化] + referenced_by: [排雷玩法, 战斗结算, 地图战斗资源, 难度曲线与Boss, 存档序列化] - name: minesweeper_event_surface type: schema_data @@ -164,12 +164,12 @@ entities: attributes: kind: 三事件回边契约(发射面封闭——TD-SYSTEM-BOUNDARY 回边裁决的 排雷玩法 侧定稿;增删事件 = 接口漂移修订) cell_revealed: "{cell, kind ∈ {safe, mine}, digit【仅 kind=safe 携带、恒真透传——呈现隐藏归 HUD框架,判定源 = variant_ids,排雷玩法×4③】, variant_ids, channel ∈ {initial, chain, dig}, resource【initial 恒 false(封锁格无资源)/ chain·dig 恒 true——安全格与雷格一视同仁,雷格亦携带格面资源(负向兑付归 战斗结算 极性路由)】}" # 2026-09-15 格面资源批:reward_eligible → resource,旧口径"mine 恒 false"随批作废 - flag_judged: "{cell, hit = [cell ∈ M]}×N——轮末统一判定批(基线 = 轮次结束事务开始时旗位,被拔不判;行主序枚举);排雷玩法 诚实重复上报、兑付去重归 战斗结算/奖励道具经济(资格以雷格实例为键——action_economy.flag_rules/行动经济 OQ5)" + flag_judged: "{cell, hit = [cell ∈ M]}×N——轮末统一判定批(基线 = 轮次结束事务开始时旗位,被拔不判;行主序枚举);排雷玩法 诚实重复上报、兑付去重归 战斗结算/地图战斗资源(资格以雷格实例为键——action_economy.flag_rules/行动经济 OQ5)" round_end: "{path_tag ∈ {ap_exhausted, cleared}, continuation_hint}——棋盘路径由 排雷玩法 外发、核心字段逐字段取自 行动经济.last_round_end(读取权 = 接口契约),与 行动经济 stopped 路径 payload 同构;stopped 由 行动经济 直发、排雷玩法 禁双发(action_economy.round_end_carrier 双发射源)" event_order: 同一轮次结束事务内 flag_judged ×N 先于 round_end(全路径统一——stop 腿 排雷玩法 先发旗判定再委托 request_stop,停手不改旗故基线等价);战斗结算 结算触发 = Waiting 相位编排点、不依赖事件到达序(战斗结算×3 强制项之一,systems-index 排雷玩法 门禁块) zero_random: 排雷玩法 零 RNG 流消费——同板同意图序列 ⇒ 事件流逐位确定(AC-19);cell_revealed 发射序 = 规范序(初始/连锁 = 触发格 BFS、8 邻行主序) api_surface: install_board / settle_batch(HUD框架 唯一提交入口;stop 经此委托 行动经济.request_stop——HUD框架×6① 强制项:不直调 行动经济,行动经济 Rule 9 调用方细化、行动经济 GDD 不改以本条为准)/ try_dig·try_flag_place·try_flag_pull·try_move / compute_move_path(HUD框架 路径预览数据源)/ retire_board;ActionOutcome{accepted, executed|voided|rejected, reject_reason ∈ {board_face, resource_face, phase, board_invalid}, sub_reason【仅 board_face 携带:not_adjacent/target_revealed/target_concealed/flag_present/flag_absent/no_path/out_of_catalog——2026-09-09 评审 UX-1 定稿,玩家可辨呈现数据源;批后修改 = 接口漂移】}——provisional,事件载体归实现期 ADR(排雷玩法 OQ2) - referenced_by: [战斗结算, 奖励道具经济, HUD框架, 音频, 教学引导] + referenced_by: [战斗结算, 地图战斗资源, HUD框架, 音频, 教学引导] - name: minesweeper_initial_expansion type: formula @@ -206,10 +206,10 @@ entities: 溢出(伏击): 单轮踩雷超过上限(cap)的部分——转为"溢出未生效"明细行可见、不生效(敌人系统 首次定义) 死亡即不动手: 轮到某敌人行动时它已死 → 这一下不打、招式轮转停格(2026-09-09 用户拍板,敌人系统 首次定义) 封锁格: 初始展开白送的那批已开格——恒无格面资源、不再有任何加成,但计入清图进度(排雷玩法 首次定义;install 期可精确枚举为 R₀——格面资源摇号清单的排除项;取代旧术语"资格格",2026-09-15 格面资源批) - 格面资源(CellResource): 关联到格子上的资源对象——装板期摇定五型类型身份(attack/defense/heal/blast/weaken),安全格与雷格一视同仁、同池同分布;极性不在资源内,由「动作 × 格型」矩阵在结算期决定正向(奖励)或负向(惩罚)(奖励道具经济 首次定义;取代"安全格奖励"旧名) - 批尾: 同一批取号中最后消费的一个号——奖励道具经济 清图奖励身份 = install 批的批尾取号(奖励道具经济 F1 首次定义) - 死行: 被当前内容态判定为零消费的表行——加载不致命、不入参考池,复活走 GDD 修订连锁(奖励道具经济 F4 首次定义;历史首例 attack_up〔hero atk=0 时代〕已于 2026-09-11 随"基础攻击恒存在"用户裁决复活,当前内容态暂无在册死行) - 预推进: 测试中为到达 scope=σ 而先行丢弃式消费 σ 个 scope 的构造——RngService 全新实例首个 open_stream 恒为 scope 0,derive_at 不推计数器(奖励道具经济 AC 前言首次定义) + 格面资源(CellResource): 关联到格子上的资源对象——装板期摇定五型类型身份(attack/defense/heal/blast/weaken),安全格与雷格一视同仁、同池同分布;极性不在资源内,由「动作 × 格型」矩阵在结算期决定正向(奖励)或负向(惩罚)(地图战斗资源 首次定义;取代"安全格奖励"旧名) + 批尾: 同一批取号中最后消费的一个号——地图战斗资源 清图奖励身份 = install 批的批尾取号(地图战斗资源 F1 首次定义) + 死行: 被当前内容态判定为零消费的表行——加载不致命、不入参考池,复活走 GDD 修订连锁(地图战斗资源 F4 首次定义;历史首例 attack_up〔hero atk=0 时代〕已于 2026-09-11 随"基础攻击恒存在"用户裁决复活,当前内容态暂无在册死行) + 预推进: 测试中为到达 scope=σ 而先行丢弃式消费 σ 个 scope 的构造——RngService 全新实例首个 open_stream 恒为 scope 0,derive_at 不推计数器(地图战斗资源 AC 前言首次定义) 完美排雷(perfect_sweep): 板级零误标(flag_judged hit=false=0)∧ ≥1 标中 → 清图奖励当量 ×P_perfect(默认 ×2)——与踩雷正交(盲挖踩雷不破坏、标错才破坏)、全有或全无谓词无部分档、板级计数随 install 重置(战斗结算 Core Rule 13 首次定义) 当量: 统一价值单位,1 当量 = 1 点主角 HP 的期望净变化——四源收益单一线性换算的通货(战斗结算 F1 首次定义) 乘区: 伤害公式里相乘的修正段(本作两段:hero 减伤池 × 敌方削弱池——池内加算、clamp [−100,+100]pp、池间乘算、floor 取整)(战斗结算 F2 首次定义) @@ -220,17 +220,17 @@ entities: 极性(polarity): 同一类型兑付的正负方向——正 = 收益侧、负 = 代价侧,行为×格型→符号矩阵见极性提案 R2;视觉通道冻结 = 金族(有利)对红族(有害)+ 满框对缺框(art-bible §4.6 首次冻结视觉侧) 命令式回执驱动: 动作调用返回后组合根立刻重查一次只读面来刷新界面、不等通知信号——旗插拔/移动/AP·RAP 读数/状态/库存五类动作零事件外发或零推送,呈现层刷新由此承载(HUD框架 首次定义;ADR-0001 订阅纪律的配对形态) 程序化占位: 用代码按冻结色板与形状规则直接画出的临时图形——参数取自 art-bible §4.1/§3 参数域、icon 按 §4.6 键位映射表挂槽,终稿美术到位后原位替换、数据层零改动(HUD框架 首次定义;样张未定稿不阻塞呈现层开工的承载形态,占位同样受 §1.4 数字可读性第一验收项约束) - 叠加层(overlay): 辅助道具 自持的板级派生信息集(显影/真视/预读三集)——只改"玩家能看见什么"不改棋盘事实,零回写 排雷玩法/奖励道具经济 状态、随图消亡(辅助道具 首次定义) - 真视窄域护栏: 替代推理的道具效果(雷位真视)目标域 ≤3×3、全图级仅限恢复推理原料类(显影/预读)——信息层级护栏,防"扫雷退化为路径优化"(辅助道具 Core Rule 3 首次定义,schema 校验强制) - 渗透率: aux 道具期望件数占奖励池的份额——E[N_aux/板] = |U|×Σw_aux/W_total(辅助道具 F1 首次定义;供给面天然限流,P1 护栏的量化形态) + 叠加层(overlay): 魔法道具 自持的板级派生信息集(显影/真视/预读三集)——只改"玩家能看见什么"不改棋盘事实,零回写 排雷玩法/地图战斗资源 状态、随图消亡(魔法道具 首次定义) + 真视窄域护栏: 替代推理的道具效果(雷位真视)目标域 ≤3×3、全图级仅限恢复推理原料类(显影/预读)——信息层级护栏,防"扫雷退化为路径优化"(魔法道具 Core Rule 3 首次定义,schema 校验强制) + 渗透率: aux 道具期望件数占奖励池的份额——E[N_aux/板] = |U|×Σw_aux/W_total(魔法道具 F1 首次定义;供给面天然限流,P1 护栏的量化形态) 行动: 轮次内挖掘期的原子决策单位——同一事件的三个视角:玩家决策层叫行动、进 排雷玩法 的数据形态叫意图(单意图帧整批提交)、行动经济 计价类别叫动作(action_kind 统一价目);有价行动(挖/插旗/拔旗)1 AP/次、受每轮 AP 预算约束(现行表值 8),移动/停手免费不计 AP(game-concept 术语层级 2026-09-14 收录) 节点: 关卡节点地图上的一个格——关卡内移动的步进单位;层名定稿(2026-09-14 用户裁决:节点 胜 遭遇——成员中立 + 关卡节点地图 注册名/切片 node_* 接口零改动 + 遭遇既有语义 = 战斗不挪用);节点类型分类学与分支机制归 关卡节点地图 GDD 展开 遭遇: 一次完整战斗事件的同义词——战斗节点触发的那一场仗(既有用法:战斗结算"两场遭遇" / HUD框架"双敌种遭遇""Boss 遭遇变体");不作地图层名(2026-09-14 裁决) - 节点奖励: 奖励点节点给的奖励(关卡节点地图 域)——与安全格奖励(奖励道具经济,格内开出)区分;节点奖励覆盖层 = 未来 spec design/ux/node-reward.md(battle.md OQ9)——三个"reward"各归各位(2026-09-14 拆名注记) + 节点奖励: 奖励点节点给的奖励(关卡节点地图 域)——与安全格奖励(地图战斗资源,格内开出)区分;节点奖励覆盖层 = 未来 spec design/ux/node-reward.md(battle.md OQ9)——三个"reward"各归各位(2026-09-14 拆名注记) HP 账本: 冒险域主角血量的唯一记录——冒险结构 持有,每战开始交出、战斗结束收回、恢复点与大奖励入账;关卡切换血条不清零(冒险结构 首次定义;跨战斗 HP 持久性归 关卡节点地图/冒险结构 已锁事实的 冒险结构 半边兑现) 关卡收束点: 一关就此定局的时点——Boss 战胜利(通关)或英雄死亡(失败);关卡节点地图 在收束点先调 战斗结算 关卡清库、再向 冒险结构 宣布关卡结束与结果(冒险结构 首次定义;切片 level_runner 先例转正) 关卡大奖励: 清完一关、进入下一关前的一次性兑付——上限提升 + 血回满 + 代币记账三件构成,不进背包不占库存域;末关通关不兑付(冒险结构 首次定义;game-concept"冒险内大奖励"的落地形态) - referenced_by: [排雷玩法, 敌人系统, 奖励道具经济, 战斗结算, HUD框架, 辅助道具, art-bible, game-concept, 关卡节点地图, 冒险结构] + referenced_by: [排雷玩法, 敌人系统, 地图战斗资源, 战斗结算, HUD框架, 魔法道具, art-bible, game-concept, 关卡节点地图, 冒险结构] - name: enemy type: schema_data @@ -244,6 +244,7 @@ entities: unit_count_max: int [unit_count, 3] 可省略(2026-09-14 难度曲线与Boss 修订批新增——遭遇区间上界;缺省 = 定值,旧行零迁移) atk_min/atk_max: 可选配对 int [0,999](2026-09-14 敌方攻击区间批——上阶/下阶区间随机;缺省 = 定值行向后兼容;跨字段:必成对 · **atk = (min+max)/2 中点锚**;roll 时机 = 遭遇骰同流〔encounter 恰一 scope,数量骰先、atk 骰后〕spawn 期**整战持久**〔每拍抖动否决——数字可读性锚〕,战斗结算.begin_battle roll → 敌人系统.spawn enemy_atk_override 收确定值〔敌人系统 零随机纪律保持〕;MVP 六行 ±3 provisional 归 难度曲线与Boss;验收 = 完美策略档 0 加成通关 ≤40%〔OQ7〕;接口漂移 = 敌人系统.spawn 签名 +1 参数〔正式侧 GDD/registry 修订批随 ADR-0009 同批〕) armor_type: enum {light, ward, heavy} 缺省 light(2026-09-14 护甲克制批转正登记——攻击类型 × 护甲克制,克制矩阵 = settlement_table.armor_effectiveness〔克制 ×150 / 中性 ×100 / 被克 ×50〕;MVP 映射 goblin=light / bugbear=ward / ogre_chief=heavy;**2026-09-15 命名统一批:原 enum {none, a, b} 为位置键(无语义、且"无甲/甲A/甲B"在文档间已分裂成四种写法),改 {light, ward, heavy} = 轻甲 / 魔法护甲 / 重甲**;数值 provisional 归 难度曲线与Boss) + armor_class: int 取值域未定(**2026-09-15 护甲等级批新增,provisional**——防守方护甲等级,主角基础攻击普通分量 / 敌方攻击拍与重击拍基线的掷点折扣判定读数,掷点与折扣结算归 settlement_table.ac_roll / ac_discount_tiers〔战斗结算〕;**与 armor_type〔克制属性轴 light/ward/heavy〕是两个概念、字段与文档口径不得混用**;三敌种行值未定,投值归 难度曲线与Boss 随掷点形式定稿批) hp: int [1,999](knob——难度修饰前基线;MVP 18 provisional 出处待查) atk: int [0,999](knob——attack 行为伤害基值;MVP 4 provisional 出处待查;0 = 纯伏击伤敌种合法) heavy_multiplier: int [1,16](knob;无 heavy 拍敌种不消费——非校验项,增益状态 max_stack 先例;MVP 2 provisional) @@ -255,7 +256,7 @@ entities: settlement_obligations: 六项(敌人系统 GDD 门禁评审缺项即 blocking)——① 推进每结算恰一次(敌单位专属——主角无环)+ 结算内调用序成文 query_attack→apply_damage→advance ② 雷→伏击恰一次转化 ③ clamp/负值/溢杀与死亡判定时机成文 ④ F1 条款 3 闭合对账(cap 表值 + 量纲 + 棋盘生成 actuals p10 非 target 参数)⑤ 默认目标消费与单体/AOE 分流 ⑥ 伏击 cap 溢出"溢出未生效"明细行协议。**履行回执(2026-09-10)**:六项已全数落位 战斗结算 GDD(Core Rules 5/6/9/10/12 + Formulas F3/F4——落位映射 = 战斗结算 AC 覆盖矩阵) hud_obligations: 四项(视觉推测型呈现,缺项即 blocking)——① enemy_id→图像线索映射清单成文(预告时序=下一拍预告、挖掘期全程可见;含强度档位/环长直觉编码说明;形状+色相双通道)② 映射全局恒定(enemy_id 键——跨 run 禁重掷)③ 顺位与存活可读 ④ 敌方 side 池呈现口径 rule4_status: 本表是进度成长表(棋盘生成 BoardGenTable 同型,无 Rule 4 豁免) - referenced_by: [战斗结算, 奖励道具经济, 关卡节点地图, 难度曲线与Boss, HUD框架, 战斗表现, 教学引导] + referenced_by: [战斗结算, 地图战斗资源, 关卡节点地图, 难度曲线与Boss, HUD框架, 战斗表现, 教学引导] - name: hero type: schema_data @@ -264,16 +265,17 @@ entities: table: HeroTable(数据配置 新增 schema 行〔接口漂移回写,2026-09-09 敌人系统〕,单行全局;敌人系统 回填 owner) fields: max_hp: int [1,999](knob;MVP 值 provisional 出处待查) - atk: int [1,999](**0 = 加载拒绝**——基础攻击恒存在,"0 基线 × 百分比增益恒零"死锁自 schema 层杜绝〔2026-09-11 用户裁决,原"机制开关 MVP=0、激活裁决归 奖励道具经济/战斗结算"作废〕;MVP = 6 原型锚 provisional 归 难度曲线与Boss;消费面 = 主角战斗段先手攻击——战斗结算 GDD 2026-09-11 增补) + atk: int [1,999](**0 = 加载拒绝**——基础攻击恒存在,"0 基线 × 百分比增益恒零"死锁自 schema 层杜绝〔2026-09-11 用户裁决,原"机制开关 MVP=0、激活裁决归 地图战斗资源/战斗结算"作废〕;MVP = 6 原型锚 provisional 归 难度曲线与Boss;消费面 = 主角战斗段先手攻击——战斗结算 GDD 2026-09-11 增补) + armor_class: int 取值域未定(**2026-09-15 护甲等级批新增,provisional**——主角作为防守方的护甲等级,敌方攻击拍 / 重击拍基线的掷点折扣判定读数;掷点结算归 settlement_table.ac_roll〔战斗结算〕,与 armor_type〔克制属性轴〕两概念不得混用;值未定,投值归 难度曲线与Boss 随掷点形式定稿批) rule4_exemption: 单行全局定义表(主角不随关卡自动成长——成长=天赋 元进度/奖励侧;ActionEconomyTable 先例) hp_persistence: 跨战斗 HP 持久性归 关卡节点地图/冒险结构(provisional)——敌人系统 单位接口以初始 hp 入参,不定义冒险内持久性 - referenced_by: [战斗结算, 奖励道具经济, 难度曲线与Boss] + referenced_by: [战斗结算, 地图战斗资源, 难度曲线与Boss] - name: reward_table type: schema_data - owner: design/gdd/systems/战斗循环/奖励道具经济.md + owner: design/gdd/systems/战斗循环/地图战斗资源.md attributes: - table: RewardTable(数据配置 承载,键 = reward_id;奖励道具经济 回填 owner;**2026-09-15 格面资源批结构性重写**——旧 category / use_timing / 库存 / 供给轴随可选类删除整批下线,五型 × 极性字典取代〔历史结构见底部修订记录〕) + table: RewardTable(数据配置 承载,键 = reward_id;地图战斗资源 回填 owner;**2026-09-15 格面资源批结构性重写**——旧 category / use_timing / 库存 / 供给轴随可选类删除整批下线,五型 × 极性字典取代〔历史结构见底部修订记录〕) fields: reward_id: String(表内主键) cell_type: enum {attack, defense, heal, blast, weaken}——五型封闭(格面资源类型身份;表里出现清单外值加载拒绝 fail-fast) # 2026-09-15 新增,取代 category @@ -287,21 +289,21 @@ entities: pool_tag: enum {cell, clear_default}(cell = 格面资源单一池——安全格与雷格一视同仁同池同分布;clear_ 命名空间预留、校验拒绝——棋盘生成 elite_ 同款) # 2026-09-15 safe_cell→cell 更名 + active_inject 删除 tier: int [1, 8](knob)——强度档位序数(与当量零耦合) cross_field_validation: 加载期致命族——池空(cell 池 ≥1 正向行 weight>0)· 五型正向行齐备 · 五型负向行齐备(字典完整性——缺任一极性行致命)· clear_default 恒正当量(≥1 活行 ∧ power≥1 ∨ effect_id 非空——行动经济 条款④"清图奖励>0"的行级兑现口径)· percent 行 effect_id 必填/flat 行恒空 · flat 行 power≥1 # 2026-09-15 重写——旧 floor_supply_missing / no_damage_row 随可选类删除失义退役 - mechanics: 格面资源身份 install 期预分配(roll_board 恰一次、行主序、消费 reward_roll 封闭流恰一 scope 批〔格批 + 清图批尾一号〕;全部非封锁格逐一摇定类型——安全格与雷格同池同分布、封锁格不入摇号清单;Ready 后只读、无重掷 API)· **极性不在资源内**——「动作 × 格型」矩阵(开安全格/标中雷 = 正向、开雷格/标错安全格 = 负向、标旗后撤旗 = 零兑付)字典定义归 奖励道具经济、路由执行归 战斗结算 授予段(结算队列 + 抵消过滤——标旗后被撤旗不结算)· 授予期零随机(身份恒定跨轮;换图映射消亡)· 负向恒即时(不入库、无库存语义——库存已随可选类删除下线)· 满层零兑付 = 合法例外 + "奖励未生效"行 · 重复受理幂等(同格重复 grant / 同批次重复 grant_clear → 同一快照/身份 + 诊断;受理/兑付恰一次归 战斗结算×②③) - api: 封闭枚举入口(provisional,实现期 ADR 定名)——roll_board / query_identity(返回 {reward_id, cell_type, tier} 引用级投影;未开格恒可查——辅助道具 桥接结构前提;清单外坐标 → null + 诊断)/ grant(同格重复受理幂等 + 诊断)/ grant_clear(同批次重调幂等 + 诊断)/ retire_mapping / equivalence_supply(全活行投影 + tier_min_buff)+ weighted_pick 纯函数面;新增入口 = 接口漂移,新增入口须随附全输入域语义表 # 2026-09-15 删 stock/use/query_inventory/clear_inventory(库存轴下线) + mechanics: 格面资源身份 install 期预分配(roll_board 恰一次、行主序、消费 reward_roll 封闭流恰一 scope 批〔格批 + 清图批尾一号〕;全部非封锁格逐一摇定类型——安全格与雷格同池同分布、封锁格不入摇号清单;Ready 后只读、无重掷 API)· **极性不在资源内**——「动作 × 格型」矩阵(开安全格/标中雷 = 正向、开雷格/标错安全格 = 负向、标旗后撤旗 = 零兑付)字典定义归 地图战斗资源、路由执行归 战斗结算 授予段(结算队列 + 抵消过滤——标旗后被撤旗不结算)· 授予期零随机(身份恒定跨轮;换图映射消亡)· 负向恒即时(不入库、无库存语义——库存已随可选类删除下线)· 满层零兑付 = 合法例外 + "奖励未生效"行 · 重复受理幂等(同格重复 grant / 同批次重复 grant_clear → 同一快照/身份 + 诊断;受理/兑付恰一次归 战斗结算×②③) + api: 封闭枚举入口(provisional,实现期 ADR 定名)——roll_board / query_identity(返回 {reward_id, cell_type, tier} 引用级投影;未开格恒可查——魔法道具 桥接结构前提;清单外坐标 → null + 诊断)/ grant(同格重复受理幂等 + 诊断)/ grant_clear(同批次重调幂等 + 诊断)/ retire_mapping / equivalence_supply(全活行投影 + tier_min_buff)+ weighted_pick 纯函数面;新增入口 = 接口漂移,新增入口须随附全输入域语义表 # 2026-09-15 删 stock/use/query_inventory/clear_inventory(库存轴下线) mvp_content: 十行(2026-09-15 格面资源批;值 provisional 归 难度曲线与Boss)——格面池正向五行(attack_up buff→attack_up w20 t2 / defense_up buff→defense_up w16 t2 / spark_aoe flat p4 w16 t1〔blast〕/ heal_minor flat [2,6] w15 t1〔heal〕/ weaken buff→weaken w12 t1)+ 负向五行纯字典(enrage attack〔→enemy_output〕/ off_guard defense〔→hero_defense〕/ 直伤 heal flat p4〔不经增益状态〕/ ambush+2 blast〔stacks=2〕/ sapped weaken〔→hero_offense〕)+ clear_blast(flat [25,55] w1 t2 clear_default——完美板 ×2 期望中点 80);类型频次 = 正向行权重(20/16/16/15/12 合计 79);tier_min_buff = 2 direction_precheck: **刀供给方向预检随可选类删除失义退役(2026-09-15)**——历史读数见底部修订记录;新对账锚 = 行动经济 条款②③ 左臂(正向格面资源当量供给)随格面资源批重推,义务归 难度曲线与Boss 调参批 - settlement_obligations: 四项(战斗结算 GDD 门禁评审缺项即 blocking,清单全文见 奖励道具经济 GDD Dependencies)——① 结算段序骨架(授予→增益/减益→战斗→衰减→判定)② 极性路由受理 + 每格恰一次 + 满层零兑付"奖励未生效"行(含聚合计数字段)③ clear_reward 授予路径(增益状态 OQ4 关闭条件)④ 生命周期编排(battle_over retire 映射消亡)+ roll_board 恰一次 # 2026-09-15 由六项收拢(窗口/道具段与库存编排随可选类删除失义) + settlement_obligations: 四项(战斗结算 GDD 门禁评审缺项即 blocking,清单全文见 地图战斗资源 GDD Dependencies)——① 结算段序骨架(授予→增益/减益→战斗→衰减→判定)② 极性路由受理 + 每格恰一次 + 满层零兑付"奖励未生效"行(含聚合计数字段)③ clear_reward 授予路径(增益状态 OQ4 关闭条件)④ 生命周期编排(battle_over retire 映射消亡)+ roll_board 恰一次 # 2026-09-15 由六项收拢(窗口/道具段与库存编排随可选类删除失义) hud_obligations: 三项(缺项即 blocking)——① 已开格资源身份恒定可读(挖掘期规划面)+ 未开格类型可查面的呈现深度(预读边界待拍板)② 结算明细行(效果行/"奖励未生效"〔聚合计数〕/标旗未中行/直伤行)③ H2 清图奖励行强调呈现 # 2026-09-15 由五项收拢(库存常读条/道具窗口随可选类删除失义) - high_glow_nodes: H1 开格拾取瞬间 / H2 清图奖励兑付(奖励侧常规节拍登记;**风险 #2 排雷侧"完美排雷爆发结算"机制本体归 战斗结算 强制检查点、#3 标中旗节拍补偿归 战斗结算——奖励道具经济 只交付插槽与明细行数据面**;呈现义务 HUD框架×③) # 2026-09-15 H3 道具抢杀窗口随可选类删除失义 - referenced_by: [战斗结算, HUD框架, 难度曲线与Boss, 辅助道具, 战斗表现, 教学引导] + high_glow_nodes: H1 开格拾取瞬间 / H2 清图奖励兑付(奖励侧常规节拍登记;**风险 #2 排雷侧"完美排雷爆发结算"机制本体归 战斗结算 强制检查点、#3 标中旗节拍补偿归 战斗结算——地图战斗资源 只交付插槽与明细行数据面**;呈现义务 HUD框架×③) # 2026-09-15 H3 道具抢杀窗口随可选类删除失义 + referenced_by: [战斗结算, HUD框架, 难度曲线与Boss, 魔法道具, 战斗表现, 教学引导] - name: reward_config type: schema_data - owner: design/gdd/systems/战斗循环/奖励道具经济.md + owner: design/gdd/systems/战斗循环/地图战斗资源.md attributes: table: "**已删除(2026-09-15 格面资源批)**——RewardConfigTable 随可选类道具整体删除下线:k_dmg / active_p0 / active_decay / n_draft / p_min 全部供给控制器与按板保底参数失义;清图奖励配置并入 RewardTable clear_default 槽;切片 reward_config.tres 随代码修改批删除(历史字段定义见底部修订记录)" - referenced_by: [奖励道具经济, 难度曲线与Boss, 战斗结算] + referenced_by: [地图战斗资源, 难度曲线与Boss, 战斗结算] - name: settlement_table type: schema_data @@ -317,10 +319,12 @@ entities: pool_clamp_lo: int pp(结构冻结 −100——percent 池地板域下界,乘数域随之 [0,2];2026-09-10 统一八字段口径) pool_clamp_hi: int pp(结构冻结 +100——percent 池地板域上界;原"七字段 pool_clamp_lo_hi"措辞作废,数据配置 GDD 行按收编先例以本条为准) round_direction: enum {floor}(结构冻结——单一取整规则) - charge_grants: Dictionary 奖励触发源→{attack_type, per_unit, cap}(**2026-09-15 攻击类型/奖励抽象分离批新增**——攻击类型 = 伤害的属性轴(定义不含来源),充能 = 按攻击类型分桶的附加伤害储备;"哪类棋盘事实充哪个桶、每单位多少点"归本字典 = 奖励定义,替换字典即改奖励内容,攻击类型与 armor_effectiveness 不动;现行 safe_cell(开格)→ pierce 1/格 cap 8 · flag_hit(标中旗)→ magic 2/雷 cap 0=不封顶;**原 pierce_per_cell / pierce_cap / magic_per_flag("类型×来源"焊死命名,更早为 damage_a_per_cell / damage_a_cap / damage_b_per_flag)同批作废**;数值 provisional 归 难度曲线与Boss;正式归属(奖励道具经济 的奖励类别/效果面)见 战斗结算「待拍板」) + charge_grants: Dictionary 奖励触发源→{attack_type, per_unit, cap}(**2026-09-15 攻击类型/奖励抽象分离批新增**——攻击类型 = 伤害的属性轴(定义不含来源),充能 = 按攻击类型分桶的附加伤害储备;"哪类棋盘事实充哪个桶、每单位多少点"归本字典 = 奖励定义,替换字典即改奖励内容,攻击类型与 armor_effectiveness 不动;现行 safe_cell(开格)→ pierce 1/格 cap 8 · flag_hit(标中旗)→ magic 2/雷 cap 0=不封顶;**原 pierce_per_cell / pierce_cap / magic_per_flag("类型×来源"焊死命名,更早为 damage_a_per_cell / damage_a_cap / damage_b_per_flag)同批作废**;数值 provisional 归 难度曲线与Boss;正式归属(地图战斗资源 的奖励类别/效果面)见 战斗结算「待拍板」) armor_effectiveness: Dictionary 攻击类型×护甲→百分比(键集结构冻结 {normal, pierce, magic} × {light, ward, heavy};默认 normal 全 100 / pierce→ward=150、heavy=50 / magic→heavy=150、ward=50——克制 ×150 / 中性 ×100 / 被克 ×50;**2026-09-15 命名统一批:改为语义键,原 {base, dmg_a, dmg_b} × {none, a, b} 位置键作废**;数值 provisional 归 难度曲线与Boss) + ac_roll: 护甲等级掷点(**2026-09-15 护甲等级批新增,未定稿**——形式 d20 / 百面骰 / 区间均匀未定、数值域未定,登记 战斗结算「待拍板」;回合内随机 = 结算换算层首次引入;吃掷点分量 = 主角先手攻击普通分量 / 敌方攻击拍与重击拍基线伤害;掷点 ≥ 防守方护甲等级 → 全额、掷点 < 护甲等级 → 档位折扣,必中非归零、无 miss 无零收益白回合;穿刺/魔法充能分量与棋盘来源伤害〔伏击附加 / 道具 / 清障炸药 / 奖励即时〕不掷不折) + ac_discount_tiers: Dictionary 掷点差距档→折扣百分比(**2026-09-15 护甲等级批新增,未定稿**——档数与数值未定 provisional 归 难度曲线与Boss;档位不设零档〔非归零〕,折扣后取整沿全局 floor、为 0 走既有零值伤害行不新增行型;EV 中性——期望伤害对齐现行表值,现行数值不重调,难度曲线与Boss 生存链区间补记掷点带宽口径、"零红档"验收保留) validation: segment_order 违例致命 · effect_pool_map 悬空致命 · p_perfect 域 {100,200}(2026-09-10 载体域——100 = "完美必须 ≥ 不加倍"机制语义下界,200 = 双份交付)——战斗结算 冒烟三行致命 manifest(segorder_violation / poolmap_dangling / pperfect_oob) - mechanics: 结算段序骨架唯一权威载体(授予→增益/减益→战斗→衰减→判定——2026-09-15 格面资源批五段,item_window/item 两段随可选类删除下线)· 零随机(rng_service 流封闭不含结算流)· 可回放步骤流(同 master_seed 同意图序列 ⇒ 步骤流逐行相同——数据配置 AC-15 deferred→战斗结算 兑现落点)· 调用序钉死 query_attack→apply_damage→advance · 衰减恒执行含末轮 · 高光双落载体(perfect_sweep P_perfect——2026-09-10 修订为真实双份兑付载体 / 标中旗 highlight 标记)· 流水行协议字段分层(公共 7 字段 + 行类型特有 target/effect_id/pool_value/聚合计数——2026-09-10 评审批修订;行类型封闭枚举 10 类——2026-09-15 格面资源批由 15 类收拢:删道具行 / 已消耗未生效行 / 使用被拒行 / 窗口打开锚行 window_open / 窗口跳过锚行 window_skip 五类随可选类删除下线〔2026-09-15 窗口锚行批曾由 13 扩为 15,同日回撤〕;行来源断言两层豁免集合同批修订 = 行型豁免 {decay, verdict} × 来源类别豁免 {hero_attack, enemy_action, clear_reward},豁免不等于免检——豁免行仍受公共字段与各自语义约束,清单改动须同步 战斗结算 明细流水一节与 battle_log_view 格式化)· **穿刺/魔法 充能与护甲克制结算规格 = 战斗结算 GDD F6(W3 补全,2026-09-14 重算批;2026-09-15 命名统一批)**——挖掘期充能/战斗段消费/单轮生命周期、不吃 percent、逐分量 armor_effectiveness 查表 floor 相加 + mechanics: 结算段序骨架唯一权威载体(授予→增益/减益→战斗→衰减→判定——2026-09-15 格面资源批五段,item_window/item 两段随可选类删除下线)· **随机口径(2026-09-15 护甲等级批修订)**:结算换算层引入回合内随机(ac_roll 护甲等级掷点——必中非归零、低掷按 ac_discount_tiers 档位折扣),掷点流归属未定〔rng_service 流封闭清单 board_gen/reward_roll/encounter 不含结算内消费——新增流须改代码+P1 支柱评审、复用 encounter 则改"实例化期恰一 scope"绑定,登记 战斗结算「待拍板」,rng_service 条目随定稿批修订〕· 可回放契约 = **封闭随机流可回放**(同 master_seed 同意图序列 ⇒ 步骤流逐位复现——数据配置 AC-15 落点,原"结算路径零随机 / 步骤流逐行相同"口径随批作废;开战掷区间 / 装板摇号属初始化随机维持不变)· 调用序钉死 query_attack→apply_damage→advance · 衰减恒执行含末轮 · 高光双落载体(perfect_sweep P_perfect——2026-09-10 修订为真实双份兑付载体 / 标中旗 highlight 标记)· 流水行协议字段分层(公共 7 字段 + 行类型特有 target/effect_id/pool_value/聚合计数——2026-09-10 评审批修订;行类型封闭枚举 10 类——2026-09-15 格面资源批由 15 类收拢:删道具行 / 已消耗未生效行 / 使用被拒行 / 窗口打开锚行 window_open / 窗口跳过锚行 window_skip 五类随可选类删除下线〔2026-09-15 窗口锚行批曾由 13 扩为 15,同日回撤〕;行来源断言两层豁免集合同批修订 = 行型豁免 {decay, verdict} × 来源类别豁免 {hero_attack, enemy_action, clear_reward},豁免不等于免检——豁免行仍受公共字段与各自语义约束,清单改动须同步 战斗结算 明细流水一节与 battle_log_view 格式化)· **穿刺/魔法 充能与护甲克制结算规格 = 战斗结算 GDD F6(W3 补全,2026-09-14 重算批;2026-09-15 命名统一批)**——挖掘期充能/战斗段消费/单轮生命周期、不吃 percent、逐分量 armor_effectiveness 查表 floor 相加 closure_receipt: 行动经济 F1 条款①②③⑤闭合 owner = 战斗结算(2026-09-10 F0–F5 首版验算完成——F0 瞬时当量口径 + m_w 值域裁决见 status_effect.anchor_warning;条款③ clause3_supply 闭合回执;条款⑤ clause5_dominance 条目;actuals p10 交付后强制重跑) referenced_by: [HUD框架, 战斗表现, 音频, 教学引导, 难度曲线与Boss] @@ -332,8 +336,8 @@ entities: boundary: **单结算自然边界(用户 2026-09-09 定稿)**——"不设(每战)上界:踩雷 debuff 只在一次结算中有效,之后没有 debuff"(dur=1 每结算清零无存量) variables: [cap, m_amb, unit_count, k_r, L_r] output_range: 单结算结构上界 ∈ [0, unit_count×min(AP, cap)×m_amb](满配语境 3×min(8,4)×3=36;cap≥8 时真可达上界 72 而非 144;默认行值 unit_count=1 下 12) - account_input: 对账输入 = 棋盘生成 actuals p10(F4 报告 C)非 target 参数(棋盘生成 登记口径);闭合 owner = 战斗结算 单一签字人;左臂(安全格 buff 当量)载体 = **奖励道具经济 F6 当量供给**(2026-09-09 奖励道具经济 定稿——部分缓解非闭合:窗口使用次数是战斗轨迹量,敌人系统 OQ3 扩项保持;2026-09-11 起基础攻击恒在为左臂提供恒定伤害基底,原"当前内容态结构性不可通关"事实退役——敌人系统 Overview 2026-09-11 改写) - direction_precheck: cap=4 下右臂 ≈7.7;左臂按条款 2 最低档锚(+50pp)计 = 0.36×50 = 18——裕度 ≈2.3×(1:1 百分点代理,provisional;2026-09-09 敌人系统 full 评审更正原 4.7×——该值按 +100 两层叠满取值、与"最低档下界"语言矛盾);量级注记:atk=4 时 attack 拍 L≥2 伏击分量过半(heavy 拍过半点后移、按拍别读取;常态支配修正入口 = 难度曲线与Boss atk 曲线 / 奖励道具经济·战斗结算 m_amb 锚,敌人系统 权限外)。**参照迁移注记(2026-09-09 奖励道具经济 评审;2026-09-11 回迁)**:左臂参照对象曾迁 defense_up 当量(奖励道具经济 F4)——**2026-09-11 用户裁决"基础攻击恒存在"后 attack_up 复活,参照对象回迁 attack_up 当量**(上式 +50pp 系 attack_up 口径,迁移期结束;复算义务随 战斗结算 对照表落定,见 status_effect.anchor_warning 回迁注记)。**闭合回执(2026-09-10 战斗结算 GDD F4——条款③闭合完成;同日评审批双口径更正)**:统一 HP 当量 + 边际配对重算 → 默认 unit_count=1 下 L1 裕度 ≈2.0× / L2 ≈2.6× **通过**(锚行口径;**跨行期望口径 ≈1.2×/1.5× 同向通过——双口径登记,难度曲线与Boss 不得以锚行读数放行 unit_count=2**);**满配语境(unit_count=3)最坏盲点破线 → 难度曲线与Boss 调参约束登记**(unit_count 轴 + 密度×可推理率轴——unit_count>1 行须降密度或降 m_amb);本条 pp 代理预检(2.3×)退役为历史记录(量纲混用 + 右臂聚合上界与单格决策单位错配)。**重算回执(2026-09-14 战斗结算 重算批——按现行三输入重推:duration=1 × m_d=−30 × 难度曲线与Boss v3 曲线 d0.25/t0.88)**:L1 裕度 ≈0.48× / L2 ≈0.47× **破线**(锚行口径;跨行期望口径 E_dig=4.5 → ≈0.60×/0.58× 同向破线——双口径登记);满配语境(unit_count=3)≈0.16× 深度破线;**破线升格为默认曲线级约束——V_safe 侧杠杆(m_d/duration/D_ref)× 板形侧杠杆(密度×ι 联动对)× m_amb 全处"禁独立调参"联动网络(m_w↔D_ref↔m_d↔duration_d),修正方向须 难度曲线与Boss 提案 + 战斗结算 闭合对账共裁**;上段 ≈2.0×/2.6× 读数系 duration=2 × m_d=−50 × v1 曲线旧值链产物,退役为历史记录;actuals p10 交付后强制重跑(战斗结算 AC-39;ι 判式面保守代理 = 行 target 代,总暴露面无效) + account_input: 对账输入 = 棋盘生成 actuals p10(F4 报告 C)非 target 参数(棋盘生成 登记口径);闭合 owner = 战斗结算 单一签字人;左臂(安全格 buff 当量)载体 = **地图战斗资源 F6 当量供给**(2026-09-09 地图战斗资源 定稿——部分缓解非闭合:窗口使用次数是战斗轨迹量,敌人系统 OQ3 扩项保持;2026-09-11 起基础攻击恒在为左臂提供恒定伤害基底,原"当前内容态结构性不可通关"事实退役——敌人系统 Overview 2026-09-11 改写) + direction_precheck: cap=4 下右臂 ≈7.7;左臂按条款 2 最低档锚(+50pp)计 = 0.36×50 = 18——裕度 ≈2.3×(1:1 百分点代理,provisional;2026-09-09 敌人系统 full 评审更正原 4.7×——该值按 +100 两层叠满取值、与"最低档下界"语言矛盾);量级注记:atk=4 时 attack 拍 L≥2 伏击分量过半(heavy 拍过半点后移、按拍别读取;常态支配修正入口 = 难度曲线与Boss atk 曲线 / 地图战斗资源·战斗结算 m_amb 锚,敌人系统 权限外)。**参照迁移注记(2026-09-09 地图战斗资源 评审;2026-09-11 回迁)**:左臂参照对象曾迁 defense_up 当量(地图战斗资源 F4)——**2026-09-11 用户裁决"基础攻击恒存在"后 attack_up 复活,参照对象回迁 attack_up 当量**(上式 +50pp 系 attack_up 口径,迁移期结束;复算义务随 战斗结算 对照表落定,见 status_effect.anchor_warning 回迁注记)。**闭合回执(2026-09-10 战斗结算 GDD F4——条款③闭合完成;同日评审批双口径更正)**:统一 HP 当量 + 边际配对重算 → 默认 unit_count=1 下 L1 裕度 ≈2.0× / L2 ≈2.6× **通过**(锚行口径;**跨行期望口径 ≈1.2×/1.5× 同向通过——双口径登记,难度曲线与Boss 不得以锚行读数放行 unit_count=2**);**满配语境(unit_count=3)最坏盲点破线 → 难度曲线与Boss 调参约束登记**(unit_count 轴 + 密度×可推理率轴——unit_count>1 行须降密度或降 m_amb);本条 pp 代理预检(2.3×)退役为历史记录(量纲混用 + 右臂聚合上界与单格决策单位错配)。**重算回执(2026-09-14 战斗结算 重算批——按现行三输入重推:duration=1 × m_d=−30 × 难度曲线与Boss v3 曲线 d0.25/t0.88)**:L1 裕度 ≈0.48× / L2 ≈0.47× **破线**(锚行口径;跨行期望口径 E_dig=4.5 → ≈0.60×/0.58× 同向破线——双口径登记);满配语境(unit_count=3)≈0.16× 深度破线;**破线升格为默认曲线级约束——V_safe 侧杠杆(m_d/duration/D_ref)× 板形侧杠杆(密度×ι 联动对)× m_amb 全处"禁独立调参"联动网络(m_w↔D_ref↔m_d↔duration_d),修正方向须 难度曲线与Boss 提案 + 战斗结算 闭合对账共裁**;上段 ≈2.0×/2.6× 读数系 duration=2 × m_d=−50 × v1 曲线旧值链产物,退役为历史记录;actuals p10 交付后强制重跑(战斗结算 AC-39;ι 判式面保守代理 = 行 target 代,总暴露面无效) referenced_by: [战斗结算] - name: clause5_dominance @@ -341,11 +345,11 @@ entities: owner: design/gdd/systems/战斗循环/战斗结算.md attributes: rule: 行动经济 F1 条款⑤清图 vs 弃图支配性闭合(战斗结算 单一闭合 owner,战斗结算 GDD F5;**2026-09-10 评审批模型修订:挖穿残余池计价**——E[踩雷] = |M|×n_s/(n_s+1) 均匀交错模型、Δr = ⌈(n_s+E[踩雷])÷AP_r⌉;旧模型按每格独立赌 P(雷) 漏计全池挖掘量、系统性偏乐观)——主判式 Δ_clear = [R_res + C_eff] − [X_res + Δr × s_ref] ≥ 0;E_dig = 默认根加权 7.2 HP(刀 40%/治疗 25%/defense_up 35%);C_eff = C ×(perfect ? P_perfect÷100 : 1)(×2 = 真实双份交付);s_ref = D_ref;**停手侧 RAP 机会收益按零计价(显式假设登记——零价假设下 verdict 已为负,为 RAP 计价只会更负)**;域守卫 n_s < 1 ⇒ 主判式不评估、信息端平凡腿接管 - first_pass: **条款⑤未闭合(2026-09-10 模型修订重推——旧"两态通过"读数作废)**:L1 −5.3 / L2 −10.1(完美双份 +2.7/−2.1);满配语境 unit_count=3 深度为负(−49.6/−97.5,与 clause3_supply 破线同向联动);实现率折减口径(E_dig×0.6)更差(−18.5/−39.5);保守地板需求 L1 ≥ 46.1 / L2 ≥ 91.8(vs C=8/完美 16——缺口 −38.1/−75.8)。**难度曲线与Boss/奖励道具经济 约束包**:① C 量级上调整向(护栏 B 口径联动复核)② 或裁"清图非严格支配"为设计态(如裁设计态须同步声明 行动经济 条款⑤ P1 对冲弱化 + 奖励道具经济 预警加权监控)——①②二选一归 难度曲线与Boss 裁;③ 多敌放行判据 = 条款③⑤在全部登记行组合下同时成立。判据函数角色 = 调参约束生成器(AC-40 断言输出与约束包一致) + first_pass: **条款⑤未闭合(2026-09-10 模型修订重推——旧"两态通过"读数作废)**:L1 −5.3 / L2 −10.1(完美双份 +2.7/−2.1);满配语境 unit_count=3 深度为负(−49.6/−97.5,与 clause3_supply 破线同向联动);实现率折减口径(E_dig×0.6)更差(−18.5/−39.5);保守地板需求 L1 ≥ 46.1 / L2 ≥ 91.8(vs C=8/完美 16——缺口 −38.1/−75.8)。**难度曲线与Boss/地图战斗资源 约束包**:① C 量级上调整向(护栏 B 口径联动复核)② 或裁"清图非严格支配"为设计态(如裁设计态须同步声明 行动经济 条款⑤ P1 对冲弱化 + 地图战斗资源 预警加权监控)——①②二选一归 难度曲线与Boss 裁;③ 多敌放行判据 = 条款③⑤在全部登记行组合下同时成立。判据函数角色 = 调参约束生成器(AC-40 断言输出与约束包一致) c3_ruling: **约束包②采信(非支配设计态)+ 计价基元换位重推(2026-09-14 难度曲线与Boss 修订批)**——clear_default 槽由 clear_knife(入库刀 C=8/完美 16)换位为 clear_blast(instant_aoe 当场兑付全体存活敌,C = power = 40):保守地板需求缺口重推 = 46.1−40 = 6.1(L1)/ 91.8−40 = 51.8(L2);C 量级不上调 ✓;P1 对冲弱化同步声明(② 条件)+ 弃图率加权监控随 OQ4 持续;本条 first_pass 旧读数(C=8/16 口径)留作模型演进记录;**区间批义务(2026-09-14)**:C 语义改区间 [25,55](期望中点 40 不变——期望口径缺口 6.1/51.8 维持);保守地板口径(min=25)缺口重推 = 21.1/66.8——战斗结算 修订批对齐条款⑤措辞(义务登记,未兑现前 战斗结算 文本 C=40 按期望中点读)。**重算回执(2026-09-14 战斗结算 重算批——v3 曲线 d0.25/t0.88 × E_dig=4.5 重推,参考板形换锚 难度曲线与Boss MVP 行值总表)**:主判式 L1 −28.7/+11.3(完美翻正)、L2 −67.4/−27.4、满配 −153.2/−113.2 与 −257.1/−217.1;保守地板需求 L1 ≥ 110.3 / L2 ≥ 166.8(缺口 70.3/126.8,对 clear_blast);上段 46.1/91.8 需求系 v1 曲线旧值链产物退役;**难度曲线与Boss 裁决②非支配设计态维持**(qualitative 结构不变——非完美态负、完美态 L1 翻正、L2 全负);护栏 A 方向性复核 ≈−1.1 越下界(E_dig 修正)/ 护栏 B C=40 越线——W2 复核三选一裁决随 难度曲线与Boss 收口批;actuals 交付后按 clear_blast 语义强制重跑(战斗结算 AC-40 同批口径) guardrails: 护栏 B 防钓鱼(**2026-09-10 输入登记更正 + 双读数**:|S|_min = 棋盘生成 行级 knob 禁写死;|R₀|_max 无登记供给方——登记 棋盘生成 产出义务〔R₀ 规模分布上界,报告 C 扩列〕;s_ref=D_ref=12 比真实敌方 DPS 期望松 2.5–3×→ D_ref 口径上界 24〔C_eff=16 ✓〕/ DPS 严格读数 ≈8〔C_eff=16 越〕——两读数裁决归 难度曲线与Boss,与约束包①联动;结构承载 = 棋盘生成 min_safe_count + 布雷数下限 + 排雷玩法 R₀≠S 三闸的对账复核,非运行期校验) rerun_obligation: actuals p10 交付后强制重跑(战斗结算 AC-40);难度曲线与Boss 每次调参重跑(D_ref/P_pf/C 联动) - referenced_by: [难度曲线与Boss, 奖励道具经济, 棋盘生成] + referenced_by: [难度曲线与Boss, 地图战斗资源, 棋盘生成] # 占位表中的原型参考值(伏击 +3、清图 +10、敌 18HP/4ATK 等)为 provisional, # 不登记为事实——待各 owner GDD(地形变异/增益状态/奖励道具经济/战斗结算/难度曲线与Boss)定稿后由其登记。 @@ -419,40 +423,40 @@ entities: owner: design/gdd/systems/表现与支撑/HUD框架.md attributes: kind: 呈现面契约(读图接口清单 + 订阅纪律 + 命令式刷新面 + 载荷 schema 索引——封装收口批〔session-state entry 39/40〕切片事实的 GDD 转正) - read_map: 排雷玩法 current_board()/reveal_record()/compute_move_path() · 行动经济 getter-only phase/ap/rap/last_round_end · 战斗结算 presentation_snapshot()/is_battle_live()/stock_count()/query_reward_identity() + 步骤流信号 · 敌人系统 hero_unit()/all_enemies() · **增益状态/奖励道具经济 零直读**(经 战斗结算 呈现面与流水投影)· runner(节点链/当前节点/HP 携带) + read_map: 排雷玩法 current_board()/reveal_record()/compute_move_path() · 行动经济 getter-only phase/ap/rap/last_round_end · 战斗结算 presentation_snapshot()/is_battle_live()/stock_count()/query_reward_identity() + 步骤流信号 · 敌人系统 hero_unit()/all_enemies() · **增益状态/地图战斗资源 零直读**(经 战斗结算 呈现面与流水投影)· runner(节点链/当前节点/HP 携带) write_paths: settle_batch(stop 亦经此,禁直调 行动经济)/ submit_window_selection(窗口条目位置序,非库存句柄) / 刷新意图 → 战斗结算 refresh_board 编排 / runner 推进——**全部唯一发生在组合根** subscription_discipline: 呈现层永不直接订阅 排雷玩法/行动经济——只订 战斗结算 步骤流/快照与 runner 信号(ADR-0001 固化);接线全部在组合根 - imperative_refresh_faces: 零事件外发动作的刷新 = 命令式回执驱动(白话:动作调用返回后组合根立刻重查一次只读面刷新界面,不等通知信号)——旗插拔/移动成功(排雷玩法)/ AP·RAP 读数(行动经济 无推送)/ 状态效果(增益状态 零信号,绑 战斗结算 结算完成时点)/ 库存(奖励道具经济 查询面)五面成文 - payload_schema_index: HUD框架 GDD Core Rule 17 表 13 项——排雷玩法 三事件/战斗结算 流水行协议/奖励道具经济 窗口载荷等均为引用既有 schema;HUD框架 自有成文 = ux 遥测六行(ux_round_input_ratio/ux_round_exit/ux_refresh_attempt/ux_window_choice/ux_reject/ux_hint_shown)+ hint_id 封闭枚举 {chord, no_adjacent} + imperative_refresh_faces: 零事件外发动作的刷新 = 命令式回执驱动(白话:动作调用返回后组合根立刻重查一次只读面刷新界面,不等通知信号)——旗插拔/移动成功(排雷玩法)/ AP·RAP 读数(行动经济 无推送)/ 状态效果(增益状态 零信号,绑 战斗结算 结算完成时点)/ 库存(地图战斗资源 查询面)五面成文 + payload_schema_index: HUD框架 GDD Core Rule 17 表 13 项——排雷玩法 三事件/战斗结算 流水行协议/地图战斗资源 窗口载荷等均为引用既有 schema;HUD框架 自有成文 = ux 遥测六行(ux_round_input_ratio/ux_round_exit/ux_refresh_attempt/ux_window_choice/ux_reject/ux_hint_shown)+ hint_id 封闭枚举 {chord, no_adjacent} lifetime_visibility_rule: 销毁前捕获(终局/死亡数据 despawn 前已入流水与快照)/ 载荷自包含(行协议自带来源/值/目标,禁按行序反推)/ 禁回读核心生命周期态(唯一观测口 = is_battle_live() 与 phase 投影)——切片缺陷②教训转正 naming_unification: 正式名 request_refresh(行动经济)/ refresh_cap_per_round(结构位默认 2)——切片 provisional 名 request_refresh_active/can_request_refresh/refresh_max_per_round/during_round 退役(AC grep 断言零残留) drift_registrations: ① 行动经济 只读观测量缺轮内已用刷新次数(刷新按钮"本轮剩 N 次"读数缺口——行动经济 修订批补)② 切片 settlement_snapshot 信号 战斗结算 GDD 未登记契约(HUD框架 现行消费 = 步骤流判定行 + presentation_snapshot(),独立信号须回 战斗结算 补登记)③ 极性提案实施批 HUD框架 义务条目(未开格类型图标/极性视觉语言/负向文案族——随批入 systems-index HUD框架 台账) - referenced_by: [战斗表现, 音频, 教学引导, 辅助道具, 设置与本地化] + referenced_by: [战斗表现, 音频, 教学引导, 魔法道具, 设置与本地化] - name: aux_items type: schema_data - owner: design/gdd/systems/排雷循环/辅助道具.md + owner: design/gdd/systems/排雷循环/魔法道具.md attributes: - table: AuxItemTable(数据配置 承载【数据配置×① 修订批登记】,键 = item_id;辅助道具 回填 owner,2026-09-14 定稿登记;定义表非进度成长表——Rule 4 豁免;生效前提 = 奖励道具经济×①…⑤/数据配置×①② 修订批兑现) + table: AuxItemTable(数据配置 承载【数据配置×① 修订批登记】,键 = item_id;魔法道具 回填 owner,2026-09-14 定稿登记;定义表非进度成长表——Rule 4 豁免;生效前提 = 地图战斗资源×①…⑤/数据配置×①② 修订批兑现) fields: - item_id: String 主键唯一——奖励道具经济 RewardTable.effect_id(aux 行)与 VariationTable.counter_item_ids 的引用键 - display_name: String 非空(HUD框架 呈现数据源,本地化归 设置与本地化——敌人系统/增益状态/奖励道具经济 同库惯例) + item_id: String 主键唯一——地图战斗资源 RewardTable.effect_id(aux 行)与 VariationTable.counter_item_ids 的引用键 + display_name: String 非空(HUD框架 呈现数据源,本地化归 设置与本地化——敌人系统/增益状态/地图战斗资源 同库惯例) dimension_tags: StringList ⊆ {info, risk, action, plan, counter} 非空——维度覆盖断言载体(F2:五维度各 ≥1 活行 = "每维度都有对应道具"的机器可查形态) - effect_kinds: StringList ⊆ {mine_reveal, reward_preview, ap_grant} 非空、无重复(MVP ≤2——稀有多维组合行的 schema 承载;显影尘与地穴全图卷的原显影半边随雾格移除失义,效果待重定——辅助道具 待拍板,名称保留) + effect_kinds: StringList ⊆ {mine_reveal, reward_preview, ap_grant} 非空、无重复(MVP ≤2——稀有多维组合行的 schema 承载;显影尘与地穴全图卷的原显影半边随雾格移除失义,效果待重定——魔法道具 待拍板,名称保留) target: enum {none, area_3x3, board_wide}——校验 = target ∈ 各空间 kind 支持域交集(全非空间 ⇒ 恒 none);原 fog_region 域随显影效果待重定一并重立 magnitude: int [0,999](knob)——仅 ap_grant 行消费(= AP 点数,加载校验 ≥1);空间行不消费非校验项 - use_phase: enum {active_dig}——MVP 单值(扩枚举走 辅助道具 GDD 修订;奖励道具经济 use_timing 扩值 during_dig 同批对齐——奖励道具经济×③) - mvp_content: 六行(值 provisional 归 难度曲线与Boss;显影尘与地穴全图卷的原显影半边随雾格移除失义、效果与目标待重定——辅助道具 待拍板,名称保留)——probe_dust 显影尘〔info+counter / 效果待重定 / w5 t2〕· sapper_order 工兵令〔action / ap_grant / none / mag 2 / w5 t2〕· loot_compass 探宝罗盘〔plan / reward_preview / area_3x3 / w4 t2〕· nest_pendulum 探巢摆钟〔risk / mine_reveal / area_3x3 / w4 t2〕· catacomb_scroll 地穴全图卷〔info+plan / reward_preview + 显影半边待重定 / board_wide / w1 t3〕· blast_kit 爆破工兵包〔action+risk / ap_grant+mine_reveal / area_3x3 / mag 4 / w1 t3〕——四常规单维(t2)+ 两稀有多维高数值(t3;稀有读数 ≈0.17 件/板,F1) - load_bearing_rules: 真视窄域护栏(承重)——mine_reveal 支持域 ≤area_3x3、board_wide 仅恢复推理原料类效果(显影/预读,显影载体待重定;恢复推理可全图、替代推理必窄域——P1 防塌方;schema 校验强制,夹具 aux_target_violation)· 效果时效随 kind 派生无独立字段(空间 kind 恒本图持续、ap_grant 恒当轮一次性)· 零随机(零 RNG 流消费——信息全部来自 排雷玩法 恒真数字/奖励道具经济 Ready 映射/行动经济 账本三既有事实源)· 零特判延伸(排雷玩法 代码零 辅助道具 分支)· 无效/零信息目标不可用不消耗(可用性门——2026-09-14 用户拍板:板级判据 → 图标灰/入口禁用〔奖励道具经济 usable_now 先例〕、点击级 → 拒绝零消耗、组合行判据取 OR——爆破包 ap_grant 恒可用、真视零雷恒有效;与 奖励道具经济 E10 照常消耗区分——挖掘期非结算管线、守卫 辅助道具 本地可判)· area_3x3 边缘窗口 resolved_target = 窗口 ∩ 板内格(2026-09-14 用户拍板——护栏只缩不扩)· 使用零 AP 成本(不经 try_spend)· 库存关卡域(与 奖励道具经济 库存正交两容器、生命周期同构)· Used 不可逆 - overlay_semantics: 板级叠加层三集(辅助道具 自持派生信息层、零回写 排雷玩法/奖励道具经济 状态、随图消亡;现行有效的 = 真视集与预读集,显影集载体待重定)——digit_reveal 显影集(HUD框架 显示被隐藏的数字,本体 = 排雷玩法 恒真数字;载体待重定)/ mine_reveal 真视集(真视≠自动兑付——插旗仍花 1 AP 走既有 flag_hit 路径)/ reward_preview 预读集(徽章数据源 = 战斗结算 query_reward_identity 既有读面——辅助道具 零 奖励道具经济 数据复制) - api: 封闭枚举 8 入口(provisional,实现期 ADR 定名)——add_item(item_id, source) / query_inventory(枚举序 = 受理序,Used 保留只读,逐件含 usable 板级零信息可用性预判)/ validate_use(handle, target?) → 效果投影(只读不消耗;目标校验谓词 = 越板/点击级零信息拒绝 + 边缘窗口裁剪 resolved_target = 窗口 ∩ 板内格)/ apply_overlay(kind, target, mag)(战斗结算 逐 kind 调用)/ consume(handle)(Used 不可逆 + 快照回执)/ query_overlays(三集只读投影)/ retire_overlays(战斗结算 编排——与 奖励道具经济 retire_mapping 同点)/ clear_inventory(关卡末幂等);负空间 = 无自动使用入口/无重掷/无事件订阅/无 RNG 直连/无 排雷玩法/奖励道具经济 写入口 - use_orchestration: 战斗结算 use_aux 规范序(唯一调用权)= 相位 gate(Active——行动经济 phase getter)→ validate_use(目标校验读 排雷玩法 只读面——使用目标校验谓词表见 辅助道具 GDD)→ 逐 kind 应用(顺序钉死:空间先、ap_grant 后——effect_kinds 列表序非运行时语义)→ consume——序即原子(validate 拦下全部可失败输入;apply/grant 域内无失败路径 → consume 恒达) - formulas: F1 aux 渗透供给(E[N_aux/板] = |U|×Σw_aux/W_total,默认根 ≈1.7 件/板、稀有 ≈0.17;|U| 分布缺口待 棋盘生成 actuals——奖励道具经济 预检 11 同批重跑)· F2 维度覆盖谓词 coverage(d) · F3 信息价值方向预检(显影 ι↑ → 残余盲猜端 n_s = (1−ι)|S| 收缩 → 盲赌暴露下降 → 期望踩雷↓——P(雷) = |M|/(|M|+n_s) 对 ι 递增,单赌命中率上行属正常,收益在"少赌"非"单赌更安全";与 战斗结算 F4 同式 + n_s<1 适用域守卫;2026-09-14 评审修正原"P(雷)↓"方向误写;定量当量归 战斗结算 条款①对照表扩列——战斗结算×④注记,MVP 不入对照表) - obligations: 21 项跨 GDD 义务清单(辅助道具 GDD Dependencies 全文,对侧修订批逐项核对、缺项即 blocking)——战斗结算×①②③(use_aux 编排/生命周期/授予路由,缺项即 blocking)+ 战斗结算×④(对照表扩列注记)· 奖励道具经济×①…⑤(category 扩值 aux_item/effect_id 双表校验+夹具 reward_dangling_aux/use_timing 扩 during_dig/默认根六行+池总权重算/OQ2 收口注记)· 行动经济×①(grant_ap 第 9 API 接口漂移预授权——Active 受理、无上限域、零随机)· 地形变异×①②③(counter_item_ids 首引回填随未来变异行建行批/悬空校验激活+夹具 aux_dangling_counter/未来变异随批配 ≥1 反制——原雾行绑定随移除悬空,显影尘效果待重定)· HUD框架×①…④(库存条/使用交互/叠加层三集呈现/清空反馈)· 数据配置×①②(AuxItemTable 登记/两处表值回填+校验激活)· 教学引导×①(教学候选,非 blocking)· art-bible×①(§4.6 键扩容:item_id 六键+叠加层标记三族) + use_phase: enum {active_dig}——MVP 单值(扩枚举走 魔法道具 GDD 修订;地图战斗资源 use_timing 扩值 during_dig 同批对齐——地图战斗资源×③) + mvp_content: 六行(值 provisional 归 难度曲线与Boss;显影尘与地穴全图卷的原显影半边随雾格移除失义、效果与目标待重定——魔法道具 待拍板,名称保留)——probe_dust 显影尘〔info+counter / 效果待重定 / w5 t2〕· sapper_order 工兵令〔action / ap_grant / none / mag 2 / w5 t2〕· loot_compass 探宝罗盘〔plan / reward_preview / area_3x3 / w4 t2〕· nest_pendulum 探巢摆钟〔risk / mine_reveal / area_3x3 / w4 t2〕· catacomb_scroll 地穴全图卷〔info+plan / reward_preview + 显影半边待重定 / board_wide / w1 t3〕· blast_kit 爆破工兵包〔action+risk / ap_grant+mine_reveal / area_3x3 / mag 4 / w1 t3〕——四常规单维(t2)+ 两稀有多维高数值(t3;稀有读数 ≈0.17 件/板,F1) + load_bearing_rules: 真视窄域护栏(承重)——mine_reveal 支持域 ≤area_3x3、board_wide 仅恢复推理原料类效果(显影/预读,显影载体待重定;恢复推理可全图、替代推理必窄域——P1 防塌方;schema 校验强制,夹具 aux_target_violation)· 效果时效随 kind 派生无独立字段(空间 kind 恒本图持续、ap_grant 恒当轮一次性)· 零随机(零 RNG 流消费——信息全部来自 排雷玩法 恒真数字/地图战斗资源 Ready 映射/行动经济 账本三既有事实源)· 零特判延伸(排雷玩法 代码零 魔法道具 分支)· 无效/零信息目标不可用不消耗(可用性门——2026-09-14 用户拍板:板级判据 → 图标灰/入口禁用〔地图战斗资源 usable_now 先例〕、点击级 → 拒绝零消耗、组合行判据取 OR——爆破包 ap_grant 恒可用、真视零雷恒有效;与 地图战斗资源 E10 照常消耗区分——挖掘期非结算管线、守卫 魔法道具 本地可判)· area_3x3 边缘窗口 resolved_target = 窗口 ∩ 板内格(2026-09-14 用户拍板——护栏只缩不扩)· 使用零 AP 成本(不经 try_spend)· 库存关卡域(与 地图战斗资源 库存正交两容器、生命周期同构)· Used 不可逆 + overlay_semantics: 板级叠加层三集(魔法道具 自持派生信息层、零回写 排雷玩法/地图战斗资源 状态、随图消亡;现行有效的 = 真视集与预读集,显影集载体待重定)——digit_reveal 显影集(HUD框架 显示被隐藏的数字,本体 = 排雷玩法 恒真数字;载体待重定)/ mine_reveal 真视集(真视≠自动兑付——插旗仍花 1 AP 走既有 flag_hit 路径)/ reward_preview 预读集(徽章数据源 = 战斗结算 query_reward_identity 既有读面——魔法道具 零 地图战斗资源 数据复制) + api: 封闭枚举 8 入口(provisional,实现期 ADR 定名)——add_item(item_id, source) / query_inventory(枚举序 = 受理序,Used 保留只读,逐件含 usable 板级零信息可用性预判)/ validate_use(handle, target?) → 效果投影(只读不消耗;目标校验谓词 = 越板/点击级零信息拒绝 + 边缘窗口裁剪 resolved_target = 窗口 ∩ 板内格)/ apply_overlay(kind, target, mag)(战斗结算 逐 kind 调用)/ consume(handle)(Used 不可逆 + 快照回执)/ query_overlays(三集只读投影)/ retire_overlays(战斗结算 编排——与 地图战斗资源 retire_mapping 同点)/ clear_inventory(关卡末幂等);负空间 = 无自动使用入口/无重掷/无事件订阅/无 RNG 直连/无 排雷玩法/地图战斗资源 写入口 + use_orchestration: 战斗结算 use_aux 规范序(唯一调用权)= 相位 gate(Active——行动经济 phase getter)→ validate_use(目标校验读 排雷玩法 只读面——使用目标校验谓词表见 魔法道具 GDD)→ 逐 kind 应用(顺序钉死:空间先、ap_grant 后——effect_kinds 列表序非运行时语义)→ consume——序即原子(validate 拦下全部可失败输入;apply/grant 域内无失败路径 → consume 恒达) + formulas: F1 aux 渗透供给(E[N_aux/板] = |U|×Σw_aux/W_total,默认根 ≈1.7 件/板、稀有 ≈0.17;|U| 分布缺口待 棋盘生成 actuals——地图战斗资源 预检 11 同批重跑)· F2 维度覆盖谓词 coverage(d) · F3 信息价值方向预检(显影 ι↑ → 残余盲猜端 n_s = (1−ι)|S| 收缩 → 盲赌暴露下降 → 期望踩雷↓——P(雷) = |M|/(|M|+n_s) 对 ι 递增,单赌命中率上行属正常,收益在"少赌"非"单赌更安全";与 战斗结算 F4 同式 + n_s<1 适用域守卫;2026-09-14 评审修正原"P(雷)↓"方向误写;定量当量归 战斗结算 条款①对照表扩列——战斗结算×④注记,MVP 不入对照表) + obligations: 21 项跨 GDD 义务清单(魔法道具 GDD Dependencies 全文,对侧修订批逐项核对、缺项即 blocking)——战斗结算×①②③(use_aux 编排/生命周期/授予路由,缺项即 blocking)+ 战斗结算×④(对照表扩列注记)· 地图战斗资源×①…⑤(category 扩值 aux_item/effect_id 双表校验+夹具 reward_dangling_aux/use_timing 扩 during_dig/默认根六行+池总权重算/OQ2 收口注记)· 行动经济×①(grant_ap 第 9 API 接口漂移预授权——Active 受理、无上限域、零随机)· 地形变异×①②③(counter_item_ids 首引回填随未来变异行建行批/悬空校验激活+夹具 aux_dangling_counter/未来变异随批配 ≥1 反制——原雾行绑定随移除悬空,显影尘效果待重定)· HUD框架×①…④(库存条/使用交互/叠加层三集呈现/清空反馈)· 数据配置×①②(AuxItemTable 登记/两处表值回填+校验激活)· 教学引导×①(教学候选,非 blocking)· art-bible×①(§4.6 键扩容:item_id 六键+叠加层标记三族) ux_flag: 有 UI 贡献(库存条/使用交互/叠加层呈现)——Phase 4 前置 /ux-design;asset-spec 候选(art-bible 样张批后) - closures: 奖励道具经济 OQ2 辅助道具 侧收口(呈现深度 = 道具驱动预读;未预读格不呈现、自动寻路不做——终态与否 OQ6)· 创意风险 #1 道具侧兑现(plan 维度预读——结构闭环最后一块,呈现归 HUD框架)· 显影语义(原为雾格显影 = fog_reveal)随雾格移除失义、载体待重定(辅助道具 待拍板) + closures: 地图战斗资源 OQ2 魔法道具 侧收口(呈现深度 = 道具驱动预读;未预读格不呈现、自动寻路不做——终态与否 OQ6)· 创意风险 #1 道具侧兑现(plan 维度预读——结构闭环最后一块,呈现归 HUD框架)· 显影语义(原为雾格显影 = fog_reveal)随雾格移除失义、载体待重定(魔法道具 待拍板) warnings: 预警①…④ playtest 预注册归 难度曲线与Boss(道具依赖度/预读覆盖率/AP 转存联动/稀有感知) - referenced_by: [战斗结算, 奖励道具经济, 地形变异, 行动经济, HUD框架, 数据配置, 教学引导, art-bible] + referenced_by: [战斗结算, 地图战斗资源, 地形变异, 行动经济, HUD框架, 数据配置, 教学引导, art-bible] - name: difficulty_table type: table @@ -474,7 +478,7 @@ entities: supply_balance_band: "**关级供给带 [1.1,2.0] 退役(2026-09-14——其验算 0.54 与实测 60% 通关矛盾)**——由生存链区间模型替代:每战 S/K 区间三档判定(绿 S_min>K_max / 黄 E[S]≥E[K]+1 / 红 S_max≤K_min 禁止入表)+ 关级恒等式(atk×ΣR_survive + Σ奖励输出 ≈ Σ敌hp期望×(1+缓冲),actuals 逐项审计闭合)+ 输出占比带 [15%,40%] + 通关余量带(p90≤13 & p10≥3——'通关只剩一点血'量化)" tool_carrier: level_monte_carlo.gd / reward_expectation.gd(切片原型→难度曲线与Boss 期正式批量工具,棋盘生成 F4 排期倒挂解除载体) calibration_gap: 真人修正系数待 playtest 标定(OQ3——**方向已由试玩批次 1 反向确认:真人显著强于模拟者**〔v2 真人 100% vs 模拟 80%〕;旧"真人预期低于模拟"方向声明由本条替代;带按模拟口径定义,真人系数批次 2 定量) - referenced_by: [奖励道具经济, 战斗结算, 冒险结构, 元进度] + referenced_by: [地图战斗资源, 战斗结算, 冒险结构, 元进度] - name: boss_dmax_convention type: convention @@ -615,3 +619,21 @@ entities: # ② 两处已知落差:a) charge_grants 触发源可扩展 vs 切片仅 safe_cell/flag_hit 两处计数埋点(新增源须加埋点); # b) safe_cell/flag_hit 来源标识跨命名空间同名(结算明细行 source_class / charge_grants 键;RewardTable.pool_tag 已随格面资源批改 cell)。 # 验收读数:冒烟 201 项 0 失败 · 四探针 exit=0 无 FAIL(切片侧仍为 pre-v0.7 实现,代码同步随格面资源批新会话执行)。 +# +# 2026-09-15 护甲等级批(用户拍板登记,只改 GDD 与 registry、不动代码;owner=战斗结算 v0.8 / 敌人系统 v0.3 / 难度曲线与Boss v0.4 / registry 侧 3 条): +# settlement_table 增 ac_roll / ac_discount_tiers 两字段(未定稿——掷点形式 d20/百面骰/区间均匀与数值域未定,登记 战斗结算「待拍板」); +# enemy / hero 各增 armor_class 字段(取值域随掷点形式定稿,三敌种与主角行值未定 provisional 归 难度曲线与Boss); +# settlement_table.mechanics 随机口径修订——结算换算层首次引入回合内随机(护甲等级掷点),可回放契约从"结算路径零随机" +# 修订为"封闭随机流可回放"(同种子同输入逐位复现);掷点流归属未定(新增封闭流 vs 复用 encounter)登记 战斗结算「待拍板」, +# rng_service 条目本批不动(流清单变更须改代码 + P1 支柱评审,随定稿批执行)。 +# 护甲等级(数值轴 armor_class)与护甲类型(克制属性轴 armor_type light/ward/heavy)命名区分成文——文档、表字段与代码键不得混用。 +# EV 中性引入:期望伤害对齐现行表值,现行数值不重调;难度曲线与Boss 生存链区间补记掷点带宽口径(定稿前扫描维持全额口径),"零红档"验收保留。 +# 拍板口径:必中、非归零(低掷按减伤档位折扣,无 miss 无零收益白回合);只对基础攻击掷(主角普通分量 / 敌方攻击拍与重击拍基线); +# 棋盘来源一律无视护甲等级——与"奖励/惩罚必中"同构。 +# +# 2026-09-16 系统更名批(用户拍板 2026-09-16,只改命名不改内容):两个系统中文规范名更名—— +# "奖励道具经济" → "地图战斗资源"(owner 文件重命名 design/gdd/systems/战斗循环/地图战斗资源.md;其「待拍板」系统更名条目关闭); +# "辅助道具" → "魔法道具"(owner 文件重命名 design/gdd/systems/排雷循环/魔法道具.md)。 +# 本表同步:owner 路径(reward_table / reward_config / aux_items 三处)与 referenced_by、各属性文本中的系统名提及全部改新名; +# 英文代号 REWARD_ITEM_ECONOMY / AUXILIARY_ITEMS 与条目键 reward_/aux_ 暂沿用(代码标识符与工具链口径),与中文名的对齐另批执行。 +# 底部历史注释行保留各批原文旧名作为修订留痕,现行口径以上方条目为准。 diff --git a/design/research/lore-nest-metaphor-2026-09-12.md b/design/research/lore-nest-metaphor-2026-09-12.md index 0c76f69f..8cd61b25 100644 --- a/design/research/lore-nest-metaphor-2026-09-12.md +++ b/design/research/lore-nest-metaphor-2026-09-12.md @@ -5,7 +5,7 @@ > 状态:**已拍板并采纳(2026-09-12),概念层修订已执行**——game-concept 世界观与命名节 + 视觉锚原则 5 已带 2026-09-12 版本注记改写;旧版 systems-index 备注·概念层增补已登记;⑤节六问拍板结论已逐条回写(含两处修正案:⑤-1 惩罚格类型化、⑤-2 对外动词"控制")。原状态:草案,待用户反馈。 > 失效注记(2026-09-15):本文中"雾格的叙事身份 / 净化之雾"相关提案(1.3-3 及 ②/③/④ 表中的相关行)所指向的机制——雾格——已从设计中永久移除(见[不做清单](../gdd/05-不做清单.md));相关内容仅作历史研究留档,不再作为现行设计依据。 > 素材来源:用户提案(雷图 = 地牢 / 雷 = 怪物巢穴 / 插旗 = 封印或火把 / 安全格 = 探索安全区 / 道具 = 宝箱)+ 新拍板机制"标错旗 → 随机敌增伤 / 敌 buff,或我方 debuff(时效约 1 回合)"的包装需求。 -> 关联:`game-concept.md`(世界观与命名,定稿 2026-09-09)· `game-pillars.md`(P1–P4)· 旧版《敌人系统》`b2-enemy-system.md`(Overview / Player Fantasy)· 旧版索引 `systems-index.md`(概念层增补块)· 旧版《排雷玩法》`a2-minesweeper-rules.md`(OQ1 / EC5 / GD-1 / Rule 11)· 旧版《地形变异》`a4-terrain-variation.md`(雾区无雷)· 旧版《奖励道具经济》`b4-reward-item-economy.md`(install 期预分配)· 旧版《战斗结算》`b1-settlement.md`(完美排雷 / 标中旗 highlight / flag_miss 行)。以上旧版文件均已迁入 `design/archive/gdd-2026-09-14/`(只读归档)。 +> 关联:`game-concept.md`(世界观与命名,定稿 2026-09-09)· `game-pillars.md`(P1–P4)· 旧版《敌人系统》`b2-enemy-system.md`(Overview / Player Fantasy)· 旧版索引 `systems-index.md`(概念层增补块)· 旧版《排雷玩法》`a2-minesweeper-rules.md`(OQ1 / EC5 / GD-1 / Rule 11)· 旧版《地形变异》`a4-terrain-variation.md`(雾区无雷)· 旧版《地图战斗资源》`b4-reward-item-economy.md`(install 期预分配)· 旧版《战斗结算》`b1-settlement.md`(完美排雷 / 标中旗 highlight / flag_miss 行)。以上旧版文件均已迁入 `design/archive/gdd-2026-09-14/`(只读归档)。 ## ① 设定评估 @@ -43,7 +43,7 @@ 4. **标错惩罚的"随机"如何不显得玄学**。玩家无法预测反噬流向——处理不好就是"系统随机整我"。解法是给随机一个**世界内的因**:封印仪式失控,溢出的能量 / 惊扰**流向不可控**(或惊动真巢 → 敌方受益;或反噬施术者 → 我方短暂失衡,约 1 回合)。同一个因解释两个分支,"随机"被读成"失控"而非"玄学"。三条护栏建议:(a) 明细行写明来源(战斗结算 已有 flag_miss"标旗未中"行协议位)+ 固定因果措辞("封印失败");(b) 教学引导 教学把教训定为"别乱封"(确定性防御),不引导玩家"赌反噬方向"(那才会伤 P1);(c) 排雷玩法 OQ1 重复性未决(hit=false 现无去重:每轮累计 vs 一次性)对应两种叙事("反噬未平息 / 流血" vs "当轮反扑"),措辞等机制定案后跟随,不先写死。 -5. **宝箱密度**。奖励道具经济 结构是"每格安全格必有货"(install 期预分配奖励身份)。每格摆一个"宝箱"实物的量级会击穿地牢尺度感(一屋 30 个箱子)。建议把"宝箱"从**每格实体**降维成**搜刮框架**:探明区域的每一寸都可能翻出前人遗落物——即时类 = 当场消耗(药草、口粮、现场磨刀),可选类 = 收进行囊(刀、治疗包,库存 = 关卡域即行囊到本层结束)。"宝箱"保留为高档位 / 可选类格的视觉强调形态(⑤-5)。 +5. **宝箱密度**。地图战斗资源 结构是"每格安全格必有货"(install 期预分配奖励身份)。每格摆一个"宝箱"实物的量级会击穿地牢尺度感(一屋 30 个箱子)。建议把"宝箱"从**每格实体**降维成**搜刮框架**:探明区域的每一寸都可能翻出前人遗落物——即时类 = 当场消耗(药草、口粮、现场磨刀),可选类 = 收进行囊(刀、治疗包,库存 = 关卡域即行囊到本层结束)。"宝箱"保留为高档位 / 可选类格的视觉强调形态(⑤-5)。 6. **术语漂移与文档一致性**。定稿映射表标注"定稿 2026-09-09",采纳本提案须显式版本注记改写,不能静默覆盖;各文档已固化的"陷阱"字样(game-concept 视觉锚原则 5、排雷玩法 教学条目等)需一次口径清扫,或在 lore 中声明"陷阱 = 旧称 / 部分 biome 变体"。机制侧边界提醒见 ③ 末行。 @@ -62,7 +62,7 @@ | 连锁展开(免费 flood fill) | (提案未覆盖) | "空腔连通 / 坍塌显形 / 回声感知"三选一(⑤-4);连锁不越旗 = 封印阻断蔓延 | | 数字提示 | (提案未覆盖) | 贴地听音 / 数巢穴气息——把 UI 读成探险者技能;教学引导 教学语言来源 | | 初始安全区(3×3,无奖励) | (提案未覆盖) | 入口营地 / 前人据点——已搜刮过的出生点(对齐 initial 通道无奖励);与"扎营"意象共用词汇 | -| 道具 / 奖励(奖励道具经济 install 期预分配) | 藏在安全地区的宝箱 | "前人探险者的遗落物 / 搜刮"框架替代每格宝箱(密度见 1.3-5);即时类 = 当场消耗,可选类 = 收进行囊 | +| 道具 / 奖励(地图战斗资源 install 期预分配) | 藏在安全地区的宝箱 | "前人探险者的遗落物 / 搜刮"框架替代每格宝箱(密度见 1.3-5);即时类 = 当场消耗,可选类 = 收进行囊 | | 清图奖励(H2 强调呈现) | 搜刮完毕 | "夺回犒赏 / 肃清仪式"——轮末仪式峰值的叙事由头;完美排雷(P_perfect 默认 ×2)= 全图封印成功的猎人荣耀 | | RAP / 停手 | (提案未覆盖;用户点名候选"扎营休整") | 就地扎营蓄力;攒满刷图 = 放弃本间厅室改走支线——"知难而退是冒险者的判断",风险退出的叙事尊严 | | 雾格(地形变异) | (提案未覆盖) | 候选"净化之雾":确认无巢但气息读取失效——与"雾区无雷 = 玩家可见知识"严格对齐;雾内旗恒不中 = 净化区无巢可封 | @@ -93,7 +93,7 @@ ## ④ 补充设定点子(供挑选,非定案) -1. **前人遗落物(道具来源正典化)**:地牢吞噬过许多探险者——白骨与行囊散落各处。一个设定同时解决三件事:道具从哪来(奖励道具经济 每格必有货的合理性)、危险的实证(不用台词就传达"这里死过人")、搜刮框架的实体锚。可选延伸:极低频"前人日志"碎片作零成本氛围文本(取决于 ⑤-6 厚度预算)。 +1. **前人遗落物(道具来源正典化)**:地牢吞噬过许多探险者——白骨与行囊散落各处。一个设定同时解决三件事:道具从哪来(地图战斗资源 每格必有货的合理性)、危险的实证(不用台词就传达"这里死过人")、搜刮框架的实体锚。可选延伸:极低频"前人日志"碎片作零成本氛围文本(取决于 ⑤-6 厚度预算)。 2. **Boss = 巢穴之主 / 母巢**:每层一母巢,Boss 战 = 断根;下探 = 沿母巢链追猎。难度曲线与Boss 已有的 `boss_guardian`(守巢者)可直接收编;Boss 图全局变异 = 母巢领域把整层地砖浸染(岩浆 / 冰冻等变异的叙事壳——"巢液浸染")。 3. **RAP = 扎营休整**:停手 = 就地扎营(篝火意象,Roguelike 认知零成本);RAP 攒满刷图 = 放弃本间厅室、改走支线。把"风险退出"从机制词变成冒险者的尊严判断——知难而退也是探险技术(与 P4 同频)。 4. **旗随 biome 换皮,动词统一**:地牢 = 火把、圣所 = 封印符、腐巢 = 驱虫香……视觉形态换、机制动词统一为"镇 / 封"。直接服务视觉锚原则 4(调色板交换优先于新增资产);也回应"封印 vs 火把"之争——不必二选一,定一个正调、其余作变体(⑤-2)。 @@ -108,5 +108,5 @@ 2. **旗的正调** — **已采纳(修正案):控制**。玩家可见动词定"控制"(类型无关——控制巢穴 = 封印镇住、控制陷阱 = 借力反制,未来岩浆/冰冻类型各有着落);对内文档与机制协议仍为"旗/插旗"(战斗结算/敌人系统 现行协议零变化)。本稿"封印/火把"之争的降级落点:封印/镇/反制 = 类型风味词(结算行与教学的可选风味层,不承担机制含义);火把等视觉形态 = biome 换皮候选归 art-bible(只登记)。小尾巴:按钮/tooltip 上"控制"的手感归 HUD框架 GDD。 3. **标错惩罚叙事** — **已采纳:失控反噬**(本稿推荐)。保留机制随机,随机读作失控:控制失败、反噬流向不可控(流向真巢 → 敌受益;反噬自身 → 我方失衡,约 1 回合)。三护栏随行:(a) 结算固定措辞"控制失败"(战斗结算 flag_miss 行协议位;本稿原文"封印失败"随⑤-2更改);(b) 教学引导 教学定调"没把握别乱控制"(确定性教训),不引导玩家赌反噬方向;(c) 重复性措辞("反噬未平息" vs "当轮反扑")等 排雷玩法 OQ1 定案后跟随,本次不预写。 4. **连锁展开节拍** — **已采纳:坍塌显形**(**未采纳**本稿推荐"空腔连通"——用户取冲击感路线)。连锁 = 挖穿薄壳、整片松动地面塌陷露出;登记为 战斗表现 连锁动画 / 音频 音效方向(尘土、震动、塌露)。随行自洽注记:连锁不越旗(排雷玩法 GD-1)读作"你控制过的地面不会塌",塌到控制点截停;与视觉锚原则 5 已开格候选"碎裂/裸露地面"天然对齐;本稿 1.3-1 对坍塌的保留意见(地砖身份/反复坍塌合理性)转记为 art-bible/战斗表现 表现侧注意项,不影响拍板。 -5. **道具呈现密度** — **已采纳(前提修正)**:用户指出"每格必有货 = 每格宝箱"是误会——每个安全格都有奖励,但奖励不一定是可使用道具。执行口径:**宝箱呈现仅绑定可使用道具类奖励**(可选类:刀/治疗包等,保留高档位视觉强调),即时类(buff/瞬时收益等非道具奖励)不摆箱;本稿"搜刮/遗落物"框架降级为可选氛围背景,登记不锁(背景句采用"搜刮前人遗落物"氛围措辞,不构成呈现规则承诺)。影响面登记:HUD框架 已开格奖励恒读形态、奖励道具经济 图标方向(各归各的时机)。 +5. **道具呈现密度** — **已采纳(前提修正)**:用户指出"每格必有货 = 每格宝箱"是误会——每个安全格都有奖励,但奖励不一定是可使用道具。执行口径:**宝箱呈现仅绑定可使用道具类奖励**(可选类:刀/治疗包等,保留高档位视觉强调),即时类(buff/瞬时收益等非道具奖励)不摆箱;本稿"搜刮/遗落物"框架降级为可选氛围背景,登记不锁(背景句采用"搜刮前人遗落物"氛围措辞,不构成呈现规则承诺)。影响面登记:HUD框架 已开格奖励恒读形态、地图战斗资源 图标方向(各归各的时机)。 6. **世界观厚度预算** — **已采纳:碎片点缀**(本稿推荐,不含前人日志)。功能性文本(道具名/结算行/教学措辞)lore 化 + 极少量一次性提示(首遇时刻的功能性 flavor 行);**前人日志(④-1 延伸)不做**,登记为未来内容方向;art-bible/教学引导/设置与本地化 成本边界 = 不新增文本系统。 diff --git a/design/research/peglin-comparison-2026-09-12.md b/design/research/peglin-comparison-2026-09-12.md index c3e18561..e39798db 100644 --- a/design/research/peglin-comparison-2026-09-12.md +++ b/design/research/peglin-comparison-2026-09-12.md @@ -16,7 +16,7 @@ **是否现在引入随机性**:分两档—— - **现在就做(本切片内,成本低)**:**遭遇随机化**——同「关卡×难度档」(L,D)敌人数在区间内掷骰(如地精 1–2 只、熊地精 1 只或 +1 只补充)。同敌种不触碰敌人系统"每行集恰一敌种"锁定,只需把 unit_count 从定值升级为区间(难度曲线与Boss GDD 增补一条 Core Rule + 敌人系统.spawn 掷骰)。这一条就能让"每次进第一关都不一样"。 -- **后置(结构改动,登记不实现)**:关卡节点地图分支形态(你已拍板后置)· **多波战斗**(Peglin 每场 2–3 波、总敌量 120–200——这是战斗结算编排级改动,波间状态保留规则也要定义,建议 Alpha 期评估)· 遗物类被动道具(奖励道具经济构筑扩展——中期最大的"局感"提升项)。 +- **后置(结构改动,登记不实现)**:关卡节点地图分支形态(你已拍板后置)· **多波战斗**(Peglin 每场 2–3 波、总敌量 120–200——这是战斗结算编排级改动,波间状态保留规则也要定义,建议 Alpha 期评估)· 遗物类被动道具(地图战斗资源构筑扩展——中期最大的"局感"提升项)。 ## 二、数值对比表(双方均为初见第一区域) @@ -55,7 +55,7 @@ ### 可以参考(按收益排序) -1. **每场战斗的构筑决策密度**(最大差距):哪怕不做完整遗物系统,让普通战斗胜利也产出一次"二选一"小抉择(如两件道具选一件、或道具 vs 小回复),把"每关 6 次决策"变成"每场 1 次决策"——**直接制造局感**。→ 奖励道具经济扩展提案,登记。 +1. **每场战斗的构筑决策密度**(最大差距):哪怕不做完整遗物系统,让普通战斗胜利也产出一次"二选一"小抉择(如两件道具选一件、或道具 vs 小回复),把"每关 6 次决策"变成"每场 1 次决策"——**直接制造局感**。→ 地图战斗资源扩展提案,登记。 2. **遭遇随机化**(本切片可做):同敌种数量区间掷骰(见结论)。 3. **敌群入场规则的同构物**:Peglin 的"远程怪从远处走来"= 首回合威胁延迟。我们已有 charge 拍同构(熊地精/酋长),可以把"新敌人首结算强制 charge/延迟拍"作为**多波制的前置探索**——若未来做多波,波进场延迟是天然的难度阀门。 4. **战后回复的概念**(谨慎参考):Peglin 用它支撑"低伤多场"模型;我们的"高伤少场"模型若引入战后回复,必须同步下调敌 atk 否则死亡压力崩塌——**绑定修订,不可单独引入**。这是"关卡内 HP 作为资源"的另一种诠释(我们当前 = HP 是跨场存量的硬资源)。 @@ -73,9 +73,9 @@ | 项 | 时机 | 义务登记 | |---|---|---| | 遭遇随机化(unit_count 区间掷骰) | **本切片可做** | 难度曲线与Boss GDD 增补 Core Rule(遭遇骰)+ 敌人系统.spawn 掷骰接口漂移登记 | -| 普通战"二选一"产出 | 下一批设计(奖励道具经济扩展提案) | 登记于难度曲线与Boss GDD 联动网络(供给↔决策密度) | +| 普通战"二选一"产出 | 下一批设计(地图战斗资源扩展提案) | 登记于难度曲线与Boss GDD 联动网络(供给↔决策密度) | | 多波战斗 | Alpha 评估 | 战斗结算波次表提案登记(本报告 2.2 表) | | 战后回复 | 与敌 atk 下调绑定评估 | 本报告 2.1 结构差异注记 | | 关卡节点地图分支形态 | 已拍板后置 | 维持 | -> 报告使用纪律:Peglin 数值为当前 wiki 快照(版本迭代频繁),引用时注明日期;本报告结论服务于难度曲线与Boss/关卡节点地图/冒险结构/奖励道具经济的设计决策,非数值移植依据。 +> 报告使用纪律:Peglin 数值为当前 wiki 快照(版本迭代频繁),引用时注明日期;本报告结论服务于难度曲线与Boss/关卡节点地图/冒险结构/地图战斗资源的设计决策,非数值移植依据。 diff --git a/design/research/proposal-reward-polarity-2026-09-13.md b/design/research/proposal-reward-polarity-2026-09-13.md index e0634546..2f6788d9 100644 --- a/design/research/proposal-reward-polarity-2026-09-13.md +++ b/design/research/proposal-reward-polarity-2026-09-13.md @@ -9,15 +9,15 @@ | 既有结构 | 本提案对它的处置 | |---|---| -| 奖励道具经济 Rule 2 身份 install 期预分配(S∖R₀ 格) | 扩域:雷格同批 roll 类型(pool_tag 新值 `mine_cell`) | -| 奖励道具经济 Rule 8 已开格恒读 / OQ2 未开格不呈现(结构已备、呈现待垂直切片) | **激活 OQ2**:未开格呈现类型图标(查询面 `query_identity` 本就对未开格可查——AC-2 分支 3) | +| 地图战斗资源 Rule 2 身份 install 期预分配(S∖R₀ 格) | 扩域:雷格同批 roll 类型(pool_tag 新值 `mine_cell`) | +| 地图战斗资源 Rule 8 已开格恒读 / OQ2 未开格不呈现(结构已备、呈现待垂直切片) | **激活 OQ2**:未开格呈现类型图标(查询面 `query_identity` 本就对未开格可查——AC-2 分支 3) | | 标中旗=削弱(正)/ 标错旗=暴走·失衡·伏击(负)/ 踩雷=伏击(负)——战斗结算规则 6 + settlement.tres 标错惩罚池 | **推广为统一极性**:惩罚不再按行为固定,而是"该格类型的负向版" | | 增益状态效果行(数据六行:增伤/减伤/伏击/削弱/暴走/失衡——2026-09-13 批) | 机制零改动——正负向复用既有行 + 一条直伤负向(heal)+ 一条新负向数据行 sapped 乏力(weaken,OQ-3 定型——增益状态加行不加机制) | | 绘制优先级栈(数字 > 小人 > 旗 > **[徽章]** > 纹理 > 底色) | 徽章位已预留——类型图标落此栈位 | ## 1. 核心规则草案 -- **R1 类型通用**:每格(安全格+雷格)install 期恰一类型身份 ∈ {attack, defense, heal, blast, weaken}(weaken 为新增正向类型——见 §2)。类型决定**兑付什么**,极性决定**兑给谁/什么符号**。**类型 = 行的家族属性(v2 钉死实现面)**:roll 保持奖励道具经济 F1 单段 weighted_pick 结构不动(不引入两段式),RewardTable 新增 `cell_type` 列——家族映射:attack_up / knife_t1 / knife_adv → attack · defense_up → defense · heal_minor / heal_pack → heal · spark_aoe → blast · weaken → weaken;供给控制器注入格同映射取所注入行的家族;雷格池负向行各携类型(见 §2)。§2 权重为**行权重**、类型频次由行权重涌现(难度曲线与Boss 调参对象)。图标呈现家族类型;可选类格(刀/治疗包)图标 = 家族类型 + 既有道具徽章语言区分(呈现细则归 HUD框架 义务)。 +- **R1 类型通用**:每格(安全格+雷格)install 期恰一类型身份 ∈ {attack, defense, heal, blast, weaken}(weaken 为新增正向类型——见 §2)。类型决定**兑付什么**,极性决定**兑给谁/什么符号**。**类型 = 行的家族属性(v2 钉死实现面)**:roll 保持地图战斗资源 F1 单段 weighted_pick 结构不动(不引入两段式),RewardTable 新增 `cell_type` 列——家族映射:attack_up / knife_t1 / knife_adv → attack · defense_up → defense · heal_minor / heal_pack → heal · spark_aoe → blast · weaken → weaken;供给控制器注入格同映射取所注入行的家族;雷格池负向行各携类型(见 §2)。§2 权重为**行权重**、类型频次由行权重涌现(难度曲线与Boss 调参对象)。图标呈现家族类型;可选类格(刀/治疗包)图标 = 家族类型 + 既有道具徽章语言区分(呈现细则归 HUD框架 义务)。 - **R2 极性矩阵(行为 × 格型 → 符号)**: | 行为 | 安全格 | 雷格 | @@ -46,7 +46,7 @@ ## 3. 逐系统 delta 清单(实施拆批依据) - **排雷玩法**:mine 通道 reward_eligible 修订(身份扩展到雷格——registry `minesweeper_event_surface.cell_revealed` 的 reward_eligible 语义"mine 恒 false"须随批改写);拔旗动作**已在位**(`try_flag_pull`,`flag_pull_ap_cost=1` 已登记 registry 行动经济条目——原 OQ-5 系重开既定事实,v2 撤销改引用);EC 相应扩写;**排雷玩法 OQ1(标错惩罚)由本提案取代关闭**——候选"敌方伏击+1"被类型化负向路由取代,切片已实装惩罚池(enrage/off_guard/ambush+2),重复性口径("标旗未中"行每格实例一次)随批继承到负向兑付语义,排雷玩法 GDD 修订批关闭该 OQ。 -- **奖励道具经济**:`pool_tag` 新值 `mine_cell`;`cell_type` 列(R1 家族映射);roll_board 批次扩雷格 roll(同一 scope 批内);RewardTable 新增 `polarity` 字段(+/-,**类型枚举五值不动**——负向经 polarity + effect_id 表达,结构修订最小面);负向行内容回填;schema 校验族扩展。 +- **地图战斗资源**:`pool_tag` 新值 `mine_cell`;`cell_type` 列(R1 家族映射);roll_board 批次扩雷格 roll(同一 scope 批内);RewardTable 新增 `polarity` 字段(+/-,**类型枚举五值不动**——负向经 polarity + effect_id 表达,结构修订最小面);负向行内容回填;schema 校验族扩展。 - **战斗结算**:`_judge_flag` 扩展(标错安全格 → 该格类型负向兑付;标中雷 → 该格类型正向兑付——**OQ-2 已裁决 2026-09-13**:取代现行固定 weaken 赠予,weaken 改走格面身份;行动经济条款②锚对象改"标中雷类型正向当量下界",重议随批登记);`_convert_ambush` 改类型化负向(OQ-1 已裁决:统一路由、伏击为负向表一行);明细行极性标注。**授予段致死裁定(v2 增)**:负向直伤于授予段使 hp=0 → 段序短路直入判定段判负(战斗段短路同族推广——死主角不消费窗口/增益/道具/战斗段,防死尸挨打行归因噪音)。**架构对齐注记(v2 增)**:本提案全部兑付(正向/负向/直伤)均发生于结算段——扫雷阶段零数值计算、事实入队轮末统一转化(战斗结算轮 facts 批处理既有结构);R2/R4 的"当场"均指授予段当场,非挖掘期。 - **增益状态**:机制零改动(R6 满层拒绝结构不可达——见 R6 论证);**数据行 +1**:sapped 乏力(OQ-3 定型,schema 七字段照填);直伤负向不经增益状态(战斗结算 → 敌人系统 apply_damage)。 - **行动经济**:拔旗价目已在位(`flag_pull_ap_cost=1`——引用,不新登记)。**F1 契约重议义务(v2 增,阻塞级)**:本提案触发行动经济 F1 三条款重推——**条款②**(标中旗锚:OQ-2 采纳后"标中旗 debuff 档位"锚对象消解,替代形态〔类型正向当量下界〕随 OQ-2 拍板一并重议——条款①"分源改率须回 行动经济 重议"被触发);**条款③**(V_mine 类型化:战斗结算 F4 不等式右臂按类型分化,取最坏型或加权型,重推);**条款⑤**(挖穿计价惩罚项类型化:战斗结算 F5 均匀交错模型的踩雷代价按类型加权,重推)。owner:战斗结算(单一闭合)+ 行动经济(契约方)。 @@ -59,10 +59,10 @@ - **registry**:`reward_table`(pool_tag 增 `mine_cell` + 新列 cell_type/polarity + 跨字段校验族扩展);`status_effect`(**七行同步——enrage/off_guard 系 2026-09-13 批未登记存量债 + sapped 新行(OQ-3)**,`settlement_table.effect_pool_map`"新 effect_id 上线须随批登记"已被违反的存量债一并清偿);`settlement_table`(effect_pool_map 增 sapped→hero_offense;source_label_map 若增负向文案键随批);`minesweeper_event_surface`(cell_revealed.reward_eligible "mine 恒 false" 改写)。 - **数据配置**:RewardTable schema 扩列(cell_type/polarity);StatusEffectTable 七行随增益状态修订批。 - **增益状态 GDD 修订批**:四行→七行入文(六行存量债 + sapped)、defense_up −50→−30 同步(2026-09-13 批遗留债)。 -- **奖励道具经济 GDD 修订批**:pool_tag/cell_type/polarity schema、roll_board 批次扩雷格、负向行内容、AC 族扩展(AC-1/2/12/16/17/20 受 σ 轨迹与枚举域变化影响——黄金向量/登记常数重制义务随批)。 +- **地图战斗资源 GDD 修订批**:pool_tag/cell_type/polarity schema、roll_board 批次扩雷格、负向行内容、AC 族扩展(AC-1/2/12/16/17/20 受 σ 轨迹与枚举域变化影响——黄金向量/登记常数重制义务随批)。 - **game-concept**:锁定规则注记兑现("开雷→敌方优势非直接伤害"的搁置取舍由本提案 heal 负向直伤作机制侧裁决落地);三向效果映射表述改写("标中雷 = 怪物获得削弱"固定语义 → 类型化);核心循环"雷 = 敌方优势"补极性注记。 - **game-pillars**:P3 表述注记("标中雷削弱敌人" → "标中雷兑付该雷类型正向"——同源原则强化,支柱语义不变)。 -- **systems-index**:本提案 HUD框架 delta 拆正式义务条目入旧版 systems-index 的 HUD框架台账(未开格类型图标〔激活奖励道具经济 OQ2〕/极性视觉语言/负向文案族)+ 门禁增补记录块。 +- **systems-index**:本提案 HUD框架 delta 拆正式义务条目入旧版 systems-index 的 HUD框架台账(未开格类型图标〔激活地图战斗资源 OQ2〕/极性视觉语言/负向文案族)+ 门禁增补记录块。 ## 4. playtest 预注册指标(防"感觉对了但测不出") @@ -82,13 +82,13 @@ ## 6. 实施批次 -1. **批 1(数据面 + 路由)**:排雷玩法/奖励道具经济 schema 与行、战斗结算极性路由、冒烟扩展——机制先可玩(占位图标)。 +1. **批 1(数据面 + 路由)**:排雷玩法/地图战斗资源 schema 与行、战斗结算极性路由、冒烟扩展——机制先可玩(占位图标)。 2. **批 2(呈现)**:HUD框架图标族 + 极性视觉 + 教学。 3. **批 3(数值与验证)**:难度曲线与Boss 调平 + level_monte_carlo/defense_scan 复验 + 试玩批次。 ## 7. v4 用户四点裁决(2026-09-15,架构定稿) -对本文四条边界确认问题的用户答复,全部并入正文与 GDD 修订批(奖励道具经济 v0.4 / 战斗结算 v0.7 / 排雷玩法 v0.3 / registry 格面资源批): +对本文四条边界确认问题的用户答复,全部并入正文与 GDD 修订批(地图战斗资源 v0.4 / 战斗结算 v0.7 / 排雷玩法 v0.3 / registry 格面资源批): 1. **兑付时机 = 全部在结算阶段**:开格 / 标旗 / 撤旗都是把动作加入结算队列;结算期先遍历过滤(标旗后被撤旗 → 该次标旗不结算——先过滤再兑付,非逐动作出栈直算)再逐行兑付。实现落点 = 轮末旗判定以在场旗位为基线的既有语义,正文改述为队列 + 抵消过滤口径。 2. **雷安一视同仁 + 可选类整体删除**:格面资源同一类型池、同一权重分布分配给全部非封锁格,不存在"只注入安全格"的分支;可选类道具(刀 / 治疗包)与供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口整体删除——后续更强力、更长周期的功能道具经其他渠道加入(渠道设计未定,P1 结构位)。R4/R5 的"可选类不入极性域"条款随可选类删除失义;heal 负向直伤按 R3 兑现。 diff --git a/design/ux/battle.md b/design/ux/battle.md index 2e9dfc85..8b144582 100644 --- a/design/ux/battle.md +++ b/design/ux/battle.md @@ -2,26 +2,26 @@ > **Status**: Complete — /ux-review 修订落稿(2026-09-12,blocking 7 项已修,待复检) > **Author**: user + ux-designer -> **Last Updated**: 2026-09-15(雾格残留清理:格态两态化、图例/首遇/纹带雾条目与遥测提示枚举同步,见文末修订说明) +> **Last Updated**: 2026-09-16(格面资源批 UI 欠账收口:可选类道具及其右下面板、轮末窗口 UI 已随代码删除下线,四区口径、结算五段、明细行 10 类协议同步——见文末修订记录) > **Platform Target**: PC (Steam)——Keyboard/Mouse 主(全部操作纯鼠标可完成)、Gamepad Partial 非 MVP、Touch None(同 technical-preferences) -> **上游修订依赖**: 弃图刷新挖掘期受理已随布局决策 4 落稿上游(2026-09-12:行动经济 Active 受理 + 每轮上限 2 次、排雷玩法 Active·仅刷新路径装板、战斗结算 `refresh_board` 编排 + 恒 same_board、registry `rap_rules` 同步——见 OQ12) +> **上游修订依赖**: 弃图刷新挖掘期受理已随布局决策 4 落稿上游(2026-09-12:行动经济 Active 受理 + 每轮上限 2 次、排雷玩法 Active·仅刷新路径装板、战斗结算 `refresh_board` 编排 + 恒 same_board、registry `rap_rules` 同步——见 OQ11) > **Template**: UX Spec -> **覆盖子屏**: 挖掘阶段主界面 · 轮末自动战斗结算(战斗结算明细屏) · 道具使用窗口(奖励道具经济/战斗结算域屏) · 胜利/失败终局 · 结算明细回看 -> **输入义务**: 排雷玩法×6 + 行动经济 + 战斗结算×3 + 敌人系统×4 + 增益状态×4 + 奖励道具经济×5(旧版 systems-index 门禁增补记录,缺项即 blocking——承接落点见 §13 义务对照表) +> **覆盖子屏**: 挖掘阶段主界面 · 轮末自动战斗结算(战斗结算明细屏) · 胜利/失败终局 · 结算明细回看 +> **输入义务**: 排雷玩法×6 + 行动经济 + 战斗结算×3 + 敌人系统×4 + 增益状态×4 + 地图战斗资源×5(旧版 systems-index 门禁增补记录,缺项即 blocking——承接落点见 §13 义务对照表) --- ## Purpose & Player Need -战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划 + 轮末资源决策)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/标旗 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。 +战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/标旗 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。 一句话目的:**让"我算对了"的推理过程与它的战果兑现同屏可见、互为因果。** - 扫雷图区承载 P1(推理掌控感):数字是主角,一切服务信息可读 - 战斗画面区承载 P2(规划的延迟兑现):扫雷之因逐行兑现为战果,全程可见可归因 -- 角色信息/道具区承载规划面:状态、资源、库存常读,支撑"往未开区推进/囤刀待机"类决策(奖励道具经济可证伪信号的 MVP 观测面) +- 角色信息区承载规划面:状态与资源常读,支撑"往未开区推进"类规划决策 -若此屏缺失或难用:推理与兑现分裂(自动战斗沦为无聊过场——已登记创意风险)、逐行归因不可见(P2 失败)、AP/RAP/库存不可读(规划失去原料)。 +若此屏缺失或难用:推理与兑现分裂(自动战斗沦为无聊过场——已登记创意风险)、逐行归因不可见(P2 失败)、AP/RAP 不可读(规划失去原料)。 --- @@ -41,7 +41,7 @@ ``` 存档 → 冒险 → 关卡(节点链,关卡节点地图 lite) → 【战斗屏】 ├─ 胜利 → 节点奖励/恢复覆盖层 → 下一节点(下一场战斗屏) - ├─ 胜利(末节点 Boss)→ 关卡结算(level_clear,库存清空反馈)→ 下关 + ├─ 胜利(末节点 Boss)→ 关卡结算(level_clear,清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地)→ 下关 └─ 失败 → 冒险终结 → 返回存档/营地 ``` @@ -59,7 +59,7 @@ | Entry Source | Trigger | Player carries this context | |---|---|---| -| 关卡战斗节点 | 点击节点(LevelRunner 推进 encounter) | 携带 HP(跨战斗延续)、库存(关卡域延续)、RAP=0(战斗域新开) | +| 关卡战斗节点 | 点击节点(LevelRunner 推进 encounter) | 携带 HP(跨战斗延续)、RAP=0(战斗域新开) | | 上一场战斗胜利 → 下一节点 | 同上 | 同上 | **离开**: @@ -67,7 +67,7 @@ | Exit Destination | Trigger | Notes | |---|---|---| | 节点奖励/恢复覆盖层 | 敌方全灭(战斗结算判定段 verdict=win)且非末节点 | 不可逆:battle_over 已发生,RAP 清零 | -| 关卡结算 | Boss 战胜利 → level_clear | 不可逆:库存清空(须可见反馈,奖励道具经济×⑤) | +| 关卡结算 | Boss 战胜利 → level_clear | 不可逆:关卡收束清库义务载体 = 魔法道具背包(随魔法道具 P0 落地,届时须可见反馈;现行切片无库存容器) | | 冒险终结 | 主角 HP=0(verdict=lose) | 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性) | | 无中途退出 | — | MVP 不设战斗内放弃/暂停菜单(回合制无时间压力;如需暂停留 Playtest 诊断按钮,调试用) | @@ -82,7 +82,7 @@ 1. **扫雷图本体**(第一注视点,挖掘期占视觉预算大头):两格态(已开格 / 未开格——排雷玩法×6② 一眼可辨)、数字、旗、小人、可挖域(8 向相邻常驻指示)、变异纹理 2. **本轮行动资源**:AP 余量(决定还能挖几格)、停手/弃图刷新按钮——紧贴棋盘上缘(动作发生地) 3. **战果兑现面**(结算期为第一注视点):敌人血条变化、逐行结算明细、高光(完美排雷/标中旗) -4. **规划面**(边缘注视,常读):HP、攻击、RAP 池、状态效果(己方/敌方)、库存列表、敌人意图徽标与顺位 +4. **规划面**(边缘注视,常读):HP、攻击、RAP 池、状态效果(己方/敌方)、敌人意图徽标与顺位 5. **进度语境**:轮次/阶段指示、关卡节点进度、图例入口 依据:挖掘期玩家视线锚定棋盘(art-bible §2.1"视线始终被数字牵引");结算期视线转向战斗画面区(§2.2"兑现光带逐行横扫")。规划信息必须常读但不得抢焦——这正是用户布局图三分下栏的合理性:**动作区居中,规划区两翼**。 @@ -93,11 +93,10 @@ | 区 | 位置与尺寸 | 内容 | |---|---|---| -| **A 关卡进度条** | 全宽 × 28px 顶栏 | 节点链步进(⚔战 ◆道具 ⚔战 ⚔战 ♥恢复 👑Boss),当前节点高亮 | +| **A 关卡进度条** | 全宽 × 28px 顶栏 | 节点链步进(战 → 战 → 赏 → 战 → 战 → 疗 → 王——文字签槽,对应 battle/reward/rest/boss 四型节点),当前节点奖励金高亮、已过暗金、Boss 旗朱描边 | | **B 战斗画面** | 全宽 × 252px | 英雄卡(左)+ 兑现演出区(中)+ 敌人卡 ×1–3(右);底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示 | | **C 角色信息** | 左下 240px × 520px | HP 条、攻击值(含修正显示)、RAP 池、状态效果槽(固定 4 槽)、小人立绘占位 | -| **D 扫雷图** | 中下 ~760px × 520px | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧) | -| **E 道具** | 右下 280px × 520px | 库存常读列表(固定槽高 + clip_contents——缺陷①教训);窗口期原位激活为道具使用窗口 | +| **D 扫雷图** | 中下 ~1036px × 520px(原右下面板删除后横向加宽,吸收其宽度) | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧) | **布局决策 1(本 spec 最大决策,用户拍板)**:**常驻双舞台分屏**——战斗画面与扫雷图同屏常驻,挖掘期敌人待机可见,结算期不切场景。 - 备选(已否决):Peglin 式"结算时才切入独立战斗场景"——切换打断推理心流,且资产管线成本翻倍 @@ -113,9 +112,9 @@ | A | LevelStripView | 步进条 | 节点链 + 当前位置 | 只读(点击节点不可跳) | ✅ level_strip_view.gd 迁移 | | B | 英雄卡 | 卡片 | 小人像、HP 条、攻击值、状态效果槽 ×4 | 只读 | HUDView 拆分 | | B | 敌人卡 ×1–3 | 卡片 | 敌像、血条、顺位徽标、意图徽标、行为环点、状态槽(含敌方 side 池口径:伏击层数为全体敌人共享单值、各卡同值呈现——数据源 = 战斗结算流水经增益状态投影,敌人系统×4④) | 只读 | 新建 | -| B | 轮次·阶段指示 | 标签 | "第 N 轮 · 挖掘中/结算中/道具窗口" | 只读 | 新建 | -| B | 结算明细带 | 滚动列表 | 结算期逐行流水([战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 15 类行协议);挖掘期收起为上轮摘要 1 行 | 点击展开明细回看 overlay | battle_log_view.gd 改造 | -| B | 结算明细回看 | 模态 overlay | 完整流水逐行(四类行呈现,奖励道具经济×③) | 关闭 | battle_log_view.gd 改造 | +| B | 轮次·阶段指示 | 标签 | "第 N 轮 · 挖掘中/结算中"(终局定格「战斗结束」;Boss 变体附 Boss 名) | 只读 | 新建 | +| B | 结算明细带 | 滚动列表 | 结算期逐行流水([战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 10 类行协议);挖掘期收起为上轮摘要 1 行 | 点击展开明细回看 overlay | battle_log_view.gd 改造 | +| B | 结算明细回看 | 模态 overlay | 完整流水逐行(现行 10 类行协议;未生效类行聚合计数) | 关闭 | battle_log_view.gd 改造 | | C | HP/攻击/RAP 显示 | 直角细线数据框 | 当前值/上限、修正来源角标 | 只读;RAP 清零有可见反馈 | HUDView 拆分 | | C | 状态效果槽 ×4 | 图标槽 | effect_id→icon(形状+色相双通道)、层数角标、剩余结算次数点 | 悬停 tooltip(来源+语义) | 新建(增益状态×①) | | D | AP 条 | 点阵 + 按钮组 | 本轮 AP 点阵、停手按钮(左)、弃图刷新按钮(右端·雷图右上角;RAP−8 · 本轮剩 N 次——上限 2 次已随行动经济 2026-09-12 修订生效) | 点击提交意图 | HUDView 拆分 | @@ -125,20 +124,16 @@ | D | 移动路径预览 | 路径高亮 | 悬停已开格显示 BFS 路径(合法性指示) | 自动 | 新建(排雷玩法×6⑤,裁决见下) | | D | toast 槽 | 非模态提示 | 拒绝原因(双源)、voided、满层溢出、chord 提示、零合法板告知 | 自动消退 2.5s | 新建 | | D | 图例按钮 + 面板 | 按钮+模态 overlay | 格态/变异语义图例 | 开/关 | 新建 | -| E | 库存列表 | 固定槽高列表 | 逐件:icon+名称+属性简述+状态;枚举序 = stock 受理序(旧版台账 E21) | 悬停 tooltip(完整描述+触发注记);窗口期点选 | item_window_overlay.gd 改造 | -| E | 道具使用窗口态 | 面板原位激活态 | "轮末道具窗口 · 至多选 1 件"+ 时机指示 + usable_now 禁选态 + 跳过按钮 + 触发政策注记 | 点选/跳过 | ✅ item_window_overlay.gd 改造(形态裁决见下) | | 全屏 | 胜利/失败 overlay | 模态 | 金蜡封/暮蓝收旗 + 判定行 + 明细回看入口 | 继续/下一节点 | node_overlay.gd 扩展 | | 调试 | TunePanel | 调试面板 | atk%/hp% 滑条 + 批量模拟(正式侧归元进度,切片调试入口保留) | 调试 | ✅ tune_panel.gd 保留 | -**布局决策 2 — 道具窗口形态 = 右栏原位激活**:窗口触发时 E 区面板点亮描边、标题切换为窗口态,棋盘侧去饱和 + 金橙色相偏移锁输入(明度不变——art-bible §2 明度恒定合规化,2026-09-12)。 -- 备选(已否决):中央模态弹窗——遮挡结算演出首屏(授予段刚完成的视觉记忆),且库存常读位置与窗口位置分离造成空间记忆断裂 -- 依据:窗口期棋盘输入本就不竞争(结算期棋盘不可交互,排雷玩法单意图帧先例),无模态必要性;战斗结算窗口锚点 = 授予段后、增益/减益段前——玩家需同时看库存与刚到手的奖励 +**布局决策 2 —(已删除,编号留空)**:原「窗口形态 = 右栏原位激活」决策随可选类道具整体下线(2026-09-15 格面资源批)。编号留空,免布局决策 3/4 的既有交叉引用失锚。 **布局决策 3 — 移动路径预览 = 合法性指示**(排雷玩法×6⑤ 悬案裁决):悬停已开格时高亮 BFS 路径(小人蓝细线点迹),移动执行为 ≤150ms 短滑。 - 备选(登记不采纳):穿行动画轨道——移动免费高频,动画时间税违反 P4 点击摩擦护栏(每轮输入动作:AP ≤2 的观测假设);正式版若 playtest 反馈"移动太瞬"再议(留痕) **布局决策 4 — 弃图刷新 = 挖掘期当场换图(2026-09-12 用户拍板,同日落稿上游)**:按钮置 AP 条右端(雷图右上角)。点击即当轮就地换新图继续挖——AP 不重置、剩余 AP 保留,RAP−8,本轮上限 2 次。 -- **上游修订(2026-09-12 已落稿,OQ12)**:① 行动经济 `request_refresh` Active 相位受理 + 每轮上限 2 次(Waiting 代理退役)② 排雷玩法装板受理域增 Active·仅刷新路径 ③ 编排 owner = **战斗结算 `refresh_board`**(行动经济扣费 → 排雷玩法 retire → 棋盘生成 generate → 排雷玩法 install → 奖励道具经济 roll_board 恰一次;无结算段、无 round_end——战斗结算编排唯一性原则保持)④ 旧板旗随旧板**作废**(零兑付、旗 AP 不返还——排雷玩法 EC11 全量重置承载;确认微交互须显式提示)。**经济预警**:当场刷新无结算发生,原「敌方时间税」自惩失效——行动经济 OQ3 弃图率/刷新率预警阈值联动复核。 +- **上游修订(2026-09-12 已落稿,OQ11)**:① 行动经济 `request_refresh` Active 相位受理 + 每轮上限 2 次(Waiting 代理退役)② 排雷玩法装板受理域增 Active·仅刷新路径 ③ 编排 owner = **战斗结算 `refresh_board`**(行动经济扣费 → 排雷玩法 retire → 棋盘生成 generate → 排雷玩法 install → 地图战斗资源 roll_board 恰一次;无结算段、无 round_end——战斗结算编排唯一性原则保持)④ 旧板旗随旧板**作废**(零兑付、旗 AP 不返还——排雷玩法 EC11 全量重置承载;确认微交互须显式提示)。**经济预警**:当场刷新无结算发生,原「敌方时间税」自惩失效——行动经济 OQ3 弃图率/刷新率预警阈值联动复核。 - 备选(已否决):结算期决策提示(Waiting 内联)——结算期不做刷新决策(用户拍板);挖掘期预承诺 stop+reroll 复合——决策即终轮,不符「换图继续挖」语义。 **敌人意图线索映射目录(敌人系统×4① 成文占位,2026-09-12)**: @@ -157,7 +152,7 @@ ``` 1280 × 800 ──────────────────────────────────────────────────────────────────── ┌─[A] 关卡进度条 28px ─────────────────────────────────────────────────────────┐ -│ ⚔──⚔──◆──⚔──⚔──♥──👑 (当前节点高亮,已过节点暗金) │ +│ 战→战→赏→战→战→疗→王 (当前节点奖励金高亮,已过节点暗金) │ ├─[B] 战斗画面 252px ──────────────────────────────────────────────────────────┤ │ ┌────────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 英雄卡 │ 第 3 轮 · 挖掘中 │ ①蛆虫 │ │ ②蛆虫 │ │ @@ -169,36 +164,21 @@ │ ├─ 结算明细带 ────────────────────────────────────────────────────────────┤ │ │ │ ▸上轮: 主角攻击9→蛆虫-9 | 攻击+50%(1结算) | 伏击+3×2 … [展开明细▾] │ │ │ └────────────────────────────────────────────────────────────────────────┘ │ -├─[C] 角色信息 240px ───┬─[D] 扫雷图 ~760px ────────────┬─[E] 道具 280px ─────┤ -│ 520px │ 520px │ 520px │ -│ ┌──────────────────┐ │ ┌───────────────────────────┐ │ ┌─────────────────┐ │ -│ │ HP 42/50 ▓▓▓░ │ │ │ AP ●●●●●○○○ 5/8 │ │ │ 道包 · 关卡域 │ │ -│ │ 攻击 6 (+50%) │ │ │ [⏹停手] │ │ │ (窗口态标题位) │ │ -│ │ RAP ▓▓▓░ 3/8 │ │ │ [?图例] [↻刷新 8|剩2] │ │ ├─────────────────┤ │ -│ ├──────────────────┤ │ │ ┌─toast────────────┐ │ │ │ 🗡 小刀 │ │ -│ │ 状态效果 │ │ │ │AP不足·剩0点 │ │ │ │ 伤害 · 一次性 │ │ -│ │ ⬆攻击+50% ○1 │ │ │ └──────────────────┘ │ │ ├─────────────────┤ │ -│ │ 🛑减攻−65% ○1 │ │ │ 12 12 1 ░ 2 ▓▓ ▓▓ │ │ │ 🗡 精工短刀 │ │ -│ │ (槽×4 固定) │ │ │ 12 █ 1 1 2 ▓▓ ▓▓ │ │ │ 高伤 · 一次性 │ │ -│ ├──────────────────┤ │ │ 1 2 2 🚩 █ 2 1 │ │ ├─────────────────┤ │ -│ │ [小人立绘占位] │ │ │ ░ 1 ▓▓ 👫 1 1 ░ │ │ │ ❤ 治疗包 ×1 │ │ -│ │ │ │ │ ▓▓ 1 1 ░ ░ 2 ▓▓ │ │ │ 回复 12 · 可用 │ │ -│ └──────────────────┘ │ │ ( █=可挖域微光 👫=小人) │ │ └─────────────────┘ │ -│ │ └───────────────────────────┘ │ │ -└───────────────────────┴───────────────────────────────┴─────────────────────┘ - -窗口态(E 区原位激活,轮末道具窗口): -│ ┌─────────────────┐ 面板描边点亮(金),D 区去饱和锁输入 -│ │ ⏳ 轮末道具窗口 │ 时机指示:位于授予段后、增益段前 -│ │ 至多选用 1 件 │ -│ ├─────────────────┤ 可用件高亮可点;满血治疗包灰置+禁选原因 -│ │ 🗡 小刀 [选用] │ 选中即承诺(照常消耗拍板) -│ │ 🗡 精工短刀[选用] │ -│ │ ❤ 治疗包(满血) │ 灰置 + tooltip「HP 已满 · 禁选」 -│ ├─────────────────┤ -│ │ [跳过] 注记*:未 │ *「未选用件随关卡结束清空」政策注记常驻 -│ │ 选用件关卡末清空 │ -│ └─────────────────┘ +├─[C] 角色信息 240px ───┬─[D] 扫雷图 ~1036px ──────────────────────────────────┤ +│ 520px │ 520px │ +│ ┌──────────────────┐ │ ┌─────────────────────────────────────────────────┐ │ +│ │ HP 42/50 ▓▓▓░ │ │ │ AP ●●●●●○○○ 5/8 │ │ +│ │ 攻击 6 (+50%) │ │ │ [⏹停手] [?图例] [↻刷新 8|剩2] │ │ +│ │ RAP ▓▓▓░ 3/8 │ │ │ ┌─toast────────────┐ │ │ +│ ├──────────────────┤ │ │ │AP不足·剩0点 │ 12 12 1 ░ 2 ▓▓ ▓▓ │ │ +│ │ 状态效果 │ │ │ └──────────────────┘ 12 █ 1 1 2 ▓▓ ▓▓ │ │ +│ │ ⬆攻击+50% ○1 │ │ │ 1 2 2 🚩 █ 2 1 1 ▓▓ 👫 1 1 ░ │ │ +│ │ 🛑减攻−65% ○1 │ │ │ ░ 1 ▓▓ 👫 1 1 ░ ▓▓ 1 1 ░ ░ 2 │ │ +│ │ (槽×4 固定) │ │ │ ▓▓ 1 1 ░ ░ 2 ▓▓ │ │ +│ ├──────────────────┤ │ │ ( █=可挖域微光 👫=小人) │ │ +│ │ [小人立绘占位] │ │ │ │ │ +│ └──────────────────┘ │ └─────────────────────────────────────────────────┘ │ +└───────────────────────┴──────────────────────────────────────────────────────┘ ``` --- @@ -208,9 +188,8 @@ | State / Variant | Trigger | What Changes | |---|---|---| | **挖掘阶段(默认态)** | 轮次开始 / 结算完毕回 Active 相位 | B 区敌人待机(意图徽标全程可见——敌人系统 Rule 8⑤),D 区棋盘可交互,AP 条点亮;能量 2/10,唯悬停呼吸微光在动(§2.1) | -| **结算阶段** | round_end 触发(AP 尽/停手/清图) | D 区锁输入(棋盘去饱和 + 金橙色相偏移,明度不变,数字保持全对比);B 区播放七段编排演出;明细带展开 84px 逐行滚动;阶段指示→"结算中";能量 7/10 | -| **道具窗口态** | 结算授予段完成后(窗口锚点) | E 区原位激活(布局决策 2);空库存不弹窗直接跳过(奖励道具经济×②);usable_now=false 禁选+原因 | -| **清图瞬间** | 全部安全格开完 | 金粒喷泉 + 彩纸 3–5s 即收(§2.3);清图奖励行强调呈现(H2,奖励道具经济×④——金框高亮行);随后换新图 install | +| **结算阶段** | round_end 触发(AP 尽/停手/清图) | D 区锁输入(棋盘去饱和 + 金橙色相偏移,明度不变,数字保持全对比);B 区播放五段编排演出(授予段 → 增益/减益段 → 战斗段 → 衰减段 → 判定段,战斗结算 段序冻结);明细带展开 84px 逐行滚动;阶段指示→"结算中";能量 7/10 | +| **清图瞬间** | 全部安全格开完 | 金粒喷泉 + 彩纸 3–5s 即收(§2.3);清图奖励行强调呈现(H2,地图战斗资源×④——金框高亮行);随后换新图 install | | **完美排雷高光** | 战斗结算高光判定(全图标中/零误标类) | 全屏喝彩级反馈(§2.2 最高档):金光带加倍扫射 + 「完美排雷 ×2」横幅——P2 爆发兑现节点(创意风险 #2 落点) | | **标中旗高光** | flag_judged{hit=true} | 该旗化暴击弹道加重 + 明细行金框——chord 缺席的即时兑现补偿(创意风险 #3 落点) | | **敌人死亡呈现** | 敌 hp=0(流水行击杀标记) | 该敌人卡血条归零 → 卡体灰化 + 碎裂退场(**禁瞬消**——敌人系统资产下限「死亡瞬间须可辨识、不得直接消失」,同等 blocking);战斗段短路的重击被掐灭不产行动明细行,由行序可推断(战斗结算);动画密度归战斗表现,呈现语义在本 spec | @@ -218,7 +197,6 @@ | **失败终局** | verdict=lose(hero hp=0,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 + 明细回看(学习用途)+「返回」;状态槽全清可见反馈(增益状态×4④,同胜利) | | **Boss 遭遇变体** | encounter=boss(遗迹守卫) | 战斗开始一次性演出:紫赤 #8F2F6A 影子爬过棋盘(§2.6);敌人卡体量最大+锐角剪影;阶段指示附 Boss 名 | | **空态:无状态效果** | 增益状态 EC12 | 状态槽隐藏 or 空槽占位——**裁决:槽位隐藏,HP/攻击/RAP 上移补位**(角色信息区纵向空间紧张,空槽占位浪费);图例面板载空态说明(增益状态×① 成文项) | -| **空态:零库存** | 关卡初/清空后 | E 区显示「道包空空——安全格里藏着补给」(指引性空态,非报错) | | **调试变体** | 测试模式 | TunePanel 入口(demo 保留,正式侧元进度退役);Playtest 诊断按钮(卡死转储) | **拒绝/作废子态**(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知): @@ -238,13 +216,10 @@ | 已开格 | 移动 | 左键 | 悬停时路径预览高亮(布局决策 3);执行 ≤150ms 短滑 | 意图入批(BFS 移动,免费) | | 未开格 | 插旗 / 已旗格拔旗 | 右键 | 旗落下/移除(旗朱) | 意图入批(1 AP / 免费) | | 停手按钮 | 主动结束轮次 | 左键 | 按钮下压 + AP→RAP 飞行数字 | `settle_batch([stop])`(**经排雷玩法批次,不直调行动经济**——单意图帧批次契约) | -| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | `request_refresh`(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;**上游已修订受理——见布局决策 4/OQ12**) | +| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | `request_refresh`(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;**上游已修订受理——见布局决策 4/OQ11**) | | 图例按钮 | 开图例 | 左键 | 模态 overlay | 恒可开(图例条目恒在) | | 结算明细带 | 展开回看 | 左键 | 明细 overlay | 只读 | -| 状态/道具 tooltip | 悬停 | hover | 状态 tooltip(来源+语义+剩余);道具 tooltip(完整描述+触发注记——不含来源) | 只读 | -| 道具(窗口态可用件) | 选用 | 左键 | 选中态高亮 → 窗口关闭回结算流 | `submit_window_selection(窗口位置)`——**传窗口条目位置,非库存句柄**(缺陷④契约) | -| 道具(窗口态禁选件) | — | 左键无效 | 禁选原因 toast(满血治疗包) | 无 | -| 跳过按钮 | 跳过窗口 | 左键 | 窗口关闭 | 空选择序 | +| 状态效果槽 | 悬停 | hover | 状态 tooltip(来源+语义+剩余结算次数) | 只读 | | 胜利 overlay | 下一节点 | 左键 | → NodeOverlay / 关卡结算 | LevelRunner 推进 | | 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险终结 | @@ -267,12 +242,11 @@ | 每轮结束 | `ux_round_input_ratio` | 原始输入动作数∶AP 消耗(行动经济 P4 ≤2 护栏观测,排雷玩法遥测义务) | | 停手/清图 | `ux_round_exit` | path_tag {stopped, ap_exhausted, cleared}(对齐上游封闭枚举)——弃图率(难度曲线与Boss OQ4)观测 | | 弃图刷新(挖掘期,非轮出口) | `ux_refresh_attempt` | {result: accepted/rejected_rap/rejected_cap, round_refresh_index: 1..2}——刷新使用(难度曲线与Boss OQ6)与行动经济 OQ3 预警阈值观测;每轮 0–2 次(布局决策 4 cap=2) | -| 窗口选用/跳过 | `ux_window_choice` | {selected_item_id, usable_now, skip} | | 拒绝/voided | `ux_reject` | {source: board/resource/phase, sub_reason} | | 提示触发/关闭 | `ux_hint_shown` | {hint_id: chord/no_adjacent} | -| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(15 类行协议,含终局判定行) / battle_over / level_clear | 载荷 schema 成文义务见 §Data Requirements——旧版台账 entry 17①(HUD框架硬性要求) | +| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(10 类行协议,含终局判定行) / battle_over / level_clear | 载荷 schema 成文义务见 §Data Requirements——旧版台账 entry 17①(HUD框架硬性要求) | -**持久状态写入**全部经组合根唯一路径(settle_batch / submit_window_selection / request_refresh / runner 推进)——UI 层禁直调核心写(架构七原则"依赖单向组合根")。 +**持久状态写入**全部经组合根唯一路径(settle_batch / request_refresh / runner 推进)——UI 层禁直调核心写(架构七原则"依赖单向组合根")。 --- @@ -283,12 +257,11 @@ | 进入战斗屏 | 棋盘 install 淡入(200ms)+ 初始 3×3 展开涟漪 + Boss 战先播紫赤影子爬棋盘(§2.6) | 棋盘生成 install / §2.6 | | 挖掘→结算 | 明细带自底展开(150ms)+ 棋盘去饱和 + 金橙色相偏移 + 阶段指示翻转 | §2.2 色彩转金橙主导、饱和拉高、明度不变(状态区分经饱和/色相——art-bible §2 合规化 2026-09-12) | | 结算逐行兑现 | 光带自棋盘行起点横扫 → 开格化箭雨/旗化暴击弹道飞向敌人卡 → 受击闪白 + 血条直角递减 | §2.2 承载元素;因果全程可见可归因(P2) | -| 道具窗口 | E 区描边金光点亮(非弹窗,无缩放突兀) | 布局决策 2 | | 清图换新图 | 金粒喷泉 3–5s → 旧图碎裂淡出 → 新图 install 淡入 | §2.3 短促丰收不拖节奏 | | RAP 清零(battle_over) | RAP 数字滚动归零 + 「随战斗结束消散」微文案 | 行动经济可见反馈义务 | | 敌人死亡 | 血条直角递减至零 → 卡体灰化 + 碎裂退场(禁瞬消) | 敌人系统资产下限(同等 blocking);动画密度归战斗表现 | | 状态槽全清(battle_over) | 状态逐槽化光收回 + 「状态随战斗结束消散」微文案 | 增益状态×4④;RAP 清零同款先例 | -| 库存清空(level_clear) | 道包逐件化光点飞出 + 「剩余道具 ×N 随关卡结束清空」 | 奖励道具经济×⑤ | +| 关卡收束清库(预留) | 清空反馈义务保留——载体为魔法道具背包,随魔法道具 P0 落地;本批不设计具体呈现 | 魔法道具 下游呈现义务(关卡末清空反馈) | | 胜利 | 蜡封自上落下弹跳定格 → 碎砖拼纹章 → overlay 暖金渐显 | §2.4 克制不狂欢 | | 失败 | 全屏明度不变转暮蓝色相 → 旗化光点 800ms 逐面收回 → overlay | §2.5 最静一拍 | | 减动效选项 | 上述全部动画提供时长减半/直接跳终态开关(项目未建 accessibility 文档前,本项为 spec 内建承诺) | 动议:结算逐行兑现为信息载体不可整体跳过,可加速 | @@ -303,21 +276,20 @@ | BFS 移动路径 | 排雷玩法 `compute_move_path` | Read | 布局决策 3 合法性指示消费 | | 拒绝原因 | 排雷玩法 `sub_reason` 封闭枚举 + 行动经济 资源面 | Read | 三源(board/resource/phase)映射文案——呈现层契约成文;资源面原因无上游载荷(行动经济 仅 bool + debug 诊断),客户端按动作上下文推断 | | AP / RAP / 本轮刷新计数 | 行动经济 | Read | 常显;刷新入口可用性 = RAP 读数客户端预判(RAP≥8)+ `request_refresh` 返回值(行动经济 无 `can_request_refresh` API——仅 bool 返回 + 只读观测量;行动经济 EC13 拒绝合法可见) | -| 结算流水行(15 类)+ 四类行 | [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 流水协议 | Read | 逐行来源标注(P2);聚合计数行呈现 | +| 结算流水行(10 类封闭协议) | [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 流水协议 | Read | 逐行来源标注(P2);未生效类行(溢出未生效/奖励未生效)聚合计数呈现 | | 判定 verdict | 战斗结算 判定段 | Read | 终局画面数据锚 | | 敌单位 hp/顺位/意图环下一拍/enemy_id/存活 | 敌人系统 只读面 | Read | 意图线索映射全局恒定(敌人系统×4②);**despawn 前捕获**(旧版台账 entry 17③——缺陷②教训) | | 状态效果投影(含空态/极性/溢出) | 增益状态 投影口径 | Read | 极性映射数据源 = 战斗结算 SettlementTable 效果语义,非 magnitude 符号(增益状态×③) | -| 库存(item_id/状态/枚举序/行值投影)+ 奖励身份 | 奖励道具经济 `query_inventory` / 快照 | Read | reward_id 全局恒定;**属性简述由行值快照投影派生**(伤害/回复/增益一句话);载荷含来源 {cell, round} 但**不呈现于库存列表与 tooltip**(2026-09-12 用户拍板——来源归因职责由结算明细行承载,P2 不受影响);窗口载荷 usable_now 由战斗结算组装(奖励道具经济 零跨系统读) | +| 已开格奖励身份(奖励徽章) | 地图战斗资源 `query_identity`(经 board_view 身份解析只读回调,组合根注入) | Read | 已开格身份常读——挖掘期 Active 相位内有效;reward_id 全局恒定、禁止重掷;徽章绘制优先级见 §Component Inventory BoardView 行 | | 节点链/当前节点/HP 携带 | 关卡节点地图 lite · LevelRunner | Read | A 区进度条 | | 意图提交 | 排雷玩法 | **Write** | `settle_batch`(stop 亦经此——不直调行动经济) | -| 窗口选择 | 战斗结算 | **Write** | `submit_window_selection(窗口位置序)` | | 弃图刷新 | 行动经济 | **Write** | `request_refresh`(挖掘期 Active 当场受理——布局决策 4 2026-09-12 上游已落稿;战斗结算 `refresh_board` 编排承载) | | 节点推进 | LevelRunner | **Write** | 胜利 overlay「下一节点」 | | 终局画面数据锚 | 战斗结算 判定行(流水行协议) | Read | 「终局判定行 = 胜负画面的数据锚」(战斗结算 UI Requirements);despawn 前状态可见性纪律 = 旧版台账 entry 17③(销毁前捕获、**载荷数据自包含**、禁呈现层回读核心生命周期状态);若需独立终局快照信号,须回战斗结算/实现期 ADR 补登记(战斗结算 现无 `settlement_snapshot` 契约——2026-09-12 评审修正) | **架构注记**:UI 不拥有任何游戏状态——全部读经核心只读面,全部写经组合根(ADR-0001/0003)。呈现层信号载荷 schema 须在《HUD框架》成文(旧版台账 entry 17①,缺项即 blocking);场景级 headless 测试进 AC(entry 17②);覆盖层层级断言(缺陷⑤——任何模态覆盖层必须有"打开时遮挡物隐藏"断言)。 -**更新触发注记(2026-09-12 评审增补——防实现层等待不存在的信号,旧版台账 entry 17 教训同类)**:旗插/拔与移动成功反馈**零事件外发**(排雷玩法发射面封闭)——经意图调用 `ActionOutcome` 返回值命令式驱动;AP/RAP 读数:行动经济无推送信号——组合根每次调用返回后重查;状态效果:增益状态纯被动容器零信号——状态栏刷新绑战斗结算的编排完成时点;库存:奖励道具经济 `query_inventory` 查询面——写路径回执后重查。 +**更新触发注记(2026-09-12 评审增补——防实现层等待不存在的信号,旧版台账 entry 17 教训同类)**:旗插/拔与移动成功反馈**零事件外发**(排雷玩法发射面封闭)——经意图调用 `ActionOutcome` 返回值命令式驱动;AP/RAP 读数:行动经济无推送信号——组合根每次调用返回后重查;状态效果:增益状态纯被动容器零信号——状态栏刷新绑战斗结算的编排完成时点;奖励徽章:地图战斗资源 身份解析经 `query_identity` 只读回调(组合根注入 board_view),已开格揭显时查询——写路径回执后重查。 --- @@ -338,8 +310,8 @@ ## Localization Considerations - **源语言中文(CJK)**:运行时默认字体无 CJK 字形——**CJK 字体随包为硬性前置**(ADR-0003 已锁),实现 AC 覆盖 -- **按钮文案单行约束**:「停手」「弃图刷新」「跳过」「选用」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll"/"Skip")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写 -- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 道具名(4 汉字);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底) +- **按钮文案单行约束**:「停手」「弃图刷新」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写 +- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「标旗未中」——settlement source_label_map 封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底) - **数字格式**:全部整数,无本地化格式需求;AP 点阵为图形载体不依赖文本 - **术语表锚定**:旗/雷/停手/弃图刷新/轮次/结算 已在 GDD 体系内定名,译文须同步 registry terminology(五词条先例) @@ -349,7 +321,7 @@ **布局与可读** -- [ ] 1280×800 与 16:9 全屏(canvas_items/expand)下五区无遮挡、无重叠、无内容裁切(棋盘 12×12 全部格子 + 数字完整可见) +- [ ] 1280×800 与 16:9 全屏(canvas_items/expand)下四区无遮挡、无重叠、无内容裁切(棋盘 12×12 全部格子 + 数字完整可见) - [ ] 进入战斗屏 ≤500ms 内可交互(棋盘 install 淡入完成后首格可点);同屏 draw calls < 200(technical-preferences 预算) - [ ] 两种格态(已开格 / 未开格)灰度截图下一眼可辨(排雷玩法×6②) - [ ] 悬停光标区分移动/挖/旗三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③) @@ -360,27 +332,26 @@ - [ ] 挖/移/旗/停手/刷新全部操作纯鼠标可完成;stop 意图经 `settle_batch` 提交(代码走查 + 探针断言) - [ ] 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源) -- [ ] 道具窗口:usable_now=false 禁选+原因可见;至多选用 1 件;空库存不弹窗;选择传窗口位置非库存句柄(选中件库存态必变 Used——行为探针断言,缺陷④回归) - [ ] 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限已随行动经济 2026-09-12 修订生效);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(**上游已修订受理——2026-09-12 布局决策 4 落稿**) -- [ ] battle_over 时 RAP 清零有可见反馈;level_clear 时库存清空有可见反馈(行动经济/奖励道具经济×⑤) +- [ ] battle_over 时 RAP 清零有可见反馈(行动经济);关卡收束清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地补验收(现行切片无库存容器) - [ ] battle_over 时状态槽全清有可见反馈(逐槽化光 + 微文案)(增益状态×④) - [ ] 敌人死亡瞬间可辨识(卡体灰化 + 碎裂退场,禁瞬消);战斗段短路被掐灭的重击由行序可推断(敌人系统资产下限) **信息与归因** -- [ ] 结算逐行明细实时可见、战斗后可回看完整流水(P2 逐行归因);四类行(道具语境/奖励未生效/已消耗未生效/使用被拒)按 奖励道具经济×③ 呈现 +- [ ] 结算逐行明细实时可见、战斗后可回看完整流水(P2 逐行归因);未生效类行(溢出未生效/奖励未生效)聚合计数呈现(战斗结算 现行 10 类行协议) - [ ] 敌人意图徽标挖掘期全程可见、映射全局恒定、含顺位与环长直觉编码(敌人系统×4①②③) - [ ] 状态效果:极性呈现映射成文且非 magnitude 符号;空态渲染成文(裁决:槽隐藏);满层溢出经明细行可见(增益状态×①③④) - [ ] 图例面板条目恒在可随时回看、非模态提示不劫持输入 - [ ] 零合法板(棋盘生成 EC5 降级)出现时玩家侧诚实提示(toast,非静默) - [ ] 效果行 value 为单次贡献值,不得与 pool_value(池合成值)相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则) -- [ ] 未生效类行(奖励未生效/已消耗未生效/使用被拒/溢出未生效)携带形状冗余(icon/划线),非色相独载 -- [ ] 奖励徽章绘制优先级:旗之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(奖励道具经济 H1) +- [ ] 未生效类行(溢出未生效/奖励未生效)携带形状冗余(icon/划线),非色相独载 +- [ ] 奖励徽章绘制优先级:旗之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1) **场景级测试**(旧版台账 entry 17②③,缺项即 blocking) - [ ] 场景级 headless 测试:真实实例化战斗屏场景 + 驱动完整对局 + 断言零脚本错误(ui_click_probe 模式扩展) -- [ ] 任何模态覆盖层(图例/明细回看/胜利/失败/窗口态)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照) +- [ ] 任何模态覆盖层(图例/明细回看/胜利/失败)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照) - [ ] 动态区全部固定槽高 + clip_contents——悬停文案换行不推挤布局(缺陷①回归) - [ ] CJK 字体随包,全部中文文案渲染非豆腐块(ADR-0003) - [ ] 敌人 despawn 后呈现层不回读核心生命周期状态(快照纪律,缺陷②回归) @@ -391,17 +362,16 @@ 1. **Player journey map 未建**——建议实现前补建(`design/player-journey.md`),校准挖掘→结算→终局情绪曲线与 art-bible §2 能量档的匹配 2. **`design/accessibility-requirements.md` 未建**(gate-check Pre-Production 缺口)——本 spec 内建 WCAG AA 基线承诺,正式分层(文本缩放/色盲模式/按键重映射)待该文档定稿 -3. **`design/ux/interaction-patterns.md` 未建**——本 spec 新引入待入库 pattern:toast 双源拒绝、原位窗口激活、逐行兑现明细带、悬停预承诺光标、点阵资源显示(/ux-design patterns 批次入库) +3. **`design/ux/interaction-patterns.md` 未建**——本 spec 新引入待入库 pattern:toast 双源拒绝、逐行兑现明细带、悬停预承诺光标、点阵资源显示(/ux-design patterns 批次入库) 4. **战斗表现美术测试**(game-concept 已登记,战斗表现批次前强制):本 spec 的常驻双舞台分屏(布局决策 1)是测试的布局输入——敌人卡卡片式 vs 场景站桩式(无框立绘+底座)待样张定稿;本 spec 按"卡片式"起草(信息分层最稳),站桩式不改变分区结构 5. **移动动画形态**(布局决策 3):≤150ms 短滑为推荐值,playtest 观测「移动太瞬/太拖」反馈后调 6. **明细带挖掘期是否常驻上轮摘要**:常驻(现方案)vs 结算后即收起——playtest 观测回看频率 -7. **道具窗口原位激活**(布局决策 2):若 playtest 反馈窗口存在感不足(漏选),升级为 E 区放大 + 全屏微暗(仍非中央弹窗) -8. **Gamepad 导航序**:Partial 支持(非 MVP 门禁)——焦点环顺序待 gamepad 批次定 -9. **NodeOverlay / 关卡结算屏**:相邻域屏,建议后续 spec `design/ux/node-reward.md` + `design/ux/level-clear.md`(本 spec 只锁出口锚点) -10. **TunePanel 退役计划**:正式侧归元进度(天赋树),切片调试入口在《HUD框架》标注退役时点 -11. **提示文案定稿**:chord 提示/空态文案归实现期文案 pass,本 spec 只锁必含要点与形态约束 -12. **弃图刷新上游修订(已落稿 2026-09-12,布局决策 4)**:行动经济(Active 相位受理 + 每轮上限 2 次 + Waiting 代理退役 + 旧旗作废裁决 + 时间税失效预警)、排雷玩法(Active·仅刷新路径装板受理)、战斗结算(stopped/ap_exhausted 恒 same_board + `refresh_board` 挖掘期刷新编排;AC-29 改写/AC-30 恒 same_board)、registry `rap_rules` 同步、旧版 systems-index 修订块登记。遗留观察项:当场刷新的节奏健康由行动经济 OQ3 弃图率/刷新率预警承载,playtest 复核 -13. **教学引导缺口挂靠(成文时教学引导 GDD 尚未建,留痕)**:挖到雷 = 敌方优势而非死亡(排雷玩法登记「经典扫雷玩家最大预期违背」)、旗挡链(连锁止于旗属正常)、首次蓄力姿态一次性提示(敌人系统)、窗口拾取→囤刀→选用闭环教学(奖励道具经济)——本屏 toast 体系为落点候选,随教学引导批次定 +7. **Gamepad 导航序**:Partial 支持(非 MVP 门禁)——焦点环顺序待 gamepad 批次定 +8. **NodeOverlay / 关卡结算屏**:相邻域屏,建议后续 spec `design/ux/node-reward.md` + `design/ux/level-clear.md`(本 spec 只锁出口锚点) +9. **TunePanel 退役计划**:正式侧归元进度(天赋树),切片调试入口在《HUD框架》标注退役时点 +10. **提示文案定稿**:chord 提示/空态文案归实现期文案 pass,本 spec 只锁必含要点与形态约束 +11. **弃图刷新上游修订(已落稿 2026-09-12,布局决策 4)**:行动经济(Active 相位受理 + 每轮上限 2 次 + Waiting 代理退役 + 旧旗作废裁决 + 时间税失效预警)、排雷玩法(Active·仅刷新路径装板受理)、战斗结算(stopped/ap_exhausted 恒 same_board + `refresh_board` 挖掘期刷新编排;AC-29 改写/AC-30 恒 same_board)、registry `rap_rules` 同步、旧版 systems-index 修订块登记。遗留观察项:当场刷新的节奏健康由行动经济 OQ3 弃图率/刷新率预警承载,playtest 复核 +12. **教学引导缺口挂靠(成文时教学引导 GDD 尚未建,留痕)**:挖到雷 = 敌方优势而非死亡(排雷玩法登记「经典扫雷玩家最大预期违背」)、旗挡链(连锁止于旗属正常)、首次蓄力姿态一次性提示(敌人系统)——本屏 toast 体系为落点候选,随教学引导批次定 --- @@ -418,10 +388,10 @@ | 排雷玩法×6 | ⑤ 路径预览裁决 | 布局决策 3 | | 排雷玩法×6 | ⑥ 单意图帧+voided+拒绝可感知 | §Interaction Map + §States 拒绝子态 + AC | | 行动经济 | AP/RAP 常显+刷新入口+清零反馈+双源 | §Layout C/D 区 + §Transitions + AC | -| 战斗结算×3 | ①高光行强调呈现(标中旗金框行/清图 H2 金框行)②完美排雷呈现形态 ③棋盘生成 EC5 零合法板提示/补偿/回退形态(toast 提示;补偿/回退不提供——三形态选型留痕 2026-09-12) | §States 高光/清图 + §States 拒绝子态 + §AC;注:结算明细屏+道具窗口 = 战斗结算 UX Flag 事项(本 spec 即其 /ux-design 产物),非 战斗结算×3 台账 | +| 战斗结算×3 | ①高光行强调呈现(标中旗金框行/清图 H2 金框行)②完美排雷呈现形态 ③棋盘生成 EC5 零合法板提示/补偿/回退形态(toast 提示;补偿/回退不提供——三形态选型留痕 2026-09-12) | §States 高光/清图 + §States 拒绝子态 + §AC;注:结算明细屏 = 战斗结算 UX Flag 事项(本 spec 即其 /ux-design 产物),非 战斗结算×3 台账 | | 敌人系统×4 | 意图映射/恒定/顺位/敌方池 | §Component Inventory 敌人卡 + **意图线索映射目录(敌人系统×4① 成文占位,资产定稿归战斗表现)** + AC | | 增益状态×4 | 常显+空态/来源标注/溢出/去留 | §States 空态 + §AC | -| 奖励道具经济×5 | 身份恒读/窗口/四类行/清图强调/清空反馈 | §Component Inventory E 区 + §States 清图/高光 + AC | +| 地图战斗资源×5 | 身份恒读/明细行/清图强调(旧版台账五条中「窗口」「清空反馈」随格面资源批下线——清空反馈义务现载体 = 魔法道具背包,随魔法道具 P0 落地) | §Component Inventory BoardView 奖励徽章 + §States 清图/高光 + §Data Requirements query_identity + AC | | 棋盘生成 | EC5 零合法板诚实呈现(数据面经 战斗结算×3③ 上抛) | §States 拒绝子态(toast)+ AC | | 敌人系统资产下限 | 受击反馈/死亡表现/顺位标记 | §Transitions 受击 + §States 敌人死亡呈现(禁瞬消)+ §Component 顺位徽标;呈现语义在本 spec(同等 blocking),动画密度归战斗表现 | @@ -432,3 +402,4 @@ | 日期 | 改动 | |---|---| | 2026-09-15 | 雾格残留清理:格态收窄为已开 / 未开两态(删除雾图变体状态行、四格态 AC 与已开雾格 tint / 雾区全开信号两条 AC);图例面板与 toast 槽去掉雾条目与雾首遇提示;BoardView 纹带、绘制优先级与色弱冗余改按通用变异纹带表述;`ux_hint_shown` 的 hint_id 枚举去掉 fog_first;输入义务与 §13 义务对照表去掉 地形变异×3 一项;目标感知示例与提示文案 OQ 措辞同步。本 spec 不装载被移除机制的呈现义务 | +| 2026-09-16 | 格面资源批 UI 欠账收口(随 2026-09-15 可选类道具删除的代码收口同步文档):① 布局四区化——删 E 区道具面板行、布局决策 2(道具窗口形态=右栏原位激活)整段删除(编号留空防交叉引用失锚)、ASCII 线框图重绘为 A/B/C/D 四区(D 区横向加宽 ~1036px)、A 区节点链示例改文字签槽实际渲染(战/赏/疗/王);② States 删道具窗口态与零库存空态(「道包空空」);③ 结算口径五段化(授予→增益/减益→战斗→衰减→判定)与明细行 10 类封闭协议(删 15 类行、四类行旧口径;「奖励未生效」行保留);④ 交互/动效/事件表删道具窗口行、跳过按钮、`ux_window_choice`、`submit_window_selection`;⑤ 数据源登记删 `query_inventory` 与窗口载荷,奖励身份按现行 `query_identity` 只读回调口径校正;⑥ 验收清单删窗口断言、五区改四区、未生效类行改现行两型(溢出未生效/奖励未生效);⑦ 关卡末清库反馈义务改载魔法道具背包(随魔法道具 P0 落地,本批不设计具体呈现);⑧ OQ7(道具窗口原位激活)删除、OQ 重编号,「囤刀待机」等旧可选类措辞清理。本 spec 不装载被删除机制的呈现义务 | diff --git a/design/ux/interaction-patterns.md b/design/ux/interaction-patterns.md index 7a629278..26534b1c 100644 --- a/design/ux/interaction-patterns.md +++ b/design/ux/interaction-patterns.md @@ -203,12 +203,12 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab **Specification**: - 形态:灰置 + tooltip「HP 已满 · 禁选」;点击无效 + 原因 toast 兜底 - 语义区分:满血 = 零收益守卫(禁选、不烧包)≠ 缺血不足(超量 clamp 部分回复,**不**禁选) -- usable_now 由战斗结算组装进窗口载荷(奖励道具经济零跨系统读)——呈现层只消费不推断 +- usable_now 由战斗结算组装进窗口载荷(地图战斗资源零跨系统读)——呈现层只消费不推断 **When to Use**: 任何可见但不可交互的元素 **When NOT to Use**: 完全隐藏的不可用功能(不存在的东西无需解释) -**Reference**: battle.md §States 道具窗口态、§Interaction Map;奖励道具经济 Rule 7 / AC-14 +**Reference**: battle.md §States 道具窗口态、§Interaction Map;地图战斗资源 Rule 7 / AC-14 --- diff --git a/docs/architecture/architecture.md b/docs/architecture/architecture.md index 87f6f07f..9f8a49f7 100644 --- a/docs/architecture/architecture.md +++ b/docs/architecture/architecture.md @@ -2,8 +2,8 @@ ## Document Status -- Version: 1.1 -- Last Updated: 2026-09-15(雾格移除清理:variation 定义、生成期指标口径、D1 呈现义务台账同步现行文档) +- Version: 1.2 +- Last Updated: 2026-09-16(格面资源批 UI 欠账收口:分层图与层表中 B4 旧体系变体名改现行规范名"地图战斗资源"——代号前缀按图内旧代号风格保留) - Engine: Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定) - Review Mode: solo(`production/review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调) - GDDs Covered: game-concept · game-pillars · systems-index · d2-data-config · a3-action-economy · a4-terrain-variation · b3-status-effect · a1-board-generation · a2-minesweeper-rules · b2-enemy-system · b4-reward-item-economy · b1-settlement(12 份;A5/C1–C4/B5/D3–D6 未设计,按 systems-index 依赖分层预留) @@ -42,7 +42,7 @@ ├────────────────────────────────────────────────────────────┤ │ CORE LAYER │ │ A1 扫雷棋盘生成 · A2 排雷玩法规则 · B2 敌人系统 │ -│ B4 奖励与道具经济 · A5 扫雷辅助道具 (垂直切片) │ +│ B4 地图战斗资源 · A5 扫雷魔法道具 (垂直切片) │ ├────────────────────────────────────────────────────────────┤ │ FOUNDATION LAYER │ │ D2 数据配置与数值表 · A3 行动经济 · A4 地形变异 │ @@ -63,7 +63,7 @@ | A1 棋盘生成 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑;性能姿态归 ADR-0005) | | A2 排雷规则 | Core | MVP | ✅ 完整可跑 | LOW(零表读取零 UI) | | B2 敌人系统 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑) | -| B4 奖励经济 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑) | +| B4 地图战斗资源 | Core | MVP | ✅ 完整可跑 | LOW(纯逻辑) | | B1 战斗结算编排 | Feature | MVP | ✅ 完整可跑(禁 await) | LOW(纯逻辑;事件载体归 ADR-0001) | | C1 关卡节点地图 | Feature | 垂直切片(lite 已入切片) | ✅(切片 level_runner 先例) | LOW | | C2 冒险结构 | Feature | 垂直切片 | ✅ | LOW | @@ -103,7 +103,7 @@ | **board_generator**(A1) | 生成算法(五阶段管线)、BoardGenTable 回填、生成期指标集、合法性谓词(clearable / R₀≠S / min_safe)、可推理率度量(metric_version) | `generate(L, D, rng) -> Board`;度量独立入口×3(推理器 / F3 度量 / 合法性谓词——独立纯函数、同一实现) | ConfigDB(BoardGenTable/VariationTable);board_gen 流(一次 open_stream = 一张图);dig_ap_cost 只读 | 无 | | **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 旗集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) | | **unit_container**(B2) | hero/enemy 单位实例(hp/atk/行为环指针)、行值快照 | 9 API:spawn / query_alive / query_beat / query_attack / apply_damage / advance / default_target / ambush_grant_plan / despawn_all | ConfigDB(EnemyTable/HeroTable) | 无 | -| **reward_economy**(B4) | 板级身份映射(install 期预分配、Ready 只读)、关卡域库存(逐件实例)、**RewardSupplyController**(切片新增私有组合件:注入占比 + 指数递减、行值快照、零自有随机) | 10 API:roll_board / query_identity / grant / grant_clear / stock / use / query_inventory / clear_inventory / retire_mapping / equivalence_supply;另 query_full_snapshot(轮内刷新 facts 隔离)、grant_node_active(C1-lite 接口漂移) | ConfigDB(RewardTable/RewardConfigTable);reward_roll 流(scope = 每次 install 批) | 无 | +| **reward_economy**(B4) | 格面资源身份映射(install 期预分配、Ready 只读、换图映射消亡)、极性路由字典面((类型, 极性)→ 字典行查询;路由执行归 B1 授予段)、F6 当量供给投影 | 封闭 API:roll_board / query_identity / query_full_snapshot / grant / grant_clear / retire_mapping / polarity_row / equivalence_supply / phase / weighted_pick;另有 is_mapped 静默布尔投影(批量工具用) | ConfigDB(RewardTable);reward_roll 流(scope = 每次 install 批) | 无 | | **helper_items**(A5,垂直切片) | HelperItemTable、探测显影语义 | (未设计——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 | ### Feature 层 diff --git a/docs/doc-conventions.md b/docs/doc-conventions.md index 0fe5770e..db069a21 100644 --- a/docs/doc-conventions.md +++ b/docs/doc-conventions.md @@ -111,7 +111,7 @@ | 附加物独立成对象 | 挂在概念上的附加内容若自己有一组属性或规则要写(例:格上的奖励/惩罚 = 格面资源),就是独立对象——父概念只保留挂载位(如"有无资源资格"),禁止把附加物摊平成父概念的一堆属性字段 | | 关系不吸内容 | 概念间关系只写"有没有关系、是什么关系";对方的属性与规则留在对方名下——与第 8 节"引用不转述"同源 | -**切分正例**(现行排雷循环即按此切分):棋盘是地图级对象,包含多个格;格是成员对象,雷格/安全格是它的枚举属性;格上可能挂的奖励或惩罚(格面资源)是独立对象,本体与规则归奖励道具经济与战斗结算,格只保留"有无资源资格"一个挂载位。反面基准:把奖励的类型、数值、极性全摊开写成格子的属性字段——奖励规则一改,棋盘文档就得跟着改,这便是没封装。 +**切分正例**(现行排雷循环即按此切分):棋盘是地图级对象,包含多个格;格是成员对象,雷格/安全格是它的枚举属性;格上可能挂的奖励或惩罚(格面资源)是独立对象,本体与规则归地图战斗资源与战斗结算,格只保留"有无资源资格"一个挂载位。反面基准:把奖励的类型、数值、极性全摊开写成格子的属性字段——奖励规则一改,棋盘文档就得跟着改,这便是没封装。 **落盘载体**:概念对象登记 `design/registry/entities.yaml`(owner 与 referenced_by 由此机械维护);文档里概念怎么切,registry 就怎么登记,代码里的对象划分与之同构。 diff --git a/docs/registry/architecture.yaml b/docs/registry/architecture.yaml index f9fce3b1..6bfc7eb7 100644 --- a/docs/registry/architecture.yaml +++ b/docs/registry/architecture.yaml @@ -57,7 +57,7 @@ forbidden_patterns: detail: core/ 禁 extends Control/Node2D、禁 .tscn preload(数据配置 Rule 7) - pattern: second_caller_of_battle_domain_apis adr: ADR-0004 - detail: 敌人系统/增益状态/奖励道具经济 战斗域 API 唯一调用方 = 战斗结算;排雷玩法/增益状态/奖励道具经济 零相互直调(静态扫描 S7——战斗结算 AC-43) + detail: 敌人系统/增益状态/地图战斗资源 战斗域 API 唯一调用方 = 战斗结算;排雷玩法/增益状态/地图战斗资源 零相互直调(静态扫描 S7——战斗结算 AC-43) - name: hero_override_parameter_passing adr: ADR-0009(候选——切片机制正式化批) diff --git a/production/session-state/active.md b/production/session-state/active.md index 7ee5a32c..79c53b51 100644 --- a/production/session-state/active.md +++ b/production/session-state/active.md @@ -13,15 +13,15 @@ 1. 概念原型验证:v2 核心假设 CONFIRMED,v3 终验待做(与标错惩罚实测合并为一次会话),REPORT 已归档 PROCEED 2. `/map-systems` 完成:20 系统四层分解 + GDD 设计顺序 + 优先级 3. `/gate-check systems-design` 重审(2026-09-07):CONCERNS 无阻塞 → 登记级意见已清偿进 systems-index"门禁增补记录",stage.txt 已写入 -4. **数据配置 已收口**:两轮 /design-review(full + 同日 re-review)+ 独立 delta 复核 5/5 PASS → **Approved**(2026-09-07)。行动经济 定稿回填 ActionEconomyTable(AP 8/旗 4/停手 ×2/清图 ×1),数据配置 Tuning Knobs 对应条目已按定稿删除义务移除,registry 已登记 `action_economy`,索引补齐 冒险结构/战斗结算/奖励道具经济/元进度←数据配置 四边 +4. **数据配置 已收口**:两轮 /design-review(full + 同日 re-review)+ 独立 delta 复核 5/5 PASS → **Approved**(2026-09-07)。行动经济 定稿回填 ActionEconomyTable(AP 8/旗 4/停手 ×2/清图 ×1),数据配置 Tuning Knobs 对应条目已按定稿删除义务移除,registry 已登记 `action_economy`,索引补齐 冒险结构/战斗结算/地图战斗资源/元进度←数据配置 四边 5. **行动经济 已收口**:GDD 全节已写入(`design/archive/gdd-2026-09-14/a3-action-economy.md`,Status: Approved 2026-09-07 三轮 re-review;评审日志 `design/archive/gdd-2026-09-14/reviews/a3-action-economy-review-log.md`),registry 已登记 `action_economy` -6. **地形变异 已收口**:两轮 /design-review(2026-09-08 full 8 阻塞 + 同日 re-review 6 阻塞,均同日核销)→ **Approved**(用户拍板 delta 核销免第三轮,行动经济 先例)。承重数学(厚度≤2【≡任意 3×3 窗口非全雾】/f≤8d/两态 AP/F1 谓词)经两轮对抗零动摇;承重规则不变(生成期布置约束 + 零特判 + fog unlock_level=2)。数据配置/registry/systems-index 三方已同步(跨字段校验 hide_numbers⇒safe_nonzero 致命、奖励道具经济 三条定价硬约束、棋盘生成×15/排雷玩法×4/HUD框架×2/战斗结算 输入门禁登记全枚举)。评审日志:`design/archive/gdd-2026-09-14/reviews/a4-terrain-variation-review-log.md`(含两轮阻塞→修复对照表) -7. **增益状态 设计会话进行中(2026-09-08 启动)**:上下文预收集同日完成——① review mode = lean(review-mode.txt 不存在,取默认,与索引头部一致);② 引擎域 = Core,无引擎障碍(纯数据+回合逻辑,4.7 变更清单零交集;Core 零 UI 依赖、结算禁 await 为设计约束);③ **已锁事实不得默改**:己方限时增益跨轮次延续(按剩余结算次数)、不跨战斗【game-concept 2026-09-06】;三向效果映射(安全格→主角 buff/开雷→敌方增益/标中雷→怪物 debuff)【v3 定稿】;标中旗一次性兑付、资格以雷格实例为键、拔旗重插不恢复【行动经济 OQ5】;debuff 档位锚严格 > 最低档安全格 buff 当量、对照基准=连锁放大边际挖掘收益【行动经济 F1 条款 2】;安全格 buff/标中旗 debuff/清图奖励/敌方增益统一当量单一线性换算、战斗结算 闭合 owner【行动经济 F1 条款 1】;安全格奖励有回合限制甚至一次性、扫雷只入库轮末结算、P2 要求结算明细标注来源;④ 数据承载 = 数据配置 StatusEffectTable 占位行("buff 时限/叠层字段名",单行全局,owner=增益状态 回填);⑤ 增益状态 为 Foundation 瓶颈系统,下游 奖励道具经济/战斗结算 未设计——接口契约需 provisional 登记(行动经济 条款 1/3/5 的 provisional 先例现成);⑥ 无 docs/consistency-failures.md;既往一致性检查 0 冲突 -8. **增益状态 已收口(Designed,2026-09-08)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b3-status-effect.md`,12 节零占位;lean 门禁 systems-designer/qa-lead 已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:战斗域统一状态容器(三向效果同构实例)· 单一结算次数量纲(先兑付后衰减)· 按行叠层三分支(stack 不触碰 R)· MVP 四行 attack_up/defense_up/ambush/weaken(**值全部 provisional;weaken vs 行动经济 条款 2 锚预检不过——红色预警,战斗结算 对照验收裁决**;用户拍板四行定稿权收编 增益状态、锚验收权留 奖励道具经济/战斗结算——行动经济 OQ5 修订已登记索引)。registry 已登记 `status_effect` + action_economy.referenced_by 增 增益状态;数据配置 Core Rules/Status 已回写;索引门禁增补记录已登记 增益状态 块(**战斗结算×5 义务清单——战斗结算 GDD 门禁评审缺项即 blocking**;EC9 reload gate 战斗结算 落点;ambush 量纲→敌人系统)。下一步 = **棋盘生成(设计顺序第 5 位,MVP)**——注意 地形变异 已登记 棋盘生成×15 验收清单 + 增益状态 登记 ambush/weaken 锚供给义务,棋盘生成 GDD 门禁评审须逐项核对 +6. **地形变异 已收口**:两轮 /design-review(2026-09-08 full 8 阻塞 + 同日 re-review 6 阻塞,均同日核销)→ **Approved**(用户拍板 delta 核销免第三轮,行动经济 先例)。承重数学(厚度≤2【≡任意 3×3 窗口非全雾】/f≤8d/两态 AP/F1 谓词)经两轮对抗零动摇;承重规则不变(生成期布置约束 + 零特判 + fog unlock_level=2)。数据配置/registry/systems-index 三方已同步(跨字段校验 hide_numbers⇒safe_nonzero 致命、地图战斗资源 三条定价硬约束、棋盘生成×15/排雷玩法×4/HUD框架×2/战斗结算 输入门禁登记全枚举)。评审日志:`design/archive/gdd-2026-09-14/reviews/a4-terrain-variation-review-log.md`(含两轮阻塞→修复对照表) +7. **增益状态 设计会话进行中(2026-09-08 启动)**:上下文预收集同日完成——① review mode = lean(review-mode.txt 不存在,取默认,与索引头部一致);② 引擎域 = Core,无引擎障碍(纯数据+回合逻辑,4.7 变更清单零交集;Core 零 UI 依赖、结算禁 await 为设计约束);③ **已锁事实不得默改**:己方限时增益跨轮次延续(按剩余结算次数)、不跨战斗【game-concept 2026-09-06】;三向效果映射(安全格→主角 buff/开雷→敌方增益/标中雷→怪物 debuff)【v3 定稿】;标中旗一次性兑付、资格以雷格实例为键、拔旗重插不恢复【行动经济 OQ5】;debuff 档位锚严格 > 最低档安全格 buff 当量、对照基准=连锁放大边际挖掘收益【行动经济 F1 条款 2】;安全格 buff/标中旗 debuff/清图奖励/敌方增益统一当量单一线性换算、战斗结算 闭合 owner【行动经济 F1 条款 1】;安全格奖励有回合限制甚至一次性、扫雷只入库轮末结算、P2 要求结算明细标注来源;④ 数据承载 = 数据配置 StatusEffectTable 占位行("buff 时限/叠层字段名",单行全局,owner=增益状态 回填);⑤ 增益状态 为 Foundation 瓶颈系统,下游 地图战斗资源/战斗结算 未设计——接口契约需 provisional 登记(行动经济 条款 1/3/5 的 provisional 先例现成);⑥ 无 docs/consistency-failures.md;既往一致性检查 0 冲突 +8. **增益状态 已收口(Designed,2026-09-08)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b3-status-effect.md`,12 节零占位;lean 门禁 systems-designer/qa-lead 已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:战斗域统一状态容器(三向效果同构实例)· 单一结算次数量纲(先兑付后衰减)· 按行叠层三分支(stack 不触碰 R)· MVP 四行 attack_up/defense_up/ambush/weaken(**值全部 provisional;weaken vs 行动经济 条款 2 锚预检不过——红色预警,战斗结算 对照验收裁决**;用户拍板四行定稿权收编 增益状态、锚验收权留 地图战斗资源/战斗结算——行动经济 OQ5 修订已登记索引)。registry 已登记 `status_effect` + action_economy.referenced_by 增 增益状态;数据配置 Core Rules/Status 已回写;索引门禁增补记录已登记 增益状态 块(**战斗结算×5 义务清单——战斗结算 GDD 门禁评审缺项即 blocking**;EC9 reload gate 战斗结算 落点;ambush 量纲→敌人系统)。下一步 = **棋盘生成(设计顺序第 5 位,MVP)**——注意 地形变异 已登记 棋盘生成×15 验收清单 + 增益状态 登记 ambush/weaken 锚供给义务,棋盘生成 GDD 门禁评审须逐项核对 ## GDD 设计顺序(前 10 = MVP) -数据配置 → 行动经济 → 地形变异 → 增益状态 → 棋盘生成 → 排雷玩法 → 敌人系统 → 奖励道具经济 → 战斗结算 → HUD框架 →(垂直切片:辅助道具 → 难度曲线与Boss → 冒险结构 → 关卡节点地图 → 战斗表现)→(Alpha:存档序列化 → 音频 → 教学引导 → 元进度)→ 设置与本地化 +数据配置 → 行动经济 → 地形变异 → 增益状态 → 棋盘生成 → 排雷玩法 → 敌人系统 → 地图战斗资源 → 战斗结算 → HUD框架 →(垂直切片:魔法道具 → 难度曲线与Boss → 冒险结构 → 关卡节点地图 → 战斗表现)→(Alpha:存档序列化 → 音频 → 教学引导 → 元进度)→ 设置与本地化 ## GDD 写作纪律(制作人门禁意见) @@ -30,38 +30,38 @@ - + 9. **Task: Designing 棋盘生成 GDD**(2026-09-08 启动)· File: `design/archive/gdd-2026-09-14/a1-board-generation.md` 10. **棋盘生成 已收口(Designed,2026-09-09)**:GDD 全节已写入(12 节零占位,~405 行;lean 门禁 systems-designer/qa-lead 已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:五阶段确定性生成管线 · inferability = 免赌开据占比(F1 三通道 + 雾元知识信息源 + 次序无关 + metric_version)· clearable 合法性闸与质量度量两闸分离 · 验收三分支(达标即出/接受最优/**零合法接受最不坏**——用户定稿玩家永不卡死)· F4 批量红线**严格零**(用户定稿)· BoardGenTable 九字段回填(首个进度键表,solver_rules 冻结,参考行 provisional 归 难度曲线与Boss)。registry 已登记 `board_gen_table` + action_economy.referenced_by 增 棋盘生成;数据配置 两处回写;索引门禁增补记录 棋盘生成 块(**排雷玩法 双包含回验——排雷玩法 GDD 门禁缺项即 blocking**;战斗结算 对账消费 actuals p10 非 target;F4 全量工具与 数据配置 OQ5 同批排期;黄金向量第二人复核)。**下一步 = 排雷玩法规则(设计顺序第 6 位,MVP,瓶颈系统)**——硬输入:行动经济 事件契约(round_end 双发射源/try_spend/last_round_end)、地形变异×4 验收清单、棋盘生成 双包含回验 + 产物消费、标错惩罚待原型小补丁实测后关闭(CD 门禁:可与原型 v3 终验合并会话) -11. **排雷玩法 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/a2-minesweeper-rules.md`,12 节零占位,365 行;lean 门禁 systems-designer〔Formulas F1–F4〕/qa-lead〔AC 22 条 + 覆盖矩阵 + 夹具坐标规格〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:纯规则引擎(三事件回边 cell_revealed/flag_judged/round_end 发射面封闭 · 零随机/零表读取/零 UI,headless 解耦)· 初始展开 = R₀ 恰等(双包含两臂构造性成立、棋盘生成 回退口径不触发;免费/计入清图/无奖励——行动经济 EC5 委派落点)· 批次语义序仲裁(cleared-dig→stop→其余;行动经济 EC4 四组合 deferral 在 排雷玩法 冒烟兑现 AC-10)· 旗单态轮末判定诚实重复上报(去重归 战斗结算/奖励道具经济)· 已引爆雷格可通行(工程债核销 AC-15)· install 四不变式。**🔴 反例 B 阻断缺口(systems-designer 发现、主会话独立复算证实)**:棋盘生成 布雷数下限拦不住"初始展开即 cleared"退化板(8×8 幸存距离-2 雷 → R₀=S;N=1 行 100% 退化、断言 A 零拦截)——登记 **棋盘生成 修订义务**(F5 legality 增 R₀≠S + F4 断言 + 排除域基准措辞;棋盘生成 已 Approved 走接口漂移)+ 排雷玩法 侧不变式④纵深防御。registry 已登记 `minesweeper_event_surface` / `minesweeper_initial_expansion`;systems-index 已登记 排雷玩法 门禁块(**棋盘生成 修订义务 + 战斗结算×3 + HUD框架×1 强制项**;标错惩罚 OQ1 在位——/design-review 核对项)。**下一步 = 敌人系统(设计顺序第 7 位,MVP)**——硬输入:增益状态 单敌假设回验(定多敌即触发 target_ref 接口漂移补列)、ambush 量纲定稿义务(registry anchor:"+3" 单位候选"每颗已开雷伤害加成",联动 行动经济 F1 条款 3 上限表值)、EnemyTable 回填(数据配置 占位:词条/意图可见性字段) -12. **敌人系统 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b2-enemy-system.md`,12 节零占位;lean 门禁 systems-designer〔Formulas F1–F4〕/qa-lead〔AC 17 条 + 覆盖矩阵 + 缺口预检 7 项〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:多敌模型(1–3 同敌种,增益状态 单敌假设回验不成立→side-wide 零接口变更兼容 + target_ref 扩展位)· HeroTable 新增(接口漂移,atk=0 机制开关)· 意图视觉推测型(CD 承重项:图像线索稳定可学/每 run 恒定/结算明细数字兑现)· Peglin 行为环(attack/charge/heavy MVP,双敌种 grub/ambusher 双环,死亡即不动手 + 同步轮转定理)· 伏击量纲定稿(registry OQ2 关闭:每攻击类行为 +3 HP、charge 零兑付)· cap=4(反灾难护栏;旧 8 溢出协议死码废弃)· 条款 3 单结算自然边界(用户定稿)。registry 已登记 enemy/hero/clause3_supply 三条目 + status_effect 两注记 + terminology 六词条;数据配置 三处回写(Core Rules 表 EnemyTable/HeroTable 行 + Dependencies 行 + Status);索引 敌人系统 进度行 + 门禁增补记录 敌人系统 块(**战斗结算×6/HUD框架×4 义务清单——奖励道具经济/战斗结算/HUD框架 GDD 门禁评审缺项即 blocking**)。**下一步 = 奖励与道具经济(设计顺序第 8 位,MVP)**——硬输入:行动经济 F1 条款 2 锚(weaken 档位严格 > 最低档安全格 buff 当量)+ 地形变异 三条定价硬约束、奖励身份预读(增益状态 义务)、伤害道具默认目标消费(敌人系统 固定顺位)、HeroTable.atk 激活裁决参与、高光兑现节点条目化(战斗结算/奖励道具经济 共担)、clear_reward 源授予路径确认(增益状态 OQ4) - +11. **排雷玩法 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/a2-minesweeper-rules.md`,12 节零占位,365 行;lean 门禁 systems-designer〔Formulas F1–F4〕/qa-lead〔AC 22 条 + 覆盖矩阵 + 夹具坐标规格〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:纯规则引擎(三事件回边 cell_revealed/flag_judged/round_end 发射面封闭 · 零随机/零表读取/零 UI,headless 解耦)· 初始展开 = R₀ 恰等(双包含两臂构造性成立、棋盘生成 回退口径不触发;免费/计入清图/无奖励——行动经济 EC5 委派落点)· 批次语义序仲裁(cleared-dig→stop→其余;行动经济 EC4 四组合 deferral 在 排雷玩法 冒烟兑现 AC-10)· 旗单态轮末判定诚实重复上报(去重归 战斗结算/地图战斗资源)· 已引爆雷格可通行(工程债核销 AC-15)· install 四不变式。**🔴 反例 B 阻断缺口(systems-designer 发现、主会话独立复算证实)**:棋盘生成 布雷数下限拦不住"初始展开即 cleared"退化板(8×8 幸存距离-2 雷 → R₀=S;N=1 行 100% 退化、断言 A 零拦截)——登记 **棋盘生成 修订义务**(F5 legality 增 R₀≠S + F4 断言 + 排除域基准措辞;棋盘生成 已 Approved 走接口漂移)+ 排雷玩法 侧不变式④纵深防御。registry 已登记 `minesweeper_event_surface` / `minesweeper_initial_expansion`;systems-index 已登记 排雷玩法 门禁块(**棋盘生成 修订义务 + 战斗结算×3 + HUD框架×1 强制项**;标错惩罚 OQ1 在位——/design-review 核对项)。**下一步 = 敌人系统(设计顺序第 7 位,MVP)**——硬输入:增益状态 单敌假设回验(定多敌即触发 target_ref 接口漂移补列)、ambush 量纲定稿义务(registry anchor:"+3" 单位候选"每颗已开雷伤害加成",联动 行动经济 F1 条款 3 上限表值)、EnemyTable 回填(数据配置 占位:词条/意图可见性字段) +12. **敌人系统 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b2-enemy-system.md`,12 节零占位;lean 门禁 systems-designer〔Formulas F1–F4〕/qa-lead〔AC 17 条 + 覆盖矩阵 + 缺口预检 7 项〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。定稿要点:多敌模型(1–3 同敌种,增益状态 单敌假设回验不成立→side-wide 零接口变更兼容 + target_ref 扩展位)· HeroTable 新增(接口漂移,atk=0 机制开关)· 意图视觉推测型(CD 承重项:图像线索稳定可学/每 run 恒定/结算明细数字兑现)· Peglin 行为环(attack/charge/heavy MVP,双敌种 grub/ambusher 双环,死亡即不动手 + 同步轮转定理)· 伏击量纲定稿(registry OQ2 关闭:每攻击类行为 +3 HP、charge 零兑付)· cap=4(反灾难护栏;旧 8 溢出协议死码废弃)· 条款 3 单结算自然边界(用户定稿)。registry 已登记 enemy/hero/clause3_supply 三条目 + status_effect 两注记 + terminology 六词条;数据配置 三处回写(Core Rules 表 EnemyTable/HeroTable 行 + Dependencies 行 + Status);索引 敌人系统 进度行 + 门禁增补记录 敌人系统 块(**战斗结算×6/HUD框架×4 义务清单——地图战斗资源/战斗结算/HUD框架 GDD 门禁评审缺项即 blocking**)。**下一步 = 奖励与道具经济(设计顺序第 8 位,MVP)**——硬输入:行动经济 F1 条款 2 锚(weaken 档位严格 > 最低档安全格 buff 当量)+ 地形变异 三条定价硬约束、奖励身份预读(增益状态 义务)、伤害道具默认目标消费(敌人系统 固定顺位)、HeroTable.atk 激活裁决参与、高光兑现节点条目化(战斗结算/地图战斗资源 共担)、clear_reward 源授予路径确认(增益状态 OQ4) + -13. **奖励道具经济 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b4-reward-item-economy.md`,12 节零占位,354 行;lean 门禁 systems-designer〔Formulas F1–F6〕/economy-designer〔权重参考行 + 失衡预警清单〕/qa-lead〔AC 21 条 + 覆盖矩阵 + 缺口预检 9 项〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。**会话注记**:另一会话并行写入 E/F/G 三节与本会话冲突,经用户裁决本会话接管收尾——E 节按"照常消耗"拍板合并(覆盖并行稿"拒绝不消耗"条目)、F/G 两节保留并行稿。定稿要点:install 期身份预分配(roll_board 恰一次、Ready 只读)· 道具使用窗口 MVP 激活(段序骨架 = 授予→增益/减益→道具→战斗→衰减→判定)· 库存战斗域(battle_over 全清)· 道具伤害恒定表值(attack_up 死行、行动经济 条款 2 锚参照迁移 defense_up)· F5 保底草稿重 roll · E 节两项拍板(照常消耗 / 清图槽允许 buff 行)。registry 已登记 reward_table + 三处漂移改写;数据配置 六处回写;索引 奖励道具经济 进度行 + 门禁增补记录 奖励道具经济 块(**战斗结算×6/HUD框架×3 义务清单缺项即 blocking**;缺口预检 2 阻塞级 deferral 至 战斗结算)+ 分层行 奖励道具经济←数据配置 + 增益状态 块 EC8 错号修正。**下一步 = 战斗结算规则(设计顺序第 9 位,MVP 瓶颈系统)**——奖励道具经济 定稿解锁:胜利路径先决已备(敌人系统 Overview 声明的解药);硬输入:战斗结算 义务清单累计 **增益状态×8 + 敌人系统×6 + 排雷玩法×3+2 + 奖励道具经济×6**(全缺项即 blocking)、weaken 锚红警裁决(增益状态 OQ1 归一口径前置)、行动经济 F1 条款①–⑤闭合 owner、地形变异 硬约束②③对账、EC8 reload gate 落点、事件总线载体裁决(TD 门禁 2026-09-07 登记) +13. **地图战斗资源 已收口(Designed,2026-09-09)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b4-reward-item-economy.md`,12 节零占位,354 行;lean 门禁 systems-designer〔Formulas F1–F6〕/economy-designer〔权重参考行 + 失衡预警清单〕/qa-lead〔AC 21 条 + 覆盖矩阵 + 缺口预检 9 项〕已咨询;CD-GDD-ALIGN 按 lean 跳过)。**会话注记**:另一会话并行写入 E/F/G 三节与本会话冲突,经用户裁决本会话接管收尾——E 节按"照常消耗"拍板合并(覆盖并行稿"拒绝不消耗"条目)、F/G 两节保留并行稿。定稿要点:install 期身份预分配(roll_board 恰一次、Ready 只读)· 道具使用窗口 MVP 激活(段序骨架 = 授予→增益/减益→道具→战斗→衰减→判定)· 库存战斗域(battle_over 全清)· 道具伤害恒定表值(attack_up 死行、行动经济 条款 2 锚参照迁移 defense_up)· F5 保底草稿重 roll · E 节两项拍板(照常消耗 / 清图槽允许 buff 行)。registry 已登记 reward_table + 三处漂移改写;数据配置 六处回写;索引 地图战斗资源 进度行 + 门禁增补记录 地图战斗资源 块(**战斗结算×6/HUD框架×3 义务清单缺项即 blocking**;缺口预检 2 阻塞级 deferral 至 战斗结算)+ 分层行 地图战斗资源←数据配置 + 增益状态 块 EC8 错号修正。**下一步 = 战斗结算规则(设计顺序第 9 位,MVP 瓶颈系统)**——地图战斗资源 定稿解锁:胜利路径先决已备(敌人系统 Overview 声明的解药);硬输入:战斗结算 义务清单累计 **增益状态×8 + 敌人系统×6 + 排雷玩法×3+2 + 地图战斗资源×6**(全缺项即 blocking)、weaken 锚红警裁决(增益状态 OQ1 归一口径前置)、行动经济 F1 条款①–⑤闭合 owner、地形变异 硬约束②③对账、EC8 reload gate 落点、事件总线载体裁决(TD 门禁 2026-09-07 登记) -14. **战斗结算 已收口(Designed,2026-09-10)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b1-settlement.md`,12 节零占位,628 行——项目最大 GDD;lean 门禁 systems-designer〔Formulas F0–F5 + 对账义务清单〕/qa-lead〔AC 43 条 + 覆盖矩阵 + 缺口预检 12 项〕已咨询;CD-GDD-ALIGN/art-director 按 lean 跳过留人工复核注记)。定稿要点:**编排唯一性**(敌人系统/增益状态/奖励道具经济 战斗域 API 唯一调用方 + 可回放步骤流〔结算禁 await——数据配置 AC-15 兑现落点 AC-33〕+ 零随机)· **结算触发 = Waiting 相位编排点**(不依赖事件到达序——排雷玩法 义务①)· **段序骨架**(授予→窗口〔授予段后〕→增益/减益→道具→战斗→衰减→判定——奖励道具经济 义务①原文)· **23 条上游义务全落位**(增益状态×8/敌人系统×6/排雷玩法×3/奖励道具经济×6,AC 覆盖矩阵 23/23,引用带清单限定词)· **F0 归一口径裁决**(瞬时当量;weaken −25→值域 [60,85]/默认 −65——增益状态 红警关闭)· **条款①③⑤闭合首版验算**(条款③默认通过、满配 unit_count=3 破线→难度曲线与Boss 约束;条款⑤两态通过+保守地板缺口登记;actuals p10 交付后强制重跑)· **高光双落**(#2 完美排雷 ×P_perfect 默认 ×2 / #3 标中旗 highlight——用户拍板)· **战斗段短路**(hero hp=0 即中止——用户拍板)· SettlementTable 七字段回填(三行致命 manifest)。回写已执行(用户批准):registry 新增 settlement_table/clause5_dominance + 四处接口漂移(weaken 值/anchor_warning F0 回执/clause3_supply 闭合/board_gen 消费回执)+ 三处履行回执 + terminology 五词条;systems-index 战斗结算 进度行 + 门禁增补记录 战斗结算 块(**HUD框架×3 义务清单缺项即 blocking** + 难度曲线与Boss 消费注记 + UX Flag + ADR 裁决项×2);数据配置 SettlementTable 行回填。**下一步 = HUD框架(设计顺序第 10 位,MVP)**——硬输入:全项目最大呈现义务台账(排雷玩法×6/敌人系统×4/增益状态×4/奖励道具经济×5/**战斗结算×3**)+ art-bible §1–4 创建门禁(最晚 HUD框架 GDD 前)+ 事件订阅呈现刷新面 + UX Flag(结算屏/道具窗口前置 /ux-design) +14. **战斗结算 已收口(Designed,2026-09-10)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/b1-settlement.md`,12 节零占位,628 行——项目最大 GDD;lean 门禁 systems-designer〔Formulas F0–F5 + 对账义务清单〕/qa-lead〔AC 43 条 + 覆盖矩阵 + 缺口预检 12 项〕已咨询;CD-GDD-ALIGN/art-director 按 lean 跳过留人工复核注记)。定稿要点:**编排唯一性**(敌人系统/增益状态/地图战斗资源 战斗域 API 唯一调用方 + 可回放步骤流〔结算禁 await——数据配置 AC-15 兑现落点 AC-33〕+ 零随机)· **结算触发 = Waiting 相位编排点**(不依赖事件到达序——排雷玩法 义务①)· **段序骨架**(授予→窗口〔授予段后〕→增益/减益→道具→战斗→衰减→判定——地图战斗资源 义务①原文)· **23 条上游义务全落位**(增益状态×8/敌人系统×6/排雷玩法×3/地图战斗资源×6,AC 覆盖矩阵 23/23,引用带清单限定词)· **F0 归一口径裁决**(瞬时当量;weaken −25→值域 [60,85]/默认 −65——增益状态 红警关闭)· **条款①③⑤闭合首版验算**(条款③默认通过、满配 unit_count=3 破线→难度曲线与Boss 约束;条款⑤两态通过+保守地板缺口登记;actuals p10 交付后强制重跑)· **高光双落**(#2 完美排雷 ×P_perfect 默认 ×2 / #3 标中旗 highlight——用户拍板)· **战斗段短路**(hero hp=0 即中止——用户拍板)· SettlementTable 七字段回填(三行致命 manifest)。回写已执行(用户批准):registry 新增 settlement_table/clause5_dominance + 四处接口漂移(weaken 值/anchor_warning F0 回执/clause3_supply 闭合/board_gen 消费回执)+ 三处履行回执 + terminology 五词条;systems-index 战斗结算 进度行 + 门禁增补记录 战斗结算 块(**HUD框架×3 义务清单缺项即 blocking** + 难度曲线与Boss 消费注记 + UX Flag + ADR 裁决项×2);数据配置 SettlementTable 行回填。**下一步 = HUD框架(设计顺序第 10 位,MVP)**——硬输入:全项目最大呈现义务台账(排雷玩法×6/敌人系统×4/增益状态×4/地图战斗资源×5/**战斗结算×3**)+ art-bible §1–4 创建门禁(最晚 HUD框架 GDD 前)+ 事件订阅呈现刷新面 + UX Flag(结算屏/道具窗口前置 /ux-design) -15. **垂直切片启动(2026-09-10,/vertical-slice Phase 3 检查点)**:概念名 **dungeon-sweeper**,目录 `prototypes/dungeon-sweeper-vertical-slice/`(用户已确认开工)。**验证问题**:玩家从零开始一场战斗,能否无指导 10 分钟内经历完整「开战→挖掘规划→轮末结算逐行兑现→胜/负」循环并逐行归因(P2)——以及能否按 GDD 约束(表值单点/RNG 封闭/结算可回放/Core headless)5 个工作日内以代表性质量建完。**范围内系统**:数据配置(9 表)· 棋盘生成(含 single_subset 求解器 + 双判据验收,用户拍板完整验收)· 排雷玩法 · 行动经济 · 地形变异(迷雾)· 战斗结算 七段编排全量 · 敌人系统 双敌种 · 增益状态 四行 · 奖励道具经济 install 预分配+窗口 · HUD框架-lite 程序化呈现(art-bible 明亮风)· encounter 直供两场(L1×grub / L2 雾×ambusher)。**裁剪**:辅助道具/关卡节点地图–元进度/战斗表现 动画/存档序列化–设置与本地化/棋盘生成 黄金向量与 F4 批量工具/gdUnit/标错惩罚/多战连续。**架构基线**:docs/architecture 不存在——CLAUDE.md 约定 + 数据配置 Rule 1/2/5/6/7 为事实控制清单(切片头注登记;正式 /create-architecture 留切片验证后)。**成功判据**:①无指导完整战斗≤10min ②逐行归因 ③headless 回放逐行相同+冒烟<30s ④Core 零 UI/零数值字面量 ⑤第 3 日循环可演示 ⑥硬时限 5 个工作日。当前阶段:**Phase 4 — Implement(Day 1)**。速度日志:Day 1 开工。 +15. **垂直切片启动(2026-09-10,/vertical-slice Phase 3 检查点)**:概念名 **dungeon-sweeper**,目录 `prototypes/dungeon-sweeper-vertical-slice/`(用户已确认开工)。**验证问题**:玩家从零开始一场战斗,能否无指导 10 分钟内经历完整「开战→挖掘规划→轮末结算逐行兑现→胜/负」循环并逐行归因(P2)——以及能否按 GDD 约束(表值单点/RNG 封闭/结算可回放/Core headless)5 个工作日内以代表性质量建完。**范围内系统**:数据配置(9 表)· 棋盘生成(含 single_subset 求解器 + 双判据验收,用户拍板完整验收)· 排雷玩法 · 行动经济 · 地形变异(迷雾)· 战斗结算 七段编排全量 · 敌人系统 双敌种 · 增益状态 四行 · 地图战斗资源 install 预分配+窗口 · HUD框架-lite 程序化呈现(art-bible 明亮风)· encounter 直供两场(L1×grub / L2 雾×ambusher)。**裁剪**:魔法道具/关卡节点地图–元进度/战斗表现 动画/存档序列化–设置与本地化/棋盘生成 黄金向量与 F4 批量工具/gdUnit/标错惩罚/多战连续。**架构基线**:docs/architecture 不存在——CLAUDE.md 约定 + 数据配置 Rule 1/2/5/6/7 为事实控制清单(切片头注登记;正式 /create-architecture 留切片验证后)。**成功判据**:①无指导完整战斗≤10min ②逐行归因 ③headless 回放逐行相同+冒烟<30s ④Core 零 UI/零数值字面量 ⑤第 3 日循环可演示 ⑥硬时限 5 个工作日。当前阶段:**Phase 4 — Implement(Day 1)**。速度日志:Day 1 开工。 ## 垂直切片速度日志(/vertical-slice,2026-09-10 启动) -- **Day 1(2026-09-10)**:上下文加载(9 份 GDD + registry + 原型)→ 范围确认(用户拍板全量范围 + 棋盘生成 完整验收)→ 全部核心代码一次性落成(数据配置×9 表 + ConfigDB + RngService、棋盘生成 求解器与五阶段管线、排雷玩法/行动经济/战斗结算–奖励道具经济、HUD框架-lite 呈现、冒烟框架)→ headless 冒烟迭代 7 轮修错后 **39/39 全绿(约 3 秒)**:表加载校验、R2 黄金向量 5/5、棋盘生成 双判据+确定性、两遭遇全战斗 3 轮终局、结算步骤流回放逐行相同。**修掉的关键 bug**:① 奖励道具经济 换图后 Retired 相位拒绝重 roll ② 排雷玩法 `_do_dig` 对闭包全量发事件(应只发 O′∖O——重复奖励行根因)+ chain_size 口径 ③ 战斗结算 轮末最后一挖事件被相位守卫丢弃 ④ GDScript 不允许 Dictionary==bool。**重大设计发现**:棋盘生成 参考行 d0.10/0.12 经先布后删后仅幸存 2-3 雷、R₀/|S|≈0.97、残余挖掘 2-4 格(掘近退化板,推理率门槛不可见)——切片临时调参 d0.25/t0.88(数据 + 工具 `smoke/experiment_density.gd` 留档,README 登记表)。 +- **Day 1(2026-09-10)**:上下文加载(9 份 GDD + registry + 原型)→ 范围确认(用户拍板全量范围 + 棋盘生成 完整验收)→ 全部核心代码一次性落成(数据配置×9 表 + ConfigDB + RngService、棋盘生成 求解器与五阶段管线、排雷玩法/行动经济/战斗结算–地图战斗资源、HUD框架-lite 呈现、冒烟框架)→ headless 冒烟迭代 7 轮修错后 **39/39 全绿(约 3 秒)**:表加载校验、R2 黄金向量 5/5、棋盘生成 双判据+确定性、两遭遇全战斗 3 轮终局、结算步骤流回放逐行相同。**修掉的关键 bug**:① 地图战斗资源 换图后 Retired 相位拒绝重 roll ② 排雷玩法 `_do_dig` 对闭包全量发事件(应只发 O′∖O——重复奖励行根因)+ chain_size 口径 ③ 战斗结算 轮末最后一挖事件被相位守卫丢弃 ④ GDScript 不允许 Dictionary==bool。**重大设计发现**:棋盘生成 参考行 d0.10/0.12 经先布后删后仅幸存 2-3 雷、R₀/|S|≈0.97、残余挖掘 2-4 格(掘近退化板,推理率门槛不可见)——切片临时调参 d0.25/t0.88(数据 + 工具 `smoke/experiment_density.gd` 留档,README 登记表)。 - **状态**:循环可演示(Day 1,远早于 Day-3 检查点)。**下一步 = Phase 5 playtest**(用户跑 F5 人工试玩 → 按 vertical-slice 技能问询 → Phase 6 报告)。 -16. **2026-09-11 拍板四条落地(切片程序调整完成)**:① atk 恒存在([1,999] 拒 0、MVP=6、战斗段主角先手、attack_up 唯一修正——attack_up 死行复活)② 奖励两类(即时 75% 五类法 {buff,instant_aoe,instant_heal} 当场兑付 / 可选 25% 入库走窗口、heal_pack w6 p12)③ 库存关内延续(battle_over 不清、level_clear 清、UI 关卡模式共享 奖励道具经济+HP 延续)④ 窗口至多一件(核心截断+文案)。实现主体由并行会话完成,本会话核对补缺口:settlement source_label_map 键去重(hero_action→hero_attack)、config_db required_sources 增 hero_attack、窗口文案、冒烟加 4 条拍板断言。**冒烟 43/43 全绿**;dump 验证:主角攻击 9=6×1.5、减伤叠满免伤轮、dur=1 当次衰减、治疗包入库、伏击 cap4 溢出行。**待办**:五项 GDD/registry 回写(README"2026-09-11 拍板"节全列);playtest Phase 5 仍未做(用户试玩曾因窗口字段 bug 中断,已修)。 +16. **2026-09-11 拍板四条落地(切片程序调整完成)**:① atk 恒存在([1,999] 拒 0、MVP=6、战斗段主角先手、attack_up 唯一修正——attack_up 死行复活)② 奖励两类(即时 75% 五类法 {buff,instant_aoe,instant_heal} 当场兑付 / 可选 25% 入库走窗口、heal_pack w6 p12)③ 库存关内延续(battle_over 不清、level_clear 清、UI 关卡模式共享 地图战斗资源+HP 延续)④ 窗口至多一件(核心截断+文案)。实现主体由并行会话完成,本会话核对补缺口:settlement source_label_map 键去重(hero_action→hero_attack)、config_db required_sources 增 hero_attack、窗口文案、冒烟加 4 条拍板断言。**冒烟 43/43 全绿**;dump 验证:主角攻击 9=6×1.5、减伤叠满免伤轮、dur=1 当次衰减、治疗包入库、伏击 cap4 溢出行。**待办**:五项 GDD/registry 回写(README"2026-09-11 拍板"节全列);playtest Phase 5 仍未做(用户试玩曾因窗口字段 bug 中断,已修)。 - **更正(同日)**:条目 16 所列"待回写 GDD/registry 清单"作废——用户已在文档会话先行完成全部回写(战斗结算/敌人系统/奖励道具经济 GDD、registry、systems-index、数据配置、game-concept、增益状态 的 2026-09-11 批),程序调整即以该批文档为依据。本会话完成的是:程序与文档的逐项对齐核查(五类奖励/75-25 权重/heal_pack w6 p12/库存关卡域/窗口单件含"取首件+诊断"/hero_attack 来源值/锚参照回迁 attack_up/reward tier 行集),README 已改记为"文档对齐核查记录"。冒烟 43/43 维持有效。 + **更正(同日)**:条目 16 所列"待回写 GDD/registry 清单"作废——用户已在文档会话先行完成全部回写(战斗结算/敌人系统/地图战斗资源 GDD、registry、systems-index、数据配置、game-concept、增益状态 的 2026-09-11 批),程序调整即以该批文档为依据。本会话完成的是:程序与文档的逐项对齐核查(五类奖励/75-25 权重/heal_pack w6 p12/库存关卡域/窗口单件含"取首件+诊断"/hero_attack 来源值/锚参照回迁 attack_up/reward tier 行集),README 已改记为"文档对齐核查记录"。冒烟 43/43 维持有效。 17. **垂直切片教训 → HUD框架 GDD 设计输入(2026-09-11 登记,HUD框架 GDD 门禁评审核对项)**:切片试玩两起呈现层崩溃(窗口条目缺字段 round_index / battle_finished 发出后读已销毁的 b2.hero)暴露系统性盲区——已定稿 AC 全部覆盖 core 层,HUD框架 呈现层无测试承载,且 GDScript 编译不查字典字段与时序。**HUD框架 GDD 三条硬性要求(缺项即 blocking)**:① 每个面向呈现的信号载荷成文 schema(对齐 排雷玩法 三事件先例,字段清单入 GDD)② 场景级 headless 测试进 AC(真实实例化 UI 场景 + 驱动完整对局 + 断言零脚本错误;切片的 headless UI 冒烟为其原型)③ 信号时点状态可见性规则(销毁前捕获、载荷数据自包含、禁止呈现层回读核心生命周期状态)。另登记:gdUnit4(数据配置 OQ1)若引入,UI 场景测试以此为载体。 -18. **战斗期望值现状核查 + 实测(2026-09-11,用户问询触发)**:文档侧——**"期望胜轮数 / 期望每轮承伤 / 期望败北轮数"无任何直接设定**;最近的三个既有数字全部过期:① 奖励道具经济 刀供给方向预检(2026-09-09:击杀需求 18/54、供给≈2|资格格|)基于旧权重与"无基础攻击"口径未重算 ② 战斗结算 F5 Δr(清图轮数 L1≈2/L2≈4)基于旧密度参考行 ③ 战斗结算 E_dig=7.2(旧权重 40/25/35)。难度曲线与Boss(此类期望的正当 owner)未开始设计。**实测(smoke/monte_carlo.gd,30 种子 × L1/L2,理性政策)**:胜轮均值 1.80(L1 {1轮×6, 2轮×24} / L2 {1×7, 2×22, 3×1});每轮承伤均值 2.1–2.7、整场承伤中位 0–8(max_hp=50 的 0–16%);每场开安全格 7–8、**每场恰清图 1 次**;败北 0。解析锚:零增益击杀地板 = ⌈18/6⌉ = 3 结算,单层 attack_up → 2 结算。**预警⑥定量坐实:战斗长度与承伤均远低于可玩带,难度杠杆余量巨大**。登记:① 难度曲线与Boss GDD 设计输入 = "战斗期望表"(期望胜轮带/期望承伤占 max_hp 比/期望开格数/败北轮期望,按 (L,D) 曲线)为强制章节 ② 奖励道具经济 预检 + 战斗结算 E_dig/F5 重算义务随 2026-09-11 批触发 ③ smoke/monte_carlo.gd = 难度曲线与Boss 调参期战斗侧批量工具原型(对应 棋盘生成 F4)。 +18. **战斗期望值现状核查 + 实测(2026-09-11,用户问询触发)**:文档侧——**"期望胜轮数 / 期望每轮承伤 / 期望败北轮数"无任何直接设定**;最近的三个既有数字全部过期:① 地图战斗资源 刀供给方向预检(2026-09-09:击杀需求 18/54、供给≈2|资格格|)基于旧权重与"无基础攻击"口径未重算 ② 战斗结算 F5 Δr(清图轮数 L1≈2/L2≈4)基于旧密度参考行 ③ 战斗结算 E_dig=7.2(旧权重 40/25/35)。难度曲线与Boss(此类期望的正当 owner)未开始设计。**实测(smoke/monte_carlo.gd,30 种子 × L1/L2,理性政策)**:胜轮均值 1.80(L1 {1轮×6, 2轮×24} / L2 {1×7, 2×22, 3×1});每轮承伤均值 2.1–2.7、整场承伤中位 0–8(max_hp=50 的 0–16%);每场开安全格 7–8、**每场恰清图 1 次**;败北 0。解析锚:零增益击杀地板 = ⌈18/6⌉ = 3 结算,单层 attack_up → 2 结算。**预警⑥定量坐实:战斗长度与承伤均远低于可玩带,难度杠杆余量巨大**。登记:① 难度曲线与Boss GDD 设计输入 = "战斗期望表"(期望胜轮带/期望承伤占 max_hp 比/期望开格数/败北轮期望,按 (L,D) 曲线)为强制章节 ② 地图战斗资源 预检 + 战斗结算 E_dig/F5 重算义务随 2026-09-11 批触发 ③ smoke/monte_carlo.gd = 难度曲线与Boss 调参期战斗侧批量工具原型(对应 棋盘生成 F4)。 -19. **垂直切片 v2——第一关完整关卡(2026-09-11,/vertical-slice 扩展批)**:用户拍板线性第一关(无路径分支):**战×2 → 随机主动道具点 → 战×2 → 血量恢复点 → Boss 房**,同步进入数值设计(元进度模拟)。落地:① **LevelTable**(新表 `level.tres` + schema——线性节点链数据位,节点 enum {battle,reward,rest,boss},末节点必须 Boss;ConfigDB 挂表 + 跨表校验⑧"battle/boss 节点 (L,D) 在 board_gen/enemy 有精确行")② **关卡节点地图-lite 推进器** `core/level_runner.gd`(关卡域生命周期 owner:共享 奖励道具经济 + HP 携带 + 节点兑付 + 关卡末 level_clear + 测试面板 hero 覆盖;Core 零 UI 依赖)③ **奖励道具经济.grant_node_active()**(接口漂移登记——可选类活行 roll 一件入库,reward_roll 恰一 scope)④ **敌人系统 spawn max_hp 修复**(原 max_hp=hero_hp 入参压扁携带 HP——恢复点/治疗包满血守卫失效)⑤ EnemyTable L1 深度轴 D0–D4(蛆虫24×1 / 蛆虫群24×2 / 伏击兽36·atk6 / 伏击兽群26×2 / Boss 遗迹守卫130·atk7·环[A,A,C,H])⑥ BoardGen D1–D4 行(D0/D1 10×10、D2-D4 12×12;**d0.28/t0.87 不达标降级告警 best≈0.81 已回退 0.25/0.88**)⑦ UI:节点进度条 + 奖励/恢复覆盖层 + **测试用角色数值调整板**(atk%/hp% 0–300 滑条 + 批量模拟——与 headless 扫描同口径 `smoke/level_autoplay.gd`)。工具:`smoke/level_monte_carlo.gd`(atk%×hp% 网格扫描:通关率/承伤期望/败北节点分布——难度曲线与Boss 关卡侧批量工具原型)+ `level_debug.gd`(单关诊断)。冒烟 55/55(新增关卡 10 断言:满配通关/裸装败北/奖励点入库/恢复点公式/Dmax 解析/关卡回放确定性/hero 基线恢复)。**首版调参实测**:敌 HP 208 时基线通关率 73%——预警⑥关卡尺度坐实,v2 上调至 290 后复测中。**登记**:地形变异 迷雾 unlock_level=2 纪律遵守(L1 全程无雾);GDScript 多行 lambda 内嵌 match 解析不可靠(信号处理体一律静态方法+bind);冒烟两断言错误教训(level_clear 快照=清库前计数/恢复点公式须用生效 max_hp)。**v2 复测**:基线 55% 通关 / +50% 70% / +100% 100% / +100%hp 100%——"数值提升→通关期望改善"曲线成立(数据见切片 README)。 +19. **垂直切片 v2——第一关完整关卡(2026-09-11,/vertical-slice 扩展批)**:用户拍板线性第一关(无路径分支):**战×2 → 随机主动道具点 → 战×2 → 血量恢复点 → Boss 房**,同步进入数值设计(元进度模拟)。落地:① **LevelTable**(新表 `level.tres` + schema——线性节点链数据位,节点 enum {battle,reward,rest,boss},末节点必须 Boss;ConfigDB 挂表 + 跨表校验⑧"battle/boss 节点 (L,D) 在 board_gen/enemy 有精确行")② **关卡节点地图-lite 推进器** `core/level_runner.gd`(关卡域生命周期 owner:共享 地图战斗资源 + HP 携带 + 节点兑付 + 关卡末 level_clear + 测试面板 hero 覆盖;Core 零 UI 依赖)③ **地图战斗资源.grant_node_active()**(接口漂移登记——可选类活行 roll 一件入库,reward_roll 恰一 scope)④ **敌人系统 spawn max_hp 修复**(原 max_hp=hero_hp 入参压扁携带 HP——恢复点/治疗包满血守卫失效)⑤ EnemyTable L1 深度轴 D0–D4(蛆虫24×1 / 蛆虫群24×2 / 伏击兽36·atk6 / 伏击兽群26×2 / Boss 遗迹守卫130·atk7·环[A,A,C,H])⑥ BoardGen D1–D4 行(D0/D1 10×10、D2-D4 12×12;**d0.28/t0.87 不达标降级告警 best≈0.81 已回退 0.25/0.88**)⑦ UI:节点进度条 + 奖励/恢复覆盖层 + **测试用角色数值调整板**(atk%/hp% 0–300 滑条 + 批量模拟——与 headless 扫描同口径 `smoke/level_autoplay.gd`)。工具:`smoke/level_monte_carlo.gd`(atk%×hp% 网格扫描:通关率/承伤期望/败北节点分布——难度曲线与Boss 关卡侧批量工具原型)+ `level_debug.gd`(单关诊断)。冒烟 55/55(新增关卡 10 断言:满配通关/裸装败北/奖励点入库/恢复点公式/Dmax 解析/关卡回放确定性/hero 基线恢复)。**首版调参实测**:敌 HP 208 时基线通关率 73%——预警⑥关卡尺度坐实,v2 上调至 290 后复测中。**登记**:地形变异 迷雾 unlock_level=2 纪律遵守(L1 全程无雾);GDScript 多行 lambda 内嵌 match 解析不可靠(信号处理体一律静态方法+bind);冒烟两断言错误教训(level_clear 快照=清库前计数/恢复点公式须用生效 max_hp)。**v2 复测**:基线 55% 通关 / +50% 70% / +100% 100% / +100%hp 100%——"数值提升→通关期望改善"曲线成立(数据见切片 README)。 20. **Playtest 三缺陷修复 + 奖励期望汇报(2026-09-11,用户 F5 试玩反馈批)**:**缺陷① UI 抖动**——悬停文案换行推挤侧栏布局、"第 N 轮"库存行被挤出视口;修复 = 侧栏全部动态区固定槽高 + clip_contents(区域独立、超长裁剪不回流)。**缺陷② Boss 战 AP 用完不结算(软锁)**——根因 = **排雷玩法 核心 bug(v1 即存在)**:`_do_flag_place/_do_flag_pull` 花完末点 AP 后 行动经济 翻 Waiting 但不发 round_end,战斗结算 的 Waiting 结算点依赖该事件 → 永不结算;v1 冒烟盲区根源 = 自动玩家不用旗。修复 = 旗动作补发 `_emit_round_end_flags_and_payload()`(与 `_do_dig` 同款);正式侧义务 = 排雷玩法 GDD F4 事件序契约补"旗动作路径 round_end 发射"(接口漂移)。**新增测试载体**:`smoke/ui_click_probe.tscn` 行为探针(合成鼠标事件走真实 UI 路径,随机混合插旗/拔旗/停手/窗口期刷新/无效点击——4 种子全关通扫);smoke_all 加旗动作耗尽 AP 回归断言。连带:L1 12×12 板 max_gen_attempts 16→24(16 次偶发接受最优 best≈0.85–0.87)。**奖励期望汇报(只汇报未改值)**:每资格格 P(可选类)=25%;实测每关合计 ≈24.8 件(≈18.5 刀)——"道具期望太高"定量坐实。工具 `smoke/reward_expectation.gd`。 -21. **可选类供给控制器(2026-09-11 用户拍板批——伪代码审阅后落地)**:用户重新定义三尺度指标——**格 <0.01 / 板≈0.78 / 战斗期望≈1(首件保证 + 指数递减)**,可选类退出格子权重池。拍板四条:① 注入占比小刀 60/精工 30/**治疗包 10**(治疗宝贵)② 清图奖励改**一次性高额伤害**(clear_blast instant_aoe 40——不入库不占供给,清图与可选类脱钩;首图清图必得=注入格必被打开的自然推论)③ 注入选格**均匀随机** ④ **指数递减**(active_p0=0.4/active_decay=0.5,RewardConfigTable 新参数)。**实现结构(对象封装,回应用户架构批评)**:新类 `RewardSupplyController`(奖励道具经济 私有组合件:notify_battle_start/should_inject/notify_granted/granted_count;行值快照抗热重载;零自有随机数)· 奖励道具经济(_supply 组合/notify_battle_start 转发/roll_board 重写删 F5 循环/grant 挂钩"发放即获取")· 战斗结算(begin_battle 调 b4.notify_battle_start)· 表(reward.tres 三刀行移 active_inject 池 60/30/10 + clear_blast;k_dmg=0 F5 休眠)· 护栏(clear_no_value 含即时类/no_damage_row 扫全池/inject_pool 新护栏)。**实测**:注入 1.00/板 + 占比 60/30/10 + 零泄漏(N=200/深度);**实际获取 ≈0.68–0.91 件/战**(<分配保证 1.0 的机理 = 注入格均匀随机可能落残余格/速杀未挖区,攻击越高速杀越明显;**"战斗末 j==0 补发 1 件"兜底待用户拍板**);每关合计 ≈4.5–6.5 件(原 24.8)✓。冒烟 74/74(+14 供给断言:首件保证恒真/递减统计/占比/清图新语义/发放计数/战斗重置)。行为探针复扫通过(通关剩余道具 ×1——原 ×9)。**⚠️ 供给侧副作用(扫描发现,待拍板)**:可选类退出格子池释放的 25% 概率质量被动流向即时类——buff 每格频率 44%→59%,基线通关率 55%→80%、承伤 127→80,难度方向反了;"每格必有货"锁定下无法引入空白格,候选杠杆 = ①敌 HP 对冲(难度曲线与Boss 主杠杆)②压 attack_up/defense_up 相对权重 ③降 buff 幅度(触 增益状态 表值)。**正式侧义务**:奖励道具经济 GDD F5 章节修订 + registry reward_table/reward_config 改写(接口漂移批)。 +21. **可选类供给控制器(2026-09-11 用户拍板批——伪代码审阅后落地)**:用户重新定义三尺度指标——**格 <0.01 / 板≈0.78 / 战斗期望≈1(首件保证 + 指数递减)**,可选类退出格子权重池。拍板四条:① 注入占比小刀 60/精工 30/**治疗包 10**(治疗宝贵)② 清图奖励改**一次性高额伤害**(clear_blast instant_aoe 40——不入库不占供给,清图与可选类脱钩;首图清图必得=注入格必被打开的自然推论)③ 注入选格**均匀随机** ④ **指数递减**(active_p0=0.4/active_decay=0.5,RewardConfigTable 新参数)。**实现结构(对象封装,回应用户架构批评)**:新类 `RewardSupplyController`(地图战斗资源 私有组合件:notify_battle_start/should_inject/notify_granted/granted_count;行值快照抗热重载;零自有随机数)· 地图战斗资源(_supply 组合/notify_battle_start 转发/roll_board 重写删 F5 循环/grant 挂钩"发放即获取")· 战斗结算(begin_battle 调 b4.notify_battle_start)· 表(reward.tres 三刀行移 active_inject 池 60/30/10 + clear_blast;k_dmg=0 F5 休眠)· 护栏(clear_no_value 含即时类/no_damage_row 扫全池/inject_pool 新护栏)。**实测**:注入 1.00/板 + 占比 60/30/10 + 零泄漏(N=200/深度);**实际获取 ≈0.68–0.91 件/战**(<分配保证 1.0 的机理 = 注入格均匀随机可能落残余格/速杀未挖区,攻击越高速杀越明显;**"战斗末 j==0 补发 1 件"兜底待用户拍板**);每关合计 ≈4.5–6.5 件(原 24.8)✓。冒烟 74/74(+14 供给断言:首件保证恒真/递减统计/占比/清图新语义/发放计数/战斗重置)。行为探针复扫通过(通关剩余道具 ×1——原 ×9)。**⚠️ 供给侧副作用(扫描发现,待拍板)**:可选类退出格子池释放的 25% 概率质量被动流向即时类——buff 每格频率 44%→59%,基线通关率 55%→80%、承伤 127→80,难度方向反了;"每格必有货"锁定下无法引入空白格,候选杠杆 = ①敌 HP 对冲(难度曲线与Boss 主杠杆)②压 attack_up/defense_up 相对权重 ③降 buff 幅度(触 增益状态 表值)。**正式侧义务**:地图战斗资源 GDD F5 章节修订 + registry reward_table/reward_config 改写(接口漂移批)。 22. **缺陷④ 道具使用后不消失(2026-09-11 用户 playtest 反馈批)**:可用次数语义本身存在且正确(`b4.use()` 一次性标记 Used 不可逆,库存过滤 InStock)——真实根因 = **UI 层契约违例**:战斗结算 窗口选择语义 = `_window_items` 位置(义务④"选定序"),UI 选用按钮传 `item.index`(库存数组句柄);未消耗过时二者巧合相等,消耗过一件后句柄=位置+已耗数错位 → 选中件不消耗、邻件被误耗(Boss 战道具多、多次消耗后暴露)。修复 = UI 与行为探针统一传窗口位置;行为探针加"选用必生效"断言(选中件库存态必须变 Used,失效即退出码非零——种子 7/23 实测生效 1/2、失效 0)。冒烟 74/74 维持。**登记义务**:战斗结算 义务④"选定序"在 GDD 中补一句"选择序列元素 = 窗口条目位置、非库存句柄"(防正式实现复发)。 @@ -73,8 +73,8 @@ 26. **代码规范成文 + CLAUDE.md 必读门(2026-09-11 用户拍板)**:用户令将全部已指出的陋习总结成规范文档。落地:**`docs/code-conventions.md`**(新建)——六类纪律(结构:禁上帝对象/类封装/依赖单向/领域命名/禁事实约定;契约:信号事件成文与发射完整性/标识符语义单一/覆盖层层级/状态字段显式;测试:场景探针标配/打开可见性断言/缺陷沉淀回归断言/提交前全量;语言:GDScript 六条实战坑;数值:口径显式/先测后调/跨尺度推演/拍板零发挥;流程:伪代码审阅→实现→双登记)+ **缺陷-规范对照表**(缺陷①②④⑤、上帝对象、ID 命名、可选类 24.8 件——每条规则挂本项目真实反面案例)。**CLAUDE.md**:原命名节替换为「代码规范(写代码前必读)」门 + 摘要,指向 docs/code-conventions.md 为单一事实源。回归:冒烟 74/74、ui_probe PASS(文档批不触代码,例行确认)。 -27. **轮内刷新方案 A 落地(2026-09-12 用户拍板批)**:用户确认刷新实现(仅 Waiting 受理)与设计预期不符(预期 = 扫雷阶段遇推理死路、有剩余 AP 且 RAP 足够即当场刷新继续挖)。**影响分析先行**(三方案对比:A 轮内不打断轮次 / B 停手+刷新组合宏 / 时间税差异点破——"刷新是否触发敌方结算"是唯一实质差异;16 代码触点 + 8 文档 + 5 数值连锁清单)→ 用户拍板 **方案 A**:Active 相位当场换图继续挖、AP 保留不重置、不触发结算、RAP 够即可、**每轮兜底上限 2 次**(表值 refresh_max_per_round)。**实现**:行动经济 `request_refresh_active()`(仅扣 RAP)· 排雷玩法 install/retire 增 `during_round` 显式通道(其余守卫不变)· 战斗结算 `can_request_refresh()` + 双相位重写 + 每轮计数 · **facts 身份快照隔离**(实现批新暴露的深坑:轮内换图后旧图已挖未结算格与新图坐标重叠,轮末 grant 错拿新图身份——解法 = 缓冲期 `query_full_snapshot` 冻结身份、授予直通快照绕过现行 mapping/_granted)· 奖励道具经济 `query_full_snapshot()` · HUD 按钮"弃图刷新(RAP -8 · 每轮至多 2 次)"。**验证**:冒烟 88/88(+14:当场换图/相位 AP 保留/RAP 扣减/上限拒绝/跨图 facts 完整兑现〔4 格跨三图〕/回放确定性)· 三探针全 PASS · 期望扫描持平(模拟策略不刷图——真人专用出口,playtest 观测项)。**调试教训**:蛆虫 HP 24(已调)误判 18 未掉血——排查先核对当前表值;GDScript lambda 对局部 int 按值捕获(smoke 计数器改容器)。**正式侧义务**:行动经济/战斗结算/奖励道具经济 GDD + game-concept 层级措辞 + registry 修订清单见切片 README"2026-09-12 轮内刷新"节;数值连锁(清图支配性条款⑤/真人刷图行为获取期望)待 playtest 实测。 -28. **Task: Designing 难度曲线与Boss GDD**(2026-09-12 启动,/design-system --review solo)· File: `design/archive/gdd-2026-09-14/c3-difficulty-curve.md` · 上下文摘要已呈现(上游 数据配置/敌人系统/战斗结算 全 Approved;锁定事实:clause3_supply 满配破线约束、战斗结算 条款⑤未闭合约束包、棋盘生成 Boss=Dmax 约定 + OQ6、地形变异 scope=global 语义位、奖励道具经济 全部 provisional 值归 难度曲线与Boss;切片实测现状:敌深度轴 D0-D4/供给 p0-0.4/基线通关 55-80%) +27. **轮内刷新方案 A 落地(2026-09-12 用户拍板批)**:用户确认刷新实现(仅 Waiting 受理)与设计预期不符(预期 = 扫雷阶段遇推理死路、有剩余 AP 且 RAP 足够即当场刷新继续挖)。**影响分析先行**(三方案对比:A 轮内不打断轮次 / B 停手+刷新组合宏 / 时间税差异点破——"刷新是否触发敌方结算"是唯一实质差异;16 代码触点 + 8 文档 + 5 数值连锁清单)→ 用户拍板 **方案 A**:Active 相位当场换图继续挖、AP 保留不重置、不触发结算、RAP 够即可、**每轮兜底上限 2 次**(表值 refresh_max_per_round)。**实现**:行动经济 `request_refresh_active()`(仅扣 RAP)· 排雷玩法 install/retire 增 `during_round` 显式通道(其余守卫不变)· 战斗结算 `can_request_refresh()` + 双相位重写 + 每轮计数 · **facts 身份快照隔离**(实现批新暴露的深坑:轮内换图后旧图已挖未结算格与新图坐标重叠,轮末 grant 错拿新图身份——解法 = 缓冲期 `query_full_snapshot` 冻结身份、授予直通快照绕过现行 mapping/_granted)· 地图战斗资源 `query_full_snapshot()` · HUD 按钮"弃图刷新(RAP -8 · 每轮至多 2 次)"。**验证**:冒烟 88/88(+14:当场换图/相位 AP 保留/RAP 扣减/上限拒绝/跨图 facts 完整兑现〔4 格跨三图〕/回放确定性)· 三探针全 PASS · 期望扫描持平(模拟策略不刷图——真人专用出口,playtest 观测项)。**调试教训**:蛆虫 HP 24(已调)误判 18 未掉血——排查先核对当前表值;GDScript lambda 对局部 int 按值捕获(smoke 计数器改容器)。**正式侧义务**:行动经济/战斗结算/地图战斗资源 GDD + game-concept 层级措辞 + registry 修订清单见切片 README"2026-09-12 轮内刷新"节;数值连锁(清图支配性条款⑤/真人刷图行为获取期望)待 playtest 实测。 +28. **Task: Designing 难度曲线与Boss GDD**(2026-09-12 启动,/design-system --review solo)· File: `design/archive/gdd-2026-09-14/c3-difficulty-curve.md` · 上下文摘要已呈现(上游 数据配置/敌人系统/战斗结算 全 Approved;锁定事实:clause3_supply 满配破线约束、战斗结算 条款⑤未闭合约束包、棋盘生成 Boss=Dmax 约定 + OQ6、地形变异 scope=global 语义位、地图战斗资源 全部 provisional 值归 难度曲线与Boss;切片实测现状:敌深度轴 D0-D4/供给 p0-0.4/基线通关 55-80%) 29. **主架构文档产出(2026-09-12,/create-architecture 全流程,solo 模式)**:`docs/architecture/architecture.md` v1.0 已写入(TD 自评 APPROVED WITH CONDITIONS;LP-FEASIBILITY 按 solo 跳过;`.claude/docs/director-gates.md` 缺失登记 QQ-10)。要点:① 20 系统五层映射(依据 systems-index 依赖分层,切片实现验证)② 模块所有权地图(Owns/Exposes/Consumes/引擎 API,含切片新增件 RewardSupplyController/LevelTable/level_runner)③ 四条数据流(帧更新/事件信号/存档快照/初始化顺序)④ API 边界契约表(GDD AC 前言为规范源)⑤ ADR 审计:现存 0 份;63 条 TR 可追溯性 = 46 条架构文档+GDD 承载 / 12 条待 ADR / 5 条随未设计系统,0 孤儿 ⑥ **Required ADRs 13 项分级**(必须编码前:ADR-0001 事件总线与编排载体〔推荐组合根直连 signal + Waiting 相位触发〕/ ADR-0002 渲染器与窗口〔推荐 2D 用 gl_compatibility〕/ ADR-0003 场景结构与棋盘渲染 / ADR-0004 测试载体与 CI;应有:ADR-0005 生成性能 / 0006 单位 API face 归属 / 0007 零伤害护栏落点 / 0008 切片机制正式化;可推迟:0009–0013)⑦ 架构七原则(Core headless / 单一事实源 / 封闭 RNG 可回放 / 编排唯一性 / fail-fast 零特判 / 依赖单向组合根 / 呈现层契约成文)⑧ QQ-01–10 开放问题。**同批执行**:review-mode.txt 写入 solo(用户拍板"前期不需参与太多");引擎参考 refresh 批(breaking-changes/deprecated-apis/VERSION/current-best-practices 四文件,风险 HIGH→MEDIUM)。**下一步(按 ADR 优先级)**:`/architecture-decision "event-bus-and-orchestration-carrier"` 等 4 个 Foundation ADR → /architecture-review(新会话)→ /gate-check 前置项(/test-setup /ux-design)。注意:与条目 28 的 难度曲线与Boss GDD 设计会话并行中——ADR-0001/0002 落定结果与 难度曲线与Boss 无接口冲突(难度曲线与Boss 消费 战斗结算 对账输出为文档层事实依赖)。 → **GDD 完成(2026-09-12 同会话)**:12 节全部写入(用户全权委托——"所有选择按推荐",逐节问询按用户指示跳过;solo 模式专员代理跳过已在各节登记)。关键决策:① 承载结构 = 直填行值主体 + DifficultyTable 修饰结构位(MVP 空表,敌人系统 Rule 10 兑现)② 切片 SLICE-TUNED 行集转正 MVP 默认曲线 ③ 难度期望表(通关率目标带 L1 基线 40–60%/供给平衡带 [1.1,2.0]——F5/F6)④ F1–F7 全部为设计期工具式、运行时零新增公式 ⑤ 战斗结算 条款③⑤/预警⑥约束承接:条款⑤ MVP 接受非支配设计态(C 量级不上调,OQ4 playtest 观测弃图率)⑥ 地形变异 scope=global 语义定稿(仅 Boss/精英图,MVP 不产生行)⑦ Boss 血量占比 0.81 越带如实登记 OQ2。registry +3 条目(difficulty_table/difficulty_expectation_table/boss_dmax_convention)· systems-index 难度曲线与Boss → Designed。**注意:未经 /design-review——solo 出稿待人工复核,独立评审须新会话 `/design-review design/archive/gdd-2026-09-14/c3-difficulty-curve.md`**。 29. **难度曲线与Boss GDD 落地切片 + 试玩采集清单(2026-09-12)**:用户拍板跳过 /design-review(solo 出稿待复核状态维持),难度曲线与Boss 设计承诺直接落回切片试玩。落地:**DifficultyTable 结构位**(schema 域校验+越域 warning / 空表 difficulty.tres / ConfigDB 挂载 + resolve_difficulty_modifiers(精确匹配+clamp)/ 敌人系统.spawn 套乘钩子(行值快照前,MVP 空表恒 1.0))——AC-10 断言含注入套乘(×1.5/×2.0)与越域 clamp(50→10)验证;切片调参登记转正标记;**试玩采集清单**(OQ3 真人修正系数/OQ2 Boss 血量/OQ6 刷新使用/OQ4 弃图倾向/台阶可感知性/供给体感——README 专节)。冒烟 **96/96**(+8)。下一步 = 用户 F5 试玩采集 → OQ 裁决 → (可选)新会话 /design-review。 @@ -86,7 +86,7 @@ 30. **试玩日志器 + 诊断转储(2026-09-12 用户需求批——playtest 数据采集基建)**:① 战斗结算 新增 `settlement_snapshot` 信号(每结算末尾全量状态快照:判定段重构为 verdict 先算→快照→分支——快照含 despawn 前终局;板序号 _board_seq 归因)② 新组件 `presentation/playtest_logger.gd`(JSONL 持久化 user://logs/playtest_*.jsonl:session/settlement/battle_end/node/level_end 五类行 = 完整试玩时间线;环形缓冲 200 结算行/100 操作)③ HUD 诊断按钮(卡死点击 → 全量核心状态 + 环形缓冲 → diag_*.json——行为探针 _dump_state 产品化;GDScript 无运行时堆栈 API,状态等待型软锁正对症)。**日志首秀即抓真 bug**:_start_full_level 面板加成双写叠加(apply 写表 18 → runner 以 18 为基线 ×3 → atk 54)——修复 = 关卡模式单一应用路径(runner 写表),日志 atk 54→18 证实;教训 = 同一加成多应用路径须单一事实源 + JSONL 快照是数值回归最低成本探测器。冒烟 103/103(+7)。 -34. **战斗屏 UX 规格产出(2026-09-12,/ux-design battle,自主模式用户委托"缺失补充")**:`design/ux/battle.md` 已写入(Status: Complete 待 /ux-review;14 节 + 上游义务对照表)。**最大决策 = 常驻双舞台分屏**(用户布局图拍板):战斗画面(252px 顶区)+ 角色信息(240px 左下)+ 扫雷图(中下 ~760px)+ 道具(280px 右下)+ 顶栏关卡进度条(1280×800 基座)——**对 战斗表现"双舞台陷阱"的裁决输入 = 同屏双舞台第三形态**(非独立战斗场景),战斗表现 前战斗表现美术测试按此布局出样。关键裁决:道具窗口 = 右栏原位激活(非中央弹窗);移动路径预览 = 合法性指示(排雷玩法×6⑤ 悬案裁决,穿行动画留痕不采纳);结算明细带常驻战斗画面底部(P2 逐行归因,点击展开回看);状态效果空态 = 槽隐藏。**全部 HUD框架 呈现义务逐条落位**(排雷玩法×6/行动经济/地形变异×3/战斗结算×3〔UX Flag 结算屏+窗口〕/敌人系统×4/增益状态×4/奖励道具经济×5 + 棋盘生成 EC5——spec §13 对照表供门禁核对),AC 含 entry 17 三条场景级硬性要求(信号载荷 schema 成文/场景级 headless 测试/信号时点可见性)+ 缺陷①④⑤回归断言。**登记缺口(gate-check Pre-Production 视角)**:`design/accessibility-requirements.md` 与 `design/ux/interaction-patterns.md` 两件套仍未建(spec 内建 WCAG AA 基线承诺,正式分层待补);相邻域屏 NodeOverlay/关卡结算建议后续 spec(design/ux/node-reward.md)。**下一步 = /ux-review design/ux/battle.md(新会话)→ HUD框架 GDD(设计顺序第 10 位,MVP 最后一块,以本 spec 为呈现义务承载依据)→ /review-all-gdds → /gate-check**。**同日修订(用户反馈拍板)**:道具来源不呈现——库存列表逐件描述由"来源格/轮"改为**属性简述**(行值快照投影派生:伤害/回复/增益一句话;tooltip=完整描述+触发注记,不含来源);来源数据仍在 奖励道具经济 窗口载荷契约中(不改数据层),归因职责由结算明细行的逐行来源标注承载(P2 不受影响)。 +34. **战斗屏 UX 规格产出(2026-09-12,/ux-design battle,自主模式用户委托"缺失补充")**:`design/ux/battle.md` 已写入(Status: Complete 待 /ux-review;14 节 + 上游义务对照表)。**最大决策 = 常驻双舞台分屏**(用户布局图拍板):战斗画面(252px 顶区)+ 角色信息(240px 左下)+ 扫雷图(中下 ~760px)+ 道具(280px 右下)+ 顶栏关卡进度条(1280×800 基座)——**对 战斗表现"双舞台陷阱"的裁决输入 = 同屏双舞台第三形态**(非独立战斗场景),战斗表现 前战斗表现美术测试按此布局出样。关键裁决:道具窗口 = 右栏原位激活(非中央弹窗);移动路径预览 = 合法性指示(排雷玩法×6⑤ 悬案裁决,穿行动画留痕不采纳);结算明细带常驻战斗画面底部(P2 逐行归因,点击展开回看);状态效果空态 = 槽隐藏。**全部 HUD框架 呈现义务逐条落位**(排雷玩法×6/行动经济/地形变异×3/战斗结算×3〔UX Flag 结算屏+窗口〕/敌人系统×4/增益状态×4/地图战斗资源×5 + 棋盘生成 EC5——spec §13 对照表供门禁核对),AC 含 entry 17 三条场景级硬性要求(信号载荷 schema 成文/场景级 headless 测试/信号时点可见性)+ 缺陷①④⑤回归断言。**登记缺口(gate-check Pre-Production 视角)**:`design/accessibility-requirements.md` 与 `design/ux/interaction-patterns.md` 两件套仍未建(spec 内建 WCAG AA 基线承诺,正式分层待补);相邻域屏 NodeOverlay/关卡结算建议后续 spec(design/ux/node-reward.md)。**下一步 = /ux-review design/ux/battle.md(新会话)→ HUD框架 GDD(设计顺序第 10 位,MVP 最后一块,以本 spec 为呈现义务承载依据)→ /review-all-gdds → /gate-check**。**同日修订(用户反馈拍板)**:道具来源不呈现——库存列表逐件描述由"来源格/轮"改为**属性简述**(行值快照投影派生:伤害/回复/增益一句话;tooltip=完整描述+触发注记,不含来源);来源数据仍在 地图战斗资源 窗口载荷契约中(不改数据层),归因职责由结算明细行的逐行来源标注承载(P2 不受影响)。 31. **试玩批次 1 → v3 数值批(2026-09-12,F7 流程首次完整实践)**:用户 6 项反馈(满血全通关/Boss OK 或可上调/刷新零使用/零弃图/DND 命名指令/道具先保留)→ 裁决:OQ3 方向确认(真人>>模拟)、OQ2 初步裁决(F3 带 [0.35,0.55]→[0.5,1.1])、OQ4 初步关闭(非支配成立)、OQ6 读数(盲猜墙不足非刷新太顺滑——密度杠杆留观测)。**v3 数值批**:atk +50%(7/5/9/6/9)、Boss 150/9、DND 命名(goblin/bugbear/ogre_chief——enemy_id 同步更名)、L2 锚行同步。**调试收获**:D0 hp 20 会被首轮盲挖粉尘(12)+先手(9)秒杀——旗回归断言 FAIL 抓获,回 24("有过程有痛感"原则:掉血压力 ≠ 秒杀);冒烟硬编码行值断言随数值批同步是维护成本(后续改数据驱动)。**v3 扫描**:基线 60% 带内上沿、败北 4/6 集中 Boss、天赋曲线成立。冒烟 103/103。难度曲线与Boss GDD 回写(F3/OQ/试玩批次记录)+ README + 本条。**下一批 = v3 真人试玩(OQ3 定量/OQ2 终裁)→ 视数据定 v4。** 32. **Peglin 对比研究报告(2026-09-12,用户问"Roguelike 体现"触发)**:报告 = `design/research/peglin-comparison-2026-09-12.md`(数据源 peglin.wiki.gg 逐页核实:Peglin 基础 HP 100、Forest 敌 60-65HP/1-5伤、Boss 900、精英 500、每场战后回复、每场遗物选择)。**三根因结论**:① 构筑密度差一个量级(Peglin 每场 1 次遗物选择 vs 我们每关 6 件——"局感"第一根因)② 遭遇零随机+线性无分支 ③ 资源模型不同(Peglin 战后回复+低伤多场 vs 我们无回复+高伤少场——**数值不可直接移植,只可比结构比例**)。**行动建议**:本切片可做 = 遭遇随机化(同敌种 unit_count 区间掷骰,不触 敌人系统 行集锁定);后置 = 多波战斗(战斗结算 波次表)/遗物协同(先设计协同再提密度)/战后回复(绑定敌 atk 下调)。用户决策点 = 是否本切片做遭遇随机化。 33. **遭遇随机化落地(2026-09-12 用户拍板——Peglin 对比报告结论 2 的本切片项)**:报告 `design/research/peglin-comparison-2026-09-12.md`(三根因:构筑密度/零随机/资源模型;数值不可移植只可比结构比例)。**用户拍板先做遭遇随机化**。难度曲线与Boss GDD 增补 Core Rule 8(unit_count 区间 [unit_count, unit_count_max] 均匀骰 + encounter 流 + 敌人系统 零随机纪律保持 + 教学位不加骰)。实现:RngService 第三流 encounter(SALT 0x5DEECE66D2545F491,三流计数器重播种断言同步)/ EnemyTable unit_count_max 字段(可省略,域 [unit_count,3])/ enemy.tres 三行区间(D0 [1,2]、D1 [2,3] hp13、D3 [2,3] hp18;D2/Boss 教学位固定)/ 战斗结算.begin_battle 掷骰(erow 预解析 → override 传 spawn)/ 敌人系统.spawn override 参数。registry rng_service 条目接口漂移登记。**扫描**:基线 47%(v3 定值 60% → 区间期望总量 +8% 叠加;F5 带内 ✓)——区间骰使难度分布更宽(运气进入遭遇层 = Roguelike 体核心)。冒烟 149/149(+46)。**待办**:批次 2 试玩(v3+区间双变量采集 OQ3 定量);多波战斗/遗物协同/战后回复 = Alpha 评估(报告第三节)。 @@ -97,26 +97,26 @@ 38. **呈现层 code-review 修复批(2026-09-12,/code-review CHANGES REQUIRED → 用户拍板全项修复)**:全切片 53 脚本评审(含两 specialist 并行审查 views/ 与 smoke/+schemas/)裁决 7 项必改,本批清偿:① **TunePanel 封装破口**(视图直写 hero 表 + 视图 load smoke 驱动 core → 面板模拟 pct² 口径 + 模拟后表值残留污染真实对局)——重构纯视图信号外发,加成落表收口组合根 `_apply_hero_override` 单一路径(每次从基线幂等重算),模拟编排拆 `tune_sim_controller.gd` ② **意图徽标双翻译**(presenter 译中文投影 vs EnemyCardView 英文 key 匹配 → 色相/重击标记永久失效)——presenter 直传 敌人系统 原键,渲染映射唯一定义处归 EnemyCardView ③ **C 区 RAP 死分支**(presenter 从不投影 a3.rap,行动经济对 HUD框架 的清零反馈不可达)——持续投影 + 视图改 `_last_rap` 成员存储 ④ **smoke_all 恒真断言**改带标签真实断言 ⑤ **level_runner core↔core 接线 lambda ×4 → 方法 Callable**(ADR-0001 S6)⑥ **战斗结算 `diagnostic_snapshot()` 诊断观测面**(main/click_probe 零私有字段直读)⑦ **main.gd 761→667**:节点构建/模态层级/叙事文案/模拟编排四拆分(ui_assembler + modal_stack + battle_narrator + tune_sim_controller,均无 class_name 走 preload;.uid 已生成)——剩余为 ADR 规定组合根职责,进一步压缩登记 HUD框架 批候审。探针同步:ui_tune_probe 重写(真实按钮路径接缝 + 两条双写叠加回归断言)、click_probe 改诊断 API。**验证**:smoke 141/141 · 三探针全 PASS(click 六种子)。登记待办:自动玩家四份复制收口 / schema 溯源行 / S1–S8 扫描脚本化 + S1 豁免口径 / views 转发信号契约头注。 - + -39. **封装收口批落地(2026-09-13,architecture-review 改编批 → 用户拍板 P1+P2+P3 全修)**:代码架构审查报告 `docs/architecture/code-architecture-review-2026-09-13.md`(Verdict: CONCERNS——分层纪律 S1–S7 全合规,封装欠账 = 核心状态公有 + 呈现层链式穿透)。本批清偿:**E1** 战斗结算 协作对象 a1/b2/b3/b4 私有化 + `presentation_snapshot()/is_battle_live()/stock_count()/query_reward_identity()` 成文呈现面(a2/a3 保留公有 = API Boundaries 登记的 HUD框架 契约面);**E2** 排雷玩法 board/revealed/flags 私有化 + `current_board()/reveal_record()`(board_view 直读 `.revealed` 的自相矛盾收口);**E3** 敌人系统 hero/enemies 私有化 + `hero_unit()/all_enemies()` 投影(presenter 死亡残位需求收进 API);**E5** 行动经济/RngService 只读字段 getter-only 机制化(phase/ap/rap/last_round_end/master_seed);**O1+O2** 调试模式拆 `debug_session.gd`(调参语义单一实现;battle_created 先于 begin_battle = ADR-0001 接线归组合根 + 缺陷①时序——ui_probe 抓获初版 battle_ready 才接手 b1 的雾提示丢失);**O3** `core/damage_math.gd` 纯算术抽取 + board_generator 重复求解合并;**P3** 头注溯源 ×4 / 奖励道具经济 返回值统一 null / equivalence_supply 表行 duplicate / load→preload ×3。**附带根治基线既有重入隐患**:main `_on_board_action` 清图判定在 settle_batch 同步重入(关卡终局置空 b1)后摸 `b1.a2` 的 SCRIPT ERROR——click_probe stderr 归零(优于基线)。**验证**:冒烟 141/141 + 三探针 PASS(click done=true 失效=0 问题=0)。**P2 余项设计稿待用户审**:E4 表值参数化(敌人系统.spawn 契约漂移须 GDD/registry 修订)+ O4 自动玩家四份复制收口(合并 W-3)。 +39. **封装收口批落地(2026-09-13,architecture-review 改编批 → 用户拍板 P1+P2+P3 全修)**:代码架构审查报告 `docs/architecture/code-architecture-review-2026-09-13.md`(Verdict: CONCERNS——分层纪律 S1–S7 全合规,封装欠账 = 核心状态公有 + 呈现层链式穿透)。本批清偿:**E1** 战斗结算 协作对象 a1/b2/b3/b4 私有化 + `presentation_snapshot()/is_battle_live()/stock_count()/query_reward_identity()` 成文呈现面(a2/a3 保留公有 = API Boundaries 登记的 HUD框架 契约面);**E2** 排雷玩法 board/revealed/flags 私有化 + `current_board()/reveal_record()`(board_view 直读 `.revealed` 的自相矛盾收口);**E3** 敌人系统 hero/enemies 私有化 + `hero_unit()/all_enemies()` 投影(presenter 死亡残位需求收进 API);**E5** 行动经济/RngService 只读字段 getter-only 机制化(phase/ap/rap/last_round_end/master_seed);**O1+O2** 调试模式拆 `debug_session.gd`(调参语义单一实现;battle_created 先于 begin_battle = ADR-0001 接线归组合根 + 缺陷①时序——ui_probe 抓获初版 battle_ready 才接手 b1 的雾提示丢失);**O3** `core/damage_math.gd` 纯算术抽取 + board_generator 重复求解合并;**P3** 头注溯源 ×4 / 地图战斗资源 返回值统一 null / equivalence_supply 表行 duplicate / load→preload ×3。**附带根治基线既有重入隐患**:main `_on_board_action` 清图判定在 settle_batch 同步重入(关卡终局置空 b1)后摸 `b1.a2` 的 SCRIPT ERROR——click_probe stderr 归零(优于基线)。**验证**:冒烟 141/141 + 三探针 PASS(click done=true 失效=0 问题=0)。**P2 余项设计稿待用户审**:E4 表值参数化(敌人系统.spawn 契约漂移须 GDD/registry 修订)+ O4 自动玩家四份复制收口(合并 W-3)。 40. **P2 收口批落地(2026-09-13,用户拍板两项均做——封装审查 P2 设计稿批准)**:① **E4 表值参数化**:db.hero 表写通道全删(main `_apply_hero_override`/runner `start_level` 写表),加成经 encounter 显式参数(战斗结算 begin_battle +hero_atk/hero_max_hp 字段 → 敌人系统.spawn +atk_override/max_hp_override 参数,-1 表值兜底)——双写叠加 6→18→54 与双基线同步整类隐患移除,数据配置 单一事实源机制化;registry 新增 `hero_override_parameter_passing`(ADR-0009 候选,敌人系统.spawn/战斗结算 encounter 接口漂移登记,正式侧 GDD 修订随 ADR-0009 批);ui_tune_probe ⑦⑧ 断言语义升级(表运行期不可变 + 完整关卡路径单次加成快照断言)。② **O4 自动玩家单一实现**(合并 W-3):`smoke/auto_player.gd`(choose_dig + window_selection,差异参数化 heal_hp_div/round_gate/knife_compare),四消费方(smoke_all 3/3/best · monte_carlo 2/0/sum · dump_battle 3/3/sum · level_autoplay 2/3/best)+ click_probe 引用同步;同种子回放断言全绿 = 等价性证明。**验证**:冒烟 141/141 · 三探针 PASS。**遗留**:正式侧 战斗结算/敌人系统 GDD 修订(随 ADR-0009);main.gd 400 行目标受 ADR-0001 组合根职责约束(HUD框架 正式化批候审)。 -41. **art-bible §1–4 定稿(2026-09-13,/art-bible retrofit 批,solo 模式)**:`design/art/art-bible.md`(2026-09-10 初稿,§1–4 已有核心方向)本批按极性提案与 2026-09-12 隐喻换轴**定向增补定稿 §1–4**——① 绘制优先级栈插徽章位(数字 > 小人 > 旗 > 徽章 > 纹理 > 底色,§1.2/§3.4 同步);② 雷格隐喻换轴同步(雷 = 被惊动的巢穴,"机关"旧称退役;兑现档红更名危险红、色值不变);③ §1.4 格子样张测试验收标准成文(第一验收项 = 数字可读性硬指标 ≥4.5:1 可测判据 + 回退规则"改氛围色不改数字";雾格排除在外);④ §4.6 图标键契约冻结(效果图标 增益状态 数据六行 + sapped 提案键 / 奖励徽章 奖励道具经济 默认根八行 + clear_blast 并列预留 / 格面类型图标五类〔提案 R1,未开格预读徽章墨族单色防色相泄漏〕/ 敌种线索键 敌人系统 Rule 8 契约化〔行为拍姿态/环长直觉/强度档位/预告时序/恒定义务〕——键与通道分配冻结,终稿美术归样张与 asset-spec 批);⑤ 雾格资产规格一行占位(内容封禁期暂缓,雾重设计批再启)。registry terminology 增三词条(图标键/徽章/极性)+ referenced_by 增 art-bible;systems-index 新增 2026-09-13 art-bible 登记块(范围声明:§5–9 未建不阻塞 HUD框架,HUD框架 消费面五节点名)。AD 门禁 solo 跳过,出稿待人工复核。**冲突清单(不改 GDD/提案,列示待裁决)**:① game-concept 视觉锚原则 1"暗色地牢底色" vs art-bible 明亮底色反转(art-bible §1.3 2026-09-10 用户定稿在案;概念侧注记待概念层修订批);② 敌人系统 GDD 敌种键 {grub, ambusher} vs 切片 DND 更名 {goblin, bugbear, ogre_chief}(2026-09-12 consistency-check ⚠️ 在案;图标键契约以 GDD 键集为锚、声明键集事实源归 敌人系统/难度曲线与Boss);③ 奖励道具经济 GDD 默认根八行(clear_knife)vs 切片供给控制器批(clear_blast + 三可选类移 active_inject——entry 21 正式侧义务待清偿;徽章键按 reward_id 冻结、池归属无关);④ 极性提案 §3.5 跨文档回写清单全部待实施批(增益状态 四行→七行、奖励道具经济 schema 扩列、排雷玩法 OQ1 关闭等)。**下一步 = HUD框架 design-review(HUD框架 GDD 已于 2026-09-13 solo 出稿并完成 lean 迁移,状态 Designed 未经评审——新会话跑 `/design-review design/archive/gdd-2026-09-14/d1-hud-framework.md`,PASS 后登记 Approved 即 MVP 十系统全收口)**。 +41. **art-bible §1–4 定稿(2026-09-13,/art-bible retrofit 批,solo 模式)**:`design/art/art-bible.md`(2026-09-10 初稿,§1–4 已有核心方向)本批按极性提案与 2026-09-12 隐喻换轴**定向增补定稿 §1–4**——① 绘制优先级栈插徽章位(数字 > 小人 > 旗 > 徽章 > 纹理 > 底色,§1.2/§3.4 同步);② 雷格隐喻换轴同步(雷 = 被惊动的巢穴,"机关"旧称退役;兑现档红更名危险红、色值不变);③ §1.4 格子样张测试验收标准成文(第一验收项 = 数字可读性硬指标 ≥4.5:1 可测判据 + 回退规则"改氛围色不改数字";雾格排除在外);④ §4.6 图标键契约冻结(效果图标 增益状态 数据六行 + sapped 提案键 / 奖励徽章 地图战斗资源 默认根八行 + clear_blast 并列预留 / 格面类型图标五类〔提案 R1,未开格预读徽章墨族单色防色相泄漏〕/ 敌种线索键 敌人系统 Rule 8 契约化〔行为拍姿态/环长直觉/强度档位/预告时序/恒定义务〕——键与通道分配冻结,终稿美术归样张与 asset-spec 批);⑤ 雾格资产规格一行占位(内容封禁期暂缓,雾重设计批再启)。registry terminology 增三词条(图标键/徽章/极性)+ referenced_by 增 art-bible;systems-index 新增 2026-09-13 art-bible 登记块(范围声明:§5–9 未建不阻塞 HUD框架,HUD框架 消费面五节点名)。AD 门禁 solo 跳过,出稿待人工复核。**冲突清单(不改 GDD/提案,列示待裁决)**:① game-concept 视觉锚原则 1"暗色地牢底色" vs art-bible 明亮底色反转(art-bible §1.3 2026-09-10 用户定稿在案;概念侧注记待概念层修订批);② 敌人系统 GDD 敌种键 {grub, ambusher} vs 切片 DND 更名 {goblin, bugbear, ogre_chief}(2026-09-12 consistency-check ⚠️ 在案;图标键契约以 GDD 键集为锚、声明键集事实源归 敌人系统/难度曲线与Boss);③ 地图战斗资源 GDD 默认根八行(clear_knife)vs 切片供给控制器批(clear_blast + 三可选类移 active_inject——entry 21 正式侧义务待清偿;徽章键按 reward_id 冻结、池归属无关);④ 极性提案 §3.5 跨文档回写清单全部待实施批(增益状态 四行→七行、地图战斗资源 schema 扩列、排雷玩法 OQ1 关闭等)。**下一步 = HUD框架 design-review(HUD框架 GDD 已于 2026-09-13 solo 出稿并完成 lean 迁移,状态 Designed 未经评审——新会话跑 `/design-review design/archive/gdd-2026-09-14/d1-hud-framework.md`,PASS 后登记 Approved 即 MVP 十系统全收口)**。 -42. **GDD lean 格式迁移完成(2026-09-13,11 份全量,子 agent 串行/双并发)**:全部系统级 GDD 按新模板(`.claude/docs/templates/game-design-document.md`)重排,`tools/gdd_lint.py` 11/11 PASS(表格占比 81–89%);修订注记出正文→版本历史表;原稿备份 `design/gdd/legacy-2026-09-13/`。**随迁按 registry 回执写现行的语义统一**:增益状态(weaken −65、D=1)、数据配置(八字段/p_perfect {100,200}/category 五值/ActionEconomyTable 现行值)、战斗结算(EC-9 单件制)。**🔴 遗留重算义务**:战斗结算 F1/F4/F5 派生数值(V_safe=D_ref 恒等式、E_life 12.0、E_dig 7.2、裕度 2.0×/2.6×)仍按 defense_up duration=2 旧基线——registry 已 D=1(2026-09-11 批),锚腿读数须 战斗结算/难度曲线与Boss 对账重跑(非格式批可改)。迁移代理另有 6 处保守处理待人工复核(奖励道具经济 AC-19 对账对、难度曲线与Boss Rule 编号引用等,详见各文件版本历史)。 +42. **GDD lean 格式迁移完成(2026-09-13,11 份全量,子 agent 串行/双并发)**:全部系统级 GDD 按新模板(`.claude/docs/templates/game-design-document.md`)重排,`tools/gdd_lint.py` 11/11 PASS(表格占比 81–89%);修订注记出正文→版本历史表;原稿备份 `design/gdd/legacy-2026-09-13/`。**随迁按 registry 回执写现行的语义统一**:增益状态(weaken −65、D=1)、数据配置(八字段/p_perfect {100,200}/category 五值/ActionEconomyTable 现行值)、战斗结算(EC-9 单件制)。**🔴 遗留重算义务**:战斗结算 F1/F4/F5 派生数值(V_safe=D_ref 恒等式、E_life 12.0、E_dig 7.2、裕度 2.0×/2.6×)仍按 defense_up duration=2 旧基线——registry 已 D=1(2026-09-11 批),锚腿读数须 战斗结算/难度曲线与Boss 对账重跑(非格式批可改)。迁移代理另有 6 处保守处理待人工复核(地图战斗资源 AC-19 对账对、难度曲线与Boss Rule 编号引用等,详见各文件版本历史)。 41. **零承伤根因分割探针 + playtest-09-12 Bug #1–#3 处置 + Q1 复扫基线(2026-09-13,playtest-2026-09-12 报告 Top3 授权任务)**:① **根因分割探针 `smoke/damage_probe.gd`**(boss/level 两模式——逐结算行打印 beat / atk.total / hero_defense 池 / d_tick)。快照盲区发现:settlement_snapshot 取在衰减段之后,时效 1 的 defense_up 当轮授予当轮衰减——真人局 JSONL buffs[] 恒空 ≠ 池为空(报告悬置机理);探针从结算行 pool_value 重建战斗段时点池值(effect_pool_map 表驱动)。**结论:零承伤根因 = 旧数据 defense_up -50×2 = clamp -100 触底 ×0(设计语义,H1 成立)**——fresh 池裸验 Boss 攻击链全额兑现(attack 9/9×2 · heavy 18/18 · charge 0 设计,6 轮击倒英雄)否证攻击链缺陷(H2);当前数据(-30 批)墙最深 -60 > clamp_lo -100 归零不可达(重证),墙轮残余 ×0.40。② **BUG-0002/0003/0004 建档**(production/qa/bugs/,自 BUG-0001 顺延):报告 #1 空遭遇 = **首轮全灭被快照盲区误读**(seed 42 回放 d0 spawn=1/d1 spawn=3 同签名;遭遇骰下限 ≥1 双闸 + 100 场扫描零越域;settlement_snapshot 增 spawn_count 字段机制化判别)→ Closed(Rejected as coded);报告 #2 Boss 攻击零兑现 = 设计语义非 bug → Closed(Rejected as coded);报告 #3 grant_node_active 绕过 _supply.notify_granted = 代码实锤 → **Fixed**(stock 受理后补入账,战斗域清零语义不变 = 零战斗数值影响,纯口径)。回归断言 +7(spawn_count 字段/等值 · 遭遇全深度×12 种子全域 60 场 · _smoke_attack_chain_fresh_pool 攻击链钉死 · _smoke_supply ⑦ 节点奖励入账)。③ **Q1 复扫基线**(level_monte_carlo 增 F4 两列「普通承伤/场% · Boss承伤%」——round 回卷分段 + 末段 Boss 判定;N=30×10 档、种子 4200–4229):基线通关率 **17%**(F5 带 40–60%)· +100% 档 43%(中天赋 ≥95%)· +200% 档 63%(高天赋 100%);普通场承伤 **35.1–43.1%/场**(带 ≤20%)· Boss 场 **71.3–134.9%**(带 ≤50%)(hp+0 档)——**F4/F5 全档位越带**,拆墙 + v3 atk 叠加后难度由严重不足摆向严重过剩。**本批零数值变更**(敌 hp 与奖励供给禁独立调参——registry 预警⑥联动;杠杆方向列待拍板,基线 = F7 测量输入)。**验证**:冒烟 **148/148**(141+7 新回归)· 三探针 PASS · damage_probe boss 7/7 + level 种子 42/43/44 全 PASS。**待拍板/待设计批**:①难度杠杆重拍板(F4/F5 越带——候选 atk 回撤/防御权重回升/供给联动,归 难度曲线与Boss F7);②墙语义候选改法(clamp 收紧/乘法衰减/重击拍穿防——/propagate-design-change + 增益状态 GDD 文字同步);③供给量语义重拍板(每战斗 vs 关卡域首件保证——难度曲线与Boss);④浅深度首轮跳战可玩性(难度曲线与Boss)。切片 README 同批登记。 -42. **HUD框架 已收口(Designed,2026-09-13,/design-system solo 模式一次会话定稿)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/d1-hud-framework.md`,12 节 + 台账表/冲突清单零占位,25 条 AC;**专员/总监代理全部跳过,出稿待人工复核;未经 /design-review,独立评审须新会话**)。定稿要点:① **呈现义务台账 27 项逐项落位**(排雷玩法×6/敌人系统×4/增益状态×4/奖励道具经济×5/战斗结算×3/地形变异×3/行动经济+棋盘生成 EC5——Dependencies 落位表;battle.md §13 承接升格系统级验收,已裁决项全部直接继承)② **切片教训三条硬性要求兑现**(entry 17:载荷 schema 13 项成文表 Core Rule 17 / 场景级 headless 探针 AC-19 / 信号时点可见性规则 Core Rule 18 + AC-20)③ 订阅纪律按 ADR-0001 收窄——呈现层只订 战斗结算 步骤流/快照与 runner,零事件外发面 = **命令式回执驱动**五面成文(registry `hud_presentation_surface` 登记;battle.md §Events Fired 措辞差列冲突⑥)④ **命名统一核销**(entry 35:request_refresh/refresh_cap_per_round 正式名,AC-25 grep 断言零残留)⑤ 程序化占位策略(art-bible §1.4 引用依据、样张未制作不阻塞、占位同受数字可读性硬指标)⑥ _draw 维持 GridContainer 裁决(ADR-0003 Decision 3 兑现——复议留样张后 OQ1)⑦ HUD框架 裁决:MVP 格面徽章只在已开格呈现(奖励道具经济 Rule 8 承接——冲突⑤)⑧ 发现冲突清单 ⑧ 项成文(不改已定稿正文与提案,含 game-concept 底色/敌人系统 敌种键/clear_blast/极性提案批/订阅表述/行动经济 刷新计数读数/战斗结算 settlement_snapshot 契约〔entry 41 并行批仍在切片使用该信号——OQ3 登记更增补登记必要性〕)。registry +1 条目 + terminology 两词条;systems-index HUD框架 进度行 + 门禁增补记录块(接口漂移登记 ×3)。**下一步 =(新会话)`/design-review design/archive/gdd-2026-09-14/d1-hud-framework.md` → `/review-all-gdds` → `/gate-check`**(Systems Design → Technical Setup 门两件 = HUD框架 GDD〔本条〕+ /review-all-gdds;**MVP GDD 设计顺序前 10 位全部收口**)。 +42. **HUD框架 已收口(Designed,2026-09-13,/design-system solo 模式一次会话定稿)**:GDD 全节已写入(`design/archive/gdd-2026-09-14/d1-hud-framework.md`,12 节 + 台账表/冲突清单零占位,25 条 AC;**专员/总监代理全部跳过,出稿待人工复核;未经 /design-review,独立评审须新会话**)。定稿要点:① **呈现义务台账 27 项逐项落位**(排雷玩法×6/敌人系统×4/增益状态×4/地图战斗资源×5/战斗结算×3/地形变异×3/行动经济+棋盘生成 EC5——Dependencies 落位表;battle.md §13 承接升格系统级验收,已裁决项全部直接继承)② **切片教训三条硬性要求兑现**(entry 17:载荷 schema 13 项成文表 Core Rule 17 / 场景级 headless 探针 AC-19 / 信号时点可见性规则 Core Rule 18 + AC-20)③ 订阅纪律按 ADR-0001 收窄——呈现层只订 战斗结算 步骤流/快照与 runner,零事件外发面 = **命令式回执驱动**五面成文(registry `hud_presentation_surface` 登记;battle.md §Events Fired 措辞差列冲突⑥)④ **命名统一核销**(entry 35:request_refresh/refresh_cap_per_round 正式名,AC-25 grep 断言零残留)⑤ 程序化占位策略(art-bible §1.4 引用依据、样张未制作不阻塞、占位同受数字可读性硬指标)⑥ _draw 维持 GridContainer 裁决(ADR-0003 Decision 3 兑现——复议留样张后 OQ1)⑦ HUD框架 裁决:MVP 格面徽章只在已开格呈现(地图战斗资源 Rule 8 承接——冲突⑤)⑧ 发现冲突清单 ⑧ 项成文(不改已定稿正文与提案,含 game-concept 底色/敌人系统 敌种键/clear_blast/极性提案批/订阅表述/行动经济 刷新计数读数/战斗结算 settlement_snapshot 契约〔entry 41 并行批仍在切片使用该信号——OQ3 登记更增补登记必要性〕)。registry +1 条目 + terminology 两词条;systems-index HUD框架 进度行 + 门禁增补记录块(接口漂移登记 ×3)。**下一步 =(新会话)`/design-review design/archive/gdd-2026-09-14/d1-hud-framework.md` → `/review-all-gdds` → `/gate-check`**(Systems Design → Technical Setup 门两件 = HUD框架 GDD〔本条〕+ /review-all-gdds;**MVP GDD 设计顺序前 10 位全部收口**)。 42. **四项拍板落地(2026-09-13,用户四问裁决——本批零玩法数值变更)**:①**难度主杠杆 = 先真人试玩再拍**(F5 真人修正系数标定优先于数值调整;模拟基线 17% vs 带 40–60% 的越带方向真人预期只会更确认,杠杆方案保持待拍板:atk 回撤/组合/专项三案备选);②**墙语义维持现状 + 归零护栏**:smoke_all `_smoke_wall_zero_guard` 表级不变式(2×defense_up.magnitude > pool_clamp_lo——BUG-0003 事故类永久免疫,未来调参造出 ×0 墙即红灯强制重审);③**供给量先观测再拍**(BUG-0004 封口后账目完整,随复测批/真人局取数);④**跳战并入难度复测再议**:level_monte_carlo 增「跳战率」列(普通战斗 round-1 即胜占比),基线实测 **8%**(+50% 13% / +100% 24% / +150% 27% / +200% 38%)——**seed 42 为高跳战轨迹**(autoplay d0–d3 全部 round-1 全灭),真人局跳战体验含种子成分,基线下跳战是少数派,④复议数据前提成立。附带:defense_scan 过时期望标签清理(「墙轮承伤应为 0」→「合法 ×0.40 帽」)。**验证**:冒烟 **149/149**(+1 护栏)· 复扫各列与 Q1 基线逐值一致(collect_rows 开启不改变行为——确定性交叉验证)。**下一步(用户侧)**:真人试玩一局(观测清单:通关/败北节点 = F5 修正系数分子;普通场掉血体感;Boss 战轮数;d0–d3 跳战与否;治疗包缺血时刻与库存残留 = 拍板③数据)→ 会话分析 JSONL 出修正系数与①③④复议数据。 -40. **辅助道具 GDD 定稿(2026-09-14,/design-system solo 模式一次会话——用户设计指令"每个维度都要有对应道具,稀有道具尝试高数值和多维度结合")**:`design/archive/gdd-2026-09-14/a5-minesweeper-aux-items.md`(lean 格式,lint PASS 表格占比 84%)· registry 登记 `aux_items` 条目 + terminology 四词条(叠加层/真视窄域护栏/渗透率)+ `variation_table.counter_item_ids` 回填 [probe_dust](地形变异 预授权 辅助道具-1 义务闭环)· systems-index 门禁增补块 + 辅助道具 状态 Designed。**设计要点**:五维度框架 {info, risk, action, plan, counter} + F2 覆盖谓词("每维度都有对应道具"= 加载后内容审计断言,机器可查)· 承重护栏 = 真视窄域(替代推理 ≤3×3、恢复推理可全图——P1 防塌方,schema 校验强制)· MVP 六行 = 四常规单维(显影尘/工兵令/探宝罗盘/探巢摆钟,t2)+ 两稀有多维高数值(地穴全图卷 = 全雾显影×全图预读、爆破工兵包 = +4 AP×3×3 真视,t3、≈0.17 件/板)· 获取挂 奖励道具经济(aux_item 预留枚举激活——义务 奖励道具经济×①…⑤)· 使用经 战斗结算 挖掘期编排(use_aux 规范序 validate→apply/grant→consume 序即原子——义务 战斗结算×①②③)· 板级叠加层三集(零特判延伸——排雷玩法 代码零 辅助道具 分支、零回写 排雷玩法/奖励道具经济、随图消亡)· 行动经济 grant_ap 第 9 API 接口漂移预授权(义务 行动经济×①)· 21 项跨 GDD 义务清单 + F1–F3 + 14 AC;地形变异 EC6/OQ2 与 奖励道具经济 OQ2 收口。**生效前提**:奖励道具经济/数据配置/行动经济 修订批兑现前 aux 行入池会加载致命(奖励道具经济 Rule 1 预留值拒绝)——AC-12/13 deferral 已登记。**待办**:/design-review(新会话)→ 对侧修订批(奖励道具经济/数据配置/行动经济/战斗结算/HUD框架)→ UX Flag(/ux-design Phase 4 前置);设计顺序下一站 = 难度曲线与Boss 复核批/冒险结构。 +40. **魔法道具 GDD 定稿(2026-09-14,/design-system solo 模式一次会话——用户设计指令"每个维度都要有对应道具,稀有道具尝试高数值和多维度结合")**:`design/archive/gdd-2026-09-14/a5-minesweeper-aux-items.md`(lean 格式,lint PASS 表格占比 84%)· registry 登记 `aux_items` 条目 + terminology 四词条(叠加层/真视窄域护栏/渗透率)+ `variation_table.counter_item_ids` 回填 [probe_dust](地形变异 预授权 魔法道具-1 义务闭环)· systems-index 门禁增补块 + 魔法道具 状态 Designed。**设计要点**:五维度框架 {info, risk, action, plan, counter} + F2 覆盖谓词("每维度都有对应道具"= 加载后内容审计断言,机器可查)· 承重护栏 = 真视窄域(替代推理 ≤3×3、恢复推理可全图——P1 防塌方,schema 校验强制)· MVP 六行 = 四常规单维(显影尘/工兵令/探宝罗盘/探巢摆钟,t2)+ 两稀有多维高数值(地穴全图卷 = 全雾显影×全图预读、爆破工兵包 = +4 AP×3×3 真视,t3、≈0.17 件/板)· 获取挂 地图战斗资源(aux_item 预留枚举激活——义务 地图战斗资源×①…⑤)· 使用经 战斗结算 挖掘期编排(use_aux 规范序 validate→apply/grant→consume 序即原子——义务 战斗结算×①②③)· 板级叠加层三集(零特判延伸——排雷玩法 代码零 魔法道具 分支、零回写 排雷玩法/地图战斗资源、随图消亡)· 行动经济 grant_ap 第 9 API 接口漂移预授权(义务 行动经济×①)· 21 项跨 GDD 义务清单 + F1–F3 + 14 AC;地形变异 EC6/OQ2 与 地图战斗资源 OQ2 收口。**生效前提**:地图战斗资源/数据配置/行动经济 修订批兑现前 aux 行入池会加载致命(地图战斗资源 Rule 1 预留值拒绝)——AC-12/13 deferral 已登记。**待办**:/design-review(新会话)→ 对侧修订批(地图战斗资源/数据配置/行动经济/战斗结算/HUD框架)→ UX Flag(/ux-design Phase 4 前置);设计顺序下一站 = 难度曲线与Boss 复核批/冒险结构。 ## Session Extract — /review-all-gdds 2026-09-14 - **Verdict: FAIL**——2 blocking(① 增益状态/战斗结算:defense_up 减伤墙批 −30 未回写 owner、战斗结算 锚算术三重漂移致条款③⑤闭合回执失效;② 数据配置 漂移批五处:encounter 流/pool_tag active_inject/active_p0·decay/k_dmg 禁区/clear_blast 行集+HelperItemTable 更名)+ ⚠️×16 挂各修订批;增益状态/战斗结算/数据配置 已标 Needs Revision。报告:`design/archive/gdd-2026-09-14/gdd-cross-review-2026-09-14.md` -- **同日 辅助道具**:/design-review --solo 3 blocking + 5 recommended 核销,用户拍板两项边缘规则(area_3x3 边缘窗口裁剪 / 零信息目标不可用不消耗)后免复审标 **Approved**;日志 `design/archive/gdd-2026-09-14/reviews/a5-minesweeper-aux-items-review-log.md` -- **下一步**:新会话按报告 §七 批调度跑回写批(数据配置/增益状态 → 战斗结算 重算 → 奖励道具经济 规格 → 难度曲线与Boss 收口 → 零散)→ `/review-all-gdds since-last-review` 增量复核 → PASS 再 `/create-architecture`;⚠️ 评审期间检测到并行会话修改 GDD(难度曲线与Boss 回写批半途落地致两代理结论互斥)——批收口前勿多会话并行改设计文档 +- **同日 魔法道具**:/design-review --solo 3 blocking + 5 recommended 核销,用户拍板两项边缘规则(area_3x3 边缘窗口裁剪 / 零信息目标不可用不消耗)后免复审标 **Approved**;日志 `design/archive/gdd-2026-09-14/reviews/a5-minesweeper-aux-items-review-log.md` +- **下一步**:新会话按报告 §七 批调度跑回写批(数据配置/增益状态 → 战斗结算 重算 → 地图战斗资源 规格 → 难度曲线与Boss 收口 → 零散)→ `/review-all-gdds since-last-review` 增量复核 → PASS 再 `/create-architecture`;⚠️ 评审期间检测到并行会话修改 GDD(难度曲线与Boss 回写批半途落地致两代理结论互斥)——批收口前勿多会话并行改设计文档 43. **冒险结构 GDD 定稿(2026-09-14,/design-system solo 模式一次会话定稿,与 /review-all-gdds 并行——冒险结构 为新增文件零冲突)**:`design/archive/gdd-2026-09-14/c2-adventure-structure.md`(lean 格式,lint PASS 表格占比 86%)· registry 新增 `level_table` / `adventure_table` 两条件目 + 补登 `hero_override_parameter_passing`(切片 E4 批实现但 registry 缺登——缺口闭合,owner=战斗结算,ADR-0009 候选状态注记)+ terminology 三词条(HP 账本/关卡收束点/关卡大奖励)· systems-index 门禁增补块 + 冒险结构 状态 Designed。**冒险结构 待决四问收口**:① 关卡序列 = MVP N=2 线性(L1 → L2 雾解锁台阶),冒险通关 = L2 Boss;加关 = 内容批,N=2 生效前提 = 难度曲线与Boss L2 深度轴行值填充批(未落地前 N=1 合法态)② 大奖励 = 上限 +10 / 血回满 / 代币 +10 三件固定(不进库存域、末关不兑付;血回满与 难度曲线与Boss 满血开局校准口径闭合——F1 冒险通关率合成 [6,20]% 的前提)③ 失败重开 = 死亡即冒险终、重开全新种子、放弃同失败型(MVP 无 UI 入口)④ 关卡节点地图/冒险结构 边界 = 收束点在 关卡节点地图(先调 战斗结算 level_clear 再宣布 level_end),接口契约四件套(start_level / report_battle_end / heal_clamped / level_end)为 关卡节点地图 GDD 强制输入。**切片先例切分转正**:level_runner 冒险域归 冒险结构、关内行进归 关卡节点地图;两处切片简化改写(逐关播种 → 冒险单种子;每关 HP 回满 → 跨关延续)。**下游义务**:难度曲线与Boss×1(L2 行值——生效前提)· 数据配置×2(reseed 入口 / AdventureTable 建表)· 战斗结算×1(begin_battle 入参供给方转正)· 元进度×2(远)。**下一步 =(新会话)/design-review design/archive/gdd-2026-09-14/c2-adventure-structure.md → 关卡节点地图(设计顺序第 14 位,以 冒险结构 接口契约四件套为强制输入)**;solo 出稿待人工复核注记已入 GDD 头部。 @@ -131,8 +131,10 @@ 48. **文档写作规范成文 + 引用纪律补入(2026-09-14)**:`docs/doc-conventions.md` v1 成文(另一会话,整合全部写作纪律为写文档前必读的单一权威),本会话补第 7 节「引用纪律」(单点定义/规范名唯一/引用不转述/反向边登记/删除概念 SOP,雾格事故为对照反例);CLAUDE.md 挂必读指针与摘要。同批:`systems/排雷循环/行动经济.md`(自归档迁移定稿)与 `systems/表现与支撑/教学引导.md`(范围草案)成文(另一会话)。 49. **命名清偿批(2026-09-15,用户拍板批)**:旧系统代号(a1–d6)全仓清偿为中文规范名——design/gdd(02-系统清单新增「中文规范名↔英文代号↔旧代号」对照表)/ux/art/research 全绿复扫;registry owner 改指新骨架文档 + 前缀键名改领域命名(minesweeper_/aux_/hud_/settlement_/reward_)+ 头部注记;本文件历史条目同步清偿。QA 四份 Closed BUG 记录删除(用户拍板);切片代码变量领域命名批(子 agent 执行,smoke/探针回归见批报);归档维持只读、后续随批删除。 -50. **两批验收 + 收口批(2026-09-15,本会话)**:对 2026-09-15 两批(攻击/护甲命名统一 v0.5 + 攻击类型/奖励抽象分离 v0.6)做只读核对 + 文档层收口(零数值零机制改动;**不改 v0.7 文件**——战斗结算.md / 奖励道具经济.md 属 v0.7 格面资源批所有者、口径仍在移动,本批不动)。**核对**:9 项口径↔实现全闭合(charge_grants 键与值 / 甲效矩阵 9 格 / armor_type 三值 / hero_attack 分量字段 normal·pierce·magic / round_facts charge_counts·charge_points / 敌卡标签 / 明细行拆行文案 / 攻击类型定义不含来源 / 矩阵数值逐格不动);残留旧名扫描仅命中批次注记原名与历史观测记录(一处 playtest 注记"现名 charge_pierce"陈旧,已订正为 charge_counts/charge_points);来源-类型硬绑扫描确认代码只剩两处计数埋点(`_charge_counts["safe_cell"]` / `["flag_hit"]`)+ charge_grants 键 + 行 source_class 归因。**实跑**:冒烟 201 项 0 失败;四探针 exit=0 无 FAIL。**收口(③,落在 registry + README + 本文件,GDD 侧只报告不改)**:① 收益对照表充能当量覆盖缺口登记(候选口径 = Σ各桶点数 × 当轮目标护甲平均甲效倍率 ÷ 100,1 伤害 = 1 当量守条款①;补式 / 登记待拍板二选一待回填批);② 两处已知落差登记(charge_grants 触发源扩展 vs 切片两处埋点;safe_cell/flag_hit 跨命名空间同名);③ playtest 快照键注记订正。**口径移动注记**:本会话运行期间 **v0.7 格面资源批**已在 GDD(战斗结算 v0.7 / 奖励道具经济 v0.4)+ registry 落地(五段 / 10 行型 / 极性路由 / 可选类删除),切片代码未同步——registry 已注明"切片代码修改随新会话执行、指导已产出";本批核对结论针对 v0.5/v0.6 两批语义,v0.7 代码同步为独立后置批。 +50. **两批验收 + 收口批(2026-09-15,本会话)**:对 2026-09-15 两批(攻击/护甲命名统一 v0.5 + 攻击类型/奖励抽象分离 v0.6)做只读核对 + 文档层收口(零数值零机制改动;**不改 v0.7 文件**——战斗结算.md / 地图战斗资源.md 属 v0.7 格面资源批所有者、口径仍在移动,本批不动)。**核对**:9 项口径↔实现全闭合(charge_grants 键与值 / 甲效矩阵 9 格 / armor_type 三值 / hero_attack 分量字段 normal·pierce·magic / round_facts charge_counts·charge_points / 敌卡标签 / 明细行拆行文案 / 攻击类型定义不含来源 / 矩阵数值逐格不动);残留旧名扫描仅命中批次注记原名与历史观测记录(一处 playtest 注记"现名 charge_pierce"陈旧,已订正为 charge_counts/charge_points);来源-类型硬绑扫描确认代码只剩两处计数埋点(`_charge_counts["safe_cell"]` / `["flag_hit"]`)+ charge_grants 键 + 行 source_class 归因。**实跑**:冒烟 201 项 0 失败;四探针 exit=0 无 FAIL。**收口(③,落在 registry + README + 本文件,GDD 侧只报告不改)**:① 收益对照表充能当量覆盖缺口登记(候选口径 = Σ各桶点数 × 当轮目标护甲平均甲效倍率 ÷ 100,1 伤害 = 1 当量守条款①;补式 / 登记待拍板二选一待回填批);② 两处已知落差登记(charge_grants 触发源扩展 vs 切片两处埋点;safe_cell/flag_hit 跨命名空间同名);③ playtest 快照键注记订正。**口径移动注记**:本会话运行期间 **v0.7 格面资源批**已在 GDD(战斗结算 v0.7 / 地图战斗资源 v0.4)+ registry 落地(五段 / 10 行型 / 极性路由 / 可选类删除),切片代码未同步——registry 已注明"切片代码修改随新会话执行、指导已产出";本批核对结论针对 v0.5/v0.6 两批语义,v0.7 代码同步为独立后置批。 51. **概念封装纪律入规范(2026-09-15,用户提出)**:`docs/doc-conventions.md` v5 新增第 7 节「概念封装纪律(概念对象化建模)」——概念即对象 / 属性归属唯一 / 包含关系显式写 / 概念状态用枚举 / 附加物独立成对象 / 关系不吸内容;原 7/8/9 节顺延为 8/9/10,第 6 节骨架表与 CLAUDE.md 摘要的章节指针同步改指第 7、8 节。 52. **CLAUDE.md 瘦身重组(2026-09-15,用户拍板)**:定桩 = 只装全局元信息(栈/运行验证/目录)+ 硬性红线(原 Conventions 五条 + 评审隔离,D2 旧代号标注清除、出处承接于 architecture.md)+ 「规范导航」表(写代码前 / 写文档前两条必读门 + 设计/架构/引擎/registry/会话记录七行);文档写作规范巨型条目与代码规范摘要块整体下沉子文档(code-conventions.md 经逐条核对着实为超集,零信息丢失);同步活引用三处(code-conventions.md「硬性红线」节名 / architecture.md 命名行去 CLAUDE.md 指涉 / doc-conventions.md 地位声明改"只保留导航指针")。 + +53. **格面资源批 · 批 1 落地(2026-09-15,切片代码修改批——proposal 批 1 数据面 + 路由;设计权威 = 地图战斗资源 v0.4 / 战斗结算 v0.7 / 排雷玩法 v0.3 / registry 2026-09-15 条目)**:v0.7 口径的切片代码同步,active.md 50 条注记的"切片代码未同步"开口就此闭合。**数据面**:reward.tres/reward_table.gd 结构性重写(category/use_timing/库存/供给轴下线;cell_type 五型 × polarity 十行字典 + clear_blast;五型正负齐备/池空/percent 必填/flat power 校验族重写,blast 负向加层行 power 例外——伏击加层独立兑付形态);删 reward_supply_controller.gd + reward_config_table.gd + reward_config.tres 三件;status_effects.tres 六→七行(**sapped**:hero −25 percent dur1 max16 stack,hero_offense 池);settlement.tres 五段 [grant, buff_debuff, combat, decay, verdict] + sapped→hero_offense 收编 + source_label_map 删 item;config_db 跨表校验族重写。**路由面**:cell_revealed 字段 reward_eligible→resource(initial 恒 false / chain·dig 恒 true 含雷格——雷安同池);reward_economy 重写为纯身份面(roll_board 全非封锁格正向权重摇号 + 清图批尾 + 区间追加取号;query_identity {reward_id, cell_type, tier} 未开格恒可查;polarity_row 字典查询面;库存轴整族删除;grant/grant_clear 幂等保持);battle_orchestrator 授予段极性路由(开安全格/标中 = 正向、开雷格/标错 = 负向、撤旗零兑付语义保持;**删踩雷固定伏击/标中固定 weaken/标错三选一哈希三套旧兑付**;heal 负向 = 主角直伤 4 + 战斗段 hero 存活守卫致死短路;blast 负向 = ambush+2 层 cap4 溢出行协议不变;行型 15→10;充能 charge_grants 路径不动);共享 地图战斗资源/库存延续语义随库存删除收窄(战斗各持容器,层间延续 = HP only);**关卡奖励点悬置为直通节点**(内容归 关卡节点地图 定稿批——待拍板)。**呈现面**:删 inventory_panel_view(E 区)与道具窗口全链(五区→四区);battle_log_view 行型收窄 10 类;board_view 徽章键 category→cell_type(占位字形——类型图标/极性视觉归批 2);status_slot_row 补 sapped 键(七行全映射)。**smoke**:删 supply_scan 与窗口/库存断言族;新增极性路由(真实流逐格断言 + origin 指回来源格)/负向字典逐型直验/资源资格面(雷格携带 + 封锁格无资源)/五段全序 + 行型封闭/身份面幂等五段,201→**211 项 0 失败**(回放断言保持——同种子同意图步骤流逐行相同);reward_expectation 重写为类型频次测量(实测收敛 25.3/20.3/20.3/19.0/15.2% = 权重涌现值,封锁格泄漏 0);**顺手修** monte_carlo.gd 缺 AutoPlayer preload(HEAD 起即解析失败)。**验证**:冒烟 211/211;四探针(ui_probe/ui_tune_probe/ui_click_probe 双种子/ui_layout_probe)全 PASS;工具脚本回归零错误。**待拍板/批 2**:①关卡奖励点内容(关卡节点地图)②已开格类型徽章+极性视觉(纯呈现)③"剩余未探索安全区域"计数(切片现无该计数器——随批 2)。切片 README 同批登记。 diff --git a/prototypes/dungeon-sweeper-vertical-slice/README.md b/prototypes/dungeon-sweeper-vertical-slice/README.md index 5af41b08..9da98ccf 100644 --- a/prototypes/dungeon-sweeper-vertical-slice/README.md +++ b/prototypes/dungeon-sweeper-vertical-slice/README.md @@ -433,7 +433,7 @@ Godot_v4.7.2-stable_win64_console.exe --headless --path . --script res://smoke/s ## 2026-09-15 验收 + 收口批(两批改动闭合核对;零数值零机制改动;不碰 v0.7 文件) -**背景**:2026-09-15 两批(攻击/护甲命名统一 v0.5 + 攻击类型/奖励抽象分离 v0.6)已完成;本批只读核对"文档口径 ↔ 切片实现"是否闭合,并收口遗留开口。**范围纪律**:`战斗结算.md` / `奖励道具经济.md` 属 v0.7 格面资源批所有者文件、口径仍在移动——本批不改;③ 收口项落在 `registry` + 本 README + `active.md`,GDD 侧只报告、待 v0.7 批整体收口后回填。 +**背景**:2026-09-15 两批(攻击/护甲命名统一 v0.5 + 攻击类型/奖励抽象分离 v0.6)已完成;本批只读核对"文档口径 ↔ 切片实现"是否闭合,并收口遗留开口。**范围纪律**:`战斗结算.md` / `地图战斗资源.md` 属 v0.7 格面资源批所有者文件、口径仍在移动——本批不改;③ 收口项落在 `registry` + 本 README + `active.md`,GDD 侧只报告、待 v0.7 批整体收口后回填。 **核对结论(两批核心语义 9 项全闭合)**:`charge_grants` 键与值(safe_cell→pierce 1/格 cap 8 · flag_hit→magic 2/雷 cap 0)· 甲效矩阵 9 格(normal 全 100 / pierce→ward 150、heavy 50 / magic→heavy 150、ward 50)· `armor_type` 三值(light/ward/heavy)· `hero_attack` 行分量字段(normal/pierce/magic)· round_facts 键(`charge_counts`/`charge_points`)· 敌卡标签文案(轻甲/魔法护甲/重甲)· 明细行拆行文案"(普通 X + 穿刺 Y + 魔法 Z)"· 攻击类型定义不含来源 · 矩阵数值逐格不动——GDD/registry/tres/代码逐项一致。残留旧名扫描仅命中批次注记"原名"与历史观测记录;来源-类型硬绑扫描确认代码只剩两处计数埋点(`_charge_counts["safe_cell"]` / `["flag_hit"]`)+ `charge_grants` 键 + 行 `source_class` 归因。 @@ -444,6 +444,38 @@ Godot_v4.7.2-stable_win64_console.exe --headless --path . --script res://smoke/s - ② **两处已知落差登记**:a) `charge_grants` 触发源可扩展 vs 切片仅两个触发源计数埋点(新增源须加埋点);b) `safe_cell`/`flag_hit` 来源标识跨命名空间同名(明细行 `source_class` / `charge_grants` 键;RewardTable.pool_tag 已随格面资源批改 `cell`)。 - ③ playtest 观测记录的快照键"现名"注记由中间名订正为现行名 `charge_counts`/`charge_points`。 -**注意(口径移动)**:本批运行期间 **v0.7 格面资源批**已在 GDD(战斗结算 v0.7 / 奖励道具经济 v0.4)与 registry 落地——段序七→五、行型 15→10、极性路由取代三套固定兑付、可选类道具删除。切片代码尚未同步(registry 注明"切片代码修改随新会话执行、指导已产出"),故本文以上各历史批次条目保留当时陈述。 +**注意(口径移动)**:本批运行期间 **v0.7 格面资源批**已在 GDD(战斗结算 v0.7 / 地图战斗资源 v0.4)与 registry 落地——段序七→五、行型 15→10、极性路由取代三套固定兑付、可选类道具删除。切片代码尚未同步(registry 注明"切片代码修改随新会话执行、指导已产出"),故本文以上各历史批次条目保留当时陈述。 **两轴分离措辞不变**:攻击类型 = 伤害属性轴(定义不含来源);充能 = 按攻击类型分桶的附加伤害储备,投桶归奖励定义 `charge_grants`;开格/标中旗/踩雷/清图只作奖励触发源。 + +## 2026-09-15 格面资源批 · 批 1(数据面 + 极性路由——设计权威 = 地图战斗资源 v0.4 / 战斗结算 v0.7 / 排雷玩法 v0.3 / registry 2026-09-15 条目) + +**模型一句话**:格子分 安全|雷|封锁格 三型;每个非封锁格(安全格 + 雷格,雷安同池同分布)装板期一次摇定格面资源类型(五型 attack/defense/heal/blast/weaken);极性不在资源内,由「动作 × 格型」矩阵决定——开安全格/标中雷 = 正向(奖励),开雷格/标错安全格 = 负向(惩罚),标旗后撤旗零兑付;全部兑付在轮末授予段。可选类道具(刀/治疗包)与库存/供给控制器/道具窗口整体删除。 + +**数据面**: +- `reward.tres` 结构性重写(`reward_table.gd` 同批):删 `category`/`use_timing` 字段与 CATEGORIES/USE_TIMINGS 常量;新增 `cell_type`(五型封闭枚举,清单外加载拒绝)× `polarity`(positive/negative)+ `stacks`(可省,缺省 1);`pool_tag` 收窄 {cell, clear_default}。行集 = 十一行:格面池正向五行 attack_up(w20,t2)/defense_up(w16,t2)/spark_aoe(flat 4,w16,t1)/heal_minor(flat [2,6],w15,t1)/weaken(w12,t1) + 负向五行 enrage(attack,t2)/off_guard(defense,t2)/heal_backlash(heal 直伤 flat 4,t1,无 effect_id)/ambush_double(blast 加层 stacks=2,t1,无 effect_id)/sapped(weaken,t1)——负向行 weight=0 纯兑付字典不参与摇号;clear_blast 保留(flat [25,55],w1,t2,clear_default)。加载校验族重写:五型 × 正负两行齐备(缺任一致命)/ cell 池 ≥1 正向行 weight>0 / percent 行 effect_id 必填(悬空校验在 ConfigDB)/ flat 行 power≥1(**例外 = blast 负向加层行,消费 stacks 不消费 power**——战斗结算 兑付形态表"伏击加层"独立形态的行级兑现)/ 区间配对 + 中点锚不变。 +- **删除三件**:`core/reward_supply_controller.gd`(可选类供给控制器——首件保证/指数递减整体下线)、`data/schemas/reward_config_table.gd`、`data/tables/reward_config.tres`(RewardConfigTable 随可选类删除废止——注入概率/按板保底参数失义)。 +- `status_effects.tres` 六行→七行:新增 **sapped(乏力——weaken 型负向:hero · −25 percent · dur 1 · max_stack 16 · stack**,hero_offense 池,attack_up 镜像;值 provisional 归 难度曲线与Boss)。 +- `settlement.tres`:`segment_order` 七段→五段 [grant, buff_debuff, combat, decay, verdict](schema 冻结常量同步);`effect_pool_map` 增 sapped→hero_offense;`source_label_map` 删 item 键(ConfigDB 必需键清单同步)。`charge_grants` 路径不动(开格→穿刺 1/格 cap8 · 标中旗→魔法 2/雷)。 +- `config_db.gd`:reward_config 出表清单;跨表校验族重写——旧 ②池空/③clear正当量并入 RewardTable.validate,旧 ④⑤⑨(k_dmg 保底/零伤害后闸/注入池护栏)随 reward_config 删除退役,保留 ①effect_id 悬空 / poolmap 悬空 / source_label_map 键集 / level 节点悬空。 + +**路由面(core)**: +- `minesweeper_rules.gd`:cell_revealed 事件字段 `reward_eligible` → **`resource`**——initial 恒 false(封锁格),chain/dig 恒 true **含雷格**(雷安同池——旧"mine 恒 false"作废)。 +- `reward_economy.gd` 重写为纯格面资源身份面:roll_board 对全部非封锁格逐一摇定类型(摇号只用正向行权重 = 类型频次,合计 79)+ 清图批尾摇 clear_blast + 区间行 power 追加取号;query_identity 返回 {reward_id, cell_type, tier},未开格恒可查(雷格同权);grant/grant_clear 幂等保持;新增 `polarity_row(cell_type, polarity)`(类型化字典行查询面,拷贝出口)与静默 `is_mapped`/`phase` 只读出口;**删库存轴整族**(stock/use/query_inventory/in_stock_count/clear_inventory/grant_node_active/supply_granted_count/notify_battle_start);equivalence_supply 投影保留(tier_min_buff = 我侧 percent 正向行最低档 = 2)。 +- `battle_orchestrator.gd` 授予段改**极性路由**:结算队列(开格/旗判定/清图三批)逐格兑付——开安全格→该格 cell_type 正向行(charge_grants 计数埋点不变)、开雷格→负向行、标中→该雷格正向行(_flag_consumed 每雷实例一次去重不变,高光 flag_hit 保持)、标空→标旗未中归因行 + 该安全格负向行(_flag_miss_seen 同键去重不变);**删旧三套固定兑付**(`_convert_ambush` 踩雷固定伏击 / `_judge_flag` 标中固定 weaken / `_apply_miss_backlash` 标错三选一哈希派生——整段删除)。负向兑付:percent 走 apply_effect(enrage/off_guard/sapped);heal 负向 = 主角直伤 4(apply_damage,不经增益状态;战斗段增 hero 存活守卫 = 致死短路;同轮后到 heal 正向遇已倒下主角记"奖励未生效"行);blast 负向 = ambush +stacks 层(`_apply_ambush_grant` 逐层经 ambush_grant_plan 对 cap=4 守恒,溢出逐层"溢出未生效"行——协议不变)。正向兑付:percent 挂状态、flat 当场(满层/满血/无敌/主角已倒下记"奖励未生效"行)。抵消过滤既有语义保持(旗判定批以轮末在场旗为基线——发射面过滤,勿改)。区间行快照 power 只在正向路由覆盖表值(负向字典行自带定值 power)。**行型协议 15→10**(删 item/consumed_ineffective/use_rejected/window_open/window_skip),SOURCE_EXEMPT 两层豁免集合同步收窄。 +- `level_runner.gd`/`debug_session.gd`:共享 地图战斗资源 容器与库存延续语义随库存删除收窄——战斗各自持容器(映射随战斗退役,零跨战斗状态),runner 删 window 转发/inventory()/level_clear 清库/submit_window_selection;奖励点节点内容随功能道具渠道(P1 未定)**悬置为直通节点**(零兑付,node_entered 零载荷——内容归 关卡节点地图 定稿批,**待拍板**);battle_finished 载荷删 remaining_items。 + +**呈现面**: +- 删除 `inventory_panel_view.gd`(E 区道具面板/窗口态整件);`ui_assembler` 五区→四区(玩法说明文案改格面资源口径);`hud_presenter` 删 _fill_inventory/_inventory_row/window_rows,refresh 签名收窄;`main.gd` 删窗口接线/窗口状态机/库存引用(ux_window_choice 遥测随之退役);`battle_narrator` 文案去道具(层间延续 = HP only);`battle_log_view` 行格式化收窄 10 类(AGG_TYPES = reward_ineffective/overflow 两类);`board_view` 奖励徽章键 category→cell_type(攻/守/医/爆/弱 占位字形——**类型图标预读/极性视觉归批 2,纯呈现**);`status_slot_row` 补 sapped 图标键与语义(七行全映射);`playtest_logger` battle_end/level_end 载荷去 remaining_items、reward 节点零载荷。 +- "剩余安全格计数"注记:切片呈现层现无该计数器(safe_remaining 无 UI 消费方),无可改文案;呈现口径改动随批 2 一并处理。 + +**smoke/tools**: +- 删 `supply_scan.gd`(可选类供给跨种子扫描——对象已不存在);`_smoke_supply` 整段删除。 +- `smoke_all.gd` 大改(201→211 项):删窗口接线族与窗口锚行段、等待期刷新探针改挂衰减行(结算段内 Waiting 相位刷新必拒);`_smoke_power_interval` 收窄两区间行;`_smoke_damage_types` 标错断言改类型化负向兑付。**新增五段**:`_smoke_reward_identity_unit`(roll 恰一次/query_identity 投影/同格重复 grant 幂等/grant_clear 幂等/退役拒绝)、`_smoke_polarity_routing`(真实流多轮:挖安全格只出正向 + 每格 ≥1 行、挖雷格只出负向、标中正向 origin 指回雷格、标空归因 + 负向同格同批、旗兑付零泄漏)、`_smoke_negative_dictionary`(sapped 数据面在位 + effect_pool_map 收编 + 逐型负向直验:enrage/off_guard/sapped 效果行、heal 直伤 4、blast +2 层与 cap 溢出守恒)、`_smoke_resource_surface`(chain/dig resource 恒 true 含雷格、initial 恒 false、封锁格查询 null、未开雷格可查)、`_smoke_settlement_segments`(segment_order 五段冻结 + 行型封闭零残留 + 逐轮行相位单调 + 衰减/判定恰一段)。 +- `reward_expectation.gd` 重写为类型频次测量(实测收敛权重涌现值 attack 25.3/defense 20.3/blast 20.3/heal 19.0/weaken 15.2%,封锁格泄漏 0);`level_autoplay`/`monte_carlo`/`dump_battle`/`damage_probe`/`level_debug`/`level_monte_carlo`/`ui_probe`/`ui_click_probe`/`ui_layout_probe` 去窗口/库存面。**顺手修**:`monte_carlo.gd` 缺 AutoPlayer preload(HEAD 起即解析失败)已补。 + +**验证(本批实跑)**:冒烟 **211 项检查 0 失败**(回放断言全量保持——同 master_seed 同意图序列结算步骤流逐行相同);四场景探针 ui_probe / ui_tune_probe / ui_click_probe(PROBE_SEED=7 与 91 双种子)/ ui_layout_probe 全 PASS;工具回归 reward_expectation / monte_carlo / dump_battle / damage_probe(boss) / level_debug / level_monte_carlo(N=5) 零脚本错误。 + +**表实一致注记(对 registry reward_table 条目)**:十一行逐字段一致;两处切片级补全登记——① 负向 heal/blast 行 registry 未定 reward_id,切片取语义名 `heal_backlash` / `ambush_double`;② blast 负向加层行 effect_id 恒空(registry flat 行口径)+ power 校验例外(power 不消费——伏击加层为独立兑付形态,见战斗结算 GDD 兑付形态表)。 + +**待拍板(本批登记)**:① 关卡奖励点节点内容(功能道具渠道 P1——归 关卡节点地图 定稿批);② 已开格类型徽章与极性视觉(批 2——纯呈现);③ "剩余未探索安全区域"计数呈现口径(切片现无该计数器,随批 2)。