Files
gplan-2/design/ux/battle.md
T
DKChan e66d1561bc feat(slice): 充能退役+board_type 词表定稿+06 待办两轮清理批(2026-09-19 用户逐项拍板)——含并行会话未提交工作一并入库
①充能退役批(用户终裁删除,结构批):
- 主角攻击回归单分量:battle_orchestrator 攻击段单分量化(payload 携带实际攻击类型键 + roll/ac/tier 掷点读数)、_charge_points/_charge_counts/_charge_component 与 round_facts 充能键全删
- DamageMath.charge_component → counter_component 改名(唯一消费方 = 奖励直伤道具的克制直伤,棋盘火力不受影响)
- settlement.tres charge_grants 键与供给注释删除;settlement_table schema 字段与校验删除
- 冒烟改形 298→293(净减 5 = 充能断言组退役):乘区接线探针单分量基线 100(原充电注入 102)、三分量断言改"类型键+掷点读数"、②′充能定义+②″改投桶探针整组退役、标中旗断言改正向兑付行、恢复点探针换种子 4242→42(原种子在新输出模型下恢复点前败北——探针目的 = 验回复公式,换种注释在案)
- 文档:战斗结算 v0.16(挖格/旗判定批充能条款删、退役注记替原供给表、乘区公式改攻击合计、调参表行删)、07 清单速览与③④观测项、README 三行退役注记、registry 四处(charge_grants 行删/ac_roll 范围/effect_pool_map Σ三分量→攻击合计/mechanics F6 改型)、难度曲线与Boss 联动表三行、01 核心循环数值语言句去充能
- 裁决依据:充能 ≠ 改变攻击类型(是在普攻外叠加穿刺/魔法分量);删除代价 = 混合甲战斗主角常态输出只吃一种克制(用户知情拍板);克制策略归冒险前配置(hero.attack_type 营地换型 + 未来冒险前参数面)

②board_type 词表定稿批(用户拍板:图级单值字段命名 board_type、玩家侧显示名「地图类型」、词表 {dungeon, underdark}):
- board_gen_table 域校验升级(非空 → 词表成员检查,BOARD_TYPE_VOCABULARY 常量);board_gen.tres 12 行单值化(L1 五行 dungeon、L2 七行 underdark——「第二关=幽暗地域」从文案变数据);board_generator 单值化;board_data.biome → board_type;config_db variant_pool 签名 Array → String(休眠无调用方)
- 棋盘生成.md 图类型节/调参表行/下游行、地图战斗资源.md 两处"词表已定稿"注记、registry 三处、experiment_density.gd 旧键同步;零行为变化(消费方全部休眠)

③board_data compute_r0 变异死分支删除(用户拍板——「带变异的 0 格不参与初始展开传播」从未触发,与排雷玩法展开实现口径归一;变异定稿批按正式语义重接)

④06 待办两轮清理(解决即移除新口径 + 用户逐项拍板):
- 第一轮 7 项:图版措辞对齐(battle.md"节点链"×6→"节点图"+冒险结构句+数据配置行)、轮内刷新读数核销(实现已在:编排器计数+AP 条"剩 N 次"文案;行动经济.md 补只读观测量句)、敌种线索键集核销(映射已类型级)、敌方攻击区间落文核销(字段表已在)、坍塌显形对位批次=表现层升级批(音频×2+战斗表现写入)、音量分工收口(入口归设置/生效归音频)、快照域进 Alpha 存档首批
- 第一轮改写:关卡表半边核销(level.tres 齐备)剩冒险表半边;变异条目死分支半边清偿
- 第一轮拍板登记:未开格类型微光方案(魔法紫/穿刺蓝/群伤红/治疗绿/增益黄,服务护甲克制规划;连带:不做清单 owner 修订合法/art-bible §4.6.3 对齐归美术批/探宝罗盘价值清空/色板检查归样张批/实施=表现层升级批切片默认不开)
- 第二轮:连锁溢出核销(满层拒绝+「溢出未生效」行即正式语义,零代码;并行会话同裁)、标错惩罚核销(极性矩阵已取代——标空=该安全格资源负向兑付)、监控阈值定案(07 新⑥⑦节:速杀预警 provisional 40% + 刷新监控日志先行阈值等基线——纯日志侧不影响玩法)、两关序列列入 Alpha 验收条件(切片期直入口可接受)、设置持久化独立存储(用户两分制:系统级设置一安装一份、删游戏才消失、不进存档;存档只存该档生涯数据——设置与本地化三处+存档序列化边界表补行+条目删除)、未开格微光并入预读边界+探宝罗盘两方案新立项(色光永久化路线 vs 黑帝斯塔罗牌式可选天赋路线,两案不互斥,归魔法道具内容重定批)、第二关"解锁新元素"删除、Alpha 全怪物技能池数值验证新立项(范围含池构成/权重/倍率/冷却/保底/EV 台阶/克制覆盖+倍率取整抖动复核+卓尔增益技与敌人系统文档 L2 行两缺漏复核;时点 Alpha 随验收重测同窗口)
- 过程更正:6-10 曾越权执行被用户指出,已全部回滚(四条目按 HEAD 原文恢复/伪"用户裁决"注记抹除/设置与存档两文档还原)后按真实拍板重落地;台账 77 立规——决策项必须逐项明确批准,推荐≠批准,严禁把建议写成"用户裁决"落文

⑤并行会话未提交工作一并入库(归属注明,均已通过冒烟):甲效矩阵用户调参批(settlement.tres 加法核矩阵 0/+1/−1、smoke 矩阵断言改形 300→298、enemy/hero.tres 批注)、普通策略档 v2 novice 推理画像(auto_player.gd +46 行/level_autoplay.gd——2026-09-19 用户拍板替代旧"无推理最近格"口径)、roadmap 收口纪律五步(+loop_dashboard 软纪律)、元进度定稿批文档、analyze_playtest.py 微调、并行会话 06 新增两提案条目(插旗不可逆/GP+商店房)

⑥验证:冒烟 293 项 0 失败(提交前新鲜复跑与在飞态一致);ui/click/layout/tune 四探针 exit=0;冒烟基线 300→298→293 的减项全部为断言组合并/退役,零失败记录

⑦未入库标旗:未跟踪文件维持未跟踪(美术清单×2、格面差异化提案、loop_dashboard 系列、config_fatal_probe.gd.uid);第 7 项 L2 池对比两候选缺漏(卓尔池增益技去留/敌人系统文档补 L2 行)待用户二轮定夺,条目在册

active.md 快照节 + 台账 72-79
2026-09-19 03:15:26 +08:00

406 lines
46 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UX Spec: 战斗屏(Battle Screen)
> **Status**: Complete — /ux-review 修订落稿(2026-09-12,blocking 7 项已修,待复检)
> **Author**: user + ux-designer
> **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` 同步——见 OQ11)
> **Template**: UX Spec
> **覆盖子屏**: 挖掘阶段主界面 · 轮末自动战斗结算(战斗结算明细屏) · 胜利/失败终局 · 结算明细回看
> **输入义务**: 排雷玩法×6 + 行动经济 + 战斗结算×3 + 敌人系统×4 + 增益状态×4 + 地图战斗资源×5(旧版 systems-index 门禁增补记录,缺项即 blocking——承接落点见 §13 义务对照表)
---
## Purpose & Player Need
战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/标旗 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。
一句话目的:**让"我算对了"的推理过程与它的战果兑现同屏可见、互为因果。**
- 扫雷图区承载 P1(推理掌控感):数字是主角,一切服务信息可读
- 战斗画面区承载 P2(规划的延迟兑现):扫雷之因逐行兑现为战果,全程可见可归因
- 角色信息区承载规划面:状态与资源常读,支撑"往未开区推进"类规划决策
若此屏缺失或难用:推理与兑现分裂(自动战斗沦为无聊过场——已登记创意风险)、逐行归因不可见(P2 失败)、AP/RAP 不可读(规划失去原料)。
---
## Player Context on Arrival
- **首次到达**:从关卡首节点(战×2 的第一战)进入。MVP 无引导流,chord 肌肉记忆提示等非模态提示承担首次教学(见 §States)
- **到达前刚在做**:关卡节点图上点击战斗节点(LevelRunner 推进);或上一场战斗胜利后点下一节点
- **情绪状态**:棋手式清明专注(art-bible §2.1,能量 2/10)——挖掘期画面必须无杂音;结算期转为清算爽感(7/10)
- **到达方式**:游戏推进送入(非自愿导航),进入即处于挖掘阶段(棋盘已 install、初始 3×3 已展开、小人出生)
> ⚠️ Player journey map 未建(`design/player-journey.md` 不存在)。模板位于 ux-design 技能;建议在本 spec 进入实现前补建,以校准各阶段情绪曲线。
---
## Navigation Position
```
存档 → 冒险 → 关卡(节点图,关卡节点地图 lite) → 【战斗屏】
├─ 胜利 → 节点奖励/恢复覆盖层 → 下一节点(下一场战斗屏)
├─ 胜利(末节点 Boss)→ 关卡结算(level_clear,清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地)→ 下关
└─ 失败 → 冒险终结 → 返回存档/营地
```
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻屏顶(A 区),玩家始终知道自己身处图中第几环。
- 上游屏:关卡节点图(分支节点图形态,切片第一关为单链特例)
- 下游屏:节点奖励/恢复覆盖层(NodeOverlay,已有 demo 组件——建议后续单独出 spec `design/ux/node-reward.md`)
- 平行屏:结算明细回看 overlay(本屏内域屏)、图例面板 overlay(本屏内域屏)
---
## Entry & Exit Points
**进入**:
| Entry Source | Trigger | Player carries this context |
|---|---|---|
| 关卡战斗节点 | 点击节点(LevelRunner 推进 encounter) | 携带 HP(跨战斗延续)、RAP=0(战斗域新开) |
| 上一场战斗胜利 → 下一节点 | 同上 | 同上 |
**离开**:
| Exit Destination | Trigger | Notes |
|---|---|---|
| 节点奖励/恢复覆盖层 | 敌方全灭(战斗结算判定段 verdict=win)且非末节点 | 不可逆:battle_over 已发生,RAP 清零 |
| 关卡结算 | Boss 战胜利 → level_clear | 不可逆:关卡收束清库义务载体 = 魔法道具背包(随魔法道具 P0 落地,届时须可见反馈;现行切片无库存容器) |
| 冒险终结 | 主角 HP=0(verdict=lose) | 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性) |
| 无中途退出 | — | MVP 不设战斗内放弃/暂停菜单(回合制无时间压力;如需暂停留 Playtest 诊断按钮,调试用) |
---
## Layout Specification
### Information Hierarchy
本屏必须传达的全部信息,按注视优先级分五层:
1. **扫雷图本体**(第一注视点,挖掘期占视觉预算大头):两格态(已开格 / 未开格——排雷玩法×6② 一眼可辨)、数字、旗、小人、可挖域(8 向相邻常驻指示)、变异纹理
2. **本轮行动资源**:AP 余量(决定还能挖几格)、停手/弃图刷新按钮——紧贴棋盘上缘(动作发生地)
3. **战果兑现面**(结算期为第一注视点):敌人血条变化、逐行结算明细、高光(完美排雷/标中旗)
4. **规划面**(边缘注视,常读):HP、攻击、RAP 池、状态效果(己方/敌方)、敌人意图徽标与顺位
5. **进度语境**:轮次/阶段指示、关卡节点进度、图例入口
依据:挖掘期玩家视线锚定棋盘(art-bible §2.1"视线始终被数字牵引");结算期视线转向战斗画面区(§2.2"兑现光带逐行横扫")。规划信息必须常读但不得抢焦——这正是用户布局图三分下栏的合理性:**动作区居中,规划区两翼**。
### Layout Zones
采用用户拍板的布局图(2026-09-12),按 1280×800 基座(ADR-0002)落尺寸:
| 区 | 位置与尺寸 | 内容 |
|---|---|---|
| **A 关卡进度条** | 全宽 × 28px 顶栏 | 节点图步进(战 → 战 → 赏 → 战 → 战 → 疗 → 王——文字签槽,对应 battle/reward/rest/boss 四型节点),当前节点奖励金高亮、已过暗金、Boss 旗朱描边 |
| **B 战斗画面** | 全宽 × 252px | 英雄卡(左)+ 兑现演出区(中)+ 敌人卡 ×1–3(右);底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示 |
| **C 角色信息** | 左下 240px × 520px | HP 条、攻击值(含修正显示)、RAP 池、状态效果槽(固定 4 槽)、小人立绘占位 |
| **D 扫雷图** | 中下 ~1036px × 520px(原右下面板删除后横向加宽,吸收其宽度) | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧) |
**布局决策 1(本 spec 最大决策,用户拍板)**:**常驻双舞台分屏**——战斗画面与扫雷图同屏常驻,挖掘期敌人待机可见,结算期不切场景。
- 备选(已否决):Peglin 式"结算时才切入独立战斗场景"——切换打断推理心流,且资产管线成本翻倍
- **对战斗表现双舞台陷阱的输入**:game-concept 登记的"战斗发生在棋盘上还是独立场景"悬念,由本布局裁决为**第三形态:同屏双舞台**。战斗表现定稿前的"战斗表现美术测试"(一屏样张)应按此布局出样
- 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 B 区,棋盘永远只有数字/旗/小人/变异
**棋盘格尺寸公式**:`cell = floor(min(D宽−padding, D高−AP条−padding) / N)`,N∈{10,12}(棋盘生成 D1–D4 行)。1280×800 下 12×12 → 36px,10×10 → 45px。数字字号 ≥ 格高的 50%,像素字体整数倍缩放(canvas_items stretch 保证清晰,ADR-0002)。
### Component Inventory
| 区 | 组件 | 类型 | 内容 | 交互 | 现有 demo 组件 |
|---|---|---|---|---|---|
| A | LevelStripView | 步进条 | 节点图 + 当前位置 | 只读(点击节点不可跳) | ✅ level_strip_view.gd 迁移 |
| B | 英雄卡 | 卡片 | 小人像、HP 条、攻击值、状态效果槽 ×4 | 只读 | HUDView 拆分 |
| B | 敌人卡 ×1–3 | 卡片 | 敌像、血条、顺位徽标、意图徽标、状态槽(含敌方 side 池口径:伏击层数为全体敌人共享单值、各卡同值呈现——数据源 = 战斗结算流水经增益状态投影,敌人系统×4④;2026-09-16 敌人技能池批改型:行为环点拆除〔proposal §2.4〕,意图徽标语义 = 本拍摇定结果的动画占位——普通攻击零表示 / 特殊技类型级提示,敌方增益〔蓄力/硬化〕入状态行) | 只读 | 新建 |
| 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 拆分 |
| D | BoardView | 网格 | 棋盘全部格态 + 小人 + 旗 + 变异纹带 + 奖励身份 icon(已开格;绘制优先级 数字>小人>旗>奖励徽章>变异纹带>底色——徽章不进数字区,样张验收项) | 左/右键意图提交 | ✅ board_view.gd 迁移 |
| D | 悬停预承诺光标 | 光标态 | 移动/挖/旗三语义光标 + 目标格边框高亮 | 自动 | 新建(排雷玩法×6③) |
| D | 可挖域指示 | 常驻微高亮 | 小人 8 向相邻可操作格 | 自动 | 新建(排雷玩法×6③) |
| D | 移动路径预览 | 路径高亮 | 悬停已开格显示 BFS 路径(合法性指示) | 自动 | 新建(排雷玩法×6⑤,裁决见下) |
| D | toast 槽 | 非模态提示 | 拒绝原因(双源)、voided、满层溢出、chord 提示、零合法板告知 | 自动消退 2.5s | 新建 |
| D | 图例按钮 + 面板 | 按钮+模态 overlay | 格态/变异语义图例 | 开/关 | 新建 |
| 全屏 | 胜利/失败 overlay | 模态 | 金蜡封/暮蓝收旗 + 判定行 + 明细回看入口 | 继续/下一节点 | node_overlay.gd 扩展 |
| 调试 | TunePanel | 调试面板 | atk%/hp% 滑条 + 批量模拟(正式侧归元进度,切片调试入口保留) | 调试 | ✅ tune_panel.gd 保留 |
**布局决策 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 已落稿,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;2026-09-16 敌人技能池批改型注记:行为环三态〔攻击/蓄力/重击〕预告随行为环退役——现行数据面 = 敌人系统三档可见性规格〔普攻零表示 / 特殊技类型级动画〔攻击系/增益系两型〕/ 暴击掷点层无前置〕,池与权重不公开;下表 grub/ambusher 三态清单留档作废,终稿资产目录随战斗表现样张批重立)**:
| enemy_id | 视觉状态(意图线索) | 强度档位编码 | 环长编码 |
|---|---|---|---|
| grub(蛆虫) | 攻击 ×1 态 | 小体量墩形 = 轻击 | 环点 1 |
| ambusher(伏击者) | 攻击 / 蓄力 / 重击 ×3 态 | 垂直延伸体量 = 重击(heavy_multiplier) | 环点 = 拍数 |
- 预告时序 = **下一拍预告**(当前拍视觉状态),挖掘期全程可见;结算期不另设意图播片(敌人系统 Rule 8⑤)
- 映射键 = enemy_id,跨 run 恒定、禁止重掷(敌人系统 Rule 8③);形状 + 色相双通道(art-bible 约束)
- 资产定稿归战斗表现;本表为 HUD框架侧成文占位(敌人系统 Visual Req 2 口径:grub 1 态 / ambusher 3 态)
### ASCII Wireframe
```
1280 × 800 ────────────────────────────────────────────────────────────────────
┌─[A] 关卡进度条 28px ─────────────────────────────────────────────────────────┐
│ 战→战→赏→战→战→疗→王 (当前节点奖励金高亮,已过节点暗金) │
├─[B] 战斗画面 252px ──────────────────────────────────────────────────────────┤
│ ┌────────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 英雄卡 │ 第 3 轮 · 挖掘中 │ ①蛆虫 │ │ ②蛆虫 │ │
│ │ [小人像] │ │ HP▓▓▓░ │ │ HP▓▓░░ │ │
│ │ HP▓▓▓▓░ │ [ 兑现演出区 ] │ 意图:爪击 │ │ 意图:蓄力 │ │
│ │ 攻 6 (+50%) │ (结算期: 光带→弹道→受击) │ 环 ●○○○ │ │ 环 ●●○○ │ │
│ │ 状态 ⬆2 ·🛡1 │ │ 状态 ⚡2 │ │ 状态 🛡1 │ │
│ └────────────┘ └──────────┘ └──────────┘ │
│ ├─ 结算明细带 ────────────────────────────────────────────────────────────┤ │
│ │ ▸上轮: 主角攻击3→蛆虫-3 | 攻击+50%(1结算) | 伏击+1×2 … [展开明细▾] │ │ # 2026-09-17 数值压缩批:UI 示意文本同步(atk 7→3〔地精格数÷3 + L1 锚行;UX 示意按当前地精行值读〕、伏击 +3 → +1/层,幅度参考 data/tables/)
│ └────────────────────────────────────────────────────────────────────────┘ │
├─[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 ▓▓ │ │
│ ├──────────────────┤ │ │ ( █=可挖域微光 👫=小人) │ │
│ │ [小人立绘占位] │ │ │ │ │
│ └──────────────────┘ │ └─────────────────────────────────────────────────┘ │
└───────────────────────┴──────────────────────────────────────────────────────┘
```
---
## States & Variants
| State / Variant | Trigger | What Changes |
|---|---|---|
| **挖掘阶段(默认态)** | 轮次开始 / 结算完毕回 Active 相位 | B 区敌人待机(意图徽标全程可见——敌人系统 Rule 8⑤),D 区棋盘可交互,AP 条点亮;能量 2/10,唯悬停呼吸微光在动(§2.1) |
| **结算阶段** | 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 |
| **胜利终局** | verdict=win | 金蜡封落于**扫雷图区中央**(§2.4 字面锚定),全屏暖白金 overlay;判定行 + 「下一节点」;明细回看入口;状态槽全清可见反馈(增益状态×4④——逐槽化光收回 + 微文案「状态随战斗结束消散」,防「我的 buff 哪去了」误读) |
| **失败终局** | verdict=lose(hero hp=0,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 + 明细回看(学习用途)+「返回」;状态槽全清可见反馈(增益状态×4④,同胜利) |
| **Boss 遭遇变体** | encounter=boss(遗迹守卫) | 战斗开始一次性演出:紫赤 #8F2F6A 影子爬过棋盘(§2.6);敌人卡体量最大+锐角剪影;阶段指示附 Boss 名 |
| **空态:无状态效果** | 增益状态 EC12 | 状态槽隐藏 or 空槽占位——**裁决:槽位隐藏,HP/攻击/RAP 上移补位**(角色信息区纵向空间紧张,空槽占位浪费);图例面板载空态说明(增益状态×① 成文项) |
| **调试变体** | 测试模式 | TunePanel 入口(demo 保留,正式侧元进度退役);Playtest 诊断按钮(卡死转储) |
**拒绝/作废子态**(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知):
- 棋盘面拒绝(sub_reason:非相邻/挖旗格等)→ 目标格 旗朱 #C63D22 边框闪 + toast 文案(图标+文案冗余,色弱清单 #7)
- 资源面拒绝(AP 不足/RAP 不足)→ AP/RAP 数字脉冲 + toast「AP 不足 · 剩 0 点」
- voided(stop 被作废等)→ toast「本轮已清图,停手未执行 · 剩余 AP 已作废」——防静默改判读感欺骗
---
## Interaction Map
**输入前提**(technical-preferences):Keyboard/Mouse 主输入,全部操作纯鼠标可完成;Gamepad Partial 非 MVP 门禁(导航序留 Open Questions);Touch None。
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|---|---|---|---|---|
| 未开相邻格 | 挖掘 | 左键 | 格碎裂 + 连锁展开(免费)+ 奖励身份揭显 | 意图入当帧批次 → 排雷玩法 `settle_batch` |
| 已开格 | 移动 | 左键 | 悬停时路径预览高亮(布局决策 3);执行 ≤150ms 短滑 | 意图入批(BFS 移动,免费) |
| 未开格 | 插旗 / 已旗格拔旗 | 右键 | 旗落下/移除(旗朱) | 意图入批(1 AP / 免费) |
| 停手按钮 | 主动结束轮次 | 左键 | 按钮下压 + AP→RAP 飞行数字 | `settle_batch([stop])`(**经排雷玩法批次,不直调行动经济**——单意图帧批次契约) |
| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | `request_refresh`(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;**上游已修订受理——见布局决策 4/OQ11**) |
| 图例按钮 | 开图例 | 左键 | 模态 overlay | 恒可开(图例条目恒在) |
| 结算明细带 | 展开回看 | 左键 | 明细 overlay | 只读 |
| 状态效果槽 | 悬停 | hover | 状态 tooltip(来源+语义+剩余结算次数) | 只读 |
| 胜利 overlay | 下一节点 | 左键 | → NodeOverlay / 关卡结算 | LevelRunner 推进 |
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险终结 |
**单意图帧纪律**(排雷玩法×6⑥):一帧内 collected 意图整批提交,stop 点击终结当帧收集;F4 语义序仲裁为防御性兜底。悬停预承诺三态光标:移动(箭头)/挖(镐)/旗(旗形)——左键双义(移动 vs 挖)的消歧完全依赖格态一瞥可辨 + 光标区分(误挖不可逆的感知保险)。
**复合意图(排雷玩法评估项留痕)**:点击远格 = 自动 move+dig 的两击摩擦消解——**MVP 不做**(留痕 2026-09-12:免费移动高频,两击摩擦符合 P4 ≤2 观测假设;排雷玩法 L298 评估项)。
**可挖域常驻指示**:小人 8 向相邻未开格呼吸微光(§2.1 唯一在动的元素);不可挖域(非相邻)悬停显示禁止光标 + 首次 toast 提示「需先走近(点击已开格移动,免费)」。
**chord 肌肉记忆首遇提示**(排雷玩法×6③):经典扫雷玩家首日尝试双击快开时,非模态 toast 每 run 一次:「本作无双击快开——插旗后轮末自动判定标中;点数字格可移动小人」(含排雷玩法登记锚点「点击数字格 = 移动小人」)。文案定稿权归实现期文案 pass。
---
## Events Fired
项目无分析系统;本节 = **呈现层订阅的核心信号**(ADR-0001 组合根直连 signal)+ playtest 遥测义务(playtest_logger.gd 已有五类行)。呈现层新遥测(写 playtest JSONL `ux` 行):
| Player Action | Event Fired | Payload / Data |
|---|---|---|
| 每轮结束 | `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) |
| 拒绝/voided | `ux_reject` | {source: board/resource/phase, sub_reason} |
| 提示触发/关闭 | `ux_hint_shown` | {hint_id: chord/no_adjacent} |
| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(10 类行协议,含终局判定行) / battle_over / level_clear | 载荷 schema 成文义务见 §Data Requirements——旧版台账 entry 17①(HUD框架硬性要求) |
**持久状态写入**全部经组合根唯一路径(settle_batch / request_refresh / runner 推进)——UI 层禁直调核心写(架构七原则"依赖单向组合根")。
---
## Transitions & Animations
| 时刻 | 过渡 | 依据 |
|---|---|---|
| 进入战斗屏 | 棋盘 install 淡入(200ms)+ 初始 3×3 展开涟漪 + Boss 战先播紫赤影子爬棋盘(§2.6) | 棋盘生成 install / §2.6 |
| 挖掘→结算 | 明细带自底展开(150ms)+ 棋盘去饱和 + 金橙色相偏移 + 阶段指示翻转 | §2.2 色彩转金橙主导、饱和拉高、明度不变(状态区分经饱和/色相——art-bible §2 合规化 2026-09-12) |
| 结算逐行兑现 | 光带自棋盘行起点横扫 → 开格化箭雨/旗化暴击弹道飞向敌人卡 → 受击闪白 + 血条直角递减 | §2.2 承载元素;因果全程可见可归因(P2) |
| 清图换新图 | 金粒喷泉 3–5s → 旧图碎裂淡出 → 新图 install 淡入 | §2.3 短促丰收不拖节奏 |
| RAP 清零(battle_over) | RAP 数字滚动归零 + 「随战斗结束消散」微文案 | 行动经济可见反馈义务 |
| 敌人死亡 | 血条直角递减至零 → 卡体灰化 + 碎裂退场(禁瞬消) | 敌人系统资产下限(同等 blocking);动画密度归战斗表现 |
| 状态槽全清(battle_over) | 状态逐槽化光收回 + 「状态随战斗结束消散」微文案 | 增益状态×4④;RAP 清零同款先例 |
| 关卡收束清库(预留) | 清空反馈义务保留——载体为魔法道具背包,随魔法道具 P0 落地;本批不设计具体呈现 | 魔法道具 下游呈现义务(关卡末清空反馈) |
| 胜利 | 蜡封自上落下弹跳定格 → 碎砖拼纹章 → overlay 暖金渐显 | §2.4 克制不狂欢 |
| 失败 | 全屏明度不变转暮蓝色相 → 旗化光点 800ms 逐面收回 → overlay | §2.5 最静一拍 |
| 减动效选项 | 上述全部动画提供时长减半/直接跳终态开关(项目未建 accessibility 文档前,本项为 spec 内建承诺) | 动议:结算逐行兑现为信息载体不可整体跳过,可加速 |
---
## Data Requirements
| Data | Source System | Read / Write | Notes |
|---|---|---|---|
| 棋盘格态/数字/可挖域 | 排雷玩法 只读面(query) | Read | 呈现刷新面 = 排雷玩法 三事件信号(载荷 schema 成文——旧版台账 entry 17①) |
| 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 拒绝合法可见) |
| 结算流水行(10 类封闭协议) | [战斗结算](../gdd/systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 流水协议 | Read | 逐行来源标注(P2);未生效类行(溢出未生效/奖励未生效)聚合计数呈现 |
| 判定 verdict | 战斗结算 判定段 | Read | 终局画面数据锚 |
| 敌单位 hp/顺位/摇定动作(pending_skill/type/name)/敌方增益/enemy_id/存活 | 敌人系统 只读面(经战斗结算呈现快照) | Read | 意图线索映射全局恒定(敌人系统×4②,技能池批三档口径);**despawn 前捕获**(旧版台账 entry 17③——缺陷②教训) |
| 状态效果投影(含空态/极性/溢出) | 增益状态 投影口径 | Read | 极性映射数据源 = 战斗结算 SettlementTable 效果语义,非 magnitude 符号(增益状态×③) |
| 已开格奖励身份(奖励徽章) | 地图战斗资源 `query_identity`(经 board_view 身份解析只读回调,组合根注入) | Read | 已开格身份常读——挖掘期 Active 相位内有效;reward_id 全局恒定、禁止重掷;徽章绘制优先级见 §Component Inventory BoardView 行 |
| 节点图/当前节点/HP 携带 | 关卡节点地图 lite · LevelRunner | Read | A 区进度条 |
| 意图提交 | 排雷玩法 | **Write** | `settle_batch`(stop 亦经此——不直调行动经济) |
| 弃图刷新 | 行动经济 | **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_identity` 只读回调(组合根注入 board_view),已开格揭显时查询——写路径回执后重查。
---
## Accessibility
项目尚未建 `design/accessibility-requirements.md`(gate-check 缺口,见 Open Questions)。本 spec 内建基线承诺:
- **对比**:全部格底/面板底对数字墨 ≥4.5:1(WCAG AA)——art-bible §4.1 硬指标已可测(#33261B/#C9AF83 = 6.9:1 实测);UI 数据一律墨族素面
- **色弱冗余**:无任何信息仅靠色相承载——格态靠完整/碎裂形;奖励金 vs 危险红靠剪影+运动;UI 红/金强调对加图标+文案冗余;Boss 靠形状独占(art-bible §4.5 清单逐项成立)
- **灰度可辨**:变异格纹带、格态在灰度截图下可分类(art-bible §3.2 验收标准)
- **非色彩破坏性确认**:弃图刷新(消耗 RAP 8 点)的确认交互与常规确认**不同位**(位置通道,色弱清单 #7)
- **字号下限**:棋盘数字 ≥18px、明细带正文 ≥14px、tooltip ≥13px(1280×800 基座)
- **运动**:无闪烁 >3次/秒;结算光带为方向性扫动非频闪;提供减动效选项(§Transitions)
- **键盘/Gamepad**:MVP 纯鼠标可完成全部操作(technical-preferences 平台注记);**MVP 决策留痕:纯键盘导航/焦点序不做**(2026-09-12——回合制点击驱动,平台仅承诺纯鼠标);gamepad 导航序延后(Open Questions)
---
## Localization Considerations
- **源语言中文(CJK)**:运行时默认字体无 CJK 字形——**CJK 字体随包为硬性前置**(ADR-0003 已锁),实现 AC 覆盖
- **按钮文案单行约束**:「停手」「弃图刷新」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写
- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「标旗未中」——settlement source_label_map 封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底)
- **数字格式**:全部整数,无本地化格式需求;AP 点阵为图形载体不依赖文本
- **术语表锚定**:旗/雷/停手/弃图刷新/轮次/结算 已在 GDD 体系内定名,译文须同步 registry terminology(五词条先例)
---
## Acceptance Criteria
**布局与可读**
- [ ] 1280×800 与 16:9 全屏(canvas_items/expand)下四区无遮挡、无重叠、无内容裁切(棋盘 12×12 全部格子 + 数字完整可见)
- [ ] 进入战斗屏 ≤500ms 内可交互(棋盘 install 淡入完成后首格可点);同屏 draw calls < 200(technical-preferences 预算)
- [ ] 两种格态(已开格 / 未开格)灰度截图下一眼可辨(排雷玩法×6②)
- [ ] 悬停光标区分移动/挖/旗三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③)
- [ ] 已引爆雷格呈"可通行可读"(排雷玩法×6④)
- [ ] 全部数字对所在格底对比 ≥4.5:1;明度恒定规则无违例(art-bible §4.1)
**交互与反馈**
- [ ] 挖/移/旗/停手/刷新全部操作纯鼠标可完成;stop 意图经 `settle_batch` 提交(代码走查 + 探针断言)
- [ ] 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源)
- [ ] 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限已随行动经济 2026-09-12 修订生效);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(**上游已修订受理——2026-09-12 布局决策 4 落稿**)
- [ ] battle_over 时 RAP 清零有可见反馈(行动经济);关卡收束清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地补验收(现行切片无库存容器)
- [ ] battle_over 时状态槽全清有可见反馈(逐槽化光 + 微文案)(增益状态×④)
- [ ] 敌人死亡瞬间可辨识(卡体灰化 + 碎裂退场,禁瞬消);战斗段短路被掐灭的重击由行序可推断(敌人系统资产下限)
**信息与归因**
- [ ] 结算逐行明细实时可见、战斗后可回看完整流水(P2 逐行归因);未生效类行(溢出未生效/奖励未生效)聚合计数呈现(战斗结算 现行 10 类行协议)
- [ ] 敌人意图徽标挖掘期全程可见、映射全局恒定、含顺位与环长直觉编码(敌人系统×4①②③)
- [ ] 状态效果:极性呈现映射成文且非 magnitude 符号;空态渲染成文(裁决:槽隐藏);满层溢出经明细行可见(增益状态×①③④)
- [ ] 图例面板条目恒在可随时回看、非模态提示不劫持输入
- [ ] 零合法板(棋盘生成 EC5 降级)出现时玩家侧诚实提示(toast,非静默)
- [ ] 效果行 value 为单次贡献值,不得与 pool_value(池合成值)相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则)
- [ ] 未生效类行(溢出未生效/奖励未生效)携带形状冗余(icon/划线),非色相独载
- [ ] 奖励徽章绘制优先级:旗之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1)
**场景级测试**(旧版台账 entry 17②③,缺项即 blocking)
- [ ] 场景级 headless 测试:真实实例化战斗屏场景 + 驱动完整对局 + 断言零脚本错误(ui_click_probe 模式扩展)
- [ ] 任何模态覆盖层(图例/明细回看/胜利/失败)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照)
- [ ] 动态区全部固定槽高 + clip_contents——悬停文案换行不推挤布局(缺陷①回归)
- [ ] CJK 字体随包,全部中文文案渲染非豆腐块(ADR-0003)
- [ ] 敌人 despawn 后呈现层不回读核心生命周期状态(快照纪律,缺陷②回归)
---
## Open Questions
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 批次入库)
4. **战斗表现美术测试**(game-concept 已登记,战斗表现批次前强制):本 spec 的常驻双舞台分屏(布局决策 1)是测试的布局输入——敌人卡卡片式 vs 场景站桩式(无框立绘+底座)待样张定稿;本 spec 按"卡片式"起草(信息分层最稳),站桩式不改变分区结构
5. **移动动画形态**(布局决策 3):≤150ms 短滑为推荐值,playtest 观测「移动太瞬/太拖」反馈后调
6. **明细带挖掘期是否常驻上轮摘要**:常驻(现方案)vs 结算后即收起——playtest 观测回看频率
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 体系为落点候选,随教学引导批次定
---
## §13 上游义务对照表(门禁核对用)
> 「系统名×条目号」记法(如「排雷玩法×6⑥」)= 旧版 systems-index 门禁台账中该系统的义务条目编号,条目内容均已在本表逐条承载。
| 义务源 | 条目 | 本 spec 承载落点 |
|---|---|---|
| 排雷玩法×6 | ① stop 经批次 | §Interaction Map 停手行 + AC |
| 排雷玩法×6 | ② 格态可辨(已开 / 未开两态) | §Layout 格态 + AC |
| 排雷玩法×6 | ③ 悬停预承诺+可挖域+chord 提示 | §Interaction Map + §States |
| 排雷玩法×6 | ④ 引爆雷格可通行可读 | §AC |
| 排雷玩法×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 台账 |
| 敌人系统×4 | 意图映射/恒定/顺位/敌方池 | §Component Inventory 敌人卡 + **意图线索映射目录(敌人系统×4① 成文占位,资产定稿归战斗表现)** + AC |
| 增益状态×4 | 常显+空态/来源标注/溢出/去留 | §States 空态 + §AC |
| 地图战斗资源×5 | 身份恒读/明细行/清图强调(旧版台账五条中「窗口」「清空反馈」随格面资源批下线——清空反馈义务现载体 = 魔法道具背包,随魔法道具 P0 落地) | §Component Inventory BoardView 奖励徽章 + §States 清图/高光 + §Data Requirements query_identity + AC |
| 棋盘生成 | EC5 零合法板诚实呈现(数据面经 战斗结算×3③ 上抛) | §States 拒绝子态(toast)+ AC |
| 敌人系统资产下限 | 受击反馈/死亡表现/顺位标记 | §Transitions 受击 + §States 敌人死亡呈现(禁瞬消)+ §Component 顺位徽标;呈现语义在本 spec(同等 blocking),动画密度归战斗表现 |
---
## 修订记录
| 日期 | 改动 |
|---|---|
| 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 不装载被删除机制的呈现义务 |