合并(美术圣经去数值化+文档结构搬移批): 两笔合入(77c1d360 结构搬移+85abe37c 去数值化)——design/gdd/ux 上提 design/ux 三目录同级(49 文件链接与声明同步)+art-bible v3.44 全文定值剥离(头注定值单点纪律, hex 清零, 数量面归执行件)+执行件三件(互辨抽测件 E 门子带检查/帧数规格守门测试/token 板两两互查守门测试, manifest 86 套)+art-pipeline-tools 升格执行件门值登记面+下游复写换代九件+待办去数值化条目闭合与欠账六对条目新立。区内凭据: 全仓 gdd/ux 零残留+熵增闸 PASS+流水线闸 PASS(34 条目)+能力审计红 0+七触碰套件与两新套件单跑 all green+--docs 域闸【验收通过】exit=0; 合回前置检查读数见本提交落地态; post-merge 钩子推送触发远端 CI
ci / gates (push) Successful in 7m2s
ci / gates (push) Successful in 7m2s
# Conflicts: # reports/需求卡片-营地交互修复批-2026-11-05.md # 待办清单.md
This commit is contained in:
commit
2a17260c8e
61 files changed
+486
-273
No files matched your search
@@ -69,7 +69,7 @@
|
||||
| `教学引导.md` | 新手教学与提示 | 范围草案·待设计 |
|
||||
| `设置与本地化.md` | 设置项与多语言 | 范围草案·待设计 |
|
||||
|
||||
## ux/(战斗画面与交互规格,`ux/`)
|
||||
## ux/(战斗画面与交互规格,`design/ux/`——与 gdd/ 同级的呈现实现设计规格层)
|
||||
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
|
||||
+10
-10
@@ -103,15 +103,15 @@ Alpha 内以玩法循环本身的内容与表现为主(棋盘、关卡、战
|
||||
| 主菜单 | —— | 在役(三入口:进入存档/设置/退出游戏——入口拓扑=进入存档→选档界面→进档/新档→营地覆盖层→营地场景图与生涯笔记本) |
|
||||
| 开始覆盖层 | —— | 在役 |
|
||||
| 选档界面(3 存档位) | —— | 在役(空槽新档/有档进档/删档二次确认+摘要三项) |
|
||||
| 营地(天赋树 / 锻造工坊 / 秘宝匣 / 图鉴) | [camp](ux/camp.md) | 在役(场景图+七物件点选+Esc 浮窗与顶栏;五功能页呈现=居中定尺寸功能窗口、场景根留底、窗内滚动) |
|
||||
| 营地交互重做(五卡:存档制数据层/主菜单三入口/选档界面/营地场景图/Esc 浮窗与营地顶栏) | [camp](ux/camp.md) | 在役(五卡全部落地,2026-10-21 用户裁整体列入 Alpha;沿革查 git 提交史。出口=五卡各自验收标准通过+营地屏用户目检〔登记体验验证清单 ㊺〕) |
|
||||
| 营地(天赋树 / 锻造工坊 / 秘宝匣 / 图鉴) | [camp](../ux/camp.md) | 在役(场景图+七物件点选+Esc 浮窗与顶栏;五功能页呈现=居中定尺寸功能窗口、场景根留底、窗内滚动) |
|
||||
| 营地交互重做(五卡:存档制数据层/主菜单三入口/选档界面/营地场景图/Esc 浮窗与营地顶栏) | [camp](../ux/camp.md) | 在役(五卡全部落地,2026-10-21 用户裁整体列入 Alpha;沿革查 git 提交史。出口=五卡各自验收标准通过+营地屏用户目检〔登记体验验证清单 ㊺〕) |
|
||||
| 生涯页 | [生涯](systems/跨局循环/生涯.md) | 在役(期一) |
|
||||
| 关卡地图屏 | [level-map](ux/level-map.md) | 在役 |
|
||||
| 战斗屏 | [battle](ux/battle.md) | 在役 |
|
||||
| 战斗结算总结框 | [settlement-summary](ux/settlement-summary.md) | 在役 |
|
||||
| 关卡结算屏 | [level-clear](ux/level-clear.md) | 在役 |
|
||||
| 三选一(奖励节点 / 关卡完成) | [node-reward](ux/node-reward.md) | 在役(两渠道均三选一停点:关卡完成与奖励节点各停一次,奖励节点经兑付拉起开三选一) |
|
||||
| 商店 | [shop](ux/shop.md) | 在役 |
|
||||
| 关卡地图屏 | [level-map](../ux/level-map.md) | 在役 |
|
||||
| 战斗屏 | [battle](../ux/battle.md) | 在役 |
|
||||
| 战斗结算总结框 | [settlement-summary](../ux/settlement-summary.md) | 在役 |
|
||||
| 关卡结算屏 | [level-clear](../ux/level-clear.md) | 在役 |
|
||||
| 三选一(奖励节点 / 关卡完成) | [node-reward](../ux/node-reward.md) | 在役(两渠道均三选一停点:关卡完成与奖励节点各停一次,奖励节点经兑付拉起开三选一) |
|
||||
| 商店 | [shop](../ux/shop.md) | 在役 |
|
||||
| 状态面板(局内) | [元进度](systems/跨局循环/元进度.md)(「解锁界面:双入口框架」节) | 在役 |
|
||||
| 冒险终局面板 | —— | 在役 |
|
||||
| 图例面板 | —— | 在役 |
|
||||
@@ -147,12 +147,12 @@ Alpha 内以玩法循环本身的内容与表现为主(棋盘、关卡、战
|
||||
| 棋盘瓦片与格面资源图标 | [美术圣经](../art/art-bible.md) | 在役 |
|
||||
| 未开格类型微光(五组色相+明度档) | [HUD框架](systems/表现与支撑/HUD框架.md) | 在役(明度档 provisional 值登记见 art-bible 的 git 提交史;观感复核已随战斗一屏样张过闸完成——用户实机目检核销,沿革查 git 提交史) |
|
||||
| 棋盘观感(第二 / 三关亮度与对比度) | [待办清单](../../待办清单.md) | 待做(开工前置=先做素材轴/UI 轴对照截图定性,再按定轴修复;旧卡 v1.4 存 reports/ 作素材、非已写卡状态,重启须重新立卡;出口=用户实机目检第二、三关不再判「看着费劲」) |
|
||||
| 立绘显示清晰度(原稿分辨率+三档显示) | [角色设计](../art/character-design.md) | 在役(原稿分辨率入包禁降采样、显示按三档绝对高 96/144/188 缩放、现有形象即终稿;定值单点=art-bible §8.2;实机目检清晰度与同屏体量顺序登记体验验证清单 ㊻) |
|
||||
| 立绘显示清晰度(原稿分辨率+三档显示) | [角色设计](../art/character-design.md) | 在役(原稿分辨率入包禁降采样、显示按三档绝对高缩放、现有形象即终稿;定值单点=art-bible §8.2(档值定值面=站桩守门测试);实机目检清晰度与同屏体量顺序登记体验验证清单 ㊻) |
|
||||
| 敌人立绘(全敌种) | [角色设计](../art/character-design.md) | 在役 |
|
||||
| 主角立绘三态 | [角色设计](../art/character-design.md) | 在役 |
|
||||
| 状态图标 | [美术圣经](../art/art-bible.md) | 在役 |
|
||||
| 战斗演出链(弹道 / 受击 / 血条 / 灰化) | [战斗表现](systems/战斗循环/战斗表现.md) | 在役 |
|
||||
| 逐行结算排播 | [settlement-summary](ux/settlement-summary.md) | 在役 |
|
||||
| 逐行结算排播 | [settlement-summary](../ux/settlement-summary.md) | 在役 |
|
||||
| 减动效开关 | [设置与本地化](systems/表现与支撑/设置与本地化.md) | 在役 |
|
||||
| 全局纹理过滤设为邻近采样 | [待办清单](../../待办清单.md) | 在役(default_texture_filter=0+平滑渐变件三处显式 LINEAR 白名单,翻转面全枚举闭合) |
|
||||
| UI 字体(全局像素字,Fusion Pixel 单套单字重) | [美术圣经](../art/art-bible.md) §7.4 | 在役(现状即终稿——拉丁沿用自带字形不另接专件、不上第二字重;信息层级手段=字号档差+墨色深浅) |
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
每关一套参数档(L1/L2/L3),生成器只吃参数档、不认关卡号。生长曲线:层高、宽度、节点总数、路径长度逐关递增且增幅变大;决策点密度逐关递增;第一关即含岔口——第一关也要有选择。单链是分支密度取下限的合法退化形态,不作为三关参数档的取值。
|
||||
|
||||
图规模无呈现侧上限:关卡画面为卷轴视口呈现,画布随图生长、屏为窗口(呈现规格归 [level-map](../../ux/level-map.md));规模由参数档与生长曲线约束,参数档给不出合法图即致命中止。
|
||||
图规模无呈现侧上限:关卡画面为卷轴视口呈现,画布随图生长、屏为窗口(呈现规格归 [level-map](../../../ux/level-map.md));规模由参数档与生长曲线约束,参数档给不出合法图即致命中止。
|
||||
|
||||
### 节点类型配比:类型分布怎么掷、内容归谁
|
||||
|
||||
|
||||
@@ -64,9 +64,9 @@
|
||||
|
||||
每个节点在图上有**节点深度**(本文含义:自入口沿路走到该节点的最长路径步数;多入口时取距任一入口的最长路径),用来当战斗的定位地址——遭遇坐标=关卡序号+节点深度,敌人表按**深度带**(深度区间)配池,寻址语义见[敌人系统](../战斗循环/敌人系统.md)。不用最短路径:合流节点或多入口图上取最短,会让某些出边指向深度不增甚至更浅的节点,破坏「连线只朝前进方向」的无环判据。"最深处是关底"的直感由深度承载:终点恒在各路径最深处。单链(每步只有一条连线)是合法退化形态,节点深度等于它前面走过的战斗场数;三关参数档都含岔口,第一关不再是单链。图的来源见[关卡节点图生成](关卡节点图生成.md)。
|
||||
|
||||
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 紫赤描边(紫赤+深墨环,视觉定稿见 [level-map](../../ux/level-map.md))),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 紫赤描边(紫赤+深墨环,视觉定稿见 [level-map](../../../ux/level-map.md))),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
|
||||
**商店覆盖层呈现**(呈现 spec:[design/gdd/ux/shop.md](../../ux/shop.md) v1.0;pool 模式货架面=共享池三选一同构卡〔进店抽 3/买 1 全重抽/空架售罄态〕,与三选一奖励同一交互语言;legacy 固定三件面随对照模式保留。**库存余量不呈现**(2026-10-04 用户裁)——货架卡不带「库存余 N/∞」字样,库存语义仍在共享池令牌库、只是不呈现):兑付 = 打开商店覆盖层(模态)——货架卡陈列、GP 余额读数、购买/离开;离开后兑付确认回选路。本节锁编排面(何时开/何时关/回选路),呈现细节归 spec;定价数值归[难度曲线与Boss](难度曲线与Boss.md)(shop.tres)。
|
||||
**商店覆盖层呈现**(呈现 spec:[design/ux/shop.md](../../../ux/shop.md) v1.0;pool 模式货架面=共享池三选一同构卡〔进店抽 3/买 1 全重抽/空架售罄态〕,与三选一奖励同一交互语言;legacy 固定三件面随对照模式保留。**库存余量不呈现**(2026-10-04 用户裁)——货架卡不带「库存余 N/∞」字样,库存语义仍在共享池令牌库、只是不呈现):兑付 = 打开商店覆盖层(模态)——货架卡陈列、GP 余额读数、购买/离开;离开后兑付确认回选路。本节锁编排面(何时开/何时关/回选路),呈现细节归 spec;定价数值归[难度曲线与Boss](难度曲线与Boss.md)(shop.tres)。
|
||||
|
||||
### 行进与选路:兑付后确认,选路就是行进
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
| 纪律 | 内容 |
|
||||
|---|---|
|
||||
| 兑付后确认 | 到达节点立即兑付,不设"进入前确认"步;兑付反馈呈现完,玩家确认才回图。战斗节点的确认挂在战斗总结结算上(呈现 spec:design/gdd/ux/settlement-summary.md),奖励/恢复节点挂在兑付反馈覆盖层上,商店节点挂在商店覆盖层的离开动作上——复用既有呈现位,零新增交互范式 |
|
||||
| 兑付后确认 | 到达节点立即兑付,不设"进入前确认"步;兑付反馈呈现完,玩家确认才回图。战斗节点的确认挂在战斗总结结算上(呈现 spec:design/ux/settlement-summary.md),奖励/恢复节点挂在兑付反馈覆盖层上,商店节点挂在商店覆盖层的离开动作上——复用既有呈现位,零新增交互范式 |
|
||||
| 零自动推进 | 确认之后回到关卡画面的选路口:岔路口玩家选一条连线,单链路口确认"继续"。选了才走;不选就停在图上 |
|
||||
|
||||
Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选路——关卡已定局,后续流程归冒险结构。
|
||||
@@ -123,7 +123,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
|
||||
第二关的"新内容 = 既有池新技能"(技能池构成已定稿入[敌人系统](../战斗循环/敌人系统.md)技能池节)投放时,改的是战斗侧行里引用的技能池内容——节点图结构原样不动,本文无需为投放留任何新结构位。
|
||||
|
||||
**节点奖励 = 提升三选一(用户 2026-10-01 拍板:与通关三选一共享同池)**:奖励节点到达即开三选一(呈现 = 提升三选一覆盖层共用面,spec:[node-reward.md](../../ux/node-reward.md) v2.0)——从提升池七种(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件)按同一令牌库洗牌不放回抽 3(同 kind 去重、同一封闭随机流),玩家点选一件兑付(选中踢池、未选回池;秘宝件已出池,满位替换子交互随之不再触发)。件获取次数计数与令牌库为冒险级单例——两渠道同一令牌库合计消耗。「池空直通」为合法态——池耗即枯竭,空库 = 零候选合法态直通(见[冒险结构](冒险结构.md)令牌池节)。
|
||||
**节点奖励 = 提升三选一(用户 2026-10-01 拍板:与通关三选一共享同池)**:奖励节点到达即开三选一(呈现 = 提升三选一覆盖层共用面,spec:[node-reward.md](../../../ux/node-reward.md) v2.0)——从提升池七种(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件)按同一令牌库洗牌不放回抽 3(同 kind 去重、同一封闭随机流),玩家点选一件兑付(选中踢池、未选回池;秘宝件已出池,满位替换子交互随之不再触发)。件获取次数计数与令牌库为冒险级单例——两渠道同一令牌库合计消耗。「池空直通」为合法态——池耗即枯竭,空库 = 零候选合法态直通(见[冒险结构](冒险结构.md)令牌池节)。
|
||||
|
||||
### 关卡收束点:先清库、后宣布
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
| 节点奖励件的分类与凭证定义、池结构与抽取机制(案D——共享池库存仍归本文) | [奇物](奇物.md) |
|
||||
| 关卡完成率带、敌我数值与 Boss 设计 | [难度曲线与Boss](难度曲线与Boss.md) |
|
||||
| 钥石与跨局成长 | [元进度](../跨局循环/元进度.md) |
|
||||
| 冒险总结结算(呈现摘要五件事;呈现 spec:design/gdd/ux/settlement-summary.md)与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) |
|
||||
| 冒险总结结算(呈现摘要五件事;呈现 spec:design/ux/settlement-summary.md)与关卡推进指示 | [HUD框架](../表现与支撑/HUD框架.md) |
|
||||
|
||||
## 在核心循环中的位置
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
**两层是两件事,别混**:
|
||||
|
||||
- **命名是本节的规矩**——三个分类各有一个专名,文档、代码词族、帮百科一律用它。指代某个分类时直接说「专长」,不说「机制类」「专长那一类」。
|
||||
- **呈现是另一件事**(归 [battle](../../ux/battle.md) 与 [node-reward](../../ux/node-reward.md),本节不裁决):玩家看到某件奇物时,卡面只写**这件东西的名字与效果**,不附带它的分类。玩家可以从效果反推它属于哪一类,但界面不替他说破。
|
||||
- **呈现是另一件事**(归 [battle](../../../ux/battle.md) 与 [node-reward](../../../ux/node-reward.md),本节不裁决):玩家看到某件奇物时,卡面只写**这件东西的名字与效果**,不附带它的分类。玩家可以从效果反推它属于哪一类,但界面不替他说破。
|
||||
|
||||
**为什么两层都要有**:分类名在卡面上不出现,不等于玩家对它没有概念——帮助手册、百科条目、成就名称三处一定会用到它(「首次集齐 4 件专长」「三件属性值提升」),效果描述里出现指代时也需要名字(如「本项属专长」类归类指代)。所以它必须是一个**玩家读得懂、读一遍就懂**的正式名词,不能是内部描述或自造词。
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:战斗屏上"发生什么、摆在哪里、是什么意思"已经由两份现行文档定稿——屏级呈现形态归 [战斗屏 UX 规格 battle.md](../../ux/battle.md),视觉基调与剪影色彩归 [美术圣经 art-bible](../../../art/art-bible.md)。本文只负责"这些东西怎么动",而且是排期靠后的打磨项(见 [不做清单](../../05-不做清单.md):战斗动画演出是 MVP 内的打磨项,一律排后)。
|
||||
边界这样划:战斗屏上"发生什么、摆在哪里、是什么意思"已经由两份现行文档定稿——屏级呈现形态归 [战斗屏 UX 规格 battle.md](../../../ux/battle.md),视觉基调与剪影色彩归 [美术圣经 art-bible](../../../art/art-bible.md)。本文只负责"这些东西怎么动",而且是排期靠后的打磨项(见 [不做清单](../../05-不做清单.md):战斗动画演出是 MVP 内的打磨项,一律排后)。
|
||||
|
||||
负责:
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 屏级呈现形态与呈现语义(四区布局、敌人呈现〔站桩形态〕、明细带、高光行) | [battle.md](../../ux/battle.md) 与 [HUD 框架](../表现与支撑/HUD框架.md),本文只引用 |
|
||||
| 屏级呈现形态与呈现语义(四区布局、敌人呈现〔站桩形态〕、明细带、高光行) | [battle.md](../../../ux/battle.md) 与 [HUD 框架](../表现与支撑/HUD框架.md),本文只引用 |
|
||||
| 视觉基调、剪影哲学、色彩与图标键契约 | [art-bible](../../../art/art-bible.md),本文只引用 |
|
||||
| 结算逻辑与逐行流水本身 | [战斗结算](战斗结算.md) |
|
||||
| 敌种视觉状态的数据面(哪个敌种有几态、什么姿态) | [敌人系统](敌人系统.md) |
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
### 不另起场景:在既有呈现上叠加动画密度
|
||||
|
||||
战斗屏是挖掘与结算两种形态共用的同一张屏:常驻双舞台(白话:战斗画面与扫雷图同屏常驻,像同一块屏上的两个舞台),结算期不切换场景,裁决与理由见 [battle.md 布局决策 1](../../ux/battle.md)。所以战斗表现的工作不是另做一个战斗场景,而是在既有呈现上叠加动画密度与演出——这是本系统范围边界的第一条。
|
||||
战斗屏是挖掘与结算两种形态共用的同一张屏:常驻双舞台(白话:战斗画面与扫雷图同屏常驻,像同一块屏上的两个舞台),结算期不切换场景,裁决与理由见 [battle.md 布局决策 1](../../../ux/battle.md)。所以战斗表现的工作不是另做一个战斗场景,而是在既有呈现上叠加动画密度与演出——这是本系统范围边界的第一条。
|
||||
|
||||
"发生什么"与"怎么动"因此分了工:敌人死亡是血条归零后灰化加碎裂退场、禁止瞬间消失,结算明细带逐行滚动,完美封印与封印标中有高光行强调——这些呈现语义已由 battle.md 与 HUD 框架定稿,本文不复述。本文将来承接的只是其上的动画密度:受击反馈、弹道、退场动画等类别。
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
样张是前置美术测试的判定物;本节把"怎么算过"在测试组织前写成文,避免临场现定标准。成文做法参照 [art-bible](../../../art/art-bible.md) §1.4 格子样张测试(内容清单、按序验收项、判定与回退),判据全部落到已冻结的现行口径上——本节不定任何新的视觉参数。
|
||||
|
||||
样张内容清单(一组齐备,缺项即无效):按 [battle.md 布局决策 1](../../ux/battle.md) 的常驻双舞台四区布局整屏出样;角色剪影按棋盘格、结算明细带、战斗舞台三个语境同图摆放;~~敌人卡两候选形态对照(卡片式与站桩式各一版,其余内容不变)~~——**本项已完成(全站桩定稿、卡片式退役),正式样张按站桩形态单版出样即可**;受击、退场、高光兑现三组动画关键帧条(每组至少起、中、末三帧);敌人姿态精灵与数字、封印印记、小人同格叠放的遮挡对照组至少一组。
|
||||
样张内容清单(一组齐备,缺项即无效):按 [battle.md 布局决策 1](../../../ux/battle.md) 的常驻双舞台四区布局整屏出样;角色剪影按棋盘格、结算明细带、战斗舞台三个语境同图摆放;~~敌人卡两候选形态对照(卡片式与站桩式各一版,其余内容不变)~~——**本项已完成(全站桩定稿、卡片式退役),正式样张按站桩形态单版出样即可**;受击、退场、高光兑现三组动画关键帧条(每组至少起、中、末三帧);敌人姿态精灵与数字、封印印记、小人同格叠放的遮挡对照组至少一组。
|
||||
|
||||
验收项按序判定,第一项不过 = 整张否决(继承格子样张"数字可读性定风格"的次序):
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
| 上游 | [HUD 框架](../表现与支撑/HUD框架.md) | 四区布局、战斗画面区(四区中的 B 区)演出区结构、敌人呈现(站桩形态)与明细带呈现语义——本文在其上叠加密度 |
|
||||
| 上游 | [敌人系统](敌人系统.md) | 资产需求下限三类与敌种姿态数据面——数据已锁,本文出终稿;另登记一项随样张一并裁决的事项:敌人层绘制优先级的插入位置 |
|
||||
| 上游 | [art-bible](../../../art/art-bible.md)(现行权威) | 剪影、色彩、图标键契约、各阶段氛围——表现侧约束 |
|
||||
| 上游 | [battle.md](../../ux/battle.md)(现行权威) | 屏级呈现形态与呈现语义 |
|
||||
| 上游 | [battle.md](../../../ux/battle.md)(现行权威) | 屏级呈现形态与呈现语义 |
|
||||
| 协作 | [音频](../表现与支撑/音频.md) | 坍塌显形动画与音效方向配对登记,将来对位设计(挂点未定) |
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
@@ -11,7 +11,7 @@ HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:本系统管"怎么呈现、怎么翻译输入、弹层怎么排队"。一个动作合不合法、结果算什么意思,归排雷玩法、行动经济、战斗结算等上游裁定;画面具体长什么样、组件落在哪一像素,屏级权威按屏分治——战斗屏是 [battle.md](../../ux/battle.md)、关卡画面是 [level-map.md](../../ux/level-map.md)——本文只锁系统级契约。
|
||||
边界这样划:本系统管"怎么呈现、怎么翻译输入、弹层怎么排队"。一个动作合不合法、结果算什么意思,归排雷玩法、行动经济、战斗结算等上游裁定;画面具体长什么样、组件落在哪一像素,屏级权威按屏分治——战斗屏是 [battle.md](../../../ux/battle.md)、关卡画面是 [level-map.md](../../../ux/level-map.md)——本文只锁系统级契约。
|
||||
|
||||
负责:
|
||||
|
||||
@@ -32,7 +32,7 @@ HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、
|
||||
|---|---|
|
||||
| 任何玩法状态与玩法数值 | 各玩法系统;数值表本体归[数据配置](数据配置.md) |
|
||||
| 合法性判定与机制语义裁定 | [排雷玩法](../排雷循环/排雷玩法.md)、[行动经济](../排雷循环/行动经济.md)、[战斗结算](../战斗循环/战斗结算.md) |
|
||||
| 屏级布局与动画时长的像素级裁决 | [battle.md](../../ux/battle.md)(战斗屏)与 [level-map.md](../../ux/level-map.md)(关卡画面) |
|
||||
| 屏级布局与动画时长的像素级裁决 | [battle.md](../../../ux/battle.md)(战斗屏)与 [level-map.md](../../../ux/level-map.md)(关卡画面) |
|
||||
| 美术终稿与动画密度 | [art-bible](../../../art/art-bible.md)与[战斗表现](../战斗循环/战斗表现.md) |
|
||||
| 音频、教学内容、本地化文本生产 | [音频](音频.md)、[教学引导](教学引导.md)、[设置与本地化](设置与本地化.md) |
|
||||
| 任何随机消费 | 无——呈现层零随机 |
|
||||
@@ -61,9 +61,9 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| C 角色信息 | 左下,宽读 `info_panel_w`,高 = 基准屏高 − B 区高 | 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘 |
|
||||
| D 扫雷图 | 中下,宽 = 基准屏宽 − C 区宽 − 列间距,高同 C 区 | 行动点条与按钮组、棋盘本体、toast 槽 |
|
||||
|
||||
分区几何的唯一事实源 = `game/data/tables/battle_layout.tres`(经 `ConfigDb.presentation.battle_layout` 读取);分区尺寸与组件落位的像素级裁决归 [battle.md](../../ux/battle.md),两份文档只写结构关系、不复写数值。三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见[关卡节点地图](../冒险循环/关卡节点地图.md)。
|
||||
分区几何的唯一事实源 = `game/data/tables/battle_layout.tres`(经 `ConfigDb.presentation.battle_layout` 读取);分区尺寸与组件落位的像素级裁决归 [battle.md](../../../ux/battle.md),两份文档只写结构关系、不复写数值。三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见[关卡节点地图](../冒险循环/关卡节点地图.md)。
|
||||
|
||||
**结论**:棋盘格边长由 [battle.md](../../ux/battle.md)「棋盘格尺寸公式」按棋盘区实测面积与板型算出;本文只判"塞不塞得进",不复制算式与算例。**分辨率档位**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。
|
||||
**结论**:棋盘格边长由 [battle.md](../../../ux/battle.md)「棋盘格尺寸公式」按棋盘区实测面积与板型算出;本文只判"塞不塞得进",不复制算式与算例。**分辨率档位**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。
|
||||
|
||||
```
|
||||
装板可行性(网格实高 ≤ 棋盘区可用高):
|
||||
@@ -76,7 +76,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| N | 棋盘边长格数 | 读[棋盘生成](../排雷循环/棋盘生成.md)(现行四档;事实源 board_gen.tres) |
|
||||
| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 由 D 区尺寸扣行动点条高(读 `ap_bar_h`)得出,本表不复制现算值 |
|
||||
|
||||
装板可行性由上面的不等式保证;格边长的可读下限见 [battle.md](../../ux/battle.md),算例由样张渲染脚本按布局表现算、不入文档。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。
|
||||
装板可行性由上面的不等式保证;格边长的可读下限见 [battle.md](../../../ux/battle.md),算例由样张渲染脚本按布局表现算、不入文档。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。
|
||||
|
||||
### 提示与弹层:轻提示随起随消、重弹层排队进出
|
||||
|
||||
@@ -169,7 +169,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
### 营地:可点击场景图
|
||||
|
||||
营地形态**已换代为一张可点击的场景图 + 七物件点选**(现行权威=[camp](../../ux/camp.md));全部程序占位视觉(占位纪律延续,2026-10-11 用户令),**视觉与布局终稿归 HUD 营地视觉批**(未立项)。结构现行事实源 = [天赋树](../跨局循环/天赋树.md)「营地=树:统一模型」节。
|
||||
营地形态**已换代为一张可点击的场景图 + 七物件点选**(现行权威=[camp](../../../ux/camp.md));全部程序占位视觉(占位纪律延续,2026-10-11 用户令),**视觉与布局终稿归 HUD 营地视觉批**(未立项)。结构现行事实源 = [天赋树](../跨局循环/天赋树.md)「营地=树:统一模型」节。
|
||||
|
||||
### 可访问性基线:看得清、不闪、纯鼠标玩得通
|
||||
|
||||
@@ -212,7 +212,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| [排雷玩法](../排雷循环/排雷玩法.md) | 已开 / 未开格态一眼可辨;悬停预承诺与可挖域常驻指示;移动路径预览即合法性指示;每次拒绝可感知且棋盘面细因可区分;停手被改判可感知 |
|
||||
| [行动经济](../排雷循环/行动经济.md) | 行动点与储备常显;储备清零反馈;棋盘面与资源面拒绝可区分;刷新入口与代价可读 |
|
||||
| [战斗结算](../战斗循环/战斗结算.md) | 未生效类明细行(奖励未生效)的呈现;高光行强调 |
|
||||
| [关卡节点地图](../冒险循环/关卡节点地图.md) | 节点链进度呈现(关卡画面选路覆盖层节点态承载:暗金已过、金当前、候选下一跳通道亮金、Boss 紫赤描边);选路覆盖层只读呈现(零自动推进停点语义)——屏级 spec:[level-map](../../ux/level-map.md) |
|
||||
| [关卡节点地图](../冒险循环/关卡节点地图.md) | 节点链进度呈现(关卡画面选路覆盖层节点态承载:暗金已过、金当前、候选下一跳通道亮金、Boss 紫赤描边);选路覆盖层只读呈现(零自动推进停点语义)——屏级 spec:[level-map](../../../ux/level-map.md) |
|
||||
| [敌人系统](../战斗循环/敌人系统.md) | 意图线索映射成文且全局恒定;单位顺位与血条可读;敌方共享层数各卡同值 |
|
||||
| [增益状态](../战斗循环/增益状态.md) | 状态栏常显;无状态时整排槽隐藏;有利 / 有害极性呈现不看数值符号 |
|
||||
| [地图战斗资源](../战斗循环/地图战斗资源.md) | 已开格的奖励身份常读;未开格类型微光(英雄周围 8 格内的未开格显示资源类型——概念定义见本篇「未开格类型微光」节) |
|
||||
@@ -236,7 +236,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| P1 | 远格点击自动"先移动再挖"复合意图 | 移动免费高频,两击摩擦先经实测验证再裁 |
|
||||
| P1 | Gamepad 焦点序 | 纯鼠标已覆盖 MVP 全部操作 |
|
||||
| P1 | 可访问性正式分层(文本缩放 / 色盲模式 / 按键重映射) | 归[设置与本地化](设置与本地化.md)设置项全集裁决(2026-09-27 拍板不另立专项文档) |
|
||||
| P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档(关卡结算屏 spec 已建 [level-clear](../../ux/level-clear.md);节点奖励屏 spec 已在役:[node-reward](../../ux/node-reward.md) v2.5 令牌池口径);MVP 以覆盖层反馈承载 |
|
||||
| P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档(关卡结算屏 spec 已建 [level-clear](../../../ux/level-clear.md);节点奖励屏 spec 已在役:[node-reward](../../../ux/node-reward.md) v2.5 令牌池口径);MVP 以覆盖层反馈承载 |
|
||||
| P2 | 提示一次性作用域升级为存档级"一生一次" | 归[存档序列化](存档序列化.md)与[元进度](../跨局循环/元进度.md)后重议 |
|
||||
| P2 | 调试面板退役 | 正式侧归元进度;诊断按钮保留为调试设施 |
|
||||
| P2 | 探测类秘宝的显影呈现面 | 接口归[秘宝](../跨局循环/秘宝.md)定稿批 |
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
| 关卡表 | 逐关节点图与层名 | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
| 冒险表 | 关卡大奖励与钥石入账(单行全局) | [冒险结构](../冒险循环/冒险结构.md) |
|
||||
| 元进度表 | 元进度字段(现行五行族:属性锻造 / Boss 钥石 / 工坊阈值 / 换算率 / 同调刷新升级行族) | [元进度](../跨局循环/元进度.md) |
|
||||
| 战斗屏布局表(`battle_layout.tres`) | 分区几何、B 区连续地面层高与明细带两态高(单行;呈现层布局配置,非玩法数值——供呈现层与样张工具同源读取) | [战斗屏规格](../../ux/battle.md)(结构)/[HUD框架](HUD框架.md)(呈现常量) |
|
||||
| 战斗屏布局表(`battle_layout.tres`) | 分区几何、B 区连续地面层高与明细带两态高(单行;呈现层布局配置,非玩法数值——供呈现层与样张工具同源读取) | [战斗屏规格](../../../ux/battle.md)(结构)/[HUD框架](HUD框架.md)(呈现常量) |
|
||||
|
||||
举证:本节为数据纪律约定,无计算。违规检测 = 静态扫描加人工复核,随各表回填定稿与里程碑检查执行。
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 呈现语义与可访问性基线本体(字号下限、闪烁上限、纯鼠标可玩等) | [HUD 框架](HUD框架.md) |
|
||||
| 逐行结算的呈现规则 | [battle.md](../../ux/battle.md) 与 [HUD 框架](HUD框架.md),本文只引用 |
|
||||
| 逐行结算的呈现规则 | [battle.md](../../../ux/battle.md) 与 [HUD 框架](HUD框架.md),本文只引用 |
|
||||
| 减动效开启后动画怎么演 | [战斗表现](../战斗循环/战斗表现.md)——本文提供开关,动画侧兑现归对方 |
|
||||
| 音量调节对声音怎么生效 | [音频](音频.md)——生效侧归对方,口径已对齐 |
|
||||
| 文案内容本体(教学条目、界面用语等写了什么) | 各系统文档——本文只做翻译生产,不改含义 |
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
| 输入 | 登记处 | 将来要做的 |
|
||||
|---|---|---|
|
||||
| 减动效开关 | [HUD 框架](HUD框架.md)的可访问性基线与 [battle.md](../../ux/battle.md)的呈现承诺;[战斗表现](../战斗循环/战斗表现.md)已登记承接其动画侧 | 提供开关:开启后全部动画有时长减半或直达终态的通路。呈现侧的约束以 battle.md 与 HUD 框架为权威,本文不复述 |
|
||||
| 减动效开关 | [HUD 框架](HUD框架.md)的可访问性基线与 [battle.md](../../../ux/battle.md)的呈现承诺;[战斗表现](../战斗循环/战斗表现.md)已登记承接其动画侧 | 提供开关:开启后全部动画有时长减半或直达终态的通路。呈现侧的约束以 battle.md 与 HUD 框架为权威,本文不复述 |
|
||||
| 音量控制入口 | 归档对本系统的常规分工登记;[音频](音频.md)已登记同款分工 | 在设置里提供音量入口;生效侧归音频(口径已对齐) |
|
||||
| 键位映射表 | [HUD 框架](HUD框架.md)定稿登记的交付物输入(全键族) | 如何转化成设置项(比如是否允许改键)待设计 |
|
||||
| 结算风味词 | 归档概念层增补批随巢穴隐喻换轴登记("封印 / 镇 / 反制"一类类型风味词),只登记了存在、各归各的时机 | 内容与形态未定,本文只登记这条输入在 |
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
|
||||
### 解锁界面:双入口框架
|
||||
|
||||
(2026-09-18 拍板;入口拓扑=三入口化)营地消费面(消费钥石、查看与管理永久强化)经主菜单「进入存档」→选档界面→进档/新档进入,主菜单不再设营地独立钮;局内状态面板(游戏非实时无暂停语义)也可查看钥石余额与本局冒险信息(只读)。钥石余额在 HUD 常驻展示。呈现 spec:[ux/camp.md](../../ux/camp.md) v1.0(退役/封存件「已退役/已解锁·能力封存中」呈现语义随 spec 落位);视觉终稿已落码。本节锁框架与需求,呈现细节归 spec;局内状态面板入口已实装(实机目检待用户,待办清单登记条在册)。
|
||||
(2026-09-18 拍板;入口拓扑=三入口化)营地消费面(消费钥石、查看与管理永久强化)经主菜单「进入存档」→选档界面→进档/新档进入,主菜单不再设营地独立钮;局内状态面板(游戏非实时无暂停语义)也可查看钥石余额与本局冒险信息(只读)。钥石余额在 HUD 常驻展示。呈现 spec:[ux/camp.md](../../../ux/camp.md) v1.0(退役/封存件「已退役/已解锁·能力封存中」呈现语义随 spec 落位);视觉终稿已落码。本节锁框架与需求,呈现细节归 spec;局内状态面板入口已实装(实机目检待用户,待办清单登记条在册)。
|
||||
|
||||
### 单局循环零依赖:排期边界的推论
|
||||
|
||||
|
||||
@@ -69,9 +69,9 @@
|
||||
|
||||
| 界面 | 管什么(现状指证) | 与生涯的边界 |
|
||||
|---|---|---|
|
||||
| 营地([camp UX spec](../../ux/camp.md)) | 跨局成长**操作**面(花钥石买强化 / 装配 / 点树——营地场景图+五功能窗口形态);原底栏「最近冒险」条带已撤下(P6 甲),逐局历史回看唯一归生涯 | 营地不改生涯只读定位;生涯不做任何购买入口,也不放「去买」按钮。营地条带已撤(P6 甲) |
|
||||
| 营地([camp UX spec](../../../ux/camp.md)) | 跨局成长**操作**面(花钥石买强化 / 装配 / 点树——营地场景图+五功能窗口形态);原底栏「最近冒险」条带已撤下(P6 甲),逐局历史回看唯一归生涯 | 营地不改生涯只读定位;生涯不做任何购买入口,也不放「去买」按钮。营地条带已撤(P6 甲) |
|
||||
| 状态面板 | **局内**只读查看这一局进行中的钥石与本局冒险进度 | 状态面板看当局当前值,生涯看跨局累计与历史;局内无生涯入口(P4 甲) |
|
||||
| 结算屏([settlement-summary UX spec](../../ux/settlement-summary.md)) | 冒险收束当下的入账明细——冒险收束时由结算屏呈现入账明细与钥石明细(复用终局面账行的呈现形态) | 收束当下的呈现保留不动;生涯承接的是收束之后的任意时刻回看 |
|
||||
| 结算屏([settlement-summary UX spec](../../../ux/settlement-summary.md)) | 冒险收束当下的入账明细——冒险收束时由结算屏呈现入账明细与钥石明细(复用终局面账行的呈现形态) | 收束当下的呈现保留不动;生涯承接的是收束之后的任意时刻回看 |
|
||||
| 帮助手册(Beta 批,未实装——教学内容归 Beta 帮助手册) | 讲「怎么玩」 | 生涯讲「我玩过什么」。图鉴条目文案与手册是否共用内容源,接口登记归 Beta 批一并裁 |
|
||||
| 图例面板 | 局内符号/徽标即时解码 | 不合并——图例是局内解码面,图鉴是跨局收集面 |
|
||||
|
||||
|
||||
@@ -1,437 +0,0 @@
|
||||
# UX Spec: 战斗屏(Battle Screen)
|
||||
|
||||
> **Status**: Complete(现行)
|
||||
> **Author**: user + ux-designer
|
||||
> **Last Updated**: 2026-11-02
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主(全部操作纯鼠标可完成)、Gamepad Partial 非 MVP、Touch None(同 technical-preferences)
|
||||
> **上游修订依赖**: 弃图刷新挖掘期受理依赖上游现行规则(行动经济 Active 受理 + 每轮上限 2 次、排雷玩法 Active·仅刷新路径装板、战斗结算的挖掘期刷新编排 + 恒同盘不变、系统索引的刷新规则同步——见布局决策 4 与 OQ11)
|
||||
> **Template**: UX Spec
|
||||
> **覆盖子屏**: 挖掘阶段主界面 · 轮末自动战斗结算(战斗结算明细屏) · 胜利/失败终局
|
||||
> **输入义务**: 排雷玩法×6 + 行动经济 + 战斗结算×3 + 敌人系统×4 + 增益状态×4 + 地图战斗资源×5(缺项即 blocking——承接落点见 §13 义务对照表)
|
||||
|
||||
---
|
||||
|
||||
## Purpose & Player Need
|
||||
|
||||
战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/封印 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。
|
||||
|
||||
一句话目的:**让"我算对了"的推理过程与它的战果兑现同屏可见、互为因果。**
|
||||
|
||||
- 扫雷图区承载 P1(推理掌控感):数字是主角,一切服务信息可读
|
||||
- 战斗画面区承载 P2(规划的延迟兑现):扫雷之因逐行兑现为战果,全程可见可归因
|
||||
- 角色信息区承载规划面:状态与资源常读,支撑"往未开区推进"类规划决策
|
||||
|
||||
若此屏缺失或难用:推理与兑现分裂(自动战斗沦为无聊过场——已登记创意风险)、逐行归因不可见(P2 失败)、AP/RAP 不可读(规划失去原料)。
|
||||
|
||||
---
|
||||
|
||||
## Player Context on Arrival
|
||||
|
||||
- **首次到达**:从关卡首节点(战×2 的第一战)进入。MVP 无引导流,chord 肌肉记忆提示等非模态提示承担首次教学(见 §States)
|
||||
- **到达前刚在做**:关卡画面(独立屏)上点击战斗节点(关卡推进方受理);或上一场战斗胜利后返回关卡画面再选下一节点
|
||||
- **情绪状态**:棋手式清明专注(art-bible §2.1,能量 2/10)——挖掘期画面必须无杂音;结算期转为清算爽感(7/10)
|
||||
- **到达方式**:游戏推进送入(非自愿导航),进入即处于挖掘阶段(棋盘已 install、初始 3×3 已展开、小人出生)
|
||||
|
||||
---
|
||||
|
||||
## Navigation Position
|
||||
|
||||
## Navigation Position
|
||||
|
||||
```
|
||||
存档 → 冒险 → 关卡(关卡画面 = 节点图选路常驻枢纽) → 【战斗屏】
|
||||
├─ 胜利 → 返回关卡画面选下一节点(落地奖励/恢复节点时开节点覆盖层确认 → 下一场战斗屏)
|
||||
├─ 胜利(末节点 Boss)→ 关卡结算(关卡完成,spec:[level-clear.md](level-clear.md))→ 下关
|
||||
└─ 失败 → 冒险落幕 → 返回存档/营地
|
||||
```
|
||||
|
||||
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(独立屏的常驻枢纽形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 紫赤描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。
|
||||
|
||||
- 上游屏:关卡画面(选路枢纽,屏级 spec:[level-map.md](level-map.md);分支节点图形态,切片第一关为单链特例)
|
||||
- 下游屏:关卡画面(选路枢纽,spec:[level-map.md](level-map.md))——战斗胜利后返回选路;落地奖励/恢复节点时由关卡画面域开节点覆盖层(恢复点全量服务、奖励点=三选一构筑点)确认兑付——节点奖励屏 spec:[node-reward.md](node-reward.md)
|
||||
- 下游屏:关卡结算([level-clear.md](level-clear.md),末节点 Boss 胜利)
|
||||
- 平行屏:图例面板 overlay(本屏内域屏)
|
||||
|
||||
---
|
||||
|
||||
## Entry & Exit Points
|
||||
|
||||
**进入**:
|
||||
|
||||
| Entry Source | Trigger | Player carries this context |
|
||||
|---|---|---|
|
||||
| 关卡战斗节点 | 点击节点(关卡推进方受理本场遭遇) | 携带 HP(跨战斗延续)、RAP=0(战斗域新开) |
|
||||
| 上一场战斗胜利 → 返回关卡画面 → 选下一节点 | 同上 | 同上 |
|
||||
|
||||
**离开**:
|
||||
|
||||
| Exit Destination | Trigger | Notes |
|
||||
|---|---|---|
|
||||
| 关卡画面(选路枢纽) | 敌方全灭(战斗结算判定段判胜)且非末节点 | 不可逆:战斗结束已发生,RAP 清零;落地奖励/恢复节点时开节点覆盖层确认(关卡画面域) |
|
||||
| 关卡结算 | Boss 战胜利 → 关卡完成(spec:[level-clear.md](level-clear.md)) | 不可逆:关卡收束无清库面——现行秘宝 = 营地同调装配、整局冒险生效(见秘宝.md)。旧关卡域库存 treasure_inventory 为投放渠道全退役后恒空的机械惰性承载,拆线待实装清理(见战斗结算「轮次生命周期」节注) |
|
||||
| 冒险落幕 | 主角 HP=0(判负) | 不可逆: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 的唯一展示面;掷点判定轴,受击侧可读性)
|
||||
- 秘宝槽(四槽壳在役、空槽占位——局内两步使用与关卡域库存随秘宝过渡形态退役;现行秘宝 = 营地同调装配件,本区展示内容归装配面重接)
|
||||
- 奇物列表(**已实装**——现行标题「特性」;锻造/大奖励/关卡奖励节点获得的属性提升,逐件行「件名 ×N」呈现、零内部分类字样上屏;与战斗内状态效果分区呈现,防「战斗结束被清」误读)
|
||||
- **D 区扫雷图 · AP 条**
|
||||
- AP 点阵 + 停手按钮(现行)
|
||||
- **RAP 读数(点阵+数字)**——置于弃图刷新按钮旁(2026-09-26 拍板:RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮)
|
||||
- **战斗屏不承载(2026-09-26 二轮拍板)**
|
||||
- GP(中循环资源——商店房消费):**关卡画面常驻总量** + **战斗总结结算(总量+增量)**(呈现 spec:[settlement-summary.md](settlement-summary.md))
|
||||
- 钥石(大循环永久资源):**战斗总结结算(Boss/精英击杀增量行)+ 冒险总结结算(收束明细)+ 营地**(呈现 spec:[settlement-summary.md](settlement-summary.md))
|
||||
|
||||
### Layout Zones
|
||||
|
||||
采用用户拍板的布局图(2026-09-12),按 1280×800 基座落尺寸。**分区几何的唯一事实源 = `game/data/tables/battle_layout.tres`**(经 `ConfigDb.presentation.battle_layout` 读取;字段 `stage_h` / `ground_h`(B 区连续地面层高)/ `info_panel_w` / `ap_bar_h` / `log_band_h_dig` / `log_band_h_settle`)。本节只写结构关系与内容职责,不复写数值;任何文档与代码不另立第二份布局值。
|
||||
|
||||
| 区 | 位置与几何 | 内容 |
|
||||
|---|---|---|
|
||||
| **B 战斗画面** | 全宽,高读 `stage_h`(2026-10-06 方案二拍板:演出 ≈1/3 屏) | 主角站桩立绘(左)+ 兑现演出区(中)+ 敌人站桩立绘 ×1–3(右)——**全站桩形态(2026-09-20 用户拍板):主角与敌人均为无框立绘+底座,零卡片**;主角与敌人站桩 = **HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板)**;底部结算明细带(挖掘期收起高读 `log_band_h_dig`,结算期展开高读 `log_band_h_settle`);顶部中央轮次·阶段指示 |
|
||||
| **C 角色信息** | 左下,宽读 `info_panel_w`,高 = 基准屏高 − B 区高 | 攻击值(含修正显示)、护甲 AC;秘宝槽、奇物列表(现行标题「特性」)——HP 条/RAP 池/状态效果槽/立绘占位/钱包行退役(2026-09-26 信息归属拍板:HP 与状态唯一展示面 = B 区站桩;RAP 迁 D 区 AP 条;GP/钥石迁出战斗屏) |
|
||||
| **D 扫雷图** | 中下,宽 = 基准屏宽 − C 区宽 − 列间距,高同 C 区(2026-10-06 方案二:底行压缩全部由面板空档吸收,**棋盘原尺寸不缩、格子不变**) | 顶部 AP 条(高读 `ap_bar_h`:左——AP 点阵 + 停手按钮;中——RAP 点阵+数字〔贴弃图刷新按钮,2026-09-26 拍板〕;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格边长见下方「棋盘格尺寸公式」);toast 槽(上缘内侧) |
|
||||
|
||||
> 布局为 B/C/D 三区——关卡进度条不在战斗屏(节点链进度常驻关卡画面,见 Navigation Position;字母不重编沿用 B/C/D)。
|
||||
|
||||
> 呈现术语注记(2026-09-25):封印 = 正式动作名(全库统一;登记册术语与术语表;印记 = 封印印记,art-bible §3.2)——机制与键名不变;印记贴图已落位(`seal_mark.png`,环+十字法阵,形与定值见 art-bible §3.2/§8.2),缺图时回落封印黑「封」字形(棋盘视图程序化回退);封印特效的施印瞬间一件未实装。封印色 = 封印黑(现行)。
|
||||
|
||||
> 可挖域微光画法定稿(2026-09-25 用户拍板):**接触带·空间侧 + 蓝族**——光画英雄格周界接触面(正交邻墙=整边,斜向邻墙=角点+两半边),详见 art-bible §3.2;现行墙格整框绿相呼吸为待退役占位,切换待表现侧实现(含探针断言)。
|
||||
|
||||
**布局决策 1(本 spec 最大决策,用户拍板)**:**常驻双舞台分屏**——战斗画面与扫雷图同屏常驻,挖掘期敌人待机可见,结算期不切场景。
|
||||
- 备选(已否决):Peglin 式"结算时才切入独立战斗场景"——切换打断推理心流,且资产管线成本翻倍
|
||||
- **对战斗表现双舞台陷阱的输入**:game-concept 登记的"战斗发生在棋盘上还是独立场景"悬念,由本布局裁决为**第三形态:同屏双舞台**。战斗表现定稿前的"战斗表现美术测试"(一屏样张)应按此布局出样
|
||||
- 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 B 区,棋盘永远只有数字/封印印记/小人/变异
|
||||
|
||||
**棋盘格尺寸公式**(本节是格边长口径的唯一出处;其他文档只写规则与指针,不复制算例):
|
||||
|
||||
```
|
||||
格边长 = clampi( floor((min(棋盘区宽 − 12 − 悬崖厚度, 棋盘区高 − 24 − 悬崖厚度) − (N−1) × 格间距) / N), 26, 46 )
|
||||
```
|
||||
|
||||
- N = 棋盘长宽两边的较大者;格间距 2px;垂直预留 24px(上 12 / 下 12);悬崖厚度 8px;结构钳制区间 [26, 46]px。
|
||||
- 格边长可读性以用户验收的现行画面为锚点(2026-11-01 用户裁——现行渲染值即基准,基座档 14×14=28px 达标);全域不设人造的格边长可读阈值。结构钳制 [26, 46] 只管算式结果不越界;格边长接线守卫=生产写入值与上式单点算式的返回值严格相等,最大板型的推定读数仅留痕观察、不作判红依据。
|
||||
- N 的取值与每关板型的对应关系读[棋盘生成](../systems/排雷循环/棋盘生成.md),现行值的事实源是 `data/tables/board_gen.tres`。
|
||||
- 数字字号 = max(18, ceil(格边长 × 0.5)),像素字体整数倍缩放(canvas_items stretch 保证清晰)。
|
||||
|
||||
算例不入文档:棋盘区可用面积随布局表与板型变化,不是契约值——现算并绘在整屏样张上,本文件不复写。
|
||||
|
||||
### Component Inventory
|
||||
|
||||
| 区 | 组件 | 类型 | 内容 | 交互 | 载体 |
|
||||
|---|---|---|---|---|---|
|
||||
| B | 主角站桩立绘 | 站桩(无框立绘+落影) | HP 条落底盘(2026-10-06 方案二拍板:站桩排式 = **立绘→血条→状态**,全场血条对齐一线;血条嵌石板位、台缘线留作地面线;不悬浮头顶——高盒下血条-立绘空洞,用户点名否决)、状态效果小图标一排挂血条正下方(形状+色相双通道、层数角标;空态不占位退化为空行)——**HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板;悬停 tooltip〔来源+语义+剩余结算次数〕职责在本组件)**;攻击值等规划数据仍归 C 区数据框(2026-09-20 全站桩拍板,英雄卡退役) | 悬停状态小图标看 tooltip | HUD 视图拆分改造 |
|
||||
| B | 敌人站桩立绘 ×1–3 | 站桩(无框立绘+落影) | 血条+顺位徽标落底盘(同主角排式,2026-10-06 方案二;**大体档〔显示 >150px 级:drider/duergar_king〕允许向上溢出盒顶 N px(N 由实装实算,溢出判定与背景无关),血条仍落底**)、状态小图标挂血条正下方(敌方增益按个体呈现——各立绘只显示它自己名下的状态实例〔蓄力/硬化/削弱/暴走/警觉,2026-11-02 个体化裁〕;数据源 = 战斗结算流水经增益状态投影,敌人系统×4④;无行为环点〔proposal §2.4〕,意图占位 = 本拍摇定结果的动画占位——普通攻击零表示 / 特殊技类型级提示,**意图徽标悬浮头顶上方,探顶档压胸**,敌方增益〔蓄力/硬化〕入状态图标行);死亡灰化加碎裂退场直接演在立绘上(2026-09-20 全站桩拍板,敌人卡退役);血条下名字行 = 纯名字 + 护甲类型图标(形状+色相双通道,与状态图标同行共存,状态空时为纯名字),AC 数值不展示——2026-09-26 终裁(用户口径:HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性——类型可读、数值隐藏) | 只读 | 新建 |
|
||||
| B | 轮次·阶段指示 | 标签 | "第 N 轮 · 挖掘中/结算中"(终局定格「战斗结束」;Boss 变体附 Boss 名) | 只读 | 新建 |
|
||||
| B | 结算明细带 | 滚动列表 | 结算期逐行流水([战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 9 类行协议);挖掘期收起为上轮摘要 1 行 | 无明细回看——带保留单行摘要,冒险中回看归「生涯」 | 改造 |
|
||||
| B | 结算明细回看(已退役) | —— | 冒险中回看归「生涯」;回看覆盖层为未接线遗留件(待办清单登记) | —— | 未接线 |
|
||||
| C | 攻击数据框 | 直角细线数据框 | 攻击值 + 修正来源角标 + 护甲 AC(AC 二轮拍板 2026-09-26 补入——我方 AC 唯一展示面;HP 与状态归 B 区站桩、RAP 归 D 区 AP 条,不在本组件) | 只读 | HUD 视图拆分 |
|
||||
| C | 秘宝槽 | 图标槽 ×4 | 四槽壳在役、空槽占位(标题「秘宝」,悬停「秘宝槽(空)」);局内两步使用与关卡域库存随秘宝过渡形态退役——现行秘宝 = 营地同调装配件(秘宝.md),本区展示重接归装配面 | 悬停 tooltip | 已实装 |
|
||||
| C | 奇物列表(现行标题「特性」) | 列表/图标行 | 已实装——逐件行「件名 ×N」呈现、零内部分类字样;锻造/大奖励/关卡奖励节点获得的属性提升——中循环数据,因改变战斗数学且无其他展示面准入战斗屏;与战斗内状态效果(B 区站桩)分区,防「战斗结束被清」误读 | 只读 | 已实装 |
|
||||
| D | AP 条 | 点阵 + 按钮组 | 本轮 AP 点阵、停手按钮(左)、**RAP 点阵+数字(RAP 唯一消费口 = 弃图刷新,资源数字贴消费按钮——2026-09-26 拍板;RAP 清零可见反馈〔行动经济〕)**、弃图刷新按钮(右端·雷图右上角;RAP−8 · 本轮剩 N 次,上限 2 次为行动经济口径) | 点击提交意图 | HUD 视图拆分 |
|
||||
| D | 棋盘视图 | 网格 | 棋盘全部格态 + 小人 + 封印印记 + 变异纹带 + 奖励身份 icon(已开格;绘制优先级 数字>小人>封印印记>奖励徽章>变异纹带>底色——徽章不进数字区,样张验收项) | 左/右键意图提交 | ✅ 已实装 |
|
||||
| D | 悬停预承诺光标 | 光标态 | 移动/挖/封印三语义光标 + 目标格边框高亮 | 自动 | 新建(排雷玩法×6③) |
|
||||
| D | 可挖域指示 | 常驻微高亮 | 小人 8 向相邻可操作格 | 自动 | 新建(排雷玩法×6③) |
|
||||
| D | 移动路径预览 | 路径高亮 | 悬停已开格显示 BFS 路径(合法性指示) | 自动 | 新建(排雷玩法×6⑤,裁决见下) |
|
||||
| D | toast 槽 | 非模态提示 | 拒绝原因(双源)、voided、满层溢出、chord 提示、零合法板告知 | 自动消退 2.5s | 新建 |
|
||||
| D | 图例按钮 + 面板 | 按钮+模态 overlay | 格态/变异语义图例 | 开/关 | 新建 |
|
||||
| 全屏 | 胜利/失败 overlay | 模态 | 金蜡封/暮蓝收印 + 判定行(无明细回看入口——回看归「生涯」) | 继续/下一节点 | 已实装 |
|
||||
| 调试 | 调试浮窗 | 调试面板 | 种子/数值调整/批量模拟/两层调试入口(发布态恒隐,无 UI 开启口;调试开关门控口径见「调试变体」行;调参面板已退役入调试浮窗) | 调试 | 调试浮窗 |
|
||||
|
||||
**布局决策 2 —(已删除,编号留空)**:编号留空,免布局决策 3/4 的既有交叉引用失锚。
|
||||
|
||||
**布局决策 3 — 移动路径预览 = 合法性指示**(排雷玩法×6⑤ 悬案裁决):悬停已开格时高亮 BFS 路径(小人蓝细线点迹),移动执行为 ≤150ms 短滑。
|
||||
- 备选(不采纳):穿行动画轨道——移动免费高频,动画时间税违反 P4 点击摩擦护栏(每轮输入动作:AP ≤2 的观测假设);正式版若 playtest 反馈"移动太瞬"再议
|
||||
|
||||
**布局决策 4 — 弃图刷新 = 挖掘期当场换图(2026-09-12 用户拍板)**:按钮置 AP 条右端(雷图右上角)。点击即当轮就地换新图继续挖——AP 不重置、剩余 AP 保留,RAP−8,本轮上限 2 次。
|
||||
- **上游修订(OQ11)**:① 行动经济 Active 相位受理刷新意图 + 每轮上限 2 次(Waiting 代理退役)② 排雷玩法装板受理域增 Active·仅刷新路径 ③ 编排 owner = **战斗结算的挖掘期刷新编排**(行动经济扣费 → 排雷玩法退役旧板 → 棋盘生成出新图 → 排雷玩法装板 → 地图战斗资源摇奖励恰一次;无结算段、无轮次结束——战斗结算编排唯一性原则保持)④ 旧板封印印记随旧板**作废**(零兑付、封印 AP 不返还——排雷玩法 EC11 全量重置承载;确认微交互须显式提示)。**经济预警**:当场刷新无结算发生,原「敌方时间税」自惩失效——行动经济 OQ3 弃图率/刷新率预警阈值联动复核。
|
||||
- 备选(已否决):结算期决策提示(Waiting 内联)——结算期不做刷新决策(用户拍板);挖掘期预承诺 stop+reroll 复合——决策即终轮,不符「换图继续挖」语义。
|
||||
|
||||
**敌人意图线索映射目录(敌人系统×4① 成文占位,2026-09-12;现行数据面 = 敌人系统三档可见性规格〔普攻零表示 / 特殊技类型级动画〔攻击系/增益系两型〕/ 暴击掷点层无前置〕,池与权重不公开;下表 grub/ambusher 两键已退役——现行键集 = 八敌登记表〔goblin/bugbear/ogre_chief/giant_spider/drider/duergar/hook_horror/duergar_king〕,本表键名禁止作为现行敌种 id 引用,终稿资产目录归战斗表现)**:
|
||||
|
||||
| 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 与状态唯一展示面 = B 区站桩,RAP 贴 D 区弃图刷新按钮,GP/钥石不在战斗屏。
|
||||
> **几何标注**:线框只示意结构,各区几何读 `game/data/tables/battle_layout.tres`,图中不标像素值。
|
||||
> **B 区形态注记(2026-09-20 用户拍板)**:主角与敌人均为全站桩——无框立绘+底座、状态小图标挂血条下,非卡片式;下方线框图为站桩形态。
|
||||
|
||||
```
|
||||
1280 × 800 ────────────────────────────────────────────────────────────────────
|
||||
┌─[B] 战斗画面(高读布局表) ──────────────────────────────────────────────────┐
|
||||
│ /小人\ 第 3 轮 · 挖掘中 伏×2 伏×2 │
|
||||
│ (落影) [ 兑现演出区 ] /蛆虫\ /蛆虫\ │
|
||||
│ HP▓▓▓▓░ (结算期: 光带→弹道→受击) ①HP▓▓▓░ ②HP▓▓░░ │
|
||||
│ ⬆2 🛡1 ←血条状态落底排·全场对齐(状态空 = 名字行)〔意图徽标悬浮头顶上方〕 │
|
||||
│ ├─ 结算明细带 ────────────────────────────────────────────────────────────┤ │
|
||||
│ │ ▸上轮: 主角攻击3→蛆虫-3 | 攻击+50%(1结算) | 警觉+1×2 … │ │
|
||||
│ └────────────────────────────────────────────────────────────────────────┘ │
|
||||
├─[C] 角色信息 ─────────┬─[D] 扫雷图 ───────────────────────────────────────────┤
|
||||
│ ┌──────────────────┐ │ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ 攻击 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 区播放五段编排演出(授予段 → 增益/减益段 → 战斗段 → 衰减段 → 判定段,战斗结算 段序冻结);明细带按结算期档展开(高读 `log_band_h_settle`)逐行滚动;阶段指示→"结算中";能量 7/10 |
|
||||
| **清图瞬间** | 全部安全格开完 | 金粒喷泉 + 彩纸 3–5s 即收(§2.3);清图奖励行强调呈现(H2,地图战斗资源×④——金框高亮行);随后换新图 install |
|
||||
| **完美封印高光** | 战斗结算高光判定(全图标中/零误标类) | 全屏喝彩级反馈(§2.2 最高档):金光带加倍扫射 + 「完美封印 ×2」横幅——P2 爆发兑现节点(创意风险 #2 落点) |
|
||||
| **封印标中高光** | 封印判定·标中 | 该印记化暴击弹道加重 + 明细行金框——chord 缺席的即时兑现补偿(创意风险 #3 落点) |
|
||||
| **敌人死亡呈现** | 敌 hp=0(流水行击杀标记) | 该敌人立绘血条归零 → 立绘灰化 + 碎裂退场(**禁瞬消**——敌人系统资产下限「死亡瞬间须可辨识、禁止直接消失」,同等 blocking);战斗段短路的重击被掐灭不产行动明细行,由行序可推断(战斗结算);动画密度归战斗表现,呈现语义在本 spec |
|
||||
| **胜利终局** | 判定胜利 | 金蜡封落于**扫雷图区中央**(§2.4 字面锚定),全屏暖白金 overlay;判定行 + 「下一节点」;明细回看入口;状态图标行全清可见反馈(增益状态×4④——B 区主角站桩图标逐枚化光收回 + 微文案「状态随战斗结束消散」,防「我的增益哪去了」误读) |
|
||||
| **失败终局** | 判定失败(主角生命归零,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、落下的封印印记逐枚化光点收回(§2.5);判定行 +「返回」(明细回看已退役,回看归「生涯」);状态图标行全清可见反馈(增益状态×4④,同胜利) |
|
||||
| **Boss 遭遇变体** | encounter=boss(遗迹守卫) | 战斗开始一次性演出:紫赤 #8F2F6A 影子爬过棋盘(§2.6);敌人立绘体量最大+锐角剪影;阶段指示附 Boss 名 |
|
||||
| **空态:无状态效果** | 增益状态 EC12 | 状态小图标行隐藏(B 区主角站桩血条下图标行零图标时不占位;落底排〔2026-10-06 方案二〕后该行退化为名字行——主角无名字行则整行空置);图例面板载空态说明(增益状态×① 成文项) |
|
||||
| **调试变体** | 测试模式 | 调试浮窗入口发布态恒隐(无 UI 开启口;开发期临时启用=本地改该字段缺省、不提交——调参面板已退役);Playtest 诊断按钮(卡死转储) |
|
||||
|
||||
**拒绝/作废子态**(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知):
|
||||
- 棋盘面拒绝(细分原因:非相邻/挖封印格等)→ 目标格 危险红 #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。
|
||||
|
||||
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|
||||
|---|---|---|---|---|
|
||||
| 未开相邻格 | 挖掘 | 左键 | 格碎裂 + 连锁展开(免费)+ 奖励身份揭显 | 意图入当帧批次 → 排雷玩法的意图批次提交 |
|
||||
| 已开格 | 移动 | 左键 | 悬停时路径预览高亮(布局决策 3);执行 ≤150ms 短滑 | 意图入批(BFS 移动,免费) |
|
||||
| 未开格 | 封印 | 右键 | 封印印记落下(封印黑) | 意图入批(1 AP / 免费;已封印格右键无操作——封印印记无移除手段,封印不可逆) |
|
||||
| 停手按钮 | 主动结束轮次 | 左键 | 按钮下压 + AP→RAP 飞行数字 | 停手随当帧意图批次提交(**经排雷玩法批次,不直调行动经济**——单意图帧批次契约) |
|
||||
| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | 刷新意图提交(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;受理口径见布局决策 4/OQ11) |
|
||||
| 图例按钮 | 开图例 | 左键 | 模态 overlay | 恒可开(图例条目恒在) |
|
||||
| 状态小图标(B 区站桩) | 悬停 | hover | 状态 tooltip(来源+语义+剩余结算次数) | 只读 |
|
||||
| 胜利 overlay | 下一节点 | 左键 | → 关卡画面(选路枢纽)/ 关卡结算(末节点) | 关卡推进方推进 |
|
||||
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险落幕 |
|
||||
|
||||
**单意图帧纪律**(排雷玩法×6⑥):一帧内 collected 意图整批提交,stop 点击终结当帧收集;F4 语义序仲裁为防御性兜底。悬停预承诺三态光标:移动(箭头)/挖(镐)/封印(印记形)——左键双义(移动 vs 挖)的消歧完全依赖格态一瞥可辨 + 光标区分(误挖不可逆的感知保险)。
|
||||
|
||||
**复合意图(排雷玩法评估项)**:点击远格 = 自动 move+dig 的两击摩擦消解——**MVP 不做**(免费移动高频,两击摩擦符合 P4 ≤2 观测假设;排雷玩法 L298 评估项在案)。
|
||||
|
||||
**可挖域常驻指示**:小人 8 向相邻未开格呼吸微光(§2.1 唯一在动的元素);不可挖域(非相邻)悬停显示禁止光标 + 首次 toast 提示「需先走近(点击已开格移动,免费)」。
|
||||
|
||||
**chord 肌肉记忆首遇提示**(排雷玩法×6③):经典扫雷玩家首日尝试双击快开时,非模态 toast 每 run 一次:「本作无双击快开——封印后轮末自动判定标中;点数字格可移动小人」(含排雷玩法登记锚点「点击数字格 = 移动小人」)。文案定稿权归实现期文案 pass。
|
||||
|
||||
---
|
||||
|
||||
## Events Fired
|
||||
|
||||
项目无分析系统;本节 = **呈现层订阅的核心信号**(组合根直连信号)+ 逐局遥测义务(逐局遥测日志已有五类行)。呈现层新遥测(写入逐局遥测的呈现层行):
|
||||
|
||||
| 事件(中文名) | 采集内容 | 载荷 / 数据 |
|
||||
|---|---|---|
|
||||
| 每轮结束 · 轮次输入比遥测 | 原始输入动作数∶AP 消耗(行动经济 P4 ≤2 护栏观测,排雷玩法遥测义务) | —— |
|
||||
| 停手/清图 · 轮次出口遥测 | 弃图率(难度曲线与Boss OQ4)观测;出口路径对齐上游封闭枚举 | 出口路径标签 {停手 / AP 耗尽 / 清图} |
|
||||
| 弃图刷新(挖掘期,非轮出口) · 刷新尝试遥测 | 刷新使用(难度曲线与Boss OQ6)与行动经济 OQ3 预警阈值观测;每轮 0–2 次(布局决策 4 cap=2) | {受理结果: 受理 / 拒因 RAP 不足 / 拒因触上限, 本轮第几次刷新: 1..2} |
|
||||
| 拒绝/voided · 拒绝遥测 | 拒绝来源(板面/资源/相位三源)与细分原因 | {拒绝来源: 板面/资源/相位, 细分原因} |
|
||||
| 提示触发/关闭 · 提示展示遥测 | 提示类型 | {提示类型: chord 提示 / 无相邻可挖格} |
|
||||
| 呈现订阅(不改核心) | 排雷玩法三事件 / [战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(9 类行协议,含终局判定行) / 战斗结束 / 关卡完成 | 载荷 schema 成文义务见 §Data Requirements(HUD框架硬性要求) |
|
||||
|
||||
**持久状态写入**全部经组合根唯一路径(意图批次提交 / 刷新意图提交 / 关卡推进)——UI 层禁直调核心写(架构七原则"依赖单向组合根")。
|
||||
|
||||
---
|
||||
|
||||
## Transitions & Animations
|
||||
|
||||
| 时刻 | 过渡 | 依据 |
|
||||
|---|---|---|
|
||||
| 进入战斗屏 | 棋盘 install 淡入(200ms)+ 初始 3×3 展开涟漪 + Boss 战先播紫赤影子爬棋盘(§2.6) | 棋盘生成 install / §2.6 |
|
||||
| 挖掘→结算 | 明细带自底展开(150ms)+ 棋盘去饱和 + 金橙色相偏移 + 阶段指示翻转 | §2.2 色彩转金橙主导、饱和拉高、明度不变(状态区分经饱和/色相——art-bible §2) |
|
||||
| 结算逐行兑现 | 光带自棋盘行起点横扫 → 开格化箭雨/印记化暴击弹道飞向敌人立绘 → 受击闪白 + 血条直角递减 | §2.2 承载元素;因果全程可见可归因(P2) |
|
||||
| 清图换新图 | 金粒喷泉 3–5s → 旧图碎裂淡出 → 新图 install 淡入 | §2.3 短促丰收不拖节奏 |
|
||||
| RAP 清零(战斗结束) | RAP 数字滚动归零(D 区 AP 条)+ 「随战斗结束消散」微文案 | 行动经济可见反馈义务 |
|
||||
| 敌人死亡 | 血条直角递减至零 → 卡体灰化 + 碎裂退场(禁瞬消) | 敌人系统资产下限(同等 blocking);动画密度归战斗表现 |
|
||||
| 状态图标行全清(战斗结束) | 状态逐枚化光收回(B 区站桩图标行)+ 「状态随战斗结束消散」微文案 | 增益状态×4④;RAP 清零同款先例 |
|
||||
| 胜利 | 蜡封自上落下弹跳定格 → 碎砖拼纹章 → overlay 暖金渐显 | §2.4 克制不狂欢 |
|
||||
| 失败 | 全屏明度不变转暮蓝色相 → 印记化光点 800ms 逐枚收回 → overlay | §2.5 最静一拍 |
|
||||
| 减动效选项 | 上述全部动画提供时长减半/直接跳终态开关(基线权威 = HUD框架「可访问性基线」节;开关承载 = 设置面——2026-09-27 拍板不另立无障碍专项文档) | 动议:结算逐行兑现为信息载体不可整体跳过,可加速 |
|
||||
|
||||
---
|
||||
|
||||
## Data Requirements
|
||||
|
||||
| Data | Source System | Read / Write | Notes |
|
||||
|---|---|---|---|
|
||||
| 棋盘格态/数字/可挖域 | 排雷玩法 只读查询面 | Read | 呈现刷新面 = 排雷玩法 三事件信号(载荷 schema 成文——HUD框架硬性要求) |
|
||||
| BFS 移动路径 | 排雷玩法 路径规划只读面 | Read | 布局决策 3 合法性指示消费 |
|
||||
| 拒绝原因 | 排雷玩法 细分原因封闭枚举 + 行动经济 资源面 | Read | 三源(板面/资源/相位)映射文案——呈现层契约成文;资源面原因无上游载荷(行动经济仅回受理与否,细分原因仅调试诊断可见),客户端按动作上下文推断 |
|
||||
| AP / RAP / 本轮刷新计数 | 行动经济 | Read | 常显;刷新入口可用性 = RAP 读数客户端预判(RAP≥8)+ 刷新意图提交的受理回执(行动经济 无刷新可用性预查询——仅受理与否的回执 + 只读观测量;行动经济 EC13 拒绝合法可见) |
|
||||
| 结算流水行(9 类封闭协议) | [战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋) 流水协议 | Read | 逐行来源标注(P2);未生效类行(奖励未生效)聚合计数呈现 |
|
||||
| 判定胜负 | 战斗结算 判定段 | Read | 终局画面数据锚 |
|
||||
| 敌单位 生命/顺位/摇定动作(技能标识·类型·名称)/敌方增益/敌单位标识/存活 | 敌人系统 只读面(经战斗结算呈现快照) | Read | 意图线索映射全局恒定(敌人系统×4②,技能池批三档口径);**销毁前捕获**(缺陷②教训) |
|
||||
| 状态效果投影(含空态/极性/溢出) | 增益状态 投影口径 | Read | 极性映射数据源 = 战斗结算效果表语义,非幅度符号(增益状态×③) |
|
||||
| 已开格奖励身份(奖励徽章) | 地图战斗资源 身份解析只读回调(经棋盘视图,组合根注入) | Read | 已开格身份常读——挖掘期 Active 相位内有效;reward_id 全局恒定、禁止重掷;徽章绘制优先级见 §Component Inventory 棋盘视图行 |
|
||||
| 节点图/当前节点/HP 携带 | 关卡节点地图轻量读面 · 关卡推进方 | Read | 关卡画面(独立屏)节点态呈现(战斗屏零进度承载) |
|
||||
| 意图提交 | 排雷玩法 | **Write** | 意图批次提交(stop 亦经此——不直调行动经济) |
|
||||
| 弃图刷新 | 行动经济 | **Write** | 刷新意图提交(挖掘期 Active 当场受理——布局决策 4;战斗结算的挖掘期刷新编排承载) |
|
||||
| 节点推进 | 关卡推进方 | **Write** | 胜利 overlay「下一节点」 |
|
||||
| 终局画面数据锚 | 战斗结算 判定行(流水行协议) | Read | 「终局判定行 = 胜负画面的数据锚」(战斗结算 UI Requirements);销毁前状态可见性纪律(销毁前捕获、**载荷数据自包含**、禁呈现层回读核心生命周期状态);若需独立终局快照信号,须回战斗结算 GDD 修订补登记(战斗结算 现无结算快照契约——2026-09-12 评审修正) |
|
||||
|
||||
**架构注记**:UI 不拥有任何游戏状态——全部读经核心只读面,全部写经组合根。呈现层信号载荷 schema 须在《HUD框架》成文(缺项即 blocking);场景级 headless 测试进 AC;覆盖层层级断言(缺陷⑤——任何模态覆盖层必须有"打开时遮挡物隐藏"断言)。
|
||||
|
||||
**更新触发注记(防实现层等待不存在的信号)**:封印与移动成功反馈**零事件外发**(排雷玩法发射面封闭)——经意图调用的返回值命令式驱动;AP/RAP 读数:行动经济无推送信号——组合根每次调用返回后重查;状态效果:增益状态为纯被动状态池、零信号——状态栏刷新绑战斗结算的编排完成时点;奖励徽章:地图战斗资源 身份解析经只读回调(组合根注入棋盘视图),已开格揭显时查询——写路径回执后重查。
|
||||
|
||||
---
|
||||
|
||||
## Accessibility
|
||||
|
||||
无障碍基线权威 = [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节;不再另立专项文档(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 字体随包为硬性前置**(已锁),实现 AC 覆盖
|
||||
- **按钮文案单行约束**:「停手」「弃图刷新」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写
|
||||
- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「封印未中」——战斗结算的来源标签封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + 裁剪兜底)
|
||||
- **数字格式**:全部整数,无本地化格式需求;AP 点阵为图形载体不依赖文本
|
||||
- **术语表锚定**:封印/雷/停手/弃图刷新/轮次/结算 已在 GDD 体系内定名,译文须同步 `design/gdd/术语表.md`
|
||||
|
||||
---
|
||||
|
||||
## 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——格底功能分档合法,格态语义由形与色相承载)
|
||||
|
||||
**交互与反馈**
|
||||
|
||||
- [ ] 挖/移/封印/停手/刷新全部操作纯鼠标可完成;stop 意图经意图批次提交(代码走查 + 探针断言)
|
||||
- [ ] 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源)
|
||||
- [ ] 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限 2 次为行动经济口径);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(受理口径见布局决策 4)
|
||||
- [ ] 战斗结束时 RAP 清零有可见反馈(行动经济)
|
||||
- [ ] 战斗结束时状态图标行全清有可见反馈(B 区站桩逐枚化光 + 微文案)(增益状态×④)
|
||||
- [ ] 敌人死亡瞬间可辨识(卡体灰化 + 碎裂退场,禁瞬消);战斗段短路被掐灭的重击由行序可推断(敌人系统资产下限)
|
||||
|
||||
**信息与归因**
|
||||
|
||||
- [ ] 结算逐行明细实时可见(P2 逐行归因;完整流水回看归「生涯」);未生效类行(奖励未生效)聚合计数呈现(战斗结算 现行 9 类行协议)
|
||||
- [ ] 敌人意图徽标挖掘期全程可见、映射全局恒定、含顺位与环长直觉编码(敌人系统×4①②③)
|
||||
- [ ] 状态效果:极性呈现映射成文且非 magnitude 符号;空态渲染成文(裁决:图标行隐藏——B 区站桩血条下零图标时不占位);满层溢出经明细行可见(增益状态×①③④)
|
||||
- [ ] 图例面板条目恒在可随时回看、非模态提示不劫持输入
|
||||
- [ ] 零合法板(棋盘生成 EC5 降级)出现时玩家侧诚实提示(toast,非静默)
|
||||
- [ ] 效果行数值为单次贡献值,禁止与池合成值相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则)
|
||||
- [ ] 未生效类行(奖励未生效)携带形状冗余(icon/划线),非色相独载
|
||||
- [ ] 奖励徽章绘制优先级:封印印记之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1)
|
||||
|
||||
**场景级测试**(缺项即 blocking)
|
||||
|
||||
- [ ] 场景级 headless 测试:真实实例化战斗屏场景 + 驱动完整对局 + 断言零脚本错误(呈现层点击探针模式扩展)
|
||||
- [ ] 任何模态覆盖层(图例/胜利/失败——明细回看已退役)有「打开时遮挡物隐藏/输入锁定」场景级断言(缺陷⑤对照)
|
||||
- [ ] 动态区全部固定槽高 + 裁剪兜底——悬停文案换行不推挤布局(缺陷①回归)
|
||||
- [ ] CJK 字体随包,全部中文文案渲染非豆腐块
|
||||
- [ ] 敌人销毁后呈现层不回读核心生命周期状态(快照纪律,缺陷②回归)
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **Player journey map——已完成(2026-09-27 拍板:不建)**:实现前补建的前提随战斗屏实装失效;情绪曲线事实源 = art-bible §2 能量档,真人体验观测与结论回流 = [体验验证清单](../../../体验验证清单.md)
|
||||
2. **无障碍专项文档——已完成(2026-09-27 拍板:不另立 design/accessibility-requirements.md)**:基线(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)权威 = [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节;正式分层(文本缩放/色盲模式/按键重映射)归 [设置与本地化](../systems/表现与支撑/设置与本地化.md) 待设计问题清单 #1(设置项全集裁决时定);本 spec §Accessibility 为呈现侧落地承诺
|
||||
3. **interaction-patterns.md——已建成**:本 spec 引入的四 pattern(双源拒绝反馈/逐行兑现明细带/悬停预承诺光标/点阵资源显示)均已入库成文(pattern 1/3/4/5)
|
||||
4. **战斗表现美术测试**(game-concept 已登记,战斗表现前强制):本 spec 的常驻双舞台分屏(布局决策 1)是测试的布局输入——**敌人卡形态已裁决(2026-09-20 用户看对照样张拍板):全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条下,卡片式整体退役**;站桩式不改变分区结构。对照样张已存档(敌人卡与站桩式对照样张)
|
||||
5. **移动动画形态**(布局决策 3):≤150ms 短滑为推荐值,playtest 观测「移动太瞬/太拖」反馈后调
|
||||
6. **明细带挖掘期是否常驻上轮摘要**:常驻(现方案)vs 结算后即收起——playtest 观测回看频率
|
||||
7. **Gamepad 导航序**:Partial 支持(非 MVP 门禁)——焦点环顺序待 gamepad 批次定
|
||||
8. **NodeOverlay / 关卡结算屏——已完成(2026-09-27 拍板)**:关卡结算屏 spec 已建 [level-clear.md](level-clear.md)(本 spec 只锁出口锚点不变);节点奖励屏 spec:[node-reward.md](node-reward.md)(节点覆盖层现行:恢复点全量服务、奖励点=三选一构筑点)
|
||||
9. **调参面板退役——已完成**:调参面板已退役入调试浮窗;正式侧归元进度(天赋树)不变;调试入口现发布态恒隐(现行口径见元素表「调试浮窗」行与「调试变体」行)
|
||||
10. **提示文案定稿**:chord 提示/空态文案归实现期文案 pass,本 spec 只锁必含要点与形态约束
|
||||
11. **弃图刷新上游修订(布局决策 4)**:行动经济(Active 相位受理 + 每轮上限 2 次 + Waiting 代理退役 + 旧旗作废裁决 + 时间税失效预警)、排雷玩法(Active·仅刷新路径装板受理)、战斗结算(停手与 AP 耗尽两出口恒同盘不变 + 挖掘期刷新编排;AC-30 恒同盘不变)、系统索引的刷新规则同步。遗留观察项:当场刷新的节奏健康由行动经济 OQ3 弃图率/刷新率预警承载,playtest 复核
|
||||
12. **教学引导缺口挂靠**:挖到雷 = 敌方优势而非死亡(排雷玩法登记「经典扫雷玩家最大预期违背」)、旗挡链(连锁止于旗属正常)、首次蓄力姿态一次性提示(敌人系统)——本屏 toast 体系为落点候选,随教学引导实装定
|
||||
13. **敌方 AC 展示——已终裁完成(2026-09-26)**:用户终裁——敌方 AC 数值**全屏不展示**(任何区均不直接写上);护甲类型改**图标方式**展示(形状+色相双通道,终稿图标资产归美术批);敌人站桩名字行 = **纯名字 + 护甲类型图标**。克制对策可读性 = 义务降级承载:类型可读(图标,对策判断仍可做)、数值不展示。我方 AC 仍按 2026-09-26 二轮拍板保留于 C 区攻击数据框(唯一展示面)
|
||||
14. **GP/钥石展示面归属——已拍板(2026-09-26 二轮)**:GP = 关卡画面常驻总量 + 战斗总结结算(总量+增量);钥石 = 冒险总结结算 + 营地。呈现 spec:[settlement-summary.md](settlement-summary.md)(两面分节,本 OQ 为其命名与分工依据)
|
||||
|
||||
---
|
||||
|
||||
## §13 上游义务对照表(门禁核对用)
|
||||
|
||||
> 「系统名×条目号」记法(如「排雷玩法×6⑥」)= 该系统的义务条目编号,条目内容均已在本表逐条承载。
|
||||
|
||||
| 义务源 | 条目 | 本 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 贴弃图刷新按钮——2026-09-26 信息归属拍板)+ §Transitions + AC |
|
||||
| 战斗结算×3 | ①高光行强调呈现(封印标中金框行/清图 H2 金框行)②完美封印呈现形态 ③棋盘生成 EC5 零合法板提示/补偿/回退形态(toast 提示;补偿/回退不提供——2026-09-12 选型) | §States 高光/清图 + §States 拒绝子态 + §AC;注:结算明细屏 = 战斗结算 UX Flag 事项,由本 spec 承载 |
|
||||
| 敌人系统×4 | 意图映射/恒定/顺位/敌方池 | §Component Inventory 敌人站桩立绘 + **意图线索映射目录(敌人系统×4① 成文占位,资产定稿归战斗表现)** + AC |
|
||||
| 增益状态×4 | 常显+空态/来源标注/溢出/去留 | §States 空态 + §AC |
|
||||
| 地图战斗资源×5 | 身份恒读/明细行/清图强调 | §Component Inventory 棋盘视图奖励徽章 + §States 清图/高光 + §Data Requirements 身份解析只读回调 + AC |
|
||||
| 棋盘生成 | EC5 零合法板诚实呈现(数据面经 战斗结算×3③ 上抛) | §States 拒绝子态(toast)+ AC |
|
||||
| 敌人系统资产下限 | 受击反馈/死亡表现/顺位标记 | §Transitions 受击 + §States 敌人死亡呈现(禁瞬消)+ §Component 顺位徽标;呈现语义在本 spec(同等 blocking),动画密度归战斗表现 |
|
||||
|
||||
---
|
||||
@@ -1,51 +0,0 @@
|
||||
# 营地场景 UX spec(camp)
|
||||
|
||||
> 状态:v2.8(现行)
|
||||
> 事实源:本 spec(呈现)+ [元进度](../systems/跨局循环/元进度.md)(机制)
|
||||
> 美术画法:[art-bible](../../art/art-bible.md) §6.2/§7.5;素材命名与路径:[asset-path-map](../../art/asset-path-map.md)
|
||||
> 相邻:[level-map.md](level-map.md)(主菜单语境)
|
||||
|
||||
## 定位
|
||||
|
||||
营地=存档内的局外枢纽(存档语境可达,冒险进行中不可达)。形态=**一张可点击的营地场景图**:画面里有篝火、锻炉、帐篷等物件,点物件进对应界面。**不是按钮列表式 UI。**
|
||||
|
||||
## 场景构成与七物件绑定
|
||||
|
||||
| 物件 | 进入 | 备注 |
|
||||
|---|---|---|
|
||||
| 大门(半开的门扇,门洞内一条通向远处的小路) | 冒险 | 点大门永远先出确认:有未完冒险=三出口(继续上一段/开始新冒险/取消);无=是否开始新冒险 |
|
||||
| 锻炉·铁砧 | 锻造工坊 | **未解锁=禁用态**(降明度+去饱和) |
|
||||
| 宝箱 | 秘宝匣 | **未解锁=禁用态**(同上) |
|
||||
| 帐篷旁笔记本 | 生涯记录 | 生涯页返回钮文案**禁含「营地」字样**(由呈现层结构校验兜底,口径见测试规约) |
|
||||
| 木桩 | 天赋树 | |
|
||||
| 布告板 | 奖励格图鉴 | 内容冻结未激活,点进看占位——**不是禁用态** |
|
||||
| 篝火 | 离开营地回主菜单 | **必须二次确认**;命中区只含火堆、不含火焰 |
|
||||
| 帐篷 | — | 承载件,**不可点**;251×170 落位 (982, 335),上端遮住围墙下部;笔记本在其左下方外侧、两者不重叠 |
|
||||
|
||||
纵深=远景天空与远山/中景木围墙与营地大门/近景篝火与左右物件(作者纵深稿)。中景围墙是横贯全宽的密排竖木桩墙——木桩一根挨一根无缝、桩顶削尖、无横木,只在中段留缺口给大门。
|
||||
|
||||
**场景按要素分层(10 张)**:远景天空/远山/整片地面/门洞内的小路合成 `scene_camp_bg` 背景层(z0,不透明全幅);中景木围墙独立成 `scene_camp_wall` 围墙层(z1,透明底,门洞处留透明缺口);其余八个物件层各一张、由上往下叠。门洞是围墙层的透明缺口,透出背景层画的**一条通向远处的小路**,不可填死。
|
||||
|
||||
**地平线在终稿 y367**(自画面底部往上约 46%),其上是天空与远山、其下整片地面;**中景围墙带 y203–367**,桩身 150、门柱 164;近景物件允许压住围墙(围墙不可点,z 序在近景物件之下),**唯一例外=中间门洞必须留空、不被任何物件遮挡**。围墙形态、门扇比例与帐篷尺寸的现行口径归 [art-bible](../../art/art-bible.md) §6.2,本 spec 不再复述。
|
||||
|
||||
坐标草案与分层验收判据见 [camp-scene-prompts](../../art/camp-scene-prompts.md) §2.3/§4(10 张口径现行事实源);2026-10-22 美术方案讨论沿革查 git 提交史。
|
||||
|
||||
## 点选反馈(根态)
|
||||
|
||||
悬停=**轮廓亮边 + 浮动**(浮动须整像素吸附)+物件**名牌**(物件下方 8px 居中,提示字号 14,对比 ≥4.5:1);按下=位移 1px;禁用=降明度+去饱和;已解锁=常态。**四态零新素材**(全部程序化)。
|
||||
|
||||
命中区:七件两两不相交、不越出画面、**不侵入顶栏禁区(y ≤ 48)**。
|
||||
|
||||
## 顶栏
|
||||
|
||||
钥石余额常驻画面顶部一行小 HUD 栏:高 48px、全宽窄条、**浮层覆盖在场景图上层,不挤压画面**。栏体底=营地头带深棕 `#6E4526`(token `CAMP_HEADER_BAND`,色值出处 [art-bible](../../art/art-bible.md) §7.2 五 token 对齐表)× **不透明度 0.80**——半透明系定值,底下画面透出 20%。栏内**只放钥石徽章一件**,右位、顶格落座(徽章自高 48px=栏高,无顶距可言),左位不放件。验收:目检〈顶栏成一条可辨窄带、徽章落在带内〉+机检〈栏体呈色对其下方落位带底色对比 ≥3:1〉。刷新入口已实装=营地刷新单口(进档与营地内写口尾触发,现开界面与顶栏余额同步取现值)。
|
||||
|
||||
## 叠层与开合
|
||||
|
||||
各界面开合走模态栈单口,层序按模态栈契约登记。**承载形态已定稿**:五个功能界面(锻造工坊/秘宝匣/天赋树/奖励格图鉴/生涯记录)各以**功能窗口**打开——窗口为统一居中定尺寸窗壳(起点 720×640,窗明显小于屏、营地场景大面积可见;终值随样张目检校准,属普通设计决策)——**该窗壳形态已实装**(窗壳几何单点定值、五窗共用同一石板皮窗板;起点值 720×640 为实装现值,样张目检校准意见回填终值〔登记体验验证清单 ㊽〕),窗之下垫半透明压暗遮罩(交互聚焦用,复用既有模态遮罩件,现值锚黑色 0.6;观感随样张目检校准,属普通设计决策),内容超高时窗内滚动;生涯页与四子界面同壳同形态。**五窗互斥单开**(模态栈深恒 1,不开窗叠窗);各窗自带关闭钮。ESC 优先序:有功能窗口开着 → 先关最上层窗;无窗 → 才进 ESC 浮窗(返回主菜单/设置/退出游戏)。
|
||||
|
||||
## 口径
|
||||
|
||||
- 呈现数据源=元进度系统只读投影经组合根喂入;本层不持有系统资源、不算价。
|
||||
- 「最近冒险」条带已撤下,逐局历史回看归生涯。
|
||||
- 秘宝匣界面内部呈现(解锁面+同调装配段)保留为附录,待该界面立独立 spec 后迁出。
|
||||
@@ -1,216 +0,0 @@
|
||||
# Interaction Pattern Library(交互 pattern 库)
|
||||
|
||||
> **Status**: Complete(核心 8 成文〔2 号已退役留档〕+ 12 目录占位)
|
||||
> **Author**: user + ux-designer
|
||||
> **Last Updated**: 2026-10-29
|
||||
> **Template**: Interaction Pattern Library
|
||||
> **来源**: `design/gdd/ux/battle.md` 已拍板内容的成文固化——本库不引入新设计决策
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
- **用途**:ui-programmer 实现时引用既有 pattern,不重复发明;实现中出现新 pattern 时**必须回写本库**(team-ui Phase 3 义务)
|
||||
- **输入约束**:PC / Keyboard-Mouse 主(全部操作纯鼠标可完成)、Gamepad Partial 非 MVP、Touch None
|
||||
- **视觉依据**:art-bible §3.3(半拟物:容器穿戏服、数据素面;直角=逻辑信息、圆角=可触摸物件)、§4(彩为世,墨为信——逻辑信息一律近黑暖墨族)
|
||||
- **全局语义红线**:无任何信息仅靠色相承载(art-bible §4.5 色弱安全清单逐对成立);明度分层(§2——状态与情绪区分仍只用色相/饱和/运动/元素四手段;空间纵深与光照可走明度带)
|
||||
|
||||
---
|
||||
|
||||
## Pattern Catalog
|
||||
|
||||
| # | Pattern | 类别 | 状态 |
|
||||
|---|---|---|---|
|
||||
| 1 | 双源拒绝反馈 | Feedback | **成文 ✓** |
|
||||
| 2 | 原位窗口激活 | Overlay | **已退役**(留档) |
|
||||
| 3 | 逐行兑现明细带 | Data Display | **成文 ✓** |
|
||||
| 4 | 悬停预承诺光标 | Input | **成文 ✓** |
|
||||
| 5 | 点阵资源显示 | Data Display | **成文 ✓** |
|
||||
| 6 | 模态 overlay 层级纪律 | Modal | **成文 ✓** |
|
||||
| 7 | 破坏性确认异位 | Feedback | **成文 ✓** |
|
||||
| 8 | 禁用态即理由 | Feedback | **成文 ✓** |
|
||||
| 9 | 常驻意图徽标 | Data Display | **已实现**(意图徽标呈现件——规格全文待补) |
|
||||
| 10 | 一次性非模态教学提示 | Feedback | **已实现**(chord 提示——规格全文待补) |
|
||||
| 11 | tooltip 规范 | Feedback | **已实现**(状态/道具悬停——规格全文待补) |
|
||||
| 12 | 单意图帧批次提交 | Input | **已实现**(组合根——规格全文待补) |
|
||||
| 13 | 状态效果槽 | Data Display | **已实现**(状态图标行呈现件——规格全文待补;C 区四槽已退役,现役载体=B 区站桩伴随件) |
|
||||
| 14 | 步进进度条 | Navigation | **已退役留档**(步进进度条呈现件已删,节点态承载进度) |
|
||||
| 15 | 移动路径预览 | Input | **已实现**(棋盘视图 BFS 蓝点——规格全文待补) |
|
||||
| 16 | 清图/换图演出编排 | Feedback | **已实现·占位级**(棋盘演出呈现件 金粒彩纸——规格随战斗表现 美术批补) |
|
||||
| 17 | 胜利/失败终局编排 | Feedback | **已实现·占位级**(战斗终局覆盖层——规格随战斗表现补) |
|
||||
| 18 | Boss 遭遇演出 | Feedback | **已实现·占位级**(紫赤影子——规格随战斗表现补) |
|
||||
| 19 | 库存常读列表 | Data Display | **占位失效**(所记载体从未实装;库存面已随秘宝过渡形态退役——C 区现行秘宝槽=装配呈现面、重接归装配面,见 battle.md 组件清单) |
|
||||
| 20 | 标准控件组(button/progress bar/list) | Control | **已实现**(标准控件组 直角细线/凸圆角——规格全文待补) |
|
||||
|
||||
MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab bar——战斗屏无此需求;TunePanel slider 为调试专用。
|
||||
|
||||
---
|
||||
|
||||
## Patterns(核心 8)
|
||||
|
||||
### 1. 双源拒绝反馈(dual-source rejection feedback)
|
||||
|
||||
**Category**: Feedback
|
||||
**Used In**: 战斗屏(棋盘/资源全部意图动作)
|
||||
|
||||
**Description**: 玩家意图被核心拒绝时,反馈必须同时做到:(a) 每次拒绝玩家可感知(防静默拒绝读感欺骗);(b) 来源可区分——棋盘面(排雷玩法判,携细分原因封闭枚举)/资源面(行动经济判,客户端推断)/相位(排雷玩法意图回执)三源各异;(c) 图标+文案双通道,非色相独载。
|
||||
|
||||
**Specification**:
|
||||
- 触发:意图回执(受理标志 + 拒绝原因 + 细分原因)**返回值驱动**(拒绝无事件外发——排雷玩法发射面封闭,实现层禁止等待拒绝信号)
|
||||
- 反馈映射:棋盘面 → 目标格危险红 `#A8321F` 边框闪(拒绝语义红族——封印黑 #000000,2026-09-28 用户拍板现行) + toast 具体原因(细分原因→文案映射表:非相邻 / 目标已开格 / 目标未开格 / 该格已有封印 / 该格无封印 / 无可达路径 / 坐标越界);资源面 → 对应资源数字脉冲(AP/RAP)+「AP 不足 · 剩 0 点」式文案;相位 → toast(结算中/非挖掘期)
|
||||
- 即时性:拒绝当帧呈现;toast 自动消退 2.5s
|
||||
- **voided 区分**:作废 ≠ 拒绝(零效果零扣费零事件)——须独立文案如「本轮已清图,停手未执行 · 剩余 AP 已作废」,至少 stop 作废可感知
|
||||
- Accessibility:危险红边框闪为形状+运动通道;文案常驻
|
||||
|
||||
**When to Use**: 任何意图提交被拒绝时(唯一拒绝呈现通道)
|
||||
**When NOT to Use**: 成功反馈(走动作本身的直接视觉反馈通道);voided 语义场景(作废文案独立)
|
||||
|
||||
**Reference**: battle.md §States 拒绝/作废子态、§Interaction Map;排雷玩法×6⑥、行动经济双源契约
|
||||
|
||||
---
|
||||
|
||||
### 2. 原位窗口激活(in-place window activation)——已退役留档
|
||||
|
||||
> **退役注记**:唯一消费面"轮末道具使用窗口"已下线,本条原 Specification 整段退役不再装载呈现义务;编号留空防后续 pattern 交叉引用失锚(照 battle.md 布局决策 2 先例)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
### 3. 逐行兑现明细带(line-by-line settlement feed)
|
||||
|
||||
**Category**: Data Display
|
||||
**Used In**: 战斗画面区底部(结算期第一注视点)
|
||||
|
||||
**Description**: 轮末结算逐行流水实时呈现——「扫雷之因逐行兑现为战果」(P2 归因)的承载面。挖掘期收起为 1 行上轮摘要;结算期展开为实时流(带高读 `log_band_h_settle`)。
|
||||
|
||||
**Specification**:
|
||||
- 数据源:[战斗结算](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)步骤流(9 类行封闭协议(现行);公共字段:来源类别 / 来源格 / 轮次 / 显示名 / 数值 / 可空高光标记);**无来源行 = 断言失败**
|
||||
- 行模板:「{行为} {值} → {目标}(来源)」——来源标注(第 N 轮 · 安全格式);行文案最长 token = 来源标签(4 汉字封闭枚举),模板预留 40% 膨胀宽度
|
||||
- 聚合纪律:未生效类行(奖励未生效——现行 9 类行协议唯一未生效型)按聚合计数呈现(防逐行惩罚轰炸);衰减行聚合计数;效果行数值 = 单次贡献值、禁与池合成值相加呈现;零值行可见不吞(免伤轮归因不断点)
|
||||
- 高亮:高亮标记(封印标中、清图奖励、完美破除) → 金框强调;完美封印 = 独立高光行 + 全屏喝彩级反馈。「完美破除」的判据句读作「本板首次标错受检」,不等于完美资格已失——专长「完美保险」可在本场首次标错时豁免,实际资格按有效误标(误标总数 − 豁免数)判定
|
||||
- 布局:固定槽高 + 裁剪兜底;正文 ≥14px;数值暗底高对比;未生效类行带 icon/划线形状冗余
|
||||
- 击杀标记呈现(H3 数据源 = 战斗结算流水击杀结果字段)
|
||||
|
||||
**When to Use**: 任何「因果可归因」的逐行流水呈现
|
||||
**When NOT to Use**: 自造行类型/字段(9 类封闭枚举(现行)——增删 = 接口漂移,须走[《战斗结算》](../systems/战斗循环/战斗结算.md#明细流水每一行都能指回你刚才的哪一步棋)修订)
|
||||
|
||||
**Reference**: battle.md §Component Inventory 结算明细带、§AC 信息与归因;归档《战斗结算》(b1-settlement.md)Core Rule 14 / Visual Req
|
||||
|
||||
---
|
||||
|
||||
### 4. 悬停预承诺光标(hover pre-commitment cursor)
|
||||
|
||||
**Category**: Input
|
||||
**Used In**: 扫雷图(棋盘视图)
|
||||
|
||||
**Description**: 左键双义(已开格=移动 / 未开相邻格=挖)的消歧完全依赖格态一瞥可辨 + 悬停光标区分——**误挖不可逆**(1 AP + 可能触雷)的感知保险。
|
||||
|
||||
**Specification**:
|
||||
- 光标三态:移动(箭头)/挖(镐)/封印(印记形)——按悬停格态与键位自动切换
|
||||
- 目标格边框高亮常驻
|
||||
- 可挖域常驻指示:小人 8 向相邻未开格呼吸微光(挖掘期唯一在动元素——art-bible §2.1)
|
||||
- 非相邻格:禁止光标 + 首次 toast「需先走近(点击已开格移动,免费)」
|
||||
- 提交:悬停仅预承诺,**点击才提交意图**(单意图帧批次——目录 #12)
|
||||
- chord 首遇提示:怀旧玩家双击快开尝试时一次性 toast(含排雷玩法登记锚点「点数字格可移动小人」)
|
||||
|
||||
**When to Use**: 一键多义且后果不对称的操作面
|
||||
**When NOT to Use**: 单义控件(直接点击反馈即可,勿加光标层)
|
||||
|
||||
**Reference**: battle.md §Interaction Map;排雷玩法×6②③
|
||||
|
||||
---
|
||||
|
||||
### 5. 点阵资源显示(dot-matrix resource display)
|
||||
|
||||
**Category**: Data Display
|
||||
**Used In**: AP 条(RAP 读数已并入,独立 RAP 框不存在)
|
||||
|
||||
**Description**: 离散点阵 + 数字双承载的资源显示——点阵为图形载体(本地化零成本、一眼可读余量),数字为精确值。
|
||||
|
||||
**Specification**:
|
||||
- 形态:`●●●●●○○○` + 「5/8」;直角细线数据框(信息=直线直角,art-bible §3.3)
|
||||
- 更新触发:组合根每次调用返回后重查(**行动经济无推送信号**——实现层禁止等待资源变更事件)
|
||||
- 拒绝反馈:资源不足时数字脉冲(pattern 1 的资源面腿)
|
||||
- Accessibility:点阵=形状通道、数字=文本通道;对比 ≥4.5:1
|
||||
|
||||
**When to Use**: 小整数离散资源(≤16 量级)
|
||||
**When NOT to Use**: 大数值/连续量(用直角细线进度条——目录 #20)
|
||||
|
||||
**Reference**: battle.md §Layout C/D 区;行动经济 UI Requirements
|
||||
|
||||
---
|
||||
|
||||
### 6. 模态 overlay 层级纪律(modal overlay discipline)
|
||||
|
||||
**Category**: Modal
|
||||
**Used In**: 图例面板、胜利/失败终局 overlay
|
||||
|
||||
**Description**: 任何模态覆盖层打开时必须**隐藏/锁定其遮挡的交互物**,关闭恢复——防「看不见但可点」的幽灵输入(垂直切片缺陷⑤教训,场景级断言强制)。
|
||||
|
||||
**Specification**:
|
||||
- 打开:遮挡物隐藏或禁用 + 输入锁定;单一模态栈(无叠模态)
|
||||
- 关闭:恢复被遮挡物;关闭按钮/再点入口切换
|
||||
- 内容:固定槽高 + 裁剪兜底(缺陷①——悬停文案换行禁止推挤布局)
|
||||
- 验收:**场景级断言「打开时遮挡物隐藏/输入锁定」为每个模态 overlay 的强制 AC**(battle.md 场景级测试节)
|
||||
|
||||
**When to Use**: 全屏打断级信息、只读回看、仪式性终局
|
||||
**When NOT to Use**: 与常读面板同域的窗口态(此类场景当前无消费面);**独立屏**(关卡画面为独立屏,不属本 pattern 族——其屏级语义见 [level-map.md](level-map.md);节点/商店覆盖层在关卡画面激活域内弹出时仍属本 pattern,遮挡/恢复语义复用单一模态栈)
|
||||
|
||||
**Reference**: battle.md §AC 场景级测试;缺陷①⑤
|
||||
|
||||
---
|
||||
|
||||
### 7. 破坏性确认异位(destructive-confirm position offset)
|
||||
|
||||
**Category**: Feedback
|
||||
**Used In**: 弃图刷新(RAP−8 消耗 + 旧板弃置)
|
||||
|
||||
**Description**: 消耗性/不可逆操作的确认交互与常规确认**不同位**——位置通道是色盲安全冗余(art-bible §4.5 清单 #7:UI 红/金强调对需图标+文案冗余,且破坏性确认禁止与常规确认同位)。
|
||||
|
||||
**Specification**:
|
||||
- 弃图刷新:确认微交互显式呈现全部代价(RAP−8 · **旧板封印印记随旧板作废**提示);确认交互位置与常规确认不同位
|
||||
- 双通道:图标 + 文案冗余
|
||||
- 拒绝路径:RAP<8 → pattern 1 的资源面(EC13 合法拒绝可见)
|
||||
|
||||
**When to Use**: 任何消耗资源/不可逆的操作确认
|
||||
**When NOT to Use**: 无代价操作(直接执行 + 直接反馈)
|
||||
|
||||
**Reference**: battle.md §Accessibility、§AC 交互与反馈;art-bible §4.5 #7
|
||||
|
||||
---
|
||||
|
||||
### 8. 禁用态即理由(disabled-state with reason)
|
||||
|
||||
**Category**: Feedback
|
||||
**Used In**: 商店购买钮余额不足置灰(shop.md)/ 三选一与商店 GP 刷新钮余额不足禁用(node-reward.md、秘宝.md「三选一刷新双源」节)——本条保留为通用模式
|
||||
|
||||
**Description**: 禁用不许静默——灰置必须伴随**可见的禁选原因**(tooltip/toast),防「为什么点不动」的困惑。
|
||||
|
||||
**Specification**:
|
||||
- 形态:灰置 + tooltip「HP 已满 · 禁选」;点击无效 + 原因 toast 兜底
|
||||
- 语义区分:满血 = 零收益守卫(禁选、不烧包)≠ 缺血不足(超量 clamp 部分回复,**不**禁选)
|
||||
- 「当前可用」标记由战斗结算组装进窗口载荷(地图战斗资源零跨系统读)——呈现层只消费不推断
|
||||
|
||||
**When to Use**: 任何可见但不可交互的元素
|
||||
**When NOT to Use**: 完全隐藏的不可用功能(不存在的东西无需解释)
|
||||
|
||||
**Reference**: battle.md §Interaction Map;地图战斗资源 Rule 7 / AC-14
|
||||
|
||||
---
|
||||
|
||||
## Gaps & Patterns Needed
|
||||
|
||||
- **目录 #9–#20 已全部实现**;规格全文回写归 HUD框架正式化
|
||||
- 实现期新增技术件(不单独立 pattern,规格归并):去饱和+金橙状态切换 = 逐格共享 ShaderMaterial(明度不变,兼容渲染器下安全);敌人死亡残位 = 卡体灰化+碎裂禁瞬消(归入 #17 终局编排规格)
|
||||
- **MVP 未使用标准控件**:toggle / dropdown / input field / tab bar(无需求不设占位);TunePanel slider 为调试专用不入库
|
||||
- **实现偏差规则**:pattern 近似但不完全适配时,实现层禁止静默变体——登记偏差交 ux-designer 复核后回写
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. 目录占位项的补全时点 = 实现期顺带回写(owner:ui-programmer → ux-designer 复核)
|
||||
2. Gamepad 引入时,需为 pattern 4/12/15 增补手柄映射节(焦点序已在 battle.md OQ8 留位)
|
||||
|
||||
---
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
# UX Spec: 关卡结算屏(Level Clear)——提升三选一选择面
|
||||
|
||||
> **Status**: v2.1 义务锁定版
|
||||
> **Author**: user + ZCode
|
||||
> **Last Updated**: 2026-10-29
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主,全部操作纯鼠标可完成(同 battle.md)
|
||||
> **Template**: UX Spec
|
||||
|
||||
---
|
||||
|
||||
## Purpose & Player Need
|
||||
|
||||
关卡结算屏是关卡收束时刻的清算与**选择**面:末节点 Boss 倒下、本关结束,玩家在这里看到这一关的账(部分回血的兑付反馈),然后从三个提升选项里**挑一件带走**——本作第一个选择型奖励面。
|
||||
|
||||
一句话目的:**让「打穿了一关」的收束感落在一笔算得清的账上,并把「这关带我变强」变成玩家自己做的决定。**
|
||||
|
||||
- 专长三选一承载局内成长的选择权:候选 = 纯专长(关卡完成渠道只出专长)、点选一件兑付、另两件丢弃不可反悔
|
||||
- 部分回血承载收束反馈:关卡完成不再自动回满,回血量一眼可读(满血回 0 合法)
|
||||
- 钥石增量**不在本屏**:Boss 击杀进账时刻的钥石增量行归战斗总结结算([settlement-summary.md](settlement-summary.md))——单一展示面原则,本屏不重复
|
||||
|
||||
若此屏缺失或难用:奖励选择沦为无声的自动发放(选择权缺失);三选一停点不可中断则续玩丢选择。
|
||||
|
||||
## 现行载体与目标形态(重要边界)
|
||||
|
||||
本屏**没有独立新屏**:现行与 MVP 目标载体都是关卡收束时刻的覆盖层反馈([HUD框架](../systems/表现与支撑/HUD框架.md) P1 行「相邻域屏完整屏形态:MVP 以覆盖层反馈承载」)。本 spec 锁义务与数据锚,不锁视觉形态;完整屏形态待 P1 屏实装时定。
|
||||
|
||||
| 时刻 | 载体(目标形态) | 呈现内容 |
|
||||
|---|---|---|
|
||||
| Boss 战胜利(非末关) | 战斗总结结算([settlement-summary.md](settlement-summary.md))→ 确认后进**本屏** | 战利品行含钥石增量行 → 本屏:部分回血反馈 + 三选一三卡 |
|
||||
| 非末关完成(本屏默认态) | 三选一覆盖层(与奖励节点共用面) | 部分回血兑付行 + 三张专长选项卡(点选+确认+兑付反馈) |
|
||||
| 末关完成 / 失败 / 放弃 | 冒险结算(复用战斗终局 overlay) | 冒险摘要五件事 + 钥石入账明细——**相邻域**(冒险落幕面,非本屏职责) |
|
||||
|
||||
## Navigation Position
|
||||
|
||||
```
|
||||
战斗屏 ──胜利(末节点 Boss)──▶ 战斗总结结算(GP/钥石增量行)──确认──▶ 【关卡结算(关卡完成)】
|
||||
├─ 非末关:回血反馈 + 三选一点选兑付 → 下一关开始(→ 关卡画面选路)
|
||||
└─ 末关完成:直通冒险结算(相邻域)→ 返回存档/营地
|
||||
失败不经本屏(战斗屏失败分支直达冒险落幕)。
|
||||
```
|
||||
|
||||
- 上游屏:战斗总结结算(Boss 胜利确认——settlement-summary.md)
|
||||
- 下游屏:关卡画面(下一关开始,选路枢纽——屏级 spec:[level-map.md](level-map.md));末关时改接冒险结算(相邻域屏)
|
||||
|
||||
## Entry & Exit Points
|
||||
|
||||
| 方向 | 触发 | 携带语境 |
|
||||
|---|---|---|
|
||||
| 进入 | 战斗总结结算确认 → 关卡收束(先清库后宣布)→ 非末关兑付部分回血 → 三选一候选呈现(奖励三选一拉起信号) | 三候选(件 id + 名称 + 效果行值);部分回血前后生命读数;GP 账本余额(跨关延续) |
|
||||
| 离开 | 三选一确认兑付 → 继续钮(唯一出口) | 兑付反馈载荷 → 下一关开始 |
|
||||
|
||||
零自动推进(冒险结构 契约 4):三选一呈现后必须玩家点选才兑付,确认前玩家不被推着走;重复兑付被拒。选择停点可中断:断点附随件扩「奖励选择态」,续玩回到本屏同一候选(不重抽)。
|
||||
|
||||
## Information Hierarchy(义务锁定)
|
||||
|
||||
按 2026-09-26 信息归属两铁律(循环口径 + 单一展示面)推导的准入清单:
|
||||
|
||||
1. **三张提升选项卡**(第一注视点):件名称 + 一行效果读数(值读冒险表)——选择型奖励的本体;已达次数上限的件不出现(剔牌库在先);候选 = 纯专长
|
||||
2. **部分回血兑付行**:回血量(前后生命读数,如「生命 34 → 42」);满血回 0 时呈「生命已满」反馈而非 0 字样
|
||||
3. **兑付反馈**(确认后):选中件效果一行(如「攻击 +1」)+ 另两件已丢弃提示
|
||||
|
||||
**禁入清单**(两铁律推导):战斗小循环数据(结算明细、状态效果——留在战斗屏);GP(呈现位已拍板 = 战斗总结结算 + 关卡画面常驻);**钥石增量与累计**(归战斗总结结算增量行 + 冒险总结结算收束明细——本屏零钥石元素);营地界面全量;冒险摘要五件事(末关时由相邻域冒险结算屏承载);已达上限件(不出现在候选)。
|
||||
|
||||
## States & Variants
|
||||
|
||||
| State | Trigger | What Changes |
|
||||
|---|---|---|
|
||||
| 三选一选择态(默认) | 非末关完成,候选已抽定 | 三卡呈现(零自动推进)→ 点选 → 确认 → 兑付反馈 → 继续 |
|
||||
| 兑付反馈态 | 确认兑付后 | 选中件效果一行 + 丢弃提示 → 继续钮点亮 |
|
||||
| 末关完成 | 关卡完成且末关 | 直通冒险结算——不发三选一与回血(奖励只朝下一战生效);本屏不出现 |
|
||||
| Boss 入口语境 | 击杀 Boss(恒为本屏入口前置) | 入口演出归战斗屏;钥石增量行归战斗总结结算——本屏不另设 |
|
||||
|
||||
## Interaction Map
|
||||
|
||||
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|
||||
|---|---|---|---|---|
|
||||
| 提升选项卡 ×3 | 点选(单选高亮) | 左键 | 选中卡高亮、确认钮点亮 | 选中态暂存(未确认可改选) |
|
||||
| 确认钮 | 兑付选中件 | 左键 | 兑付反馈(效果一行) | 冒险编排兑付恰一件(重复兑付被拒);另两件丢弃不可反悔 |
|
||||
| 继续钮 | 接受结算、推进 | 左键 | 按钮下压 | 下一关开始(推进到下一关——兑付后受理) |
|
||||
|
||||
复用既有交互范式,零新增原语:三卡点选 = 奖励节点 选择框 按钮数组同族(由节点覆盖层展示奖励三选一 先例)+ 选路覆盖层点选确认两段式(关卡地图屏 先例);覆盖层容器 = 中场确认覆盖层位置复用。
|
||||
|
||||
## Data Requirements
|
||||
|
||||
| Data | Source System | Read / Write | Notes |
|
||||
|---|---|---|---|
|
||||
| 三候选(件 id/名称/效果行值) | 冒险结构 奖励三选一拉起信号(令牌池洗牌不放回抽 3〔同 kind 去重〕,奖励抽取封闭流) | Read | 载荷自包含、销毁前捕获;同种子同三候选(可复放) |
|
||||
| 部分回血读数(回血前后生命) | 冒险结构生命账本(clear_heal_pct 兑付) | Read | 满血回 0 合法态文案化 |
|
||||
| 兑付反馈载荷 | 冒险结构 奖励兑付完成信号 | Read | 选中件 id + 生效值 |
|
||||
| 冒险摘要(五件事) | 冒险结构的冒险收束载荷 | Read | 末关分支数据锚(相邻域冒险结算屏消费) |
|
||||
| GP 账本 | 冒险结构 GP 冒险账本 | — | 不进本屏(2026-09-27 拍板) |
|
||||
| 钥石入账 | 元进度 冒险结算入账 | Write(相邻域) | 唯一写档点不变;**本屏零钥石元素**(增量行归战斗总结结算) |
|
||||
|
||||
## Accessibility
|
||||
|
||||
沿用 [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节全量(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)——本屏无新增承诺。结算数字是本屏信息主载体,遵守同一字号下限与对比硬指标。
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 非末关完成必经本屏:三选一恰呈现一次(零自动推进)、点选后恰兑付一件(重复兑付被拒)、未选项零生效
|
||||
- [ ] 三候选读数可见且与奖励三选一拉起载荷一致(件名称 + 效果行值);同种子同三候选
|
||||
- [ ] 部分回血兑付行可见且封顶上限;满血回 0 呈合法态文案
|
||||
- [ ] 末关完成分支正确直通冒险结算(不发三选一与回血),冒险摘要五件事完整
|
||||
- [ ] 确认前冒险状态冻结(无后台推进、无战斗事件串扰);选择停点中断 → 续玩已选不丢失(**候选一致性=停点快照承载的实现现状、非验收义务**——2026-10-01 用户裁决)
|
||||
- [ ] 呈现遵循 HUD框架 可访问性基线(对比 ≥4.5:1、字号下限、纯鼠标可完成;减动效 = 静态化)
|
||||
- [ ] 本屏零钥石元素、零 GP 元素(禁入清单机检随冒烟断言)
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **GP 增量展示面归属——已完成(2026-09-27 用户拍板)**:战斗胜利出现战斗总结结算、展示获得的资源(GP 增量+总量;含 Boss/精英钥石增量行);战斗失败出现冒险总结结算、确认后回存档首页。本屏不承载 GP 与钥石,无遗留。两面呈现 spec:[settlement-summary.md](settlement-summary.md)
|
||||
2. **末关分支形态**:末关完成时直通冒险结算(现行维持)——随完整屏形态实装一并定
|
||||
3. **钥石呈现三面化——已完成**:战斗总结结算(Boss/精英击杀增量行)+ 冒险总结结算(收束明细)+ 营地存量——「进账时刻 / 收束明细 / 存量可用」不同义不构成重复展示
|
||||
4. **视觉终稿**:以表现层样张过审为前置(待办清单登记);本 spec 的 AC 为功能性判据,不含视觉终稿判据。**渲染层验证冻结(用户 2026-10-01 裁)**——实装后目检清单顺带交付,实机目检待用户批准后补闸
|
||||
5. **替换子交互视觉形态——已随渠道退役**:秘宝件出池,本屏无道具件候选,替换子交互不于本屏触发
|
||||
|
||||
---
|
||||
@@ -1,306 +0,0 @@
|
||||
# UX Spec: 关卡画面(选路枢纽,Level Map)
|
||||
|
||||
> **Status**: 定稿版 v2.0(现行——四项设计拍板:底栏状态展示 / 图上点击选路·候选按钮退役 / 放弃二次确认 / 卷轴视口范式〔2026-11-05 用户拍板〕;形态为独立屏;视觉终稿已冻结——视口行为见布局决策 5)
|
||||
> **Author**: user + ZCode
|
||||
> **Last Updated**: 2026-11-05
|
||||
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主,全部操作纯鼠标可完成(同 [battle.md](battle.md))
|
||||
> **Template**: UX Spec
|
||||
> **覆盖范围**: 独立屏形态(关卡停点全景)· 入口停点 · 岔路停点 · 单链停点 · 放弃冒险入口
|
||||
> **不覆盖**: 节点覆盖层(NodeOverlay——奖励/恢复兑付反馈,spec:[node-reward.md](node-reward.md))、商店覆盖层(spec:[shop.md](shop.md))、关卡结算屏([level-clear.md](level-clear.md))、战斗屏([battle.md](battle.md))
|
||||
> **机制权威**: [关卡节点地图](../systems/冒险循环/关卡节点地图.md)(选路、兑付、停点语义);图的来源 = [关卡节点图生成](../systems/冒险循环/关卡节点图生成.md)(参数化长图——只换图的来源与形态,不换本屏的呈现语义;多终点时各终点均带 Boss 标记,标记语义不变、数量随图;图形态随参数变化,布局自适应,形态不进呈现代码);**系统契约**: [HUD框架](../systems/表现与支撑/HUD框架.md)(订阅纪律、模态层级、可访问性基线)
|
||||
> **生成图随动登记**:入口停点候选数=入口个数(1 或多,多入口并列呈现,首跳即选从哪个入口进场);节点数字=图内句柄 id(非节点深度、非数组序);生成图深度域 L3 上探至 0–13——卷轴视口范式(布局决策 5)下画布随图生长、屏为窗口,深度不再受屏预算约束(2026-11-05 用户裁:滚动视口案落地、等比缩放案否决;原「超预算」挂账闭合)。
|
||||
|
||||
---
|
||||
|
||||
## Purpose & Player Need
|
||||
|
||||
关卡画面是中循环(关卡内)的枢纽屏。关卡开始即呈现这张图,此后每次兑付确认都回到它再选路——玩家在这里看图、选路、出发,直到关底 Boss 分出胜负。
|
||||
|
||||
一句话目的:**让「我在图上哪、下一步能去哪、去了会发生什么」一眼可读,选路即出发。**
|
||||
|
||||
- 节点图本体承载 P4(地牢下探隐喻):方块地牢观感的整层纵览——当前节点与去路一眼在目,深处支路经卷轴视口拖拽/滚轮可达(布局决策 5)
|
||||
- 候选选路口承载 P1(推理的掌控感):下一步的去向明示(节点类型字面),零自动推进——每一步都是玩家亲手走出来的
|
||||
- 底部状态栏承载规划原料:生命、属性与本关已选加成常读,支撑「低血先疗、缺攻先补」一类选路判断(2026-09-27 拍板:底栏 = 状态展示)
|
||||
|
||||
若此屏缺失或难用:中循环失去锚点(玩家不知道自己走到第几环);零自动推进沦为「被迫逐步确认」的负担而非掌控感。
|
||||
|
||||
## Player Context on Arrival
|
||||
|
||||
- **到达时机**:关卡开始即出图(停点前移——入口不自动进入,第一次选路就是「出发」);或每次兑付确认后返回(战后回图、奖励/恢复反馈确认后回图、商店覆盖层离开后回图)
|
||||
- **到达前刚在做**:上一场战斗的结算画面,或奖励/恢复/商店覆盖层的确认动作
|
||||
- **情绪状态**:谋定后动——[art-bible](../../art/art-bible.md) §2.7 下探过渡的「纵深的期待」(能量 4/10);画面应安静可读,不给选路决策添噪
|
||||
- **到达方式**:游戏推进送入(屏级切换——独立屏激活期战斗屏整体隐藏)
|
||||
|
||||
## Navigation Position
|
||||
|
||||
```
|
||||
存档/营地 ──开始冒险──▶ 冒险结构(关卡序列)──▶ 【关卡画面(选路枢纽,本 spec)】
|
||||
├─ 选战斗/Boss 节点 → 战斗屏(battle.md)
|
||||
├─ 选奖励/恢复节点 → 节点覆盖层(NodeOverlay,本屏域内弹出)
|
||||
├─ 选商店节点 → 商店覆盖层(本屏域内弹出)
|
||||
└─ Boss 胜利 → 关卡结算(level-clear.md)→ 下一关开始 → 回本屏
|
||||
放弃冒险(任意选路停点)→ 冒险落幕 → 返回存档/营地
|
||||
```
|
||||
|
||||
- 上游屏:关卡结算确认(下一关开始)或冒险开始
|
||||
- 下游屏:战斗屏 / 节点覆盖层 / 商店覆盖层(三者兑付确认后**一律回本屏**再选路——战后回图)
|
||||
- **本屏为独立屏**:激活期**独占呈现**——战斗屏宿主整体隐藏(非暗幕半透、零透出);选路提交即离开本屏进入所选节点的兑付流程(战斗/Boss 节点切回战斗屏;奖励/恢复/商店节点本屏保持激活,兑付覆盖层在本屏域内叠加弹出,确认后回本屏)
|
||||
|
||||
## Layout Specification
|
||||
|
||||
### Information Hierarchy
|
||||
|
||||
本屏必须传达的全部信息,按注视优先级分六层:
|
||||
|
||||
1. **节点图本体**(第一注视点):节点方块(五类型字面:战/赏/疗/王/商)、通道连线、当前位置、可选去路;类型可见性=邻近 N 层内显示类型,范围外只见结构(机制见[关卡节点地图](../systems/冒险循环/关卡节点地图.md))
|
||||
2. **候选选路口**:亮金候选通道 + 候选节点亮金描边——「下一步能去哪」的图上双冗余(2026-09-27 拍板:候选按钮退役,图上点击为唯一提交通道)
|
||||
3. **常驻语境**(顶栏):关卡名(第 N 层·名称)、GP 常驻总量(2026-09-26 二轮拍板:GP = 关卡画面常驻总量)
|
||||
4. **状态展示**(底栏,2026-09-27 拍板):生命(当前/上限)、属性(攻击 / 护甲 AC 有效值)、本关已选加成(统一冒险加算区增量)——选路规划原料常读
|
||||
5. **边缘动作**:放弃冒险入口(破坏性,危险红族,异位呈现)
|
||||
6. **进度语境**:已过/当前/未来三态节点直接读图呈现——节点态即节点链进度呈现载体,**不另设进度条组件**(关卡节点地图 呈现侧口径 2026-09-17 用户拍板)
|
||||
|
||||
### Layout Zones
|
||||
|
||||
按 1280×800 基座(2026-09-12 定)。本屏为独立屏独占呈现:屏底(深底背景色 + 石纹底噪〔框材组冻结件,缺位纯色回退〕)铺满,内容三段;节点图区为卷轴视口(布局决策 5)——画布可超屏,屏为窗口。
|
||||
|
||||
| 区 | 位置与尺寸 | 内容 |
|
||||
|---|---|---|
|
||||
| **顶栏语境** | 居中横排,图区上方,高约 32px | 左:关卡名(关卡表 `display_name` 行值,如「第二层 · 幽暗地域」);右:GP 常驻徽章(GP 图标+数字,直角细线数据框——GP 值域超点阵适用档,走 pattern 5 的 When-NOT-to-Use 路线);HP 归底部状态栏(2026-09-27 拍板完成) |
|
||||
| **节点图区** | 居中 | 卷轴视口承载整幅节点图自绘:节点方块 + 通道折线 + 节点态着色 + Boss 紫赤描边。画布随图自适应(**冻结公式不变**:宽 = 70+层深×122+44.5、高 = 52+槽位×58+25+24,下限 620×256),**可超屏**——屏为窗口,视口行为见布局决策 5;通道折线**冻结 2/3/4px**(未点亮石灰 STONE/候选亮金 GOLD_LIT/悬停加粗);节点方块 52×36 内**节点图标 20px 烘焙 1:1**(♻ kenney 五键:战=弓/赏=桂冠/疗=篝火/王=王冠/商=钱袋,WARM 单色、当前金底转深墨——双色墨制)+ 编号(图内句柄 id)10px 右上角 |
|
||||
| **底部状态栏** | 图区下方横排,高约 48px | 左-中:状态数据框组(直角细线,pattern 5 族)——生命(当前/上限 + 迷你血条)、属性(攻击 / 护甲 AC,有效值 + 加成角标)、本关加成(攻+X · 上限+Y · AC+Z,零加成隐藏);右端:放弃冒险按钮(危险红族文字,与状态数据框保持间距——破坏性确认异位,pattern 7) |
|
||||
|
||||
### Component Inventory
|
||||
|
||||
| 组件 | 类型 | 内容 | 交互 | 现有实现锚 |
|
||||
|---|---|---|---|---|
|
||||
| 关卡名标签 | 文本 | 关卡表 `display_name` 行值(关卡表行读数) | 只读 | 新建(现行标题位升级) |
|
||||
| GP 常驻徽章 | 直角细线数据框 | GP 图标 + 数字(冒险钱包读数;刷新经钱包变动信号投影〔gain/buy/clear 三事件〕或写路径回执后重查) | 只读 | 新建(GP 去向拍板承载面) |
|
||||
| 节点图画布 | 自绘 Control(卷轴视口承载) | 节点图标(五键 20px 烘焙,双色墨制)+ 编号(图内句柄 id)、通道折线、节点态着色、Boss 紫赤描边+深墨环(BOSS_PURPLE——紫赤本色) | 悬停预承诺 / 点击提交选路(唯一通道)/ 拖拽·滚轮平移视口(布局决策 5) | ✅ 已实装(视觉终稿已落码;视口行为随卷轴范式批落地) |
|
||||
| 状态数据框组 | 直角细线数据框 ×3 | 生命(当前/上限 + 迷你血条)、属性(攻击 / 护甲 AC 有效值 + 加成角标)、本关加成(加算区增量列表,零加成隐藏) | 只读 | 新建(2026-09-27 拍板:底栏状态展示) |
|
||||
| 放弃冒险按钮 | 按钮(危险红族) | 「放弃冒险(同失败结算——已获大奖励保留)」;二次确认态已拍板(见布局决策 3) | 点击(首击转确认态、二击提交) | ✅ 已实装(可见性归组合根,仅冒险模式开) |
|
||||
| 标题行 | 文本 | 停点语境提示(见布局决策 1 三停点标题) | 只读 | ✅ 已实装(措辞已按布局决策 1 改稿) |
|
||||
|
||||
**布局决策 1 —— 三停点标题定稿**:入口停点语境是「尚未走出第一步」,「继续前进(战斗房)」类措辞与之矛盾。三停点标题:
|
||||
|
||||
| 停点 | 候选数 | 标题 |
|
||||
|---|---|---|
|
||||
| 入口停点 | 入口个数(1 或多) | 「出发——选择首个节点」 |
|
||||
| 单链停点 | 1 | 「继续前进」 |
|
||||
| 岔路停点 | ≥2 | 「选择下一节点」 |
|
||||
|
||||
**布局决策 2 —— 图上直接点击选路(2026-09-27 拍板)**:候选节点的亮金描边本身是可点目标,悬停预承诺(pattern 4)后点击即提交——**候选按钮整列退役,图上点击为唯一提交通道**。
|
||||
|
||||
**布局决策 3 —— 放弃冒险二次确认(2026-09-27 拍板)**:放弃 = 整局冒险落幕,不可逆(pattern 7 破坏性确认)。首击转入确认态(按钮文案变「再点一次确认放弃——不可逆」,危险红边框脉冲约 3 秒,超时回落),二击才提交。代价语义(已获大奖励保留、同失败结算)常驻按钮文案。
|
||||
|
||||
**布局决策 4 —— 底部状态栏(2026-09-27 拍板)**:底栏作为状态展示——生命、属性、本关已选加成三项常读;顶栏保持关卡名 + GP 两件。单一展示面注记:与 [battle.md](battle.md) C 区「奇物列表(预留)」为不同屏的不同展示面——两屏循环口径各自独立(选路规划消费 vs 战斗内决策消费),不构成同屏重复。
|
||||
|
||||
**布局决策 5 —— 卷轴视口范式(2026-11-05 用户拍板)**:生成图实测深度域 L3 0–13 超出画布屏预算(原挂账「超预算图策略升级路径」),用户裁滚动视口案落地、等比缩放案否决(像素纪律——非整数缩放碰 20px 图标 1:1 与折线 2/3/4px 冻结值)。行为四条:
|
||||
|
||||
| 行为 | 规格 |
|
||||
|---|---|
|
||||
| 视口锚点 | 当前节点居中(屏中线 x=640±2);入口停点尚无当前节点,锚定入口节点组居中 |
|
||||
| 视口跟随 | 停点切换与兑付确认回图时,视口平滑滚动至新当前节点(时长 provisional 0.3s,单段缓动);减动效开=跳终态(瞬切),同 UiKit.motion 通道 |
|
||||
| 手动平移 | 拖拽画布+滚轮横滚;平移范围 clamp 在画布包络内(不出露屏底空档);拖拽与图上点击以拖动距离阈值区分(阈值 provisional,实现期定值),拖拽不触发选路提交 |
|
||||
| 指引 | 不做缩放、不做缩略图(等比缩放案已否决);视口边缘 70px 渐隐带+图区底部居中平移提示 chip(240×30、圆角 6、深底石灰描边、文案 14px——色值随 art-bible 冻结色板,provisional)作「视口外还有内容」的暗示;其余暗示形态(如到达边缘回弹)后置,试玩反馈再定 |
|
||||
|
||||
视口为纯呈现态:平移位置零核心写、不进存档(重进本屏按锚点规则重新定位)。
|
||||
|
||||
**视口效果图**(2026-11-05 用户人审通过,内嵌备查;节点类型字与色值为占位示意,终稿以在库 kenney 五键图标与 art-bible §4.1 冻结色板为准):
|
||||
|
||||
<svg viewBox="0 0 1280 800" width="100%" style="min-width:720px" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="lmap-viewport-title lmap-viewport-desc">
|
||||
<title id="lmap-viewport-title">卷轴视口效果图——第三关岔路停点</title>
|
||||
<desc id="lmap-viewport-desc">当前节点居中锚定,画布 1700px 超出 1280px 屏,两侧渐隐与平移提示 chip;深度 0 与 12–13(含 Boss)拖拽滚轮可达。</desc>
|
||||
<defs>
|
||||
<linearGradient id="lmap-bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#4A3B2A"/><stop offset="1" stop-color="#33291F"/></linearGradient>
|
||||
<linearGradient id="lmap-fadeL" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="#3A2E22" stop-opacity="0.9"/><stop offset="1" stop-color="#3A2E22" stop-opacity="0"/></linearGradient>
|
||||
<linearGradient id="lmap-fadeR" x1="1" y1="0" x2="0" y2="0"><stop offset="0" stop-color="#33291F" stop-opacity="0.9"/><stop offset="1" stop-color="#33291F" stop-opacity="0"/></linearGradient>
|
||||
</defs>
|
||||
<rect width="1280" height="800" fill="url(#lmap-bg)"/>
|
||||
<text x="24" y="24" font-size="16" fill="#E8DCC8" font-weight="500">第三层 · 灰矮人矿城</text>
|
||||
<rect x="1140" y="7" width="116" height="25" fill="none" stroke="#8A8578"/><text x="1198" y="24" font-size="14" fill="#E8DCC8" text-anchor="middle">◈ 128</text>
|
||||
<text x="640" y="56" font-size="16" fill="#D9CBAE" text-anchor="middle" font-weight="500">选择下一节点</text>
|
||||
<g fill="none" stroke="#8A8578" stroke-width="2" opacity="0.75">
|
||||
<polyline points="152,311 274,369"/><polyline points="274,369 396,369"/><polyline points="396,369 518,311"/><polyline points="396,369 518,427"/>
|
||||
<polyline points="884,253 1006,253"/><polyline points="884,369 1006,369"/><polyline points="1006,369 1128,311"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#E3C05C" stroke-width="3"><polyline points="640,369 762,311"/><polyline points="640,369 762,427"/></g>
|
||||
<g fill="none" stroke="#8A8578" stroke-width="2" stroke-dasharray="5,5" opacity="0.5"><polyline points="1250,369 1280,369"/></g>
|
||||
<rect x="0" y="344" width="66" height="50" rx="8" fill="#68562C"/><text x="33" y="374" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">战</text>
|
||||
<rect x="115" y="286" width="73" height="50" rx="8" fill="#68562C"/><text x="152" y="316" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">战</text>
|
||||
<rect x="237" y="344" width="73" height="50" rx="8" fill="#68562C"/><text x="274" y="374" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">疗</text>
|
||||
<rect x="359" y="344" width="73" height="50" rx="8" fill="#68562C"/><text x="396" y="374" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">战</text>
|
||||
<rect x="481" y="286" width="73" height="50" rx="8" fill="#68562C"/><text x="518" y="316" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">商</text>
|
||||
<rect x="604" y="344" width="73" height="50" rx="8" fill="#C9A22F" stroke="#F0E3B8" stroke-width="2"/><text x="640" y="374" font-size="14" fill="#2d2a22" text-anchor="middle" font-weight="700">战</text>
|
||||
<rect x="726" y="286" width="73" height="50" rx="8" fill="#3E362A" stroke="#E3C05C" stroke-width="3"/><text x="762" y="316" font-size="14" fill="#E8DCC8" text-anchor="middle" font-weight="700">赏</text>
|
||||
<rect x="726" y="402" width="73" height="50" rx="8" fill="#3E362A" stroke="#E3C05C" stroke-width="3"/><text x="762" y="432" font-size="14" fill="#E8DCC8" text-anchor="middle" font-weight="700">战</text>
|
||||
<rect x="848" y="228" width="73" height="50" rx="8" fill="#3E362A"/><text x="884" y="258" font-size="14" fill="#B7AB93" text-anchor="middle">战</text>
|
||||
<rect x="848" y="344" width="73" height="50" rx="8" fill="#3E362A"/><text x="884" y="374" font-size="14" fill="#B7AB93" text-anchor="middle">疗</text>
|
||||
<rect x="970" y="344" width="73" height="50" rx="8" fill="#3E362A"/><text x="1006" y="374" font-size="14" fill="#B7AB93" text-anchor="middle">战</text>
|
||||
<rect x="1092" y="286" width="73" height="50" rx="8" fill="#3E362A"/><text x="1128" y="316" font-size="14" fill="#B7AB93" text-anchor="middle">商</text>
|
||||
<rect x="1214" y="344" width="66" height="50" rx="8" fill="#3E362A"/><text x="1247" y="374" font-size="14" fill="#B7AB93" text-anchor="middle">战</text>
|
||||
<rect x="0" y="60" width="70" height="680" fill="url(#lmap-fadeL)"/>
|
||||
<rect x="1210" y="60" width="70" height="680" fill="url(#lmap-fadeR)"/>
|
||||
<rect x="520" y="688" width="240" height="30" rx="6" fill="#2A2118" fill-opacity="0.85" stroke="#8A8578"/>
|
||||
<text x="640" y="708" font-size="14" fill="#D9CBAE" text-anchor="middle">◄ 拖拽画布 / 滚轮平移 ►</text>
|
||||
<rect x="0" y="744" width="1280" height="56" fill="#2A2118" fill-opacity="0.6"/>
|
||||
<rect x="24" y="757" width="63" height="10" rx="5" fill="#B0453A"/>
|
||||
<text x="122" y="768" font-size="14" fill="#E8DCC8">生命 14/20</text>
|
||||
<text x="230" y="768" font-size="14" fill="#E8DCC8">攻击 6 ⁺2</text>
|
||||
<text x="330" y="768" font-size="14" fill="#E8DCC8">AC 12 ⁺1</text>
|
||||
<text x="430" y="768" font-size="14" fill="#D9CBAE">本关加成: 攻⁺2 · 上限⁺5 · AC⁺1</text>
|
||||
<text x="1256" y="768" font-size="14" fill="#C0454E" text-anchor="end" font-weight="500">放弃冒险</text>
|
||||
</svg>
|
||||
|
||||
像素级视觉判据(效果图随附,写卡与实现基线对照用):①视口锚点=当前节点方块中心居屏中线 x=640±2;②画布超窗不缩放——屏缘裁切、图标 20px 1:1 与折线 2/3/4px 原值呈现,屏缘两侧各 70px 渐隐带;③平移提示 chip 图区底部居中 240×30(圆角 6、文案 14px);④拖拽/滚轮后深度 0 首列与深度 13 末列(含 Boss 紫赤描边)均可达屏内。
|
||||
|
||||
### ASCII Wireframe
|
||||
|
||||
```
|
||||
1280 × 800 ────────────────────────────────────────────────────────────────────
|
||||
│ (独立屏底——战斗屏整体隐藏,零透出) │
|
||||
│ 第三层 · 灰矮人矿城 [◈ 128](GP 常驻徽章) │
|
||||
│ 选择下一节点 │
|
||||
│ ◄渐隐│ …[战0]─[战3]─[疗6]─●[战9]─◇[赏10]─[疗13]─[战16]─[商19]…│渐隐► │
|
||||
│ │ 画布 1700px 超屏(卷轴视口):当前节点●居中锚定; │
|
||||
│ │ 深度 0 与 12–13(含 Boss 紫)视口外,拖拽/滚轮可达 ◇=候选亮金描边 │ │
|
||||
│ [◄ 拖拽画布 / 滚轮平移 ►] │
|
||||
│ │
|
||||
│ HP ▓▓▓░ 14/20 │ 攻击 6 ⁺2 │ 护甲 AC 12 ⁺1 │ 本关加成: 攻⁺2·上限⁺5·AC⁺1 放弃冒险 │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
> 图为岔路停点示意(第三关行集,卷轴视口):已过节点暗金(GOLD_DONE #68562C)、当前节点金(居中锚定)、候选节点亮金描边、Boss 紫赤描边+外缘深墨细环(灰度冗余通道,在视口外深处);屏缘 70px 渐隐带 + 平移提示 chip。终稿 = 节点图标组(♻ kenney 五键已接线,样张 v1 冻结)+ 通道折线 2/3/4px(已落码)。像素级效果参见布局决策 5 内嵌效果图。
|
||||
|
||||
---
|
||||
|
||||
## States & Variants
|
||||
|
||||
| State / Variant | Trigger | What Changes |
|
||||
|---|---|---|
|
||||
| **入口停点(默认首态)** | 关卡开始(停点前移) | 标题「出发——选择首个节点」;唯一候选 = 入口节点;图上全部节点为未来态 |
|
||||
| **单链停点** | 兑付确认后、恰 1 个下一跳 | 标题「继续前进」;单候选节点图上点击提交(候选按钮已退役——图上点击为唯一通道) |
|
||||
| **岔路停点** | 兑付确认后、≥2 个下一跳 | 标题「选择下一节点」;候选节点图上点击提交(候选按钮已退役——图上点击为唯一通道);亮金通道与候选描边逐一分叉可辨 |
|
||||
| **悬停预承诺** | 悬停候选节点 | 该节点亮金描边加粗 + 所属通道增亮 + 光标切指针态;移出即回落(仅预承诺,点击才提交) |
|
||||
| **视口跟随** | 停点切换或兑付确认回图(当前节点变化) | 视口平滑滚动至新当前节点居中(provisional 0.3s;减动效跳终态)——布局决策 5 |
|
||||
| **手动平移** | 拖拽画布或滚轮横滚 | 视口随动、clamp 画布包络;拖拽不触发选路(拖动距离阈值区分,provisional);平移位置零核心写、不进存档 |
|
||||
| **放弃确认态** | 首击放弃按钮 | 文案转确认语 + 危险红边框脉冲约 3 秒;超时或移出回落;二击提交放弃请求 |
|
||||
| **换层进入** | 上一关结算确认 → 新关开始 | 本屏以新关卡数据淡入;屏底世界侧随层进换挡(**换层色板渐变挂点**——§2.7 切片档:只动色相/饱和、明度带归一,level_index→tint 表候选值 = art-bible §6.3 三关方向,终值随色板样张校准) |
|
||||
| **减动效** | 设置开关(设置面承载;TunePanel 已退役) | 淡入、描边脉冲等全部 tween 时长减半或跳终态;视口跟随平滑滚动跳终态(瞬切)(UiKit.motion 单点包装,同 battle.md 通道) |
|
||||
|
||||
**无拒绝子态**:候选提交恒合法(候选集即合法集),本屏无资源面/棋盘面拒绝路径;战斗中放弃由组合根可见性封死(按钮只在选路停点可见——接口契约:战斗中放弃一律拒绝)。
|
||||
|
||||
---
|
||||
|
||||
## Interaction Map
|
||||
|
||||
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|
||||
|---|---|---|---|---|
|
||||
| 候选节点(图上,唯一通道) | 提交选路 | 左键 | 悬停预承诺(描边加粗 + 通道增亮 + 指针)→ 点击本屏关闭 | 选路提交 → 关卡推进方受理——到达即兑付,无进入前确认步 |
|
||||
| 节点图画布(视口) | 平移视口 | 左键拖拽 / 滚轮横滚 | 视口随动、clamp 画布边界;拖拽超阈值不触发选路 | 纯呈现态——零核心写、不进存档 |
|
||||
| 放弃冒险按钮 | 终结整局冒险 | 左键(二击提交——首击转确认态,2026-09-27 布局决策 3) | 危险红族反馈 | 放弃请求 → 组合根走冒险落幕(同失败结算——已获大奖励保留) |
|
||||
|
||||
**零自动推进纪律**(关卡节点地图 定稿):本屏是唯一的行进发起口——不选就停在图上;没有任何定时、默认或顺延的自动前进路径。兑付后确认挂各兑付面(战斗总结结算〔settlement-summary.md〕/ 节点覆盖层 / 商店覆盖层离开动作),本屏不重复确认步。
|
||||
|
||||
---
|
||||
|
||||
## Data Requirements
|
||||
|
||||
| Data | Source System | Read / Write | Notes |
|
||||
|---|---|---|---|
|
||||
| 节点图结构 / 当前节点 / 已到序列 / 候选集 | 关卡推进方只读成文出口:全节点集 / 当前节点 / 已到序列 / 候选集 / 节点编号 / 节点出边 | Read | 呈现只读(关卡节点地图 验收「呈现只读」条);节点态四色直接读图 |
|
||||
| GP 常驻总量 | 冒险钱包读数 | Read | 刷新经钱包变动信号投影(gain/buy/clear 三事件)或写路径回执后重查;冒险收束清零后本屏不可达(收束即离屏) |
|
||||
| 关卡名 | 关卡表 `display_name` 行值(关卡表行) | Read | 字段名实现期核对(level.tres 行键 `display_name` 在案) |
|
||||
| 生命读数 | 主角当前生命 / 有效生命上限(跨战斗生命携带) | Read | 已拍板(2026-09-27):底栏状态栏承载 |
|
||||
| 属性与本关加成 | 有效攻击 / 有效护甲 / 有效生命上限,以及统一冒险加算区(锻造/大奖励/商店购买/节点奖励同账) | Read | 已拍板:底栏承载;无推送信号——组合根打开本屏 / 兑付确认回执后重查(命令式刷新纪律,同行动经济) |
|
||||
| 选路提交 | 关卡推进方 | **Write** | 唯一写路径 = 选路提交 → 组合根 → 关卡推进方受理;本屏零其他写面 |
|
||||
| 放弃请求 | 组合根 | **Write** | 放弃意图 → 冒险落幕流程(归冒险结构) |
|
||||
|
||||
**架构注记**:与 battle.md 同族——UI 不拥有任何游戏状态,全部读经核心只读面,全部写经组合根;呈现层直接订阅的推进信号属 HUD框架 已锁两线之一(战斗结算明细流水 + 关卡节点地图推进信号)。
|
||||
|
||||
---
|
||||
|
||||
## Transitions & Animations
|
||||
|
||||
| 时刻 | 过渡 | 依据 |
|
||||
|---|---|---|
|
||||
| 打开(进图 / 兑付确认后回图) | 独立屏淡入(约 200ms,同装板淡入档;alpha 淡入非明度变化——§2) | 屏级切换;战斗屏整体隐藏 |
|
||||
| 视口跟随(停点切换/回图) | 平滑滚动至新当前节点居中(provisional 300ms 单段缓动;减动效跳终态) | 布局决策 5 |
|
||||
| 选路提交 | 本屏关闭,直达所选节点兑付流程 | 到达即兑付(关卡节点地图) |
|
||||
| 放弃确认态(拍板落定) | 危险红边框脉冲约 3 秒(单段呼吸,非频闪) | pattern 7;闪烁基线(≤3 次/秒)内 |
|
||||
| 减动效 | 上述全部时长减半或跳终态 | HUD框架 可访问性基线 |
|
||||
|
||||
---
|
||||
|
||||
## Accessibility
|
||||
|
||||
无障碍基线权威 = [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节,本屏无新增豁免。呈现侧内建承诺:
|
||||
|
||||
- **节点态形状冗余**(全局语义红线「无任何信息仅靠色相承载」的合规项):已过 = 暗金无描边、当前 = 金填充 + 唯一焦点方块、候选 = 亮金粗描边、未来 = 暗底无描边;Boss = 紫赤描边 + 外缘 1px 深墨环(**灰度冗余通道**——紫赤灰度对石纹噪底不可辨)+ 图标冗余。四态在灰度截图下可分类(AC,样张 L2 断言承载)
|
||||
- **对比**:节点图标对方块底(双色墨制:暗底态暖白/当前金底深墨,各态 ≥4.5:1)、顶栏数字对底 ≥4.5:1(样张 L3 断言承载);色值取 art-bible §4.1 冻结色板(已过暗金 = GOLD_DONE #68562C 冻结新值)
|
||||
- **字号下限**:节点字形 ≥14px、标题 ≥16px、按钮/徽章 ≥14px(1280×800 基座,像素字体整数倍缩放)
|
||||
- **破坏性异位**:放弃按钮与候选按钮分区放置(位置通道,art-bible §4.5 #7);确认态不依赖色相单独承载(文案 + 脉冲双通道)
|
||||
- **纯鼠标**:全部操作纯鼠标可完成;MVP 不做键盘焦点序(同 battle.md)
|
||||
|
||||
---
|
||||
|
||||
## Localization Considerations
|
||||
|
||||
- **中文像素字体随包**(硬前置,同 battle.md)
|
||||
- **按钮文案 4 汉字上限**:「放弃冒险」「确认放弃」;按钮宽度按最长文案预留,固定槽高 + clip 兜底
|
||||
- **关卡名**:`display_name` 最长 token「第三层 · 灰矮人矿城」(9 字符)——顶栏标签预留 40% 膨胀宽度
|
||||
- **数字格式**:全部整数;GP 徽章图标+数字不依赖文本承载语义
|
||||
|
||||
---
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
**布局与可读**
|
||||
|
||||
- [ ] 关卡开始即出图(停点前移语义),入口节点不自动进入;每次兑付确认后回到本屏
|
||||
- [ ] 1280×800 与 16:9 全屏下顶栏/图区/动作栏无遮挡、无重叠;节点图经卷轴视口完整可达(拖拽/滚轮后首列与末列含 Boss 均可入屏)——画布不超屏的浅图仍整幅居中无裁切
|
||||
- [ ] 节点四态(已过/当前/候选/未来)+ Boss 描边在灰度截图下可分类;色值对 art-bible §4.1 色板在案
|
||||
- [ ] 顶栏关卡名与 GP 常驻徽章可见、读数与关卡推进方现值一致(GP 经 gain/buy/clear 事件刷新)
|
||||
|
||||
**交互与流程**
|
||||
|
||||
- [ ] 三停点标题按布局决策 1 呈现,入口停点不出现「继续前进(战斗房)」措辞
|
||||
- [ ] 候选提交经组合根唯一写路径(选路提交 → 关卡推进方受理),到达即兑付;零自动推进(无任何不选而行的路径)
|
||||
- [ ] 图上点击为唯一选路提交通道(候选按钮退役,2026-09-27 拍板);悬停预承诺反馈可见
|
||||
- [ ] 视口跟随:停点切换与兑付回图后当前节点居中(屏中线 x=640±2);平滑滚动呈现,减动效开时瞬切
|
||||
- [ ] 手动平移:拖拽与滚轮均移动视口且 clamp 画布边界;拖拽不触发选路提交;平移位置零核心写(不进存档)
|
||||
- [ ] 视口指引:屏缘 70px 渐隐带与平移提示 chip 呈现(像素级判据①–④见布局决策 5 效果图)
|
||||
- [ ] 底部状态栏三组读数可见且与关卡推进方现值一致(生命当前/上限、攻击/AC 有效值、本关加成增量——零加成隐藏);兑付确认返回后读数刷新
|
||||
- [ ] 放弃按钮仅冒险模式可见(调试两层不可达);单击不提交、确认态超时回落、二击才终结(已拍板)
|
||||
- [ ] 放弃后走冒险落幕(同失败结算),已获大奖励保留语义可见
|
||||
|
||||
**模态与测试**
|
||||
|
||||
- [ ] **独立性断言**:本屏激活期战斗屏宿主整体隐藏(整屏隐藏级互斥,零透出);选路提交至战斗节点后战斗屏恢复;兑付覆盖层(节点/商店)关闭后本屏恢复——场景级断言
|
||||
- [ ] 场景级 headless 测试:真实实例化本屏 + 驱动选路全程 + 断言零脚本错误(场景探针家族扩展)
|
||||
- [ ] 中文渲染无豆腐块;像素字体整数倍缩放;全部操作纯鼠标可完成
|
||||
|
||||
---
|
||||
|
||||
## Open Questions
|
||||
|
||||
**已完成(2026-09-27 用户拍板)**:① 底栏 = 状态展示(生命 + 属性 + 本关已选加成);② 图上直接点击选路,候选按钮退役;③ 放弃冒险二次确认。
|
||||
|
||||
**已完成(2026-09-28)**:④ **视觉终稿**——节点图标形制/通道质感/画布公式/底栏数据框样式/屏底以关卡画面样张 v1 冻结落码。
|
||||
|
||||
**已完成(2026-11-05 用户拍板)**:⑤ **卷轴视口范式**——跟随+拖拽+滚轮、平滑滚动(减动效瞬切)、当前节点居中锚;「图包络 ≤ 屏预算」约束随卷轴范式退役(画布随图生长,规模归参数档——关卡节点图生成 v1.5 参数契约节);等比缩放案否决(像素纪律)。效果图人审通过并内嵌布局决策 5。
|
||||
|
||||
---
|
||||
|
||||
## 上游义务对照表
|
||||
|
||||
| 义务源 | 义务 | 本 spec 承载落点 |
|
||||
|---|---|---|
|
||||
| [关卡节点地图](../systems/冒险循环/关卡节点地图.md) | 呈现侧口径:方块地牢观感、节点态四色、不另设进度条 | Information Hierarchy 第 5 层 + 图区组件行 |
|
||||
| 关卡节点地图 | 零自动推进、兑付后确认、选路只读 | Interaction Map + Data Requirements + AC |
|
||||
| 关卡节点地图 | 呈现只读(节点图/当前位置/可选下一跳对呈现层只读可见) | Data Requirements 只读出口清单 |
|
||||
| [HUD框架](../systems/表现与支撑/HUD框架.md) | 模态 overlay 层级纪律、订阅纪律(推进信号两线之一) | Navigation Position + Data Requirements 架构注记 |
|
||||
| HUD框架 | 可访问性基线全量(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体) | Accessibility |
|
||||
| [battle.md](battle.md) OQ14 二轮拍板 | GP = 关卡画面常驻总量 | 顶栏 GP 常驻徽章 |
|
||||
| [art-bible](../../art/art-bible.md) | 方块地牢观感(§3.2 圆角方形世界侧)、色板冻结(§4.1)、半拟物(§7.1)、明度分层(§2) | 图区组件 + Accessibility 对比条 |
|
||||
|
||||
---
|
||||
@@ -1,20 +0,0 @@
|
||||
# 节点奖励屏 UX spec(node-reward)
|
||||
|
||||
> 状态:v3.0(现行)
|
||||
> 事实源:本 spec(呈现)+ 三选一覆盖层(共用呈现件)+ 头部行文案(旁白条目)
|
||||
> 相邻:[level-clear](level-clear.md)(关卡完成三选一面——同一覆盖层的另一上下文)/ [level-map](level-map.md)(关卡画面)/ [秘宝](../systems/跨局循环/秘宝.md)(道具件内容权威——局外同调件,不再入三选一牌库)/ [冒险结构](../systems/冒险循环/冒险结构.md)(共享池令牌库账本)
|
||||
|
||||
## 定位
|
||||
|
||||
奖励节点(reward node)到达即开的**提升三选一选择面**:**七种×档位**令牌池(攻击/生命上限/护甲/GP 袋/行动点件/恢复件/刷新件 × 普通/优秀/稀有(+传说头奖位留空);秘宝件已退役出池;固定配额令牌池,刷新件=优秀档 2、恢复件配额相应收窄〔冒险表的令牌类型闭集第七类〕),与商店货架同库同账、同池耗语义、同奖励抽取封闭流。**关卡完成三选一候选 = 纯专长,与本面不同池**;与关卡完成面的差异另在上下文:无部分回血、无钥石增量行,兑付后「继续」回图选路(不推进关卡)。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 载体 = 提升三选一覆盖层(与 [level-clear](level-clear.md) 共用组件——零新增交互原语)。
|
||||
- 头部行:「关卡奖励点 / 从冒险牌库抽三选一(属性值提升与补给;与通关专长三选一同库分流):选择一件带走:」(旁白条目)。
|
||||
- 三卡点选(✓ 高亮,确认前可改选)→「确认选择」→ 兑付反馈(选中件效果 + 丢弃提示)→「继续」→ 回图选路(零自动推进同款)。
|
||||
- **三选一刷新**(X/Y 双源;机制现行事实源=[秘宝](../systems/跨局循环/秘宝.md)「三选一刷新双源」节,X 源承载件=现行目录「刷新练习」):装配「三选一刷新件」给 X 次(每次碰三选一重给、优先消耗、不结转)+ 营地「刷新升级」给 Y 次(每冒险开局注入冒险周期池、用完即无);刷新钮余量 >0 时现形,点按重抽三候选(奖励抽取既有洗牌流,池规则全保留:不放回/达上限剔牌/掷定前置直显/停点可中断)。自动演示默认不刷(钓鱼归玩家)。
|
||||
|
||||
## 口径
|
||||
|
||||
- **同库同池耗**:池=固定配额令牌库(档位=四级框架 普通/优秀/稀有/传说,传说=头奖位留空〔稀有档现投放为行动点件〕;各 kind 现行配额读 `game/data/tables/adventure.tres`);洗牌不放回抽 3(**同 kind 去重每 kind 至多一枚**——「三种不同选项」体验延续,kind 出现率∝剩余令牌数)、选中踢池未选回池、池耗即枯竭(余库不足出齐剩余,空库=零候选合法态直通);**种类次数上限退役**(池消耗即上限)。数值对:小GP 20/大GP 50、小增伤 +1/大 +2、小护甲 +1/大 +2、小生命 +5/大 +10、恢复 +6 当即回血(封顶生效上限)、AP +1。**MC 策略 316-f**:1 级优先度=最稀有(legendary>rare>excellent>common,头奖位现行留空)、2 级=最左(并列同档取最左)。配额结构锚与档位构成读冒险表(结构校验归实现侧)。商店货架=同库付费渠道(令牌级货架,买一件=奖励面少一件),库存=剩余令牌数,账本语义与切边注记归[冒险结构](../systems/冒险循环/冒险结构.md)共享池账本节。
|
||||
@@ -1,36 +0,0 @@
|
||||
# 结算总结 UX spec(settlement-summary)
|
||||
|
||||
> 状态:v1.5(现行)
|
||||
> 事实源:本 spec(呈现)+ 战斗终局覆盖层(胜利金蜡封 / 失败暮蓝双形态)
|
||||
> 相邻:[battle.md](battle.md)(战斗屏出口锚与信息归属两原则)/ [level-clear.md](level-clear.md)(关卡结算屏——Boss 胜利走大奖励面,非本 spec)/ [level-map.md](level-map.md)(GP 常驻徽章)
|
||||
|
||||
## 定位
|
||||
|
||||
本 spec 承载两个**已实装**的结算总结呈现面(2026-09-27 用户拍板定名):
|
||||
|
||||
- **战斗总结结算**——冒险模式普通战斗胜利时的总结覆盖层(战斗小循环的出口呈现);
|
||||
- **冒险总结结算**——冒险落幕(倒下 / 末关完成 / 放弃)时的终局覆盖层(冒险大循环的收束呈现)。
|
||||
|
||||
两面是两个循环层级的事,各成一节互不混写。本 spec 纯呈现:不定义任何机制,数据锚与归属全部指路上游文档。
|
||||
|
||||
## 战斗总结结算(战斗胜利面)
|
||||
|
||||
- 触发:冒险模式战斗胜利(判胜)含 Boss 胜利——钥石逐杀掉落增量在此呈现,确认后进[关卡结算屏](level-clear.md)三选一面。
|
||||
- 载体:战斗结束覆盖层胜利形态(金蜡封)。
|
||||
- 呈现内容(2026-09-27 拍板):金蜡封 + 判定行 + 战利品行(GP 增量 + 总量;Boss/精英击杀追加**钥石增量行**——首杀/复杀档位读 meta.tres boss_keystone)+「下一节点」钮(无明细回看入口——冒险中回看归「生涯」)。
|
||||
- 数据锚:增量 = 战斗结束信号的掉落载荷;总量 = 关卡推进方 GP 现值(关卡推进方入账先于呈现连接——次序依赖在案)。
|
||||
- 出口:「下一节点」→ 关卡画面选路(零自动推进)。
|
||||
|
||||
## 冒险总结结算(冒险落幕面)
|
||||
|
||||
- 触发:主角倒下(判负)/ 末关完成 / 玩家放弃——三结局同面(由冒险收束信号统一触发)。
|
||||
- 载体:与战斗面同一个战斗结束覆盖层——末关关卡完成走胜利态开屏(金蜡封 +「本局 GP 入账 · 合计 N」行,GP 收束清零前的呈现侧影子账);倒下 / 放弃走失败态开屏(暮蓝)。无独立「冒险终局面板」实体。
|
||||
- 呈现内容:冒险摘要五件事(定义归[冒险结构](../systems/冒险循环/冒险结构.md))+ 钥石写入明细(= 本局逐杀 Boss 掉落合计;消费归[元进度](../systems/跨局循环/元进度.md) 的冒险结算入账——大奖励面不产钥石)+ GP 合计行。
|
||||
- 出口:确认 → 回存档首页。
|
||||
|
||||
## 口径
|
||||
|
||||
- **命名(2026-09-27 拍板文本口径)**:战斗总结结算 / 冒险总结结算。禁用变体:「结算画面」单用(两义词——level-clear 语境=冒险面、battle 语境=战斗面);「冒险终局面板」(无独立实体);「战斗结算画面」「战斗胜利总结结算」「摘要结算画面」。
|
||||
- **GP / 钥石呈现分工**:GP = 本 spec 战斗面(增量+总量)+ 关卡画面常驻总量;钥石 = 本 spec 战斗面(Boss/精英击杀增量行)+ 冒险面(收束明细)+ 营地存量。钥石多处并存系「进账时刻 / 收束明细 / 存量可用」不同义,不构成重复展示。
|
||||
- **失败面不呈战利品**:冒险总结结算不呈现 GP 增量(倒下即终语义,失败侧恒不呈现)。
|
||||
- **禁重复展示**:本面不呈状态效果、不呈结算明细正文(冒险中明细回看归「生涯」)——[battle.md](battle.md) 信息归属两原则(循环限定 + 单一展示面)对面级呈现同样适用。
|
||||
@@ -1,22 +0,0 @@
|
||||
# 商店覆盖层 UX spec(shop)
|
||||
|
||||
> 状态:v1.2(现行)
|
||||
> 事实源:本 spec(呈现)+ 商店覆盖层(呈现件)
|
||||
> 机制权威:[关卡节点地图](../systems/冒险循环/关卡节点地图.md)(商店房编排:每关恰 1/Boss 前一位必经/兑付触发);定价数值归[难度曲线与Boss](../systems/冒险循环/难度曲线与Boss.md)(shop.tres,provisional)
|
||||
|
||||
## 定位
|
||||
|
||||
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「GP」)在令牌级货架上购买,离开后兑付确认回选路。现行 = pool 模式(货架与三选一共享令牌池);legacy 三商品卡模式保留为 shop=off 对照形态。本 spec 只锁呈现;编排与定价归机制文档。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 模态覆盖层(dim + 居中):标题「商店」/ GP 余额读数/ 令牌级货架卡(进店自共享池抽 3 张:显示名·效果·现价——六行池面含回复与专长凭证;买一件 = 池少一件、货架随即全架重抽)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 刷新按钮(GP 付费刷新,价 = ceil(20×1.8^本次进店已付费刷) provisional,余额不足禁用)/ 离开按钮。
|
||||
- 购买意图经组合根转发(pool 模式载荷 = kind_id);成功后货架整架重建(买 1 全重抽反馈)。刷新意图经组合根转交商店呈现件受理。
|
||||
- 离开 → 关卡画面兑付确认回选路(零自动推进)。
|
||||
- 刷新与货架口径(2026-10-04 裁决):基础免费 0 次 + GP 付费刷新 + 池源同源(与三选一同一令牌库本);天赋侧「刷新次数」增益预留 free_count 位(待办清单登记条在册)。
|
||||
|
||||
## 口径
|
||||
|
||||
- GP 余额读数 = runner 钱包投影(GP 归[冒险结构](../systems/冒险循环/冒险结构.md) GP 节);本层不作计算。
|
||||
- 与关卡画面 GP 常驻徽章的关系:进店语境余额与选路常驻总量不同义(本层带购买语境),不构成重复展示——钥石「写入/存量」拆名逻辑同款。
|
||||
- 购买确认交互:现行直接购买(无二次确认步);是否需破坏性确认异位(pattern 7)未裁决,本 spec 只登记现状不立新裁。
|
||||
+1
-1
@@ -111,7 +111,7 @@
|
||||
| 图类型 | 棋盘生成产物 `board_type` 的中文名——三关换皮的单位(同款地砖换色板) |
|
||||
| 方向稿 | 冻结前的方向性候选稿,供气质目检;过目检后才进机检冻结 |
|
||||
| 站桩 | 战斗画面区(B 区)里角色直立立绘的显示形态(配血条与状态行) |
|
||||
| 显示档 | 站桩立绘的显示尺寸规则——源用原稿分辨率入包(禁降采样),显示按三档绝对高(小型 96/中型 144/大型 188)缩放、宽随源比例;定值单点见[美术圣经](../art/art-bible.md) §8.2 站桩立绘显示档条 |
|
||||
| 显示档 | 站桩立绘的显示尺寸规则——源用原稿分辨率入包(禁降采样),显示按三档绝对高缩放、宽随源比例;定值单点见[美术圣经](../art/art-bible.md) §8.2 站桩立绘显示档条(档值定值面=站桩呈现守门测试) |
|
||||
| 徽章 | 库存条与结算明细用的小图标(与格面类型微光预读相区分) |
|
||||
|
||||
## 开发流程
|
||||
|
||||
Reference in new issue
Block a user