131 lines
8.8 KiB
Markdown
131 lines
8.8 KiB
Markdown
# M63 DEV-1R 入口页迁移(W5 第一步)
|
||
|
||
Goal: `ABG MVP 质量达标`,工作包 W5-DEV-1R。按"一页一提交一验收"拆成:
|
||
**A = Boot**(本轮)→ B = 首次设置 → C = Title(含 `M60-I04`)→ D = Settings。
|
||
|
||
## 本轮(M63-A:Boot)玩家可见停止点
|
||
|
||
Boot 页不再使用入口家族素材(identity-plaque / verification-rail /
|
||
status-seal / action-tab / `_flat_style` 进度条),改用共享手绘族:
|
||
羊皮纸面板(`PageChrome` header/card)、共享进度材质(本轮新增)、
|
||
`command_plate` 命令牌与引擎图标;世界背景保持不变。760/844/1280 ×
|
||
中英 × normal/error 两态截图可查,墨迹检查 0 违规。
|
||
|
||
## 顺序步骤
|
||
|
||
1. **M63-A(本轮)**:**COMPLETE (2026-09-13)**。`page_chrome.gd` 新增 `progress` 材质(轨道+进度由共享层
|
||
绘制,值由 `configure` 传入);Boot 屏改用它;文字全部走 `ABGUI_Tokens`;
|
||
按钮改 `command_plate` + `ButtonLabel`;三个 `BootStatusSeal*` 改共享
|
||
`pip` + 序号标签。同步更新 `docs/runtime/M52_SHARED_UI_RULES.md` 材质表。
|
||
2. **M63-B**:**COMPLETE (2026-09-13)**。首次设置页同样迁移(表单行、按钮、预览)。
|
||
3. **M63-C**:Title 迁移 + `M60-I04`(存在可恢复远征团时"新游戏"仍可用,
|
||
走确认边界而不是直接禁用)。**COMPLETE (2026-09-13)**。
|
||
|
||
## M63-C 实测与结果(Title)
|
||
|
||
- 银牌身份面 `TitleIdentityPlaque` → 共享 `card`;私有青/金色缎带条(无共享同类)
|
||
随迁移退役;标题/眉题/纪年改令牌字号 + `PageChrome.INK/INK_SOFT`。
|
||
- 四个动作按钮 `ButtonSurface` → 共享 `command_plate`(primary/secondary/utility),
|
||
节点名保留;`ButtonLabel/DetailLabel` 改令牌字号。
|
||
- 详情槽按真实最长文案(en `Expedition Company established · continue to the Guild`)
|
||
实测加宽加高(0.06/0.48/0.88/0.46)+ 两行内换行,不再裁剪。
|
||
- **`M60-I04` 修复**:`_save_status()` 原来先 `load_company()`,触发"恢复并回写主档",
|
||
随后 `show_title()` 的第二次加载只看到 primary → `recovered_*` 信号丢失 → New Game
|
||
被禁用(历史 `.bak` 玩家因此卡死)。现改为单次加载派生状态
|
||
(`_save_status_from(company_result)`);可恢复态下 New Game 保持可用,首次点击进入
|
||
两段确认(保留备份),第二次点击进入开局流程;有效主档时仍禁用(冻结语义不变)。
|
||
- 源绑定 attempt `m63-title` `20260913T184431Z-56463`:Title 状态/响应式/捕获、入口
|
||
流程、DEV2 建团提交(仍主张"建团后 New Game 禁用")、M63 探针全过;
|
||
`ABG_M63_TITLE_RECOVERABLE_OK new_game=enabled continue=enabled`;权威尺寸 ink 10 扫描 0 违规。
|
||
- `M63-I05`(OPEN,推迟):844x390 手机横屏下 Title 详情槽仍可能溢出(冒烟已记录);
|
||
按 2026-09-13 视口政策留到手机横屏步骤整体缩放解决。
|
||
|
||
## M63-D 实测与结果(Settings)
|
||
|
||
- 页框 `SettingsFrame` → 共享 `card`(整页羊皮纸);按卡片实测开口新增 `SettingsFace`
|
||
内缩容器(x 5.5%、y 15%),标题/来源/内容/页脚全部落在纸面内。
|
||
- 入口族按钮基座 `_entry_button_base` → 共享 `command_plate`(`action_primary`→primary,
|
||
其余→secondary);`Chrome` 节点名与 `entry_chrome_variant` meta 保留。
|
||
- 复选项 `_check_button` → 共享 plate + 右侧共享 `pip`(菱形,填充=开)实时反映状态;
|
||
旧 `toggle` 自绘开关退役。
|
||
- 分类栏/行标题/数值/页脚按钮的标签锚点改为 `PageChrome.PLATE_EDGE_X`(0.062),
|
||
文字不再压在牌匾卷边下;阅读列宽上限 720px 居中(避免 20:1 牌匾出现超长卷边)。
|
||
- 滑杆无共享组件,保留私有 StyleBoxFlat 但颜色改令牌(登记于 `M63-I06`)。
|
||
- 源绑定 attempt `m63-settings` `20260913T185200Z-62461`:设置/许可、入口捕获、
|
||
入口流程、M63 探针(权威尺寸 14 扫描 0 违规)全过,marker 恰好一次,strict 0。
|
||
- **DEV-1R 完成**:Boot / 首次设置 / Title / Settings 四页均已迁入共享族并有源绑定证据。
|
||
下一包:DEV-2R(公会交接)需先建新计划(M64)。
|
||
|
||
## 视口政策(2026-09-13 owner 指示)
|
||
|
||
宽屏 `1280x720` 是唯一设计权威;`1280x600` 仅宽屏冒烟。手机横屏
|
||
(`844x390`、`760x360`)留到后续步骤,届时只做整体缩放,不再新增第二套构图。
|
||
M63-B 的紧凑双列分支属于该政策的例外(已交付且验证),后续页面不得再引入
|
||
同类分支;小尺寸测试只作溢出冒烟,不按其缺陷改设计。
|
||
4. **M63-D**:Settings 迁移(分类、行、开关、返回)。**COMPLETE (2026-09-13)**。
|
||
|
||
## 结果摘要(M63-A)
|
||
|
||
- Boot 页面:identity 改共享 `header_band`、rail 改共享 `card`、状态印章改共享
|
||
`pip`(序号/OK 改深墨,修正羊皮纸上象牙白不可读的缺陷)、进度条改共享
|
||
`progress` 材质(新增并登记于 `M52_SHARED_UI_RULES.md`)、重试/诊断/退出改
|
||
`command_plate` + `ButtonLabel` + 引擎图标;文字尺寸/颜色全部走 `ABGUI_Tokens`。
|
||
- 源绑定 attempt `m63-boot` `20260913T181401Z-32808`:boot 运行/响应式/捕获、
|
||
入口流程、M63 探针(12 次扫描 0 违规)全部通过,marker 恰好一次,strict 0。
|
||
|
||
## M63-B 实测与结果(首次设置)
|
||
|
||
页面区域 → 共享材质(源:`runtime/assets/ui_m57_chrome/*`,边距由
|
||
`PageChrome` 常量声明):
|
||
|
||
| 区域 | 旧源 | 新共享件 | 边距/槽位 |
|
||
| --- | --- | --- | --- |
|
||
| 预览框 | `entry/first_launch/preview-frame.png`(九宫 86/74) | `card`(`panel_parchment`) | `PANEL_EDGE_X 0.055 / Y 0.15`;子内容全部按实测开口内缩 |
|
||
| 预览标题/详情 | `value-plate.png`(九宫 72/0) | `header_band` / `card` | 标题槽=标题带内框,详情槽=卡内框 |
|
||
| 设置行 | `setting-row.png`(九宫 36/0) | `command_plate`(secondary) | `PLATE_EDGE_X 0.062`;标题槽 = 徽章右到数值牌左 |
|
||
| 行徽章 | `setting-icon.png` + 象牙白字母 | `pip`(circle 空心) | 徽章直径 `clamp(row.h-14, 24, 52)`,落在牌面内 |
|
||
| 数值牌 | `value-plate.png` | `card` | 宽 `clamp(row.w*0.26~0.30, 46, 132)`,右缘内缩 |
|
||
| 应用按钮 | `apply-command.png`(九宫 60/0) | `command_plate`(primary) | `CommandFrame` 节点名保留(既有契约) |
|
||
| 标题块 | 世界层象牙白+阴影 | `header_band` | 标题/副标题都落在带宽 `clamp(content.h*0.19, 86, 132)` 的内框 |
|
||
| 安全区辅助线 | 私有 `StyleBoxFlat` | 保留(共享族暂无同类) | 颜色改 `UITokens.COLOR_IVORY` |
|
||
|
||
- 源绑定 attempt `m63-setup` `20260913T183304Z-47444`:首次设置/响应式/捕获、
|
||
入口流程、M63 探针(18 次扫描 0 违规)全过,marker 恰好一次,strict 0。
|
||
- 修复的真实缺陷:① 760 紧凑行标题被截断(槽 37.6px,改为微字号+两行内换行);
|
||
② 大卷轴卡把标题压在卷边下(实测开口内缩);③ 行徽章/数值牌压在牌匾卷边上。
|
||
- `M63-I03`(观察):760x360 紧凑双列下最长标签(字幕与事件标签)换两行,
|
||
完整可读,检查器通过;不改设计。
|
||
- `M63-I04`(已做):删除设置页不再使用的入口素材常量
|
||
(`FIRST_LAUNCH_PREVIEW_FRAME/SETTING_ROW/APPLY_COMMAND/SETTING_ICON/VALUE_PLATE/
|
||
RETURN_TAB`)与随之无用的 `_first_nine_patch`;素材文件保留(设计权威目录仍引用其来源)。
|
||
|
||
## 验收检查
|
||
|
||
- 既有 Boot 行为证据继续通过:`ABG_DEV1_BOOT_RUNTIME_OK`、
|
||
`ABG_DEV1_BOOT_RESPONSIVE_OK`、`ABG_SYS001_BOOT_CAPTURE_OK`、
|
||
`ABG_DEV1_ENTRY_TOUCH_OK`;节点名保持不变(`BootWorld`/`BootIdentityPlaque`/
|
||
`BootVerificationRail`/`BootStatusSeal*`/`BootStatus`/`BootDetail`/
|
||
`BootProgress`/`BootProgressValue`/`BootRetry`/`BootDiagnosticsAction`/
|
||
`BootExit`);类型契约变更(rail/plaque 由贴图容器变布局容器、按钮文字移入
|
||
`ButtonLabel`)在聚焦测试中同步更新。
|
||
- 新探针 `m63_entry_visual_probe.gd`:boot 的 normal/error × 3 尺寸 × 2 语言,
|
||
static/dynamic/final,墨迹检查自检 + 扫描通过(`ABG_M63_ENTRY_INK_OK`)。
|
||
- 源绑定 attempt:marker 恰好一次、strict 诊断 0、owned cleanup。
|
||
- 语义冻结:boot 流程/设置读写/Save 路径/路由不变。
|
||
|
||
## 冻结范围
|
||
|
||
玩法、经济、内容、Save、路由、音频、打包一律不动;只改 Boot 的呈现层与共享
|
||
材质层;其它入口页(设置/Title)本轮不动。
|
||
|
||
## 提交边界
|
||
|
||
计划激活提交;Boot 迁移 + 材质 + 探针提交;证据与账本提交。
|
||
|
||
## Issue Register
|
||
|
||
- `M63-I01` OPEN:`BootProgress` 由 `ProgressBar` 变为共享材质实例;如后续
|
||
仍有测试读取 `ProgressBar.value`,在对应聚焦测试中改为读取节点属性 `value`。
|
||
- `M63-I02` OPEN:入口页的 `credits` 屏本轮不在范围内(DEV-1R 未列),
|
||
矩阵中标记为后续步骤。
|