From 83a4fbf5c52d0787b9bf302bb8262b845c744529 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sun, 1 Nov 2026 05:03:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D(=E8=BF=AD=E4=BB=A347?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=89=B9=E8=BF=BD=E7=BB=BF=C2=B7fix-i47-term?= =?UTF-8?q?):=20S11=E7=A6=81=E7=94=A8=E8=AF=8D=E3=80=8C=E5=8D=95=E5=85=83?= =?UTF-8?q?=E5=A5=97=E4=BB=B6=E3=80=8D=E2=86=92=E6=AD=A3=E8=AF=8D=E3=80=8C?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E3=80=8D=E4=B8=A4=E5=A4=84?= =?UTF-8?q?(README:142=E8=83=BD=E5=8A=9B=E8=A1=8C=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E5=85=A5=E5=8F=A3+=E5=8D=A1=E2=91=A3V14=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E6=A0=BC)=E2=80=94=E2=80=942026-10-22=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=9C=AF=E8=AF=AD=E9=87=8D=E6=9E=84=E6=89=B9?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E8=AF=8D=E8=A1=A8=E5=9C=A8=E6=A1=88,CI?= =?UTF-8?q?=E7=BA=A2=E9=A1=B9=E4=BF=AE=E5=A4=8D,=E5=90=88=E5=9B=9Epost-mer?= =?UTF-8?q?ge=E5=A4=8D=E9=AA=8C=E8=BF=BD=E7=BB=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/tests/README.md | 2 +- reports/需求卡片-营地场景图新建批-2026-10-18.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/game/tests/README.md b/game/tests/README.md index 4cb562ed..dc273539 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -139,7 +139,7 @@ tests/ | 调参测速批量模拟(逐帧步进与统计读数) | 调参测量 | `TuneSimController.run()`(调试浮窗批量模拟入口) | `tune_sim_batch_parity_test.gd:_init`(配对对拍套件,随测速循环批建) | | 战斗叙述与终局文案(数值带入/胜负互异) | HUD框架 | `BattleNarrator.battle_end_text()`/`BattleNarrator.boss_name()` | `battle_narrator_test.gd:_test_numeric_lines_carry_values`;`battle_narrator_test.gd:_test_end_text_differs_by_result`;`battle_narrator_test.gd:_test_boss_name_uses_boss_rowset` | | 玩家面文案与危险格格面字形 | HUD框架 | `BoardView.rebuild()`/`StatusSlotRow.set_effects()` | `player_copy_sweep_test.gd:_sweep_board_glyph`;`player_copy_sweep_test.gd:_sweep_legend`;`player_copy_sweep_test.gd:_sweep_hero_panel` | -| 营地场景图十层铺底与门洞留空呈现 | 营地场景视图 | 进入存档→选档→进档→营地场景屏(`CampSceneView.setup_layers()` 驱动);单元套件载入 `camp_scene_layout.tres` | `shot_probe.gd:_ready`(camp 截图段)〔营地图批 V1〕;`camp_scene_layout_test.gd:_test_layout_hotspot_geometry`〔营地图批 V14〕 | +| 营地场景图十层铺底与门洞留空呈现 | 营地场景视图 | 进入存档→选档→进档→营地场景屏(`CampSceneView.setup_layers()` 驱动);单元测试载入 `camp_scene_layout.tres` | `shot_probe.gd:_ready`(camp 截图段)〔营地图批 V1〕;`camp_scene_layout_test.gd:_test_layout_hotspot_geometry`〔营地图批 V14〕 | | 营地七物件命中区点选与分界面可达 | 营地场景视图 | 七物件命中区 `_gui_input()` → `CampSceneView.object_pressed()` → 组合根开界面 | `ui_click_probe.gd:_ready`(七物件合成点击段)〔营地图批 V2〕 | | 营地大门两分支确认与断点续玩接线 | 营地交互流 | 大门命中区 → ConfirmDialog(三出口)→ `main._on_confirm_new_adventure()`/`_resume_from_menu()` | `ui_click_probe.gd:_ready`(大门两分支段/断点确认段 :500-528)〔营地图批 V3〕 | | 四柜台拆解后五界面入口改挂与写口零回归 | 营地五界面 | 五界面意图信号 → `CampShopPresenter` → `MetaProgression.tree_buy()` 写口 | `forge_workbench_test.gd:_test_forge_rows`〔营地图批 V4〕;`ui_click_probe.gd:_ready`(写口链段) | diff --git a/reports/需求卡片-营地场景图新建批-2026-10-18.md b/reports/需求卡片-营地场景图新建批-2026-10-18.md index 4401004d..cee96ac9 100644 --- a/reports/需求卡片-营地场景图新建批-2026-10-18.md +++ b/reports/需求卡片-营地场景图新建批-2026-10-18.md @@ -384,7 +384,7 @@ req-card 第〇步+卡头 2026-10-21 退回令口径=美术设计闭合( | V11 目检项登记 | `reports/iter-实现报告-<日期>.md` 实机目检总清单 | 件核对(07 清单登记,登记不阻塞)〔营地图批 V11〕 | 用户目检(非自动化) | 用户实机(生命周期末步统一进行,不阻塞迭代) | 场景观感/七物件辨识(纵深稿构图可辨)/点选反馈/大门两分支/篝火动线入 07 清单=登记即义务了结 | 新增:营地场景图十层铺底与门洞留空呈现 | | V12 探针迁移留痕核验 | F8 全量位点逐点迁移 | 件核对表(T6 追认单)〔营地图批 V12〕 | 件核对(非自动化) | 探针脚本 diff 对账 | F8 全量位点逐点有「改前→改后」记录(契约 10 留痕义务) | 既有:模态覆盖层编排与输入锁;新增:营地七物件命中区点选与分界面可达 | | V13 反哺点清单 | §5 每条有落点 | 件核对表〔营地图批 V13〕 | 件核对(非自动化) | §5 同步面逐条对账 | §5 每条有 `reports/iter-反哺点-<日期>.md` 落点 | 既有:模态覆盖层编排与输入锁 | -| V14 layout 数据件校验(2026-11-01 新增) | `camp_scene_layout.tres` 加载期 fail-fast 校验(schema 类+表现域容器类型化成员,先例 battle_layout.tres) | `camp_scene_layout_test.gd:_test_layout_hotspot_geometry`(新建单测件 `game/tests/unit/presentation/`,随套件 manifest 登记)〔营地图批 V14〕 | 单元 | 单元套件载入 `camp_scene_layout.tres` | 校验函数通过+七命中区两两不相交/不越画面/不侵 y≤48(契约 7 几何红线机检化) | 既有:模态覆盖层编排与输入锁;新增:营地场景图十层铺底与门洞留空呈现 | +| V14 layout 数据件校验(2026-11-01 新增) | `camp_scene_layout.tres` 加载期 fail-fast 校验(schema 类+表现域容器类型化成员,先例 battle_layout.tres) | `camp_scene_layout_test.gd:_test_layout_hotspot_geometry`(新建单测件 `game/tests/unit/presentation/`,随套件 manifest 登记)〔营地图批 V14〕 | 单元 | 单元测试载入 `camp_scene_layout.tres` | 校验函数通过+七命中区两两不相交/不越画面/不侵 y≤48(契约 7 几何红线机检化) | 既有:模态覆盖层编排与输入锁;新增:营地场景图十层铺底与门洞留空呈现 | | B1 组合根接线总改造(行为改动专行) | `main.gd`(断点弹窗移位+三钮消费方编排+营地入口改挂+篝火动线+开层互斥);`confirm_dialog.gd` 三钮;`camp_shop_presenter.gd` 写口尾路由;`camp_flow_context.gd` 字段;`camp_refresh_bus.gd` 单口 | `ui_click_probe.gd:_ready`(断点确认段)+`screen_flow_probe.gd:_ready`(篝火段)〔营地图批 B1〕 | 集成 | `_on_confirm_new_adventure()`/`_resume_from_menu()`/`_start_adventure()`/`CampRefreshBus.refresh()` | 三钮消费方编排:open 前设消费方、confirmed/cancelled 后分派;cancelled 绑写口零调用;写口尾绑 `CampRefreshBus.refresh()` 调用记录+现开界面+场景根 HUD 同刷;`on_camp_attune_toggle` 尾只 refresh_camp 保持原样 | 既有:断点片段往返与续玩幂等;新增:营地刷新单口与场景根 HUD 同步 | | B2 CampOverlay 退役+五界面抽出(行为改动专行) | `camp_overlay_view.gd` 退役;四界面 view 抽出;`career_overlay.gd` 入口改挂;`smoke_all.gd:6469-6475` 源码断言段 | `smoke_all.gd:_ready`(源码断言段重写)+`forge_workbench_test.gd:_test_forge_rows`(承载类换)〔营地图批 B2〕 | 集成 | 五界面 `open()`/`close()` → 模态栈单口 | CampOverlay 无消费面即删(吸收即死,绑 `main.camp_overlay` 句柄迁移留痕);四界面各带返回/关闭钮;拆分沿职责轴(契约 11:职责语句/单一变化原因/集体身份,禁凑计数袋) | 既有:元进度入账与锻造两轴;新增:四柜台拆解后五界面入口改挂与写口零回归 |