Files
gplan-2/design/gdd/ux/battle.md
T

62 KiB
Raw Blame History

UX Spec: 战斗屏(Battle Screen)

Status: Complete — /ux-review 修订落稿(2026-09-12,blocking 7 项已修,待复检) Author: user + ux-designer Last Updated: 2026-09-27(UX 文档欠账处置批:player-journey 不建、accessibility 改指 HUD框架 基线、node-reward 挂魔法道具内容重定批、导航残留修正——见文末修订记录) 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 已展开、小人出生)

Navigation Position

Navigation Position

存档 → 冒险 → 关卡(关卡画面 = 节点图选路常驻枢纽) → 【战斗屏】
                                          ├─ 胜利 → 返回关卡画面选下一节点(落地奖励/恢复节点时开节点覆盖层确认 → 下一场战斗屏)
                                          ├─ 胜利(末节点 Boss)→ 关卡结算(level_clear,spec:[level-clear.md](level-clear.md))→ 下关
                                          └─ 失败 → 冒险终结 → 返回存档/营地

战斗屏是上下文相关屏(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(独立屏的常驻枢纽形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 紫赤描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。

  • 上游屏:关卡画面(选路枢纽,屏级 spec:level-map.md——2026-09-27 建档;分支节点图形态,切片第一关为单链特例)
  • 下游屏:关卡画面(选路枢纽,spec:level-map.md)——战斗胜利后返回选路;落地奖励/恢复节点时由关卡画面域开节点覆盖层(NodeOverlay,恢复点全量服务、奖励点=三选一构筑点)确认兑付——节点奖励屏 spec 已出生:node-reward.md v1.0(2026-09-29 迭代 7 T5 随批出生,06 条目兑现;2026-09-27「不立独立 spec」拍板随之被取代)
  • 下游屏:关卡结算(level-clear.md,末节点 Boss 胜利——2026-09-27 建档)
  • 平行屏:结算明细回看 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 清零;落地奖励/恢复节点时开节点覆盖层确认(NodeOverlay,关卡画面域)
关卡结算 Boss 战胜利 → level_clear(spec:level-clear.md) 不可逆:关卡收束清库义务载体 = 魔法道具背包(库存已随迭代 7 落地——C 区四槽+关卡域库存;清库反馈呈现待批)
冒险终结 主角 HP=0(verdict=lose) 不可逆:Roguelike 死亡重开(art-bible §2.5 温柔惋惜调性)
无中途退出 — MVP 不设战斗内放弃/暂停菜单(回合制无时间压力;如需暂停留 Playtest 诊断按钮,调试用)

Layout Specification

Information Hierarchy

本屏必须传达的全部信息,按注视优先级分五层:

  1. 扫雷图本体(第一注视点,挖掘期占视觉预算大头):两格态(已开格 / 未开格——排雷玩法×6② 一眼可辨)、数字、旗、小人、可挖域(8 向相邻常驻指示)、变异纹理
  2. 本轮行动资源:AP 余量(决定还能挖几格)、RAP 池(弃图刷新货币)、停手/弃图刷新按钮——紧贴棋盘上缘(动作发生地)
  3. 战果兑现面(结算期为第一注视点):敌人血条变化、逐行结算明细、高光(完美排雷/标中旗)
  4. 规划面(边缘注视,常读):攻击值与修正来源(C 区数据框)、敌人意图徽标与顺位(B 区站桩);HP 与状态效果由单位本体(B 区站桩)唯一承载——数据框不重复展示
  5. 进度语境:轮次/阶段指示、图例入口(关卡节点进度常驻关卡画面,战斗屏不承载——见 Navigation Position)

依据:挖掘期玩家视线锚定棋盘(art-bible §2.1"视线始终被数字牵引");结算期视线转向战斗画面区(§2.2"兑现光带逐行横扫")。规划信息必须常读但不得抢焦——这正是用户布局图三分下栏的合理性:动作区居中,规划区两翼。

信息归属原则与分区唯一展示面(2026-09-26 用户拍板)

每个区域准入一条信息的判据只有两条,缺一不进:

  1. 循环口径原则——战斗屏只展示战斗小循环(单场战斗)内被消费、影响当下决策的数据。中循环(关卡内跨战斗)与大循环(永久/营地)资源不得入侵战斗屏:它们不改变战斗内任何决策,展示只产生噪音。
  2. 单一展示面原则——同一信息全屏只允许一个展示面。单位本体(站桩)已承载的信息(HP、立绘、状态效果),数据框不再重复展示;资源数字必须贴着它的唯一消费口(就近原则)。

按此两原则推导的分区信息归属树(每片叶子 = 该信息的唯一展示面):

  • B 区战斗画面
    • 主角站桩:立绘、HP 血条、状态效果小图标行 ← HP 与状态的唯一展示面(2026-09-26 拍板:C 区同信息展示退役)
    • 敌人站桩 ×1–3:HP 血条、顺位徽标、状态小图标行、意图徽标、护甲类型图标(AC 数值不展示——2026-09-26 终裁)
    • 兑现演出区 / 结算明细带 / 轮次·阶段指示
  • C 区角色信息(规划数据框)
    • 攻击值 + 修正来源角标(战斗在消费、且站桩上无展示)
    • 护甲 AC(2026-09-26 二轮拍板补入——我方 AC 的唯一展示面;掷点判定轴,受击侧可读性)
    • 魔法道具槽(已实装:四槽两步交互,详见 node-reward.md——随身战斗用道具的唯一展示面)
    • 本关强化列表(预留——锻造/大奖励/关卡奖励节点获得的属性提升;与战斗内状态效果分区呈现,防「战斗结束被清」误读)
  • D 区扫雷图 · AP 条
    • AP 点阵 + 停手按钮(现行)
    • RAP 读数(点阵+数字)——自 C 区迁入,置于弃图刷新按钮旁(2026-09-26 拍板:RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮)
  • 战斗屏不承载(迁出,2026-09-26 二轮拍板定去向)
    • GP(中循环资源——商店房消费):关卡画面常驻总量 + 战斗总结结算(总量+增量)(呈现 spec:settlement-summary.md v1.0,2026-09-30)
    • 钥石(大循环永久资源):战斗总结结算(Boss/精英击杀增量行,迭代 10 起)+ 冒险总结结算(收束明细)+ 营地(归位口径扩面见 settlement-summary.md v1.1)

Layout Zones

采用用户拍板的布局图(2026-09-12),按 1280×800 基座(ADR-0002)落尺寸:

区 位置与尺寸 内容
B 战斗画面 全宽 × 252px 主角站桩立绘(左)+ 兑现演出区(中)+ 敌人站桩立绘 ×1–3(右)——全站桩形态(2026-09-20 用户拍板,敌人卡形态待办裁决收口):主角与敌人均为无框立绘+底座,零卡片;主角与敌人站桩 = HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板);底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示
C 角色信息 左下 240px × 548px 攻击值(含修正显示)、护甲 AC;魔法道具槽(预留)、本关强化列表(预留)——HP 条/RAP 池/状态效果槽/立绘占位/钱包行退役(2026-09-26 信息归属拍板:HP 与状态唯一展示面 = B 区站桩;RAP 迁 D 区 AP 条;GP/钥石迁出战斗屏)
D 扫雷图 中下 ~1036px × 548px(原右下面板删除后横向加宽,吸收其宽度) 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;中——RAP 点阵+数字〔自 C 区迁入,贴弃图刷新按钮,2026-09-26 拍板〕;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧)

布局为 B/C/D 三区——关卡进度条不在战斗屏(节点链进度常驻关卡画面,见 Navigation Position;字母不重编沿用 B/C/D)。

呈现术语注记(2026-09-25):插旗动作的玩家可见呈现名 = 封印(registry terminology;旗 = 封印印记,art-bible §3.2)——机制与键名不变;封印特效未实装,现行占位 = 封印黑「旗」字形(board_view 程序化占位,贴图在位=字形退役;旗朱→封印紫 2026-09-26→封印黑 2026-09-28 用户拍板)。

可挖域微光画法定稿(2026-09-25 用户拍板):接触带·空间侧 + 蓝族——光画英雄格周界接触面(正交邻墙=整边,斜向邻墙=角点+两半边),详见 art-bible §3.2;现行墙格整框绿相呼吸为待退役占位,实现切换归表现批(探针断言随批)。

布局决策 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 组件
B 主角站桩立绘 站桩(无框立绘+底座) HP 条悬浮头顶、状态效果小图标一排挂血条正下方(形状+色相双通道、层数角标)——HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板,原 C 区状态槽职责〔悬停 tooltip 来源+语义+剩余结算次数〕并入本组件);攻击值等规划数据仍归 C 区数据框(2026-09-20 全站桩拍板,英雄卡退役) 悬停状态小图标看 tooltip HUDView 拆分改造
B 敌人站桩立绘 ×1–3 站桩(无框立绘+底座) 血条+顺位徽标悬浮头顶、状态小图标挂血条正下方(敌方 side-wide 增益各立绘同值呈现——蓄力/硬化/削弱/暴走/警觉;伏击层数通道随 2026-09-20 八型批退役——数据源 = 战斗结算流水经增益状态投影,敌人系统×4④;2026-09-16 敌人技能池批改型:行为环点拆除〔proposal §2.4〕,意图占位 = 本拍摇定结果的动画占位——普通攻击零表示 / 特殊技类型级提示,敌方增益〔蓄力/硬化〕入状态图标行);死亡灰化加碎裂退场直接演在立绘上(2026-09-20 全站桩拍板,敌人卡退役);底座下名字行 = 纯名字 + 护甲类型图标(形状+色相双通道),AC 数值不展示——2026-09-26 终裁(用户口径:HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性——类型可读、数值隐藏) 只读 新建
B 轮次·阶段指示 标签 "第 N 轮 · 挖掘中/结算中"(终局定格「战斗结束」;Boss 变体附 Boss 名) 只读 新建
B 结算明细带 滚动列表 结算期逐行流水(战斗结算 9 类行协议);挖掘期收起为上轮摘要 1 行 点击展开明细回看 overlay battle_log_view.gd 改造
B 结算明细回看 模态 overlay 完整流水逐行(现行 9 类行协议;未生效类行聚合计数) 关闭 battle_log_view.gd 改造
C 攻击数据框 直角细线数据框 攻击值 + 修正来源角标 + 护甲 AC(AC 二轮拍板 2026-09-26 补入——我方 AC 唯一展示面;原「HP/攻击/RAP 显示」——HP 与 RAP 随信息归属拍板迁出本组件) 只读 HUDView 拆分
C 魔法道具槽(已实装:四槽两步交互,详见 node-reward.md) 图标槽 ×4 随身战斗用道具的唯一展示面;库存已随迭代 7 落地(C 区四槽+关卡域库存),清库反馈呈现待批 悬停 tooltip(道具语义) 新建(随魔法道具批,已落地)
C 本关强化列表(预留) 列表/图标行 锻造/大奖励/关卡奖励节点获得的属性提升——中循环数据,因改变战斗数学且无其他展示面准入战斗屏;与战斗内状态效果(B 区站桩)分区,防「战斗结束被清」误读 只读 新建
D AP 条 点阵 + 按钮组 本轮 AP 点阵、停手按钮(左)、RAP 点阵+数字(自 C 区迁入 2026-09-26——RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮;RAP 清零可见反馈〔行动经济〕载体随迁)、弃图刷新按钮(右端·雷图右上角;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 模态 金蜡封/暮蓝收旗 + 判定行 + 明细回看入口 继续/下一节点 battle_end_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

2026-09-26 信息归属拍板:C 区 HP/RAP/状态槽/立绘占位/钱包行退役——HP 与状态唯一展示面 = B 区站桩,RAP 迁 D 区 AP 条贴弃图刷新按钮,GP/钥石迁出战斗屏;C 区改攻击数据框+两预留区。下方线框图已随拍板重绘;旧线框留档于 git 历史。 2026-09-23 停点前移批:A 区关卡进度条退役,下方线框图为 B/C/D 三区(28px 纵向空间划归 C/D 底行 520 → 548;关卡内节点进度常驻关卡画面,战斗屏零进度承载);旧四区线框留档于 git 历史。 2026-09-20 全站桩形态改版:敌人卡形态裁决收口(卡片式退役、主角与敌人均站桩——无框立绘+底座、状态小图标挂血条下),下方线框图 B 区已随裁决重绘;旧卡片式线框留档于 git 历史。

1280 × 800 ────────────────────────────────────────────────────────────────────
┌─[B] 战斗画面 252px ──────────────────────────────────────────────────────────┐
│   HP▓▓▓▓░                                ①HP▓▓▓░    ②HP▓▓░░                │
│   ⬆2 🛡1                                 [⚔特殊技]   (普攻·零表示)          │
│    /小人\        第 3 轮 · 挖掘中         伏×2        伏×2                  │
│   (底座)      [ 兑现演出区 ]            /蛆虫\      /蛆虫\                 │
│       ↑状态图标挂血条正下方   (结算期: 光带→弹道→受击) (底座)   (底座)      │
│ ├─ 结算明细带 ────────────────────────────────────────────────────────────┤  │
│ │ ▸上轮: 主角攻击3→蛆虫-3 | 攻击+50%(1结算) | 警觉+1×2 …        [展开明细▾] │  │  # 2026-09-17 数值压缩批:UI 示意文本同步(atk 7→3〔地精格数÷3 + L1 锚行;UX 示意按当前地精行值读〕、伏击 +3 → +1/层,幅度参考 data/tables/)
│ └────────────────────────────────────────────────────────────────────────┘  │
├─[C] 角色信息 240px ───┬─[D] 扫雷图 ~1036px ──────────────────────────────────┤
│        548px          │                      548px                           │
│ ┌──────────────────┐  │ ┌─────────────────────────────────────────────────┐  │
│ │ 攻击 6  (+50%)    │  │ │ AP ●●●●●○○○ 5/8   RAP ▓▓▓░ 3/8                  │  │
│ │ 护甲 AC 12        │  │ │ [⏹停手]              [?图例] [↻刷新 8|剩2]      │  │
│ ├──────────────────┤  │ │ ┌─toast────────────┐                            │  │
│ │ 魔法道具槽(预留) │  │ │ │AP不足·剩0点       │   12 12  1  ░  2  ▓▓ ▓▓    │  │
│ │ ◇  ◇  ◇  ◇       │  │ │ └──────────────────┘   12  █  1   1  2  ▓▓ ▓▓   │  │
│ ├──────────────────┤  │ │   1  2  2  🚩 █  2  1      1  ▓▓ 👫 1  1  ░    │  │
│ │ 本关强化(预留)   │  │ │   ░  1  ▓▓ 👫 1  1  ░     ▓▓   1  1  ░  ░  2   │  │
│ │ 锻造+2攻          │  │ │  ▓▓   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④——B 区主角站桩图标逐枚化光收回 + 微文案「状态随战斗结束消散」,防「我的 buff 哪去了」误读)
失败终局 verdict=lose(hero hp=0,战斗段短路) 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 + 明细回看(学习用途)+「返回」;状态图标行全清可见反馈(增益状态×4④,同胜利)
Boss 遭遇变体 encounter=boss(遗迹守卫) 战斗开始一次性演出:紫赤 #8F2F6A 影子爬过棋盘(§2.6);敌人立绘体量最大+锐角剪影;阶段指示附 Boss 名
空态:无状态效果 增益状态 EC12 状态小图标行隐藏(B 区主角站桩血条下图标行零图标时不占位);原「C 区状态槽隐藏、HP/攻击/RAP 上移补位」裁决随 C 区槽退役(2026-09-26 信息归属拍板)作废;图例面板载空态说明(增益状态×① 成文项)
调试变体 测试模式 TunePanel 入口(demo 保留,正式侧元进度退役);Playtest 诊断按钮(卡死转储)

拒绝/作废子态(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知):

  • 棋盘面拒绝(sub_reason:非相邻/挖旗格等)→ 目标格 危险红 #A8321F 边框闪 + 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 / 免费;已旗格右键无操作——旗无移除手段,插旗不可逆批 2026-09-19)
停手按钮 主动结束轮次 左键 按钮下压 + AP→RAP 飞行数字 settle_batch([stop])(经排雷玩法批次,不直调行动经济——单意图帧批次契约)
弃图刷新按钮(雷图右上角) 当轮就地换图继续挖 左键 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) request_refresh(Active 相位当场换图继续挖——AP 不重置、本轮剩 N 次扣减;上游已修订受理——见布局决策 4/OQ11)
图例按钮 开图例 左键 模态 overlay 恒可开(图例条目恒在)
结算明细带 展开回看 左键 明细 overlay 只读
状态小图标(B 区站桩) 悬停 hover 状态 tooltip(来源+语义+剩余结算次数) 只读
胜利 overlay 下一节点 左键 → 关卡画面(选路枢纽)/ 关卡结算(末节点) 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}
呈现订阅(不改核心) 排雷玩法三事件 / 战斗结算步骤流(9 类行协议,含终局判定行) / 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 数字滚动归零(D 区 AP 条)+ 「随战斗结束消散」微文案 行动经济可见反馈义务
敌人死亡 血条直角递减至零 → 卡体灰化 + 碎裂退场(禁瞬消) 敌人系统资产下限(同等 blocking);动画密度归战斗表现
状态图标行全清(battle_over) 状态逐枚化光收回(B 区站桩图标行)+ 「状态随战斗结束消散」微文案 增益状态×4④;RAP 清零同款先例
关卡收束清库(预留) 清空反馈义务保留——载体为魔法道具背包,随魔法道具 P0 落地;本批不设计具体呈现 魔法道具 下游呈现义务(关卡末清空反馈)
胜利 蜡封自上落下弹跳定格 → 碎砖拼纹章 → overlay 暖金渐显 §2.4 克制不狂欢
失败 全屏明度不变转暮蓝色相 → 旗化光点 800ms 逐面收回 → overlay §2.5 最静一拍
减动效选项 上述全部动画提供时长减半/直接跳终态开关(基线权威 = HUD框架「可访问性基线」节;开关承载 = 设置与本地化,切片期入口 = TunePanel——2026-09-27 拍板不另立无障碍专项文档) 动议:结算逐行兑现为信息载体不可整体跳过,可加速

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 拒绝合法可见)
结算流水行(9 类封闭协议) 战斗结算 流水协议 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 关卡画面(独立屏)节点态呈现(战斗屏零进度承载)
意图提交 排雷玩法 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

无障碍基线权威 = HUD框架「可访问性基线」节;不再另立专项文档(2026-09-27 欠账处置拍板,见 OQ2)。本 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)下三区(B/C/D)无遮挡、无重叠、无内容裁切(棋盘 12×12 全部格子 + 数字完整可见)
  • 进入战斗屏 ≤500ms 内可交互(棋盘 install 淡入完成后首格可点);同屏 draw calls < 200(technical-preferences 预算)
  • 两种格态(已开格 / 未开格)灰度截图下一眼可辨(排雷玩法×6②)
  • 悬停光标区分移动/挖/旗三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③)
  • 已引爆雷格呈"可通行可读"(排雷玩法×6④)
  • 全部数字对所在格底对比 ≥4.5:1;明度分层规则无违例(art-bible §2/§4.1,v3.0——状态区分不走明度,格底功能分档合法)

交互与反馈

  • 挖/移/旗/停手/刷新全部操作纯鼠标可完成;stop 意图经 settle_batch 提交(代码走查 + 探针断言)
  • 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源)
  • 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限已随行动经济 2026-09-12 修订生效);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(上游已修订受理——2026-09-12 布局决策 4 落稿)
  • battle_over 时 RAP 清零有可见反馈(行动经济);关卡收束清库反馈义务载体 = 魔法道具背包——库存已随迭代 7 落地(C 区四槽+关卡域库存),清库反馈呈现待批,随呈现落地补验收
  • battle_over 时状态图标行全清有可见反馈(B 区站桩逐枚化光 + 微文案)(增益状态×④)
  • 敌人死亡瞬间可辨识(卡体灰化 + 碎裂退场,禁瞬消);战斗段短路被掐灭的重击由行序可推断(敌人系统资产下限)

信息与归因

  • 结算逐行明细实时可见、战斗后可回看完整流水(P2 逐行归因);未生效类行(奖励未生效)聚合计数呈现(战斗结算 现行 9 类行协议)
  • 敌人意图徽标挖掘期全程可见、映射全局恒定、含顺位与环长直觉编码(敌人系统×4①②③)
  • 状态效果:极性呈现映射成文且非 magnitude 符号;空态渲染成文(裁决:图标行隐藏——B 区站桩血条下零图标时不占位);满层溢出经明细行可见(增益状态×①③④)
  • 图例面板条目恒在可随时回看、非模态提示不劫持输入
  • 零合法板(棋盘生成 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——已收口(2026-09-27 欠账处置拍板:不建):实现前补建的前提随战斗屏实装失效;情绪曲线事实源 = art-bible §2 能量档,真人体验观测与结论回流 = 07-体验验证清单
  2. 无障碍专项文档——已收口(2026-09-27 拍板:不另立 design/accessibility-requirements.md):基线(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)权威 = HUD框架「可访问性基线」节;正式分层(文本缩放/色盲模式/按键重映射)归 设置与本地化 待设计问题清单 #1(设置项全集裁决时定);本 spec §Accessibility 为呈现侧落地承诺
  3. interaction-patterns.md——已建成(2026-09-12 /team-ui 批当日落稿,本条「未建」系过期陈述):本 spec 引入的四 pattern(双源拒绝反馈/逐行兑现明细带/悬停预承诺光标/点阵资源显示)均已入库成文(pattern 1/3/4/5)
  4. 战斗表现美术测试(game-concept 已登记,战斗表现批次前强制):本 spec 的常驻双舞台分屏(布局决策 1)是测试的布局输入——敌人卡形态已裁决(2026-09-20 用户看对照样张拍板):全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条下,卡片式整体退役;本 spec 已随裁决改写(原"按卡片式起草"条款作废),站桩式不改变分区结构。对照样张存档 production/mockups/enemy-card-vs-standee-mockup.html
  5. 移动动画形态(布局决策 3):≤150ms 短滑为推荐值,playtest 观测「移动太瞬/太拖」反馈后调
  6. 明细带挖掘期是否常驻上轮摘要:常驻(现方案)vs 结算后即收起——playtest 观测回看频率
  7. Gamepad 导航序:Partial 支持(非 MVP 门禁)——焦点环顺序待 gamepad 批次定
  8. NodeOverlay / 关卡结算屏——已收口(2026-09-27 欠账处置拍板;节点奖励屏部分被 2026-09-29 迭代 7 取代):关卡结算屏 spec 已建 level-clear.md(本 spec 只锁出口锚点不变);节点奖励屏 spec 已出生 node-reward.md v1.0(原「不立独立 spec、随魔法道具内容重定批交付」拍板随之取代;NodeOverlay 现行:恢复点全量服务、奖励点=三选一构筑点)
  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. 敌方 AC 展示——已终裁收口(2026-09-26):用户终裁——敌方 AC 数值全屏不展示(任何区均不直接写上);护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批);敌人站桩底座下名字行退回纯名字 + 护甲类型图标。与旧「克制对策可读性义务」(敌人技能池批)的关系 = 义务降级承载:类型保留(图标可读,对策判断仍可做)、数值退役(不再直接展示);敌人技能池批相关义务措辞由并行代码批同步。我方 AC 仍按 2026-09-26 二轮拍板保留于 C 区攻击数据框(唯一展示面)
  14. GP/钥石迁出战斗屏后的展示面归属——已拍板收口(2026-09-26 二轮):GP = 关卡画面常驻总量 + 战斗总结结算(总量+增量);钥石 = 冒险总结结算 + 营地。呈现 spec 已出生:settlement-summary.md v1.0(2026-09-30——两面分节轻量 spec,本 OQ 为其命名与分工依据;「战斗结算画面」「结算画面」旧措辞随 spec 命名收口退役)

§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 D 区 AP 条(RAP 自 C 区迁入——2026-09-26 信息归属拍板)+ §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 不装载被删除机制的呈现义务
2026-09-20 敌人卡形态裁决收口(2026-09-20 用户看对照样张拍板,06 待办「敌人卡形态」解决移除——台账 99):全站桩形态定稿——① B 区主角与敌人均为无框立绘+底座(站桩式),英雄卡/敌人卡组件整体退役,卡片式不再作为候选;主角血条悬浮头顶、状态效果小图标一排挂血条正下方,敌人血条+顺位徽标悬浮头顶、状态小图标同款挂血条下;攻击值等规划数据仍归 C 区数据框(C 区不动);② 布局表 B 区行、Component Inventory 英雄卡/敌人卡两行随裁决改写(敌方 side 池共享层数各立绘同值、意图动画占位等既有语义平移到站桩载体,不随形态改变);③ ASCII 线框图 B 区重绘(旧"意图:爪击/环点"示意早已随行为环退役,本次一并清掉);④ OQ4 改写为裁决已收口注记,对照样张存档 production/mockups/;呈现义务细节重述(受击/退场演出挂点等)随表现层升级批执行
2026-09-23 停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 ../../dev/architecture/adr-0006-board-node2d-rendering.md 与 ../../dev/architecture/board-node2d-migration-plan.md §1,代码实装另批并行):① 布局四区 → 三区——删布局表 A 区关卡进度条行与 Component Inventory LevelStripView 行(LevelStripView 退役删除,节点链进度只留关卡画面,战斗屏零进度承载);C/D 底行 520 → 548;ASCII 线框图重绘为 B/C/D 三区;② 新流程口径落文——关卡画面(选路覆盖层常驻形态)为关卡内常驻枢纽:Navigation Position 图、到达语境、Entry 表、信息层级第 5 层、Data Requirements 节点图行改「关卡开始即出图选路、战后返回关卡画面再选路」;③ AC 四区措辞改三区。批内代拍板三项已追认(2026-09-24 用户确认):① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行(520 → 548);③ 关卡画面进度呈现由选路覆盖层节点态承载(暗金已过 / 金当前 / 亮金候选通道 / 旗朱 Boss)、不另设进度条组件
2026-09-23 实现注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘渲染 Node2D 化(BoardView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,信号/click_cell/_cells 契约保持,新增 push_input 端到端输入探针);格尺寸公式锚点不变(set_cell_area = floor((min(宽,高) − 预留 − (N−1)×格间距) / N) 单点可调),布局与交互语义零改动
2026-09-26 实现注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗画面 Node2D 化(BattleStageView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,站桩本体 StandeeBody 世界精灵;set_enemies/clear_enemies/on_step_row_fx/gray_all_enemies 等 setter 面签名保持,弹道落点锚点=壳层口径 world_to_shell 单点);状态图标行与悬停 tooltip 保留 Control 载体挂壳层;三区布局尺寸零改动(B 区外框 252px 逐位)
2026-09-26 封印紫批(用户拍板):插旗呈现色 旗朱 #C63D22 → 封印紫 #7C3AA8(色相 ≈267°,避开禁入带)——旗字形/已承诺封印框/旗化暴击弹道随批换色;拒绝边框闪语义归危险红;Boss 节点描边归紫赤本色。修订记录历史行旗朱字样系当时口径留痕不改
2026-09-26 战斗屏信息归属批(用户 2026-09-26 三轮纠偏后拍板;代码实装另批——hero_info_panel_view.gd / hud_presenter.gd 改造 + 探针断言迁移,登记待办):立两条信息归属原则并全屏贯行——①循环口径原则(战斗屏只展小循环内被消费、影响当下决策的数据;中/大循环资源不得入侵)②单一展示面原则(同一信息全屏唯一展示面;单位本体已承载的信息数据框不重复;资源数字贴唯一消费口)。随拍板落地:① B 区站桩 = HP 与状态效果唯一展示面——C 区 HP 条/HP 文字/立绘占位/状态效果槽×4 退役(重复展示;证据链 = hud_presenter.gd 同一 s.hero.hp/s.hero_effects 双投喂 B/C 两区);② RAP 读数(点阵+数字)迁 D 区 AP 条、置弃图刷新按钮旁(RAP 唯一消费口 = 弃图刷新——就近原则);③ C 区状态槽悬停 tooltip 职责并入 B 区站桩状态小图标;④ GP(中循环)/钥石(大循环)迁出战斗屏,去向挂 OQ14;⑤ C 区改「攻击数据框 + 魔法道具槽(预留)+ 本关强化列表(预留)」——预留区来自魔法道具与关卡内属性提升的既有立项;⑥ 空态/清零反馈/悬停交互/AC/§13 义务表载体同步改写。批内遗留两项待拍板(OQ13/14):护甲 AC 是否补入 C 区数据框;GP/钥石去向
2026-09-26 信息归属二轮拍板(用户 2026-09-26,OQ13/14 收口):① 我方护甲 AC 补入 C 区攻击数据框(唯一展示面——布局表/组件清单/线框图同步);② GP/钥石去向定案:GP = 关卡画面常驻总量 + 战斗结算画面总量+增量,钥石 = 结算画面 + 营地(具体呈现归对应 UX spec 批次);③ 敌方 AC 展示面挂起——用户口径「敌方 AC 无任何展示」与现行代码冲突(standee_view.gd 底库名字行渲染「名字·护甲·AC%d」,系敌人技能池批克制对策可读性义务),证据链已呈报待终裁,本 spec 暂不改敌人站桩行
2026-09-26 敌方 AC 展示终裁收口(用户 2026-09-26 终裁):敌方 AC 数值全屏退役(任何区不直接展示)、护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批)、敌人站桩底座下名字行退回纯名字+护甲类型图标;旧「克制对策可读性义务」降级承载——类型保留、数值退役。终裁理由(用户口径):HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性。同步改写:信息归属树敌人站桩行、Component Inventory 敌人站桩立绘行、OQ13。代码实装说明:standee_view.gd 改造(站桩名字行去 AC 数值 + 护甲类型图标化)由并行代码批执行,本批只做文档同步
2026-09-27 UX 文档欠账处置批(用户四项拍板:player-journey 不建 / accessibility 不另立改指 HUD框架 / node-reward 改挂魔法道具内容重定批 / level-clear 建档 design/gdd/ux/level-clear.md):① 删 §Player Context ⚠️ player-journey 未建注记,OQ1 改收口注记;② §Accessibility 头、§Transitions 减动效行、OQ2 改指 HUD框架「可访问性基线」节 + 设置与本地化待设计清单 #1(tools/doc_link_known.txt 欠账行随之清空);③ 导航残留修正——§Navigation Position 图胜利分支、§Entry/Exit 离开表、§Interaction Map 胜利 overlay 行改按现行代码实态(胜利后返回关卡画面选路;节点覆盖层 = 关卡画面域、落地奖励/恢复节点时开出;胜利/失败 overlay 组件锚 battle_end_overlay.gd)——原「胜利 → 节点奖励/恢复覆盖层」系停点前移批前残留;④ OQ3 过期陈述更正(interaction-patterns.md 2026-09-12 已建成)、OQ8 改收口注记。本批只动文档面,代码零改动
2026-09-27 关卡画面 UX spec 建档联动(关卡画面 UX 批):§Navigation Position 上游屏/下游屏行挂 level-map.md 屏级 spec 指针——关卡画面(选路覆盖层常驻形态)的布局/组件/交互/状态规格自此有独立权威文档。零机制改动