docs(迭代33反哺写入+收尾批): 16 项反哺点按 2026-10-22 用户裁决全部落文+三卡与四件产出物退役+账面换代

- 存档序列化.md:三存档位承载段(#1)+负责表/读写时机图换代+无激活拒写(#2)+P2 多存档槽位后置条注销(#3)+旧单档一次性迁移段(#4)+消费面纪律补窥视读器返回结构与 has_file 口径(#10)
- 生涯.md v1.1:信息架构三入口结构树+定位改营地平级(#7/#11);camp.md v1.6:营地入口改「进入存档→选档→进档/新档」+双入口框架句同步(#12)
- 08-Alpha版本标准.md v1.13:「三 · 界面」增选档界面行(#8)+主菜单行换代与入口拓扑注记(#13)——两条均 2026-10-22 用户裁批准;营地交互重做五卡行按实态同步(部分实装)
- art-bible.md v3.18:§7.4 豁免清单 excision「主菜单分组 overline×2」两片段、余清单不动(#15)
- 体验验证清单:新增 ㉛ 迭代 33 实机目检总清单五项+⑯/⑲ 旧入口引述按三钮换代(#14)
- 账面:待办清单增「迭代 33 反哺点写入」专条(状态=已写入)+营地五卡条推进(①②③ 落地、④⑤ 未编排,去「已编迭代 33」段)(#5/#9/#16);roadmap 迭代 33 行「已完成(2026-10-22)」+卡片/报告列退役保留字+当前位三行换代(#6)
- 退役七件(吸收即死+证据只留最新,引用面已改写):iter33 实现报告/反哺点清单/验收审计/代拍板追认单+三张需求卡片;代拍板 12 项随专条备案(veto 窗口开放至用户明示)
〔迭代 33 收口登记:卡① ebf40947/卡③ 5c2a7bcf/卡② 508f190b/总收口 6e8f72b2〕
This commit is contained in:
DKChan committed 2026-10-22 23:34:13 +08:00
1 parent fa9ec8a883
commit 1864f157b4
15 files changed
+74 -1330

No files matched your search

+2 -2
View File
@@ -1,6 +1,6 @@
# 美术圣经(Art Bible)— Dungeon Sweeper
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考已于 2026-09-23 v1.8 按 D1/D2/D4/D5 框架成文;D3=§5 角色已于 v1.6 落地、v1.7 抽离独立文档;框架 2026-09-22 用户拍板,原登记于中间产物修订指导,经裁决不入库,明细归状态记录 125);现行为 v3.17,历次修订明细见 git 提交史
> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**(§6 环境/§7 UI/§8 资产规范/§9 参考与反参考已于 2026-09-23 v1.8 按 D1/D2/D4/D5 框架成文;D3=§5 角色已于 v1.6 落地、v1.7 抽离独立文档;框架 2026-09-22 用户拍板,原登记于中间产物修订指导,经裁决不入库,明细归状态记录 125);现行为 v3.18,历次修订明细见 git 提交史
>
> **Art Director Sign-Off (AD-ART-BIBLE)**:历次批均 SKIPPED(v1.8 §6–9 补全亦 SKIPPED)— Lean/Solo mode(非 PHASE-GATE;§6–9 已成文,full 门禁签核时机待用户表态)
> 风格基调(2026-09-10 用户定稿):地牢题材但**非暗黑风**——轻快明亮的幻想冒险风,全年龄;像素风;角色 2~3 头身
@@ -428,7 +428,7 @@
- **字体**:全局一套像素字——拉丁候选 Kenney Fonts(CC0)、中文候选缝合像素字体 Fusion Pixel(OFL)(清单 §3.6);墨色走主墨系(§7.2);换字体 = 全局决策。
- **字号**:像素字体**整数倍缩放,禁非整数缩放**(像素模糊);下限(1280×800 基座;2026-09-29 v3.0 对齐 ux-designer PC 规范):棋盘数字 ≥18px(公式 = max(18, ceil(格边长 × 0.5))不变)、**正文/明细 ≥16px、tooltip ≥14px**(旧 14/13px 下限退役——1280×800 低于 1080p 基准,同字号实际更小)。
- **字号档位表(2026-10-06 UI 设计对齐批 P3 甲——WB G1 六档)**:全站 UI 文字字号只经 `UiKit.FS_*` 单点取值,裸数字字号退役——`FS_CAPTION 12`/`FS_HINT 14`/`FS_BODY 16`/`FS_SUB 18`/`FS_TITLE 24`/`FS_H1 34`。旧 15 实测档按就近归档收编(10/11/12→CAPTION、13/14→HINT、15/16→BODY、17/18/20→SUB、21/22/24/26→TITLE、32/40→H1;T0 普查 107 静态位点全归档,数据驱动动态字号位点除外);棋盘数字公式 `maxi(18, ceil(格边长×0.5))` 与站桩血数 11px(条带内读数豁免)不入表。注:六档相邻比 12→14→16→18 三段 <1.25×,系 P3 裁决值优先于字重纪律的档差参考线,档差参考线对新层级设计仍有效。
- **小字号豁免条款(2026-10-06 UI 设计对齐批 P11+Q5 甲,合并单条不开两口子)**:下款两类**豁免于本节下限**——①**条带内读数**:压在窄条带(血条/进度条等 ≤12px 高带)内居中的数字,受条带高度物理约束,维持 11px 下限,且必须按 §7.2 垫素色牌后计对比(实装=B 区站桩血数 11px 压 HP_BAR_BACK 牌 14.3:1);②**装饰性 overline/caption**:不承载须精确读取的信息、仅作分区标题或氛围小字者,可至 **12px**。**两类豁免逐处清单(2026-10-06 T6 判定落定)**:条带内读数=B 区站桩血数一处;装饰 caption 档(FS_CAPTION)在册面=主菜单分组 overline×2(「── 冒 险 ──」「── 营地与系统 ──」)/棋盘底操作提示条/营地柜台说明文与结构位预留注记/图例 RAP 词条说明/设置警示文两处/关卡地图底栏组标(生命/属性/特性)与分隔系/站桩消散提示/B 区状态槽微计数(×N●○)/bcard 脚注/RAP 反馈行/刷新余量徽标——清单外 11-13px 文字一律按正文/tooltip 下限提档,新增 caption 位须同批增补本清单。
- **小字号豁免条款(2026-10-06 UI 设计对齐批 P11+Q5 甲,合并单条不开两口子)**:下款两类**豁免于本节下限**——①**条带内读数**:压在窄条带(血条/进度条等 ≤12px 高带)内居中的数字,受条带高度物理约束,维持 11px 下限,且必须按 §7.2 垫素色牌后计对比(实装=B 区站桩血数 11px 压 HP_BAR_BACK 牌 14.3:1);②**装饰性 overline/caption**:不承载须精确读取的信息、仅作分区标题或氛围小字者,可至 **12px**。**豁免逐处清单(2026-10-06 T6 判定落定,2026-10-22 随迭代 33 卡② 主菜单三入口化撤除「主菜单分组 overline×2」两处——组帽随旧钮组退役,余清单不动)**:条带内读数=B 区站桩血数一处;装饰 caption 档(FS_CAPTION)在册面=棋盘底操作提示条/营地柜台说明文与结构位预留注记/图例 RAP 词条说明/设置警示文两处/关卡地图底栏组标(生命/属性/特性)与分隔系/站桩消散提示/B 区状态槽微计数(×N●○)/bcard 脚注/RAP 反馈行/刷新余量徽标——清单外 11-13px 文字一律按正文/tooltip 下限提档,新增 caption 位须同批增补本清单。
- **字重纪律(2026-09-29 v3.0 修订)**:层级手段解禁为三件——**字号档差(相邻层级 ≥1.25×)+ 墨色深浅 +(字体支持时)字重两档**;数字禁描边/阴影伪加粗不变(字形为唯一数值载体,§4.1 同源纪律)。
### 7.5 营地界面
+4 -3
View File
@@ -2,7 +2,7 @@
> **一句话定位**:本文定义这个项目的 **Alpha 版本包含哪些东西**——它是里程碑 M3 的完成标准,也是判断"还差什么"的对照表。
> **本文只列条目,不写内容**:每样东西是什么、规则怎么走,一律归各自的权威文档,本文只给指路链接。想知道某样东西的定义,请点链接,不要在本文里找解释。
> **状态**:**已定稿(v1.12)**——2026-10-13 用户令定稿,此后十二次升版的明细见 git 提交史。Alpha 的内容范围自此冻结:增删条目一律须经用户裁决。
> **状态**:**已定稿(v1.13)**——2026-10-13 用户令定稿,历次升版明细见 git 提交史。Alpha 的内容范围自此冻结:增删条目一律须经用户裁决。
> **成文**:2026-10-13。
## 本文怎么用
@@ -100,10 +100,11 @@ Alpha 内以玩法循环本身的内容与表现为主(棋盘、关卡、战
| 条目 | 事实源 | 现状 |
|---|---|---|
| 主菜单 | —— | 在役 |
| 主菜单 | —— | 在役(迭代 33 卡②三入口化:进入存档/设置/退出游戏——入口拓扑=进入存档→选档界面→进档/新档→营地覆盖层→〔迭代 34 卡④〕营地场景图与生涯笔记本;2026-10-22 用户裁换代〔反哺 #13〕) |
| 开始覆盖层 | —— | 在役 |
| 选档界面(3 存档位) | —— | 在役(迭代 33 卡③——空槽新档/有档进档/删档二次确认+摘要三项;2026-10-22 用户裁增行〔反哺 #8〕) |
| 营地(天赋树 / 锻造工坊 / 秘宝匣 / 图鉴) | [camp](ux/camp.md) | 在役(锻造柜台占位面板注已解除;柜台贴图占位随营地交互重做列入 Alpha,见下行) |
| 营地交互重做(五卡:存档制数据层/主菜单三入口/选档界面/营地场景图/Esc 浮窗与营地顶栏) | [camp](ux/camp.md)+[需求澄清](../../reports/需求澄清-营地交互重做-2026-10-18.md) | 待做(2026-10-21 用户裁:五卡整体列入 Alpha,含营地表现优化——可点击场景图/顶栏/Esc 浮窗。五卡已写、待编排;卡④营地场景图为最大件,挂三个用户侧前置未销号:美术渠道 A/B、点选反馈设计稿、参照物。出口=五卡各自验收标准通过+营地屏用户目检通过) |
| 营地交互重做(五卡:存档制数据层/主菜单三入口/选档界面/营地场景图/Esc 浮窗与营地顶栏) | [camp](ux/camp.md)+[需求澄清](../../reports/需求澄清-营地交互重做-2026-10-18.md) | 部分实装(卡①②③ 已随迭代 33 实装合回,2026-10-22;卡④营地场景图 2026-10-21 用户令退回美术设计段、挂三个用户侧前置未销号:美术渠道 A/B、点选反馈设计稿、参照物;卡⑤ Esc 浮窗随卡④ 代码波同行、未编排。2026-10-21 用户裁:五卡整体列入 Alpha。出口=五卡各自验收标准通过+营地屏用户目检通过) |
| 生涯页 | [生涯](systems/跨局循环/生涯.md) | 在役(期一) |
| 关卡地图屏 | [level-map](ux/level-map.md) | 在役 |
| 战斗屏 | [battle](ux/battle.md) | 在役 |
@@ -17,7 +17,7 @@
| 负责 | 说明 |
|---|---|
| 存档契约 | 单档 JSON 存档的域划分与读写约定(域清单见核心规则) |
| 存档契约 | 3 存档位 JSON 存档的域划分与读写约定(域清单见核心规则;槽位承载见下「三存档位」段) |
| 版本迁移 | 版本字段 + 读档时链式迁移 + 高版本拒读禁写 |
| 读写时机 | 启动读盘;正式冒险收束写盘;原子写盘原语 |
| 元进度的持久化承载 | 归档登记的职责口径:"元进度持久化框架"——钥石与解锁进度由本系统落盘 |
@@ -58,7 +58,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
**唯一豁免 = `breakpoint` 断点域**(2026-09-29 迭代 8 卡①顺带修订):断点是冒险进行中的瞬态快照,不是跨局携带——里面的生命/GP/道具库存只在「续玩上局」时还原进局内,冒险收束(通关/失败/放弃)即整域清除,永远不会渗进永久进度。反面清单的管辖对象因此收窄为 `meta` 永久进度域(冒烟域界扫描顺带收窄到 meta 域);断点域自身的字段口径归[冒险结构](../冒险循环/冒险结构.md)登记。
存档是单文件 JSON(`user://save.json`),字典键一律字符串。数据模型(现行 = v6;示例值全为零值默认态):
**三存档位(迭代 33 卡①,2026-10-22 反哺写入)**:存档是 3 个独立的 JSON 文件(`user://save_slot_1/2/3.json`,槽文件名只经 `slot_path()` 单点派生,槽 1 禁复用旧单档名),字典键一律字符串。写盘目标=当前激活槽的文件;启动(boot)不读任何槽文件——启动态=无激活态,不读写;激活态由选档界面的「新档」(`create_slot`)或「进档」(`activate_slot`)建立(选档界面归迭代 33 卡③)。数据模型(现行 = v6;示例值全为零值默认态):
```json
{
@@ -107,14 +107,15 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
v4/v5/v6 各域缺键由读取方按默认值补齐(空集合/0),旧档零迁移损失;收束自增域(通关次数/Boss 计数/终身计数/真视使用计数)的唯一入账点 = `apply_adventure_summary`(vision_used 走 `add_vision_used` 收束)。**v6 域后扩列不升版先例**:`vision_used`(迭代 22,2026-10-12——迭代 21 同款口径;断点随件 `vision_counter_used` 同批新增;旧断点随件键 `bonus_aux_carry` 已随替换子交互拆除退役,迭代 22 T5)。
消费面纪律:其他系统只经 SaveManager 的类型化访问器(读余额/加钥石/花钥石、读写树等级等)与域更新原语(`apply_adventure_summary`)操作存档,不碰内部数据结构。
消费面纪律:其他系统只经 SaveManager 的类型化访问器(读余额/加钥石/花钥石、读写树等级等)与域更新原语(`apply_adventure_summary`)操作存档,不碰内部数据结构。三条槽位纪律(迭代 33 卡①):一、无激活态下一切写盘路径拒绝并返回 false(boot 后未进档/未新档即结算或购买=不落盘,激活后照常);二、槽文件名单点派生——消费方禁各自拼槽文件名,测试与探针的隔离走注入口(`attach_slot_template`/`peek_summary_at`);三、UI 读别槽摘要只走窥视 API `peek_slot_summary(slot)`(不激活、不写内存、零盘面副作用),返回结构 `{"readable", "has_file", "keystone", "cleared", "total"}`——`readable`=槽文件可读(空槽=零值合法态可读;损坏/高版本/缺版本字段=不可读标记),`has_file`=槽主文件在盘与否(空槽/有档的操作集二分判定来处;非摘要第四项、零 UI 语义),三项摘要值(`keystone`/`cleared`/`total`)只在 `readable=true` 时有意义。
### 读写时机
```
启动 ──▶ 读盘(load_from_disk:新档/损坏兜底/迁移链/高版本拒读,见下两节)
正式冒险收束(adventure_finished)──▶ apply_adventure_summary 入账 ──▶ 原子写盘
营地钥石消费(元进度实现批接线)──▶ 每笔变更后即时写盘
启动 ──▶ 不读盘(boot 无激活态,不读写任何槽;只做一次旧单档迁移,见「版本与迁移」节)
选档界面「新档」/「进档」──▶ create_slot / activate_slot(读盘=该槽文件,建立激活态;迭代 33 卡①/卡③)
正式冒险收束(adventure_finished)──▶ apply_adventure_summary 入账 ──▶ 原子写盘(落当前激活槽)
营地钥石消费(元进度实现批接线)──▶ 每笔变更后即时写盘(落当前激活槽)
冒险停点(choices_presented 选路停点)──▶ 断点快照写盘(迭代 8 卡①)
冒险三结局收束(通关/失败/放弃)──▶ 清除断点 + 原子写盘(迭代 8 卡①/T3 退出口径)
```
@@ -139,6 +140,8 @@ v4/v5/v6 各域缺键由读取方按默认值补齐(空集合/0),旧档零
迁移函数经 `register_migration(旧版本号, 函数)` 注册:函数把数据从「旧版本」改写成「旧版本 + 1」。生产迁移链现行六件(v2 起自注册):v1→v2 = 断点域补空;v2→v3 = 断点附随件与摘要 keystone_drops 补键(读取方 .get 兜底);v3→v4 = 同调三域补键;v4→v5 = 树域两键补齐(原挂接的「三体系迁移」体已随迭代 21 T5 攻防所有权切分删除——`save_manager.gd:96-98`、`meta_progression.gd:294-295` 实证;forge_levels 旧域同批清退,加载时按默认模型键集白名单收窄,`save_manager.gd:399-401`);v5→v6 = 生涯两终身计数域补零;**v6→v7 = 锻造工坊域 forge_routes 缺键补齐(迭代 23 T5——无结构迁移体,版本号推进仅为 schema_version 对齐;解锁态派生不落档:初始持有〔表 initial_owned〕∨ 直购〔unlocked 清单〕∨ 练满前一档〔levels[prereq]≥cap〕)**。任一步失败按损坏兜底处理。
旧单档一次性迁移(迭代 33 卡①,用户裁决 Q1 甲):本系统从单档制换代为 3 存档位制时,盘上残留的旧单档 `user://save.json` 在启动时被处理——文件**字节级原样搬运**进槽 1(`user://save_slot_1.json`,零解析零改造:损坏或高版本的旧档也原样迁入,之后由该槽进档时的损坏兜底/高版本拒读接管,不静默丢数据),源文件改名 `user://save.json.migrated.bak` 留痕不删;槽 1 文件已存在则不重迁(幂等,二次启动零操作);迁移失败(拷贝或改名失败)源文件保留、下次启动重试。留痕与结果记在启动日志(开发者向,非玩家面)。
### 损坏兜底
档案读不开(文件损坏、JSON 解析失败、结构出域、缺版本字段)时:原文件改名为 `<路径>.corrupt.bak`(已有同名备份则覆盖)留下现场,游戏用默认新档继续运行,并留下警告日志。两条底线:不静默丢档(坏档永远可人工找回)、不崩溃(坏档不挡玩)。
@@ -162,7 +165,7 @@ MVP 不要求本系统的闭环([不做清单](../../05-不做清单.md)把单
| 优先级 | 内容 | 后置原因 |
|---|---|---|
| ~~P1~~ | ~~快照与复盘的持久化承接~~ | **已兑现**(2026-09-29 迭代 8 卡①:断点域承载 + rng「主种子+计数器」快照契约回填面 `restore_adventure`) |
| P2 | 多存档槽位 | 单档 MVP(2026-09-21 裁决);多档等有真实需求再立项 |
| ~~P2~~ | ~~多存档槽位~~ | **已实现**(2026-10-22 迭代 33 卡①——3 存档位三文件制落地,口径见「三存档位」段;原「单档 MVP(2026-09-21 裁决)」后置条随兑现注销) |
## 调参表
+13 -10
View File
@@ -1,25 +1,28 @@
# 生涯
> **一句话定位**:主菜单里与营地平级的**局外只读界面**——营地管「花」(花钥石买永久强化),生涯管「看」(看自己跨局攒下的一切:累计战绩、历史冒险、图鉴收集)。冒险进行中不给任何数据回看(2026-10-04 用户裁决 P-C7 的延续),生涯是历史数据唯一的家。
> **状态**:期一已实装(2026-10-07 迭代 18 卡④生涯界面实装批·期一——跨局汇总页+主菜单入口+终身计数域存档 v6 落地;期二/期三另行立项,本文不预占排期)。
> **一句话定位**:营地里与三柜台平级的**局外只读界面**——营地管「花」(花钥石买永久强化),生涯管「看」(看自己跨局攒下的一切:累计战绩、历史冒险、图鉴收集)。冒险进行中不给任何数据回看(2026-10-04 用户裁决 P-C7 的延续),生涯是历史数据唯一的家。
> **状态**:期一已实装(2026-10-07 迭代 18 卡④生涯界面实装批·期一——跨局汇总页+主菜单入口+终身计数域存档 v6 落地;期二/期三另行立项,本文不预占排期)。入口拓扑已随迭代 33 卡② 三入口化换代、营地里经笔记本接入归迭代 34 卡④(信息架构节 v1.1,2026-10-22 反哺写入)。
> **来源**:[待办清单「『生涯』界面——冒险中数据回看的唯一承接处」条](../../../../待办清单.md)(2026-10-04 用户裁决 P-C7——冒险中不给数据回看,历史战报与结算明细的查看去向 = 新「生涯」界面)。
## 一、信息架构
生涯入口是主菜单一级按钮,与营地平级(2026-10-06 用户裁,备选案与淘汰依据见需求卡片 P1)。现行主菜单按钮组由 `build_start_overlay` 构造(`game/presentation/ui_assembler.gd:103`):「冒险」组(继续上局 / 开始冒险)与「营地与系统」组(营地 / 生涯〔期一已落位,营地钮与设置钮之间〕 / 设置 / 退出游戏)。具体行序排版属实装细节顺带落位(本文不画布局稿)。
生涯入口经营地接入(目标结构=营地笔记本,迭代 34 卡④承载;迭代 33 卡② 三入口化后主菜单无生涯钮,现期无玩家可见入口,内部路径直调可达)。现行主菜单按钮组由 `build_start_overlay` 构造(`game/presentation/ui_assembler.gd:97`),只有三个一级钮(迭代 33 卡②,用户裁决 1):「进入存档」「设置」「退出游戏」——「进入存档」为唯一进度入口,点击打开选档界面(3 存档位,迭代 33 卡③)。
```
主菜单(开始覆盖层)
├─ 冒险组:继续上局 · 开始冒险
└─ 营地与系统组:营地 · 生涯(期一已实装) · 设置 · 退出游戏
主菜单(开始覆盖层,三入口)
├─ 进入存档 → 选档界面(3 存档位;空槽「新档」/有档「进档」/「删档」二次确认)
│ └─ 进档/新档 → 营地(迭代 34 卡④改为营地场景图;现期暂行落点=营地覆盖层)
├─ 设置
└─ 退出游戏
调试浮窗(迭代 18 卡⑦ P2 甲——入口迁宿主:开始层零调试入口;DS_DEBUG=1 会话浮窗启动即开,
战斗屏 HUD 与关卡地图屏各一枚「调试」角标可再开)
生涯(局外只读面)
├─ 跨局汇总(累计战绩与解锁总览)
├─ 历史冒险回看(逐局摘要与单局明细)
└─ 图鉴(敌人优先,秘宝/奇物随后)
营地(存档内,进档/新档落点)
└─ 生涯(局外只读面;入口=营地笔记本,迭代 34 卡④承载)
├─ 跨局汇总(累计战绩与解锁总览)
├─ 历史冒险回看(逐局摘要与单局明细)
└─ 图鉴(敌人优先,秘宝/奇物随后)
```
边界三条(均为 2026-10-06 用户裁 P4 甲):
+3 -3
View File
@@ -1,13 +1,13 @@
# 营地覆盖层 UX spec(camp)
> 状态:v1.5(2026-10-15 简明技术中文用语规范批:文头状态行按实态订正;spec 基线=2026-09-30 审计拍板点 4A 用户裁决落文〔乙案新建 ux spec+元进度配套更改〕;视觉终稿已随迭代 9 9A 段落码,本 spec 成文其呈现规则)
> 状态:v1.6(2026-10-22 迭代 33 反哺写入批:营地入口拓扑按三入口化实态换代;spec 基线=2026-09-30 审计拍板点 4A 用户裁决落文〔乙案新建 ux spec+元进度配套更改〕;视觉终稿已随迭代 9 9A 段落码,本 spec 成文其呈现规则)
> 事实源:`game/presentation/views/camp_overlay_view.gd`(CampOverlay——9A 视觉终稿后实态)
> 机制权威:[元进度](../systems/跨局循环/元进度.md)(营地三柜台/钥石/永久强化——营地=界面壳、机制主语=永久强化)
> 相邻:[settlement-summary.md](settlement-summary.md)(最近冒险摘要数据同源)/ [level-map.md](level-map.md)(主菜单语境)
## 定位
营地是存档内消费钥石的枢纽场所(界面壳,非机制实体——裁定见元进度):主菜单营地独立入口进入,玩家在此用钥石换永久强化、查看秘宝匣解锁与最近冒险。本 spec 只锁呈现;机制(定价/解锁/入账)全部归元进度。**循环层级:存档级(大循环/局外)呈现面**——本层只在存档语境可达(主菜单入口),冒险进行中不可达。
营地是存档内消费钥石的枢纽场所(界面壳,非机制实体——裁定见元进度):主菜单「进入存档」→选档界面→进档/新档进入(迭代 33 卡②/卡③三入口化后,主菜单不再有营地独立钮),玩家在此用钥石换永久强化、查看秘宝匣解锁与最近冒险。本 spec 只锁呈现;机制(定价/解锁/入账)全部归元进度。**循环层级:存档级(大循环/局外)呈现面**——本层只在存档语境可达(经选档界面进档/新档进入),冒险进行中不可达。
## 布局与交互
@@ -22,7 +22,7 @@
- 呈现数据源 = MetaProgression 只读投影经组合根喂入;本层不持有系统资源、不算价。
- 退役/封存件呈现语义已随旧目录整体退役消解(探宝罗盘/显影尘/地穴全图卷等状态行已删——迭代 22 旧 12 行删除后目录内零 deferred/retired 态,2026-10-12);
- 双入口框架(主菜单入口+局内状态面板只读入口〔2026-10-13 由「暂停层」改名——游戏非实时无暂停语义〕)的需求面归元进度「解锁双入口框架」节;状态面板入口已实装(2026-10-06 迭代 17 卡③〔时名暂停层〕——实机目检待用户,待办清单登记条在册),其呈现面不归本 spec。
- 双入口框架(存档内入口〔经选档界面,迭代 33 卡②/卡③换代——原主菜单独立入口〕+局内状态面板只读入口〔2026-10-13 由「暂停层」改名——游戏非实时无暂停语义〕)的需求面归元进度「解锁双入口框架」节;状态面板入口已实装(2026-10-06 迭代 17 卡③〔时名暂停层〕——实机目检待用户,待办清单登记条在册),其呈现面不归本 spec。
## 秘宝匣柜台呈现细则(迭代 22 实装态,2026-10-12)