Files
gplan-2/design/gdd/systems/表现与支撑/HUD框架.md
T
DKChan 7aee5eb71a docs(流程文档迁出GDD批): 待办清单与体验验证清单移到仓库根并去掉编号前缀
两文件是流水线流程件而非游戏描述件,此前住在 design/gdd/ 造成三处不适配:
gdd_lint 必须为它们逐条关掉体裁规则、格式权威却写在 doc-conventions §12、
与同族的 roadmap(在仓库根)分居两处。迁到根后按 roadmap.md 的无编号风格改名。

- 迁出:design/gdd/06-待办清单.md → 待办清单.md;07-体验验证清单.md → 体验验证清单.md
- 指向改写 53 个文件:GDD 各系统文档指路存根、四份规约、02 根索引、README/roadmap/AGENTS
- 两份清单自身 74 处出站链接按新基址重指(../art → design/art、systems → design/gdd/systems)
- gdd_lint:待办/体验验证两文件的 R1/R3/R5/R7 豁免行随迁删除(已脱离扫描面),后门表清零
- pipeline_gate 默认路径、log_analysis/render_gate 称谓、repo_structure_audit 根文件白名单同步
- 保护面补写:两份清单列入实现批禁写清单(AGENTS 两类批条 / process-conventions §12 / 架构文档域表),
  条目状态只由流水线各段推进
- 范围外未动(用户令「全不碰」):reports/ 与 design/research/ 的 22 处历史指向、game/ 两处注释
2026-10-21 00:09:40 +08:00

34 KiB
Raw Blame History

HUD框架

一句话:界面布局与呈现层契约 状态:已定稿(自旧体系迁移)

设计目的

HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、归因得了的界面。玩家对它的正确感觉是"一块干净的玻璃":看见的每一步都是真的,结算的每一行都能指回自己刚才的哪步棋,界面绝不替玩家思考、不静默改判、不用装饰伪装逻辑差异。

它同时是全项目唯一自带画面的表现层系统:不含任何玩法状态与玩法数值,显示的一切从上游现读现显;玩家改变游戏状态的操作它只递话、不执行。少了它,排雷玩法的动作没有落点,战斗结算的明细流水没有读者。

系统范围

边界这样划:本系统管"怎么呈现、怎么翻译输入、弹层怎么排队"。一个动作合不合法、结果算什么意思,归排雷玩法、行动经济、战斗结算等上游裁定;画面具体长什么样、组件落在哪一像素,屏级权威按屏分治——战斗屏是 battle.md、关卡画面是 level-map.md——本文只锁系统级契约。

负责:

负责 说明
战斗屏三区布局 三区系统级契约与常驻组件呈现形态;棋盘格尺寸定值档与装板校验
输入翻译 鼠标操作翻译成意图批次、一帧内整批提交;悬停预承诺与可挖域指示
提示体系 toast 轻提示与一次性提示;拒绝反馈的呈现映射
模态覆盖层家族 图例面板、明细回看、胜负终局共用的层级纪律
订阅与载荷契约 呈现层订阅纪律、信号载荷的消费侧断言
程序化占位 美术终稿前的代码占位策略与图标键挂接
游玩遥测 拒绝、刷新尝试等观测行,写入试玩日志供调参取数
可访问性基线 字号、对比、闪烁、减动效、纯鼠标的验收底线

不负责:

不负责 归谁
任何玩法状态与玩法数值 各玩法系统;数值表本体归数据配置
合法性判定与机制语义裁定 排雷玩法、行动经济、战斗结算
屏级布局与动画时长的像素级裁决 battle.md(战斗屏)与 level-map.md(关卡画面)
美术终稿与动画密度 art-bible与战斗表现
音频、教学内容、本地化文本生产 音频、教学引导、设置与本地化
任何随机消费 无——呈现层零随机

在核心循环中的位置

玩家输入(挖掘期鼠标操作)──▶ HUD框架翻译成意图批次 ──▶ 排雷玩法受理 / 战斗结算兑现 ──▶ 明细流水与动作回执 ──▶ HUD框架就地刷新

HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻译官,结算期它是流水的播音员。它不产生任何玩法事实,只负责把玩家的操作递进去、把结果画出来。

核心规则

本章七节:前三节定画面的骨架与进出规则(屏、弹层、刷新),后三节定数据与资产怎么进来(载荷、占位、底线),第六节完成棋盘的类型微光信息通道。

战斗屏三区双舞台:挖掘与结算同屏不切场景

战斗屏是 MVP 唯一的玩法屏,采用"双舞台"布局——战斗画面与扫雷图两块区域同屏常驻、互不顶替:挖掘期敌人在上方待机可见,轮末结算在原地逐行展开,全程不切换场景,因果不需要玩家凭记忆拼接。

三区各管一块:

区 位置与尺寸 管什么
B 战斗画面 全宽 252px 主角站桩立绘、敌人站桩立绘 ×1–3(全站桩形态,2026-09-20 用户拍板:无框立绘+底座、状态小图标挂血条下,英雄卡/敌人卡退役)、轮次阶段指示、结算明细带
C 角色信息 左下 240×548 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘
D 扫雷图 中下约 1036×548(原右下面板删除后横向加宽) 行动点条与按钮组、棋盘本体、toast 槽

分区尺寸与组件落位的像素级裁决归 battle.md;三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见关卡节点地图。

结论:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px(battle.md 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即显示错误并中止。分辨率档位(2026-09-30 迭代 9 三裁决案甲修订):两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=全局等比(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。

可行性校验(装板期断言):
  floor( min(棋盘区宽 − 水平边距, 棋盘区高 − 行动点条高 − 垂直边距) ÷ N ) ≥ 该档定值
  且该档定值落在 [30, 45] px
数字字号 = max(18, ceil(格边长 × 0.5)),像素字体按整数倍缩放
变量 含义 现行值
N 棋盘边长格数 10 或 12(棋盘生成的两档尺寸)
定值档 12×12 → 36px;10×10 → 45px 结构冻结
棋盘区宽 / 高 扫雷图区基准尺寸 1280×800 下 1036 / 504(548 减行动点条 44)
边距 水平 / 垂直 各 16px

1280×800 下实算:可用高度 488px,12×12 得 40 ≥ 36、10×10 得 48 ≥ 45,两档都通过。宽度向同理余量充裕(1036−16 远大于 12 格定值档所需)。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。

提示与弹层:轻提示随起随消、重弹层排队进出

界面弹出的东西分两族。toast(从棋盘区上缘内侧浮出的轻提示条)是非模态的:弹出期间玩家照常操作棋盘,约 2.5 秒自动消退、不劫持输入。模态覆盖层(弹出期间挡住下方操作、要先处理才能继续的那种弹层)则相反,图例面板、结算明细回看、胜负终局画面都属于这族。

弹出物 模态性 进出规则
toast 非模态 自动消退 2.5 秒,不打断挖掘
图例面板 / 明细回看 / 胜负终局 模态 同一张登记序栈:统一入栈出栈、后开置顶、关闭逐层恢复

两条纪律横跨两族。其一,"第一次遇到"类提示(本作没有双击快开、挖不相邻格要先走近)走 toast,每场冒险至多弹一次。其二,拒绝反馈不属于一次性族——每次被拒都要可感知,且图标与文案双通道冗余(不靠颜色单独承载);棋盘面拒绝(动作不合棋盘规则,目标格边框闪)与资源面拒绝(行动点或储备不足,数字脉冲)必须可区分。图例面板恒可随时打开回看,不设解锁门。

呈现层订阅纪律:界面不自持状态、订阅面只留两条线

呈现层不自持任何玩法状态——它不记账、不缓存玩法数值,画面上的每个数字都是触发时刻从上游现读的。全部刷新触发只来自两类通道:核心信号与动作回执。这条纪律是切片时期两起"界面在核心对象销毁后回读崩溃"的结构性防线。

订阅面刻意收窄:呈现层直接订阅的信号只有战斗结算的明细流水(逐行结算事件)与关卡节点地图的推进信号(见关卡节点地图)。排雷玩法与行动经济的消息一律经组合根(全项目唯一的核心装配与接线点:玩家写操作的唯一入口、界面消息的中转站)转发,或走命令式回执。

命令式刷新面如实登记——这些数据源不发通知或只发部分通知,界面刷新绑定在"动作调用返回"或"结算编排完成"的时点上,由组合根重查只读面后就地更新:

数据面 刷新时点
棋盘(封印印记、小人位置) 意图批次调用返回后重查
行动点 / 储备 每次写路径回执后重读
状态效果 绑定结算编排完成时点
已开格奖励身份 已开格揭显时经身份解析只读回调查询(query_identity,组合根注入)

就地更新指只改变化的字段、不整块重建界面——整块重建会把敌人立绘死亡灰化这类就地状态吞掉。

信号载荷契约:消息带着当场就能用的数据来

核心发给呈现的每份消息都必须"呈现当下就能用",三条规则:

  1. 销毁前捕获:终局与死亡的呈现数据(血条归零、卡体灰化、终局判定行)在核心对象销毁之前就已写进明细流水与快照。
  2. 载荷自包含:每行明细自带来源、数值、目标——界面不做反推、不回查容器补数据。
  3. 禁回读生命周期态:"战斗还在不在"只准问封装好的只读查询,禁止读核心对象的内部状态位。

为什么这样定:核心对象销毁后,指向它的引用随时失效或返回空数据,"先销毁再补读"的时序在切片里崩过两次。载荷自包含还有一条可验收的推论——终局画面只消费流水与快照即可逐像素复现,这条断言进验收标准。

配套一条总纪律:消费的每份跨系统载荷,字段清单先写成消费侧断言(缺字段、多字段都算失败——信号参数没有运行时类型检查,断言是唯一防线)。逐字段 schema 底稿见旧版参考归档的载荷表;现行口径须回各上游系统文档的对外契约逐项对齐,缺口见「待办」。

程序化占位与图标键:先用代码画顶着、占位也要过硬指标

美术终稿未到位的面(砖面、敌像、图标、徽章、立绘)用程序化图形先行占位:色值直接取 art-bible 的冻结色板,形状按其形状语言用代码绘制。占位不是免检通行证——数字可读性硬指标(1–8 全档对格底对比 ≥4.5:1、半倍缩放可辨、纹带不侵入数字字形区)对占位同样适用;格子样张批不阻塞本系统其余验收。

图标用"图标键"挂接——哪个数据行配哪枚图标的固定对照表:效果、奖励、格面类型、敌种各自的数据表主键直接作图标键,一键一枚专属纹样。视觉侧依据与键集清单归 art-bible §4.6;映射一经冻结全局恒定、跨局禁重掷,键集扩容走该节修订,禁止运行时换图。映射表里查不到的键按错误处理:立即断言加"?"占位纹样与诊断,禁止静默显示空图标。

未开格类型微光:相邻未开格的类型先读通道

本节是「未开格类型微光」在全项目的唯一权威定义(2026-09-30 用户裁决落位):其他文档引用这个概念只许指路本节,不许复述口径。定义一句话:英雄周围 8 格内的未开格,在格面上显示该格资源类型的微光——玩家由此读到「相邻哪些格大概是什么类型的收益」,但读不出这格是安全格还是雷。

要素 口径
作用对象与范围 英雄周围 8 格(与可挖域同一圈)内的未开格;已开格不显示(改渲染开格结果);封锁格(开局白开的格)恒无资源、不显示
信息内容 只表达格面资源的类型(九类格面资源归五组色相呈现,色相/明度/画法规格归 art-bible §4.2);不表达极性(安全/雷)、不表达具体收益档位
生命周期 资源身份装板期摇定(微光只是显示,不改任何游戏数据)→ 未开 ∧ 在 8 格内 → 亮;格子被挖开/连锁开/踩雷 → 灭;角色走远出圈 → 灭,走回 → 复亮;换图随旧图全重置
关联与边界 信息本体(格面资源身份)归地图战斗资源;棋盘格态与动作合法性归排雷玩法;与「接触带微光」同圈不同职责——接触带微光=可挖域的交互反馈光(「这里能挖」),类型微光=相邻格的类型先读(「这格是什么类型」)
实装状态 呈现契约已定稿(五组色相经样张 v2 冻结 2026-09-28);已实装(迭代 30 卡① 2026-10-17 入库,合并 7ffd1dc0)——2026-09-30 核证的「呈现层仅接触带微光在跑,类型微光无独立实现」状态自此注销;在役实现(五组色相 = ui_kit TG_GLOW_*、格面微光子件 + 距离场 shader)与验收转正见本节末「验收标准」类型微光行,登记面归 待办清单「未开格类型徽章呈现时机」条(已完成)

口径史注记(防复发):本概念曾只活在待办清单登记与 art-bible 复述里,「常显」「全部未开格」等无范围表述于 2026-09-30 酿成理解事故;用户裁决「英雄周围 8 格」为正确口径并落位本节。教训=概念必须落地权威文档,零散复述不是定义。

两带分工注记(2026-10-17 迭代 30 卡①登记):类型微光实装后,棋盘外另有「卡顶色带」(徽章/条目顶边色带,悬赏与秘宝等面板格面条目顶边的类型色带)与本格面微光并存——卡顶带 = 条目级静态色带(一眼扫类型),格面微光 = 棋盘格内动态微光(相邻先读);两套载体不同、职责不同,禁互为引用。两带统一面(卡顶带取值改用 art-bible 五组色值、归组改 cell_type 精确值)归 待办清单「卡顶色带与格面微光两带统一」条(待办)。

可挖域指示(接触带微光):「这里能挖」的交互反馈光

本节是「接触带微光」(可挖域交互反馈光)的呈现规则现行事实源(2026-09-30 用户裁决落位——目录职责三分工:概念/玩法内容归 GDD、美术风格指导归 art-bible、UI 设计归 UX;各目录只干职责内的事,引用走文档链接,不贴异域内容)。

要素 口径
定义与作用范围 接触带微光 = 可挖域的交互反馈光(「这里能挖」)——英雄格与可挖域(8 向相邻未开格;概念本体与动作合法性归排雷玩法)接触面上的呼吸微光;与「未开格类型微光」同圈不同职责(类型微光=「这格是什么类型」,本光=「这里能挖」)
画法 光画英雄格周界空间侧:正交邻墙=该侧整条边,斜向邻墙=共享角点+向两侧各延伸半条边;光只画英雄格一侧、不进墙格;色相=蓝族浅一档——画法细则归 art-bible §3.2
生命周期 挖掘期呈现且呼吸(挖掘期唯一在动元素——art-bible §2.1;相位门控 set_dig_glow_enabled,结算期停息);减动效开启=呼吸停格(静态保留指界功能);换图/装板随新可挖域重算
关联与边界 逐格指认=悬停金框(pattern 4 悬停预承诺——微光是常驻指界、悬停是意图预承诺,两概念分工);不携带类型/极性信息(那是类型微光的职责);零信息写入(纯呈现层)
实装状态 已实装(呈现层现行在跑——2026-09-30 核证;程序化占位,画法终稿随样张批)

视野迷雾:菱形灯光区与黑暗边界

本节是「视野迷雾」在全项目的唯一权威定义(2026-09-30 用户拍板立项):其他文档引用只许指路本节。定义一句话:棋盘只完整渲染以角色为中心的菱形灯光区,区外一切呈迷雾黑暗,移动角色才逐步照亮——像在洞穴里举灯探索。与已退役的「雾格」无关:雾格是格面机制(2026-09-15 退役),视野迷雾是纯呈现层机制,不改任何游戏数据。

要素 口径
作用对象与范围 棋盘渲染可见性:灯光区内照常渲染;区外已开格=暗淡记忆态(灰显可见、数字可读——2026-09-30 拍板),区外未开格=全黑不渲染
生命周期 随角色位置实时变化;战斗内持续;换图按新板重置;已开/未开格态、数字真值、清图判定零影响(纯呈现遮罩——同板同动作序列的结算结果与无迷雾逐位一致)
关联与边界 与「未开格类型微光」同边界——灯光区起步半径=微光环 8 格(同圈起步,实测后可调);格态数据归排雷玩法;黑暗区域渲染规格(暗淡态明度、迷雾过渡)归 art-bible 修订随实施批;初始展开收窄不在本案(后置与 Alpha 差异化批窗口合并再议)
实装状态 已实装(2026-10-03 迭代 11 第④批已入库;四裁决逐条对账与验收线转正见本节末「实施状态」注记;渲染规格 = art-bible §6.5)

配套拍板(同日):魔法提灯=灯甲形态(光照圈外扩 +2 格,flat 整数档)随迷雾立项;类型微光不随视野扩大(类型先读仍只贴身 8 格,微光锚=可挖域);提灯载体归 aux_items 新行(登记原文——2026-10-07 用户令改道为独立卡,2026-10-08 裁案A=秘宝·同调位新行落位,见下方实施状态注记;2026-10-09 用户裁退役——新目录 15 件未收提灯,fog_lantern 数据行与卡④接线拆除归退役删行批〔实装批〕,功能由新目录普通档「阔视野带」承接,待办清单登记条在册),呈现面挂「资产升档重产批」(挂账不动)。

实施状态(2026-10-03 迭代 11 第④批已入库):迷雾遮蔽+菱形灯光区跟随+暗淡记忆态上线,探针断言顺带扩(ui_input_probe case⑮)。四裁决逐条对账——①案甲视野迷雾立项(纯呈现层):迷雾开关分层验证可用(呈现态布尔,off 态=无迷雾基线),同板同动作序列与 MC 逐项比对逐位一致;②暗淡记忆态:区外已开格灰显+数字可读,明度按 art-bible §6.5 写入文档值(记忆板 #3A3A3A/记忆墨 #C4C4C4,provisional);③灯光半径=微光环 8 格同圈:LIGHT_RADIUS=8 参数化(曼哈顿菱形,常量);④提灯 +2、微光不扩:FOG_LANTERN_BONUS=+2(落码常量实名——本条旧记 LIGHT_RADIUS_LANTERN_BONUS 系文档侧拟名,随卡④入库对齐),类型微光仍贴身 8 邻格零改动。〔2026-10-05 迭代14⑤接线注记〕公共接线面已就位——board_view.set_fog_lantern(enabled)(true=半径 8+2、false=复原 0;写入即 refresh 重算雾态),半径算式消费 _fog_lantern 迷雾批已在位;ui_input_probe case⑮ 增接线断言(开=dist 9 格转可见+lantern=2/关=复原)。〔2026-10-08 迭代 19 卡④入库注记〕载体到位+接线闭环=功能可达——载体=秘宝·同调位新行 fog_lantern「魔法提灯」(treasure_items.tres 表尾追加,desc「灯光区半径+2」,slot_cost 1、营地秘宝匣同调装配获渠,行字段=用户「按推荐」全收);生产路径=runner set_attunement→enc.attunement→begin_battle 注入 orchestrator 装配集→公共只读出口 attune_has→组合根呈现桥 main._sync_fog_lantern 每战首轮装配链显式重算含否(🔴 复原语义=禁战斗结束隐式复原——卸装/未装配写 0,断点续玩/跨关天然正确);未装配=false 写 0=缺省零扰动基线逐位不变。顺带测试:case⑮ 载体级段(装配→lantern=2+dist R+1 转可见+卸装复原)+smoke 行字段/同调目录投影(九件→十件)/装配贯通断言+存档回归 Part 6+单测 fog_lantern_wiring(run_all 17→18 套)。原「提灯载体归 aux_items 新行随 Alpha 信息件重定批」登记去向就此注销(改道留痕=需求卡片-提灯载体道具批-2026-10-07 §一)。验收线(本篇「验收标准」视野迷雾行)逐条转正式验收:区内完整渲染/区外已开格灰显可读/区外未开格不可见/灯光区随移动跟随/两态结算逐位一致;实机目检人闸(迷雾观感/记忆态可读性/移动跟随流畅度)随出口闸。黑暗区域渲染规格承载 = art-bible §6.5(v3.5)。

营地覆盖层:四柜台并排(程序占位——视觉终稿归营地视觉批)

营地覆盖层自 2026-10-12(迭代 21 落地)为四柜台并排布局:①树淬炼(树脊柱界面形态,营地主界面)②锻造工坊(钥匙门+点亮展开工作间)③秘宝匣(钥匙门+目录与同调装配)④奖励格图鉴(常开无门槛)——宽度不足横向滚动兜底;全部程序占位视觉(占位纪律延续,2026-10-11 用户令),视觉与布局终稿归 HUD 营地视觉批(未立项)。结构现行事实源 = 天赋树「营地=树:统一模型」节(2026-10-13 迭代 21 反哺⑤写入文档登记——本篇原无营地柜台登记面,顺带补缺)。

可访问性基线:看得清、不闪、纯鼠标玩得通

以下基线是验收底线,不是打磨项:

基线 要求
对比度 全部数字对格底 ≥4.5:1
色弱安全 无信息仅靠色相承载;格态在灰度截图下可逐格分类
字号下限 棋盘数字 ≥18px、明细正文 ≥14px、tooltip ≥13px(1280×800 基座)
闪烁 无每秒超过三次的闪烁
减动效 提供全部动画时长减半或跳终态的开关;结算逐行兑现是信息载体——可加速、不可整体跳过
输入 全部操作纯鼠标可完成
中文字体 随包内置并设为默认——运行时默认字体无中文字形

按钮文案以 4 个汉字为宽度上限(「停手」「弃图刷新」等),译成西文不破版。正式的分层方案(文本缩放、色盲模式、按键重映射)不另立专项文档(2026-09-27 欠账处置拍板)——归设置与本地化待设计问题清单 #1(设置项全集裁决时定),见 P1 后置。

依赖与输出

上游读数与下游输出见下表;呈现层零直调玩法系统写接口——写路径唯一入口是组合根。

方向 系统 接口要点
上游 排雷玩法 棋盘只读投影(格态、数字、封印印记、小人)与移动路径查询;玩家意图批次经组合根提交
上游 行动经济 行动点 / 储备 / 相位只读值;刷新入口可用性预判加返回值兜底
上游 战斗结算 明细流水是结算明细带的统一数据源(现行 9 类行封闭协议);段序编排信号经组合根接线
上游 敌人系统 英雄与敌人的只读投影(血量、顺位、摇定动作〔pending_skill/type/name〕、敌方增益 effects、存活——经战斗结算呈现快照;敌人技能池批批 2 定稿:当前拍/行动环进度字段拆除,池与权重不公开)
上游 增益状态 状态投影经战斗结算呈现面取得,零直读
上游 地图战斗资源 已开格奖励身份投影(query_identity 只读回调,组合根注入)零直读
上游 关卡节点地图 节点链、当前节点、跨战斗生命携带的读数;胜利后推进
下游 战斗表现 交付三区布局、明细带呈现位、敌人呈现语义(站桩形态);它只叠加动画密度与演出
下游 音频 挂点事件源(明细行类型流、toast 触发);MVP 无音频
下游 教学引导 toast 与图例面板两个承载位——教学内容装进这两个容器
下游 设置与本地化 中文字体随包、按钮宽度等契约的消费方

呈现义务来源清单——各上游系统点名要本系统兑付的呈现义务,一行一条;规则本体以对方文档为准:

义务来源 本系统兑付的呈现义务
排雷玩法 已开 / 未开格态一眼可辨;悬停预承诺与可挖域常驻指示;移动路径预览即合法性指示;每次拒绝可感知且棋盘面细因可区分;停手被改判可感知
行动经济 行动点与储备常显;储备清零反馈;棋盘面与资源面拒绝可区分;刷新入口与代价可读
战斗结算 未生效类明细行(奖励未生效)的呈现;高光行强调
关卡节点地图 节点链进度呈现(关卡画面选路覆盖层节点态承载:暗金已过、金当前、候选下一跳通道亮金、Boss 紫赤描边(旗朱→紫赤 2026-09-26 封印紫批));选路覆盖层只读呈现(零自动推进停点语义)——屏级 spec:level-map(2026-09-27 建档)
敌人系统 意图线索映射成文且全局恒定;单位顺位与血条可读;敌方共享层数各卡同值
增益状态 状态栏常显;无状态时整排槽隐藏;有利 / 有害极性呈现不看数值符号
地图战斗资源 已开格的奖励身份常读;未开格类型微光(英雄周围 8 格内的未开格显示资源类型——概念定义见本篇「未开格类型微光」节)
秘宝 装配件与充能常读;使用交互与目标拾取;整图叠加层信息呈现(在役旧框架——随实装批整体替换,秘宝.md v1.7 同款口径)
棋盘生成 零合法板的诚实告知(数据面经战斗结算上抛,本系统只管提示形态)
地形变异 全局作用域型三层预告(2026-10-04 首发批——语义现行事实源=地形变异 §全局作用域型):①开战横幅一行(整图变异非空时显示;减动效=静态驻留,轮横幅先例同款双态)②HUD 常驻角标(C 区战斗全程可见防中局遗忘,空态整节隐藏=奇物段先例;摆位 provisional)③帮助手册一行(零交互教学,承载=玩法帮助文案块);数据面经呈现快照 board_variants 投影(核心→呈现唯一读取面),普通图三层恒空态零打扰

P0 最小闭环

  1. 进入战斗屏:三区同屏就绪,半秒内首格可点。
  2. 挖掘期鼠标操作经单意图帧整批提交(唯一写路径,经组合根)。
  3. 回执链:组合根重查只读面,界面字段级就地刷新。
  4. 轮末进入结算:棋盘区锁输入,明细带展开逐行兑现(战斗结算流水驱动)。
  5. 终局呈现(胜利 / 失败)伴随状态全清与储备清零反馈。
  6. 关卡末清库反馈:义务载体 = 秘宝背包(关卡域库存——秘宝过渡形态机械惰性承载,投放渠道全退役后恒空;拆线归实装批,见战斗结算「轮次生命周期」节注)。

P1 / P2 后置

优先级 内容 后置原因
P1 远格点击自动"先移动再挖"复合意图 移动免费高频,两击摩擦先经实测验证再裁
P1 Gamepad 焦点序 纯鼠标已覆盖 MVP 全部操作
P1 可访问性正式分层(文本缩放 / 色盲模式 / 按键重映射) 归设置与本地化设置项全集裁决(2026-09-27 拍板不另立专项文档)
P1 相邻域屏(节点奖励 / 关卡结算)完整屏形态 归后续 UX 文档(关卡结算屏 spec 已建 level-clear——2026-09-27;节点奖励屏 spec 已在役:node-reward v2.5 令牌池口径);MVP 以覆盖层反馈承载
P2 提示一次性作用域升级为存档级"一生一次" 归存档序列化与元进度后重议
P2 调试面板退役 正式侧归元进度;诊断按钮保留为调试设施
P2 探测类秘宝的显影呈现面 接口归秘宝定稿批
P2 音频挂点出声 MVP 无音频,归音频

调参表

本系统的参数全部是呈现节奏与可读性常量,不是玩法数值——玩法数值一律归数据配置的表,与本表无关。修订本文常量走文档修订流程。本表常量无数据表承载,为文档面唯一事实源;入驻 .tres 时本列改指路。

参数 域 现行值(文档自持,无表承载) 说明
toast_display_ms 每条提示 2500 过长挡节奏,过短读不完拒绝原因
move_slide_ms 每次移动 ≤150(provisional) 推荐值,移动手感留实测复核
board_install_fade_ms 每次装板 200 换图淡入时长
clear_celebration_ms 每次清图 3000–5000 上限约束:三五秒即收
font_min_board / font_min_detail / font_min_tooltip 1280×800 基座 18 / 14 / 13 px 可访问性基线
reduce_motion_scale 每段动画 0.5 或跳终态 减动效开关系数
detail_band_height 结算明细带 24 / 84 px 摘要 / 实时流两态高度

结构冻结(非调参项,改动走文档修订):三区布局与分区尺寸、双舞台常驻、单意图帧纪律、弹层层级纪律、图标键映射契约、程序化占位策略、订阅纪律。性能预算为引用值:同屏 draw calls < 200、进入战斗屏 500ms 内可交互。

验收标准

以下判据逐条可测,全部通过才算闭环达标。

  • 三区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。
  • 两档板装板后格边长取定值档(36 / 45px)且可行性校验通过;数字字号不低于下限、整数倍缩放无模糊。
  • 已开 / 未开格态在灰度截图下可逐格分类;已引爆危险格"可通行可读"(已开底加巢穴纹、可作移动目标)。
  • 类型微光:微光只在英雄周围 8 格内的未开格显示;出圈即灭、入圈即亮;已开格与封锁格恒无微光;微光呈现不随格是雷是安变化(不泄危险格与安全格)。(迭代 30 卡①实装后转正式验收)
  • 视野迷雾:棋盘仅菱形灯光区内完整渲染;区外已开格灰显可读、区外未开格不可见;灯光区随角色移动跟随;同一张板同一份动作序列,迷雾开关两种状态下的结算结果逐位一致(纯呈现,零游戏数据改动)。
  • 悬停光标三语义(移动 / 挖 / 封印)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。
  • 一帧内意图整批到达,停手点击终结当帧收集。
  • 每次拒绝可感知:棋盘面、资源面、相位三类各有呈现且前两类可区分;停手被改判(本轮已清图)玩家可感知;拒绝反馈图标加文案双通道。
  • 结算逐行实时滚出且每行带来源标注;未生效类行聚合计数并带形状冗余;零值行不被吞;效果行的单次贡献与池合成值分示、禁相加误读。
  • 高光三档:封印标中行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。
  • 状态槽显示图标加层数加剩余结算次数,悬停见来源;极性按键级表呈现(金满框 / 红缺框),空态整排隐藏、数据框上移补位;战斗结束全清有微文案。
  • 敌人呈现(站桩立绘,2026-09-20 全站桩拍板后载体由敌人卡改为无框立绘+底座,义务面平移不重述):意图占位 = 本拍摇定结果的动画占位(敌人技能池批三档可见性——普通攻击零表示、特殊技类型级提示〔攻/防系两型〕,不预告技能名与数值、池与权重不公开)且挖掘期全程可见、映射跨局恒定、顺位可读、血量数字可读、敌方共享层数各立绘同值(血条悬浮头顶、状态小图标挂血条正下方);死亡灰化加碎裂退场(禁止瞬间消失)且就地更新不丢灰化态。
  • 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 秘宝背包〔关卡域库存恒空机械惰性承载,拆线归实装批——见「轮次生命周期」同款节注于战斗结算〕,随秘宝 P0 落地补验收)。
  • 任一模态层打开时遮挡物隐藏或输入锁定、关闭逐层恢复;tooltip 与明细行等动态区固定槽高、换行裁剪不推挤布局。
  • 终局呈现只消费流水与快照:核心对象销毁后呈现层对生命周期状态零回读;终局后重放渲染与实时渲染一致。
  • 消费的每份载荷逐字段断言通过(缺字段、多字段都算失败)。
  • 地形变异三层预告(2026-10-04 全局作用域变异首发批——规则现行事实源=地形变异 §全局作用域型):Boss 图开战横幅一行显示且普通图不显示;C 区常驻角标战斗全程可见、空态整节隐藏;帮助手册含整图变异说明行;减动效开启横幅走静态驻留(轮横幅同款双态);普通图三层零打扰(恒空态)。
  • 字号下限成立;无每秒超三次闪烁;减动效开启时时长减半或跳终态(结算兑现降速不跳过);全程纯鼠标可玩;中文渲染无缺字。
  • 呈现层零随机调用;切片临时名零残留。

待办

本系统待办条目已统一收编至 待办清单,本节不再逐条登记。