Files
aetherbound-guild/docs/plans/M63_DEV1R_ENTRY_MIGRATION.md
T

8.8 KiB
Raw Blame History

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 未列), 矩阵中标记为后续步骤。