docs: 文档随批与登记批(Phase B T6)——architecture D1 形态行+HUD框架 v0.10+battle.md 实现注记+migration-plan §3 已落地与样张硬前置改判落文+Alpha 清单状态列+台账 174
This commit is contained in:
1 parent
bb4b4fa420
commit
1e8c039d8f
6 files changed
+15
-11
No files matched your search
@@ -252,3 +252,4 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
| v0.7 | 2026-09-20 | **表现层三批落地 + 义务清单补行(代码同日三批:样式收敛 / 站桩改造 / 结算演出链)**:呈现义务来源清单补「关卡节点地图」行(节点链进度常显 + 选路覆盖层只读呈现——此前漏登记);新增结算演出覆盖层(跨区弹道/光带载体,兑现演出因果可视);减动效承诺落地(UiKit.motion 单点包装全部呈现层 tween 时长,开启时长减半、可挖域呼吸停格;切片期入口 = TunePanel 开关,正式设置层归设置批)。代码侧站桩载体(StandeeView)与卡片退役随 v0.6 裁决执行 |
|
||||
| v0.8 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `docs/architecture/adr-0006-board-node2d-rendering.md` 与 `docs/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 战斗屏布局四区 → 三区——删 A 区关卡进度条行(LevelStripView 退役删除,节点链进度呈现移出战斗屏、只留关卡画面);C/D 区纵向 520 → 548;装板校验变量与实算同步(棋盘区高 504、可用高度 488);② 呈现义务来源清单「关卡节点地图」行改承载口径——节点链进度由关卡画面选路覆盖层节点态承载(暗金已过 / 金当前 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件;③ 「四区」措辞全线改「三区」(负责表、节题、结构冻结、验收、下游战斗表现交付行),双舞台常驻语义不动。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编(字母是跨文档/代码注释的承载标识);② A 区 28px 纵向空间划归 C/D 底行(520 → 548;1920 档换算仍归表现层升级批);③ 关卡画面进度呈现由选路覆盖层节点态直接承载、不另设进度条组件 |
|
||||
| v0.9 | 2026-09-23 | 渲染技术注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘本体 Node2D 化——BoardView 内部由 GridContainer+逐格控件改为 Control 壳 + SubViewport + Node2D 世界,类名/信号/公共方法契约不变、探针零改造;三区布局与性能预算(同屏 draw calls < 200)不变;程序化占位视觉等价平移,素材终稿按 art-bible §8.2 格面 32×32 暂定档槽位 1:1 换入 |
|
||||
| v0.10 | 2026-09-26 | 渲染技术注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗舞台 Node2D 化——BattleStageView 内部由 PanelContainer+Control 站桩改为 Control 壳 + SubViewportContainer + SubViewport + Node2D 世界(StageWorld/StandeeBody),类名/setter 面/公共方法契约不变、调用点零改造;状态图标行与悬停 tooltip 保留 Control 载体挂壳层(伴随件);C6 字体注入挂点复用(set_world_font);三区布局与性能预算(同屏 draw calls < 200)不变;占位表现等价平移(时序常量逐字对照——等价证明见 production/qa/battle-stage-node2d-等价证明-2026-09-26.md) |
|
||||
@@ -437,6 +437,7 @@
|
||||
| 2026-09-20 | **敌人卡形态裁决收口(2026-09-20 用户看对照样张拍板,06 待办「敌人卡形态」解决移除——台账 99)**:全站桩形态定稿——① B 区主角与敌人均为无框立绘+底座(站桩式),**英雄卡/敌人卡组件整体退役,卡片式不再作为候选**;主角血条悬浮头顶、状态效果小图标一排挂血条正下方,敌人血条+顺位徽标悬浮头顶、状态小图标同款挂血条下;攻击值等规划数据仍归 C 区数据框(C 区不动);② 布局表 B 区行、Component Inventory 英雄卡/敌人卡两行随裁决改写(敌方 side 池共享层数各立绘同值、意图动画占位等既有语义平移到站桩载体,不随形态改变);③ ASCII 线框图 B 区重绘(旧"意图:爪击/环点"示意早已随行为环退役,本次一并清掉);④ OQ4 改写为裁决已收口注记,对照样张存档 `production/mockups/`;呈现义务细节重述(受击/退场演出挂点等)随表现层升级批执行 |
|
||||
| 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `docs/architecture/adr-0006-board-node2d-rendering.md` 与 `docs/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 布局四区 → 三区——删布局表 A 区关卡进度条行与 Component Inventory LevelStripView 行(LevelStripView 退役删除,节点链进度只留关卡画面,战斗屏零进度承载);C/D 底行 520 → 548;ASCII 线框图重绘为 B/C/D 三区;② 新流程口径落文——关卡画面(选路覆盖层常驻形态)为关卡内常驻枢纽:Navigation Position 图、到达语境、Entry 表、信息层级第 5 层、Data Requirements 节点图行改「关卡开始即出图选路、战后返回关卡画面再选路」;③ AC 四区措辞改三区。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行(520 → 548);③ 关卡画面进度呈现由选路覆盖层节点态承载(暗金已过 / 金当前 / 亮金候选通道 / 旗朱 Boss)、不另设进度条组件 |
|
||||
| 2026-09-23 | 实现注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘渲染 Node2D 化(BoardView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,信号/click_cell/_cells 契约保持,新增 push_input 端到端输入探针);格尺寸公式锚点不变(set_cell_area = floor((min(宽,高) − 预留 − (N−1)×格间距) / N) 单点可调),布局与交互语义零改动 |
|
||||
| 2026-09-26 | 实现注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗画面 Node2D 化(BattleStageView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,站桩本体 StandeeBody 世界精灵;set_enemies/clear_enemies/on_step_row_fx/gray_all_enemies 等 setter 面签名保持,弹道落点锚点=壳层口径 world_to_shell 单点);状态图标行与悬停 tooltip 保留 Control 载体挂壳层;三区布局尺寸零改动(B 区外框 252px 逐位) |
|
||||
| 2026-09-26 | **战斗屏信息归属批(用户 2026-09-26 三轮纠偏后拍板;代码实装另批——hero_info_panel_view.gd / hud_presenter.gd 改造 + 探针断言迁移,登记待办)**:立两条信息归属原则并全屏贯行——①循环口径原则(战斗屏只展小循环内被消费、影响当下决策的数据;中/大循环资源不得入侵)②单一展示面原则(同一信息全屏唯一展示面;单位本体已承载的信息数据框不重复;资源数字贴唯一消费口)。随拍板落地:① B 区站桩 = HP 与状态效果唯一展示面——C 区 HP 条/HP 文字/立绘占位/状态效果槽×4 退役(重复展示;证据链 = hud_presenter.gd 同一 s.hero.hp/s.hero_effects 双投喂 B/C 两区);② RAP 读数(点阵+数字)迁 D 区 AP 条、置弃图刷新按钮旁(RAP 唯一消费口 = 弃图刷新——就近原则);③ C 区状态槽悬停 tooltip 职责并入 B 区站桩状态小图标;④ GP(中循环)/钥石(大循环)迁出战斗屏,去向挂 OQ14;⑤ C 区改「攻击数据框 + 魔法道具槽(预留)+ 本关强化列表(预留)」——预留区来自魔法道具与关卡内属性提升的既有立项;⑥ 空态/清零反馈/悬停交互/AC/§13 义务表载体同步改写。**批内遗留两项待拍板(OQ13/14)**:护甲 AC 是否补入 C 区数据框;GP/钥石去向 |
|
||||
| 2026-09-26 | **信息归属二轮拍板(用户 2026-09-26,OQ13/14 收口)**:① 我方护甲 AC 补入 C 区攻击数据框(唯一展示面——布局表/组件清单/线框图同步);② GP/钥石去向定案:GP = 关卡画面常驻总量 + 战斗结算画面总量+增量,钥石 = 结算画面 + 营地(具体呈现归对应 UX spec 批次);③ 敌方 AC 展示面挂起——用户口径「敌方 AC 无任何展示」与现行代码冲突(standee_view.gd 底库名字行渲染「名字·护甲·AC%d」,系敌人技能池批克制对策可读性义务),证据链已呈报待终裁,本 spec 暂不改敌人站桩行 |
|
||||
| 2026-09-26 | **敌方 AC 展示终裁收口(用户 2026-09-26 终裁)**:敌方 AC 数值全屏退役(任何区不直接展示)、护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批)、敌人站桩底座下名字行退回纯名字+护甲类型图标;旧「克制对策可读性义务」降级承载——类型保留、数值退役。终裁理由(用户口径):HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性。同步改写:信息归属树敌人站桩行、Component Inventory 敌人站桩立绘行、OQ13。**代码实装说明**:`standee_view.gd` 改造(站桩名字行去 AC 数值 + 护甲类型图标化)由并行代码批执行,本批只做文档同步 |
|
||||
@@ -3,7 +3,7 @@
|
||||
## Document Status
|
||||
|
||||
- Version: 1.3
|
||||
- Last Updated: 2026-09-23(棋盘 Node2D 渲染迁移 Phase A:D1 层表 BoardView 形态注记——引 ADR-0006)
|
||||
- Last Updated: 2026-09-26(战斗舞台 Node2D 迁移 Phase B:D1 层表 BattleStageView 形态注记——引 ADR-0006;Phase A 注记 2026-09-23)
|
||||
- Engine: Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定)
|
||||
- Review Mode: solo(`production/review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调)
|
||||
- GDDs Covered: game-concept · game-pillars · systems-index · d2-data-config · a3-action-economy · a4-terrain-variation · b3-status-effect · a1-board-generation · a2-minesweeper-rules · b2-enemy-system · b4-reward-item-economy · b1-settlement(12 份;A5/C1–C4/B5/D3–D6 未设计,按 systems-index 依赖分层预留)
|
||||
@@ -120,7 +120,7 @@
|
||||
|
||||
| 模块 | Owns | Exposes | Consumes | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **D1 HUD**(切片 lite 已拆 9 单元:BoardView / HUDView / HudPresenter / BattleLogView / ItemWindowOverlay / NodeOverlay / LevelStripView / TunePanel / UiKit + 组合根 main.gd) | 全部 Control/CanvasLayer(例外:BoardView 棋盘本体 = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界〔BoardWorld/CellUnit〕,探针契约面不变——ADR-0006 棋盘 Node2D 迁移批 Phase A 2026-09-23)、输入→意图翻译(**唯一提交路径 = settle_batch,不直调 A3**)、呈现义务台账(A2×6 / B2×4 / B3×4 / B4×5 / B1×3) | 视图单元接口(信号外发、setter 只读注入) | A2 compute_move_path / ActionOutcome;A3 ap/rap;B1 步骤流行协议(数据源);ConfigDB display_name | **MEDIUM**:Control / CanvasLayer / draw_* / InputEvent / RichTextLabel——对照 breaking-changes.md 4.5–4.7 条目(CanvasItem 线条无抗锯齿羽化、设备 ID 常量、RichTextLabel 图片参数两轮变化) |
|
||||
| **D1 HUD**(切片 lite 已拆 9 单元:BoardView / HUDView / HudPresenter / BattleLogView / ItemWindowOverlay / NodeOverlay / LevelStripView / TunePanel / UiKit + 组合根 main.gd) | 全部 Control/CanvasLayer(例外:BoardView 棋盘本体与 BattleStageView 站桩本体 = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界〔BoardWorld/CellUnit;StageWorld/StandeeBody——B 区 slot_row 伴随件留壳层〕,探针契约面不变——ADR-0006 棋盘 Node2D 迁移批 Phase A 2026-09-23 / 战斗舞台 Phase B 2026-09-26)、输入→意图翻译(**唯一提交路径 = settle_batch,不直调 A3**)、呈现义务台账(A2×6 / B2×4 / B3×4 / B4×5 / B1×3) | 视图单元接口(信号外发、setter 只读注入) | A2 compute_move_path / ActionOutcome;A3 ap/rap;B1 步骤流行协议(数据源);ConfigDB display_name | **MEDIUM**:Control / CanvasLayer / draw_* / InputEvent / RichTextLabel——对照 breaking-changes.md 4.5–4.7 条目(CanvasItem 线条无抗锯齿羽化、设备 ID 常量、RichTextLabel 图片参数两轮变化) |
|
||||
| **battle_presentation**(B5,垂直切片后) | 结算动画 / 伤害数字 / 战斗舞台 | (未设计——前置"战斗表现美术测试"锁双舞台陷阱) | B1 步骤流(回放脚本源)、D1 | **MEDIUM**:AnimationPlayer(String→StringName 变更)/ Tween |
|
||||
| **audio**(D4,Alpha) | 音频挂点 | (挂点 = B1 明细行类型流;负反馈聚合——单结算至多一次) | B1 流水 | AudioStreamPlayer(4.7 area_mask 默认 1→0 注意) |
|
||||
| **tutorial**(D5,Alpha) | 教学条目 | (口径来源:A2/A3/B3/B1 各教学条目) | 各上游 | 无 |
|
||||
|
||||
@@ -55,11 +55,11 @@ BattleScreen(Control 栅格;目标形态 = B/C/D 三区——进度条退场
|
||||
|
||||
**不做**(明确出批):B 区舞台任何改动;素材终稿接入;格边长数值调整(归样张批);键盘寻格/无障碍(沿 ADR-0003 已接受口径)。
|
||||
|
||||
## 3. Phase B 预留(后续批,本批只保证不堵死)
|
||||
## 3. Phase B(2026-09-26 已落地——战斗舞台 Node2D 迁移批,台账 170-173)
|
||||
|
||||
- BattleStageView 同构改造:PanelContainer → Control 壳(Node2D 舞台 + Control 文本半区),站桩 StandeeView 从 Control 迁 Node2D 精灵——意图三档动画/受击/死亡演出的载体。
|
||||
- 本批交付的两个可复用挂点:SubViewport 内 theme/字体显式注入挂点(CJK 字体义务,ADR-0003 Decision 4 关联)、CellUnit 叠层槽位模式(B 区站桩底座同构)。
|
||||
- Phase B 开工硬前置 = 样张批冻结剪影与动画方案(清单 §1.2 联动条款),与本批无相互阻塞。
|
||||
- BattleStageView 同构改造**已实施**:PanelContainer → Control 壳(类名/252px/树内位置不变)+ Node2D 舞台半区(SubViewportContainer/SubViewport/StageWorld)+ Control 文本半区(round_label/stage_center/log_view 三件保留);站桩 StandeeView(Control)退役删除,本体 = StandeeBody(Node2D 世界精灵,行为面 17 方法契约保持);slot_row+悬停 tooltip 保留 Control 载体挂壳层(伴随件容器 = enemy_box 语义改写)。
|
||||
- Phase A 交付的两挂点已被 Phase B 复用:set_world_font 字体显式注入(C6 判据=注入非空+has_char+宽度>0)与坐标空间分界纪律(世界=局部排布,壳层换算单点 world_to_shell)。
|
||||
- **样张硬前置改判(用户 2026-09-26 裁决①)**:样张批冻结只卡换皮/演出批(循环 2 前置),不卡结构迁移——本节原「Phase B 开工硬前置 = 样张批冻结」条款据此作废;ADR-0006「只卡换皮不卡开工」原则的落文位。
|
||||
|
||||
## 4. 探针与测量面(实证清单)
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
| A2 | 1280×800 与 1920×1080 两档均成立(1920 档换算值表现层升级批成文后此项才可销) | [人] 全屏目检两档 | 待验收(1920 档参数未成文) |
|
||||
| A3 | 同屏 draw calls < 200 | [真机渲染] RenderingServer 调试读数(迁移批 T7 附首读数) | 待测(基线读数见循环 1 T7 交付) |
|
||||
| A4 | 进入战斗屏 500ms 内首格可点 | [headless] ui_click_probe 首格可点计时 AC | 待验收 |
|
||||
| A5 | B 区战斗舞台 = Node2D 舞台半区 + Control 文本半区(ADR-0006 分工表);站桩载体 Button/GridContainer/HBox 计数 = 0 | [headless] 场景树 dump 取证探针(迁移批 T5① 沉淀复跑件) | 迁移批落籍后转定期回归 |
|
||||
| A5 | B 区战斗舞台 = Node2D 舞台半区 + Control 文本半区(ADR-0006 分工表);站桩载体 Button/GridContainer/HBox 计数 = 0 | [headless] 场景树 dump 取证探针(迁移批 T5① 已实证 PASS——探针按台账 152 先例跑完即删,复跑件归呈现层测试分级批周期化时重建) | **已实证(循环 1 T5,2026-09-26)——周期化复跑件待建** |
|
||||
|
||||
## B. 可读性与色彩(源②基线表 + 源③)
|
||||
|
||||
@@ -62,10 +62,10 @@
|
||||
|
||||
| # | 判据 | 验法 | 状态 |
|
||||
|---|---|---|---|
|
||||
| F1 | run_smoke 全绿(当轮基线零失败) | [headless] `python tools/run_smoke.py` | 循环 1 基线 557/0 绿(2026-09-26 worktree) |
|
||||
| F2 | 五探针全绿:ui_probe / ui_click_probe(SEED=7) / ui_layout_probe / ui_tune_probe / ui_input_probe 十一断言 | [headless] 场景探针 | 循环 1 基线全绿(2026-09-26 worktree) |
|
||||
| F1 | run_smoke 全绿(当轮基线零失败) | [headless] `python tools/run_smoke.py` | 循环 1 基线 557/0 绿,迁移批 T0–T5 每轮复跑全绿(2026-09-26) |
|
||||
| F2 | 五探针全绿:ui_probe / ui_click_probe(SEED=7) / ui_layout_probe / ui_tune_probe / ui_input_probe 十一断言 | [headless] 场景探针 | 循环 1 基线全绿;迁移批每轮复跑全绿(ui_probe 敌站桩断言已随批等价改写为本体探针出口——台账 171) |
|
||||
| F3 | 文档三闸对基线零新增 | [headless] doc_link_audit / doc_term_audit / gdd_lint 对基线快照 diff | 循环 1 基线已存档 |
|
||||
| F4 | MC 12 局 RUNSUM 与基线逐位一致(核心层零漂移证据) | [headless] adventure_monte_carlo | 循环 1 基线采集于 T0,对拍在 T7 |
|
||||
| F4 | MC 12 局 RUNSUM 与基线逐位一致(核心层零漂移证据) | [headless] adventure_monte_carlo | 循环 1 基线采集于 T0(24 行 RUNSUM 存档),T7 对拍 |
|
||||
|
||||
## G. 源⑤ 06 挂 Alpha 条目涉战斗屏者(销项时逐条对表)
|
||||
|
||||
@@ -78,3 +78,4 @@
|
||||
| 日期 | 改动 |
|
||||
|---|---|
|
||||
| 2026-09-26 | 初稿成文(循环 1 T0,六源拼装;销项归 Alpha 验收批) |
|
||||
| 2026-09-26 | T5/T6 状态列更新(A5 已实证/ F1、F2 迁移批全绿注记/F4 待 T7 对拍;B 区站桩断言改判注记) |
|
||||
@@ -460,4 +460,5 @@
|
||||
170. **B 区战斗舞台壳改造批(Phase B T2,2026-09-26,本会话——循环 1;worktree battle-stage-node2d-20260926)**:BattleStageView 根壳 PanelContainer→**Control**(类名/252px/树内位置不变;面板样式=Panel 子面+原 stylebox 等价平移,子面几何沿原内容边距 Rect2(6,4,6,4));内部拆两半区——**Node2D 舞台半区**=SubViewportContainer(stretch=true 1:1 禁缩放系数)+SubViewport(transparent_bg)+**StageWorld**(新件 presentation/views/stage_world.gd,无 class_name 经 preload 接线,BoardWorld 同构:world_font 字体注入槽位+font_probe() C6 判据出口〔注入非空+has_char+宽度>0〕;T2 期世界空置待 T3 站桩迁入)+**Control 文本半区**=round_label/stage_center/log_view 三件原样保留(C1 永久 Control),hero_standee/enemy_box 本期仍 Control 原位。新挂点=set_world_font(f)(Phase A BoardView 同款,无调用方纯挂点)+world_to_shell(p) 坐标换算单点(C4——世界=局部排布/壳层=全局含容器偏移)。**C6 判据实证**(临时脚本跑完即删):未注入=回退字体 has_char=false(引擎默认无 CJK=文档既有口径);注入 fusion-pixel ja TTF(内存 load_dynamic_font 零素材入工程——C7)后 has_char=true 宽度 70>0 PASS。**验收**=轻闸全绿:editor --quit 0 error+冒烟 557/0(=基线)+五探针全绿+ui_layout_probe 外框逐位零漂移(stage pos=(0,0) size=(1280,252) min=(0,252)=T0 基线同值;B 区内部树结构变化记录:PanelContainer 自动布局→Control 锚点+VBox 同边距)+static_scan exit0+文档三闸零漂移。进入 T3。
|
||||
171. **站桩本体 Node2D 化批(Phase B T3,2026-09-26,本会话——循环 1 最重卡;worktree battle-stage-node2d-20260926)**:站桩本体自 Control(旧 StandeeView **退役删除**)平移为 Node2D 世界精灵 **standee_body.gd**(新件,无 class_name 经 preload)。**行为面 17 方法契约逐项保持(C3)**——set_data/set_hero/_set_hp/set_idle/set_effects/set_effects_cleared_feedback/set_order/set_pending/_play_intent_motion/set_portrait_texture(tex,flip)/mark_dead/is_dead/flash_hit/_revive/_update_name_line/_refresh_portrait_glyph+is_dead,调用点 hud_presenter:53-54/79-80、main:309/441/475/495/503、main:768/770 零改排。**等价平移清单(C9)**——立绘=set_portrait_texture 惰性 Sprite2D(NEAREST+flip_h+整数 2×=48 源盒 96px)缺位回退字形(人/▂/▆/█/✕/敌 draw_string);底座=UiKit.panel_flat(STONE 系) StyleBox.draw 直绘;血条=直角矩形 hp_value 属性 tween 0.15 递减(引擎默认主题深底/蓝填充近似平移——色值列目检清单);顺位徽标 ①②③ GOLD_DEEP;意图徽标=draw_set_transform 弹入 scale 1.6→1+字形前倾 4°→0(旧只转字形 Label——贴图态无动画等价保持);名字行=护甲图标+纯名 draw_string 居中(AC 不展示 2026-09-26 终裁);受击闪白 modulate 1.6/1.4/1.2→白/死灰;死亡=灰化+rotation 2.5/-1.5/0 摇摆塌陷+意图退位(禁瞬消)+**状态行随 mark_dead 同拍隐藏(代拍板②待追认)**;复活=全态重置。**批内代拍板默认(待追认)**——①slot_row+悬停 tooltip 保留 Control 载体挂壳层(_companion_layer 顶层,敌伴随件宿主=**enemy_box 语义改写「站桩壳层伴随件容器」HBoxContainer→Control**,手动定位随世界同步,探针 :97 计数面不变);②定位同步=world_to_shell 单点(T2 建挂),_sync_layout 挂点=ready/NOTIFICATION_RESIZED/_row.resized(明细带展收改行高随动)/set_enemies 重建,站桩盒高=行高(旧 HBox FILL 拉伸等价)、敌右对齐 +8 间距等价;③hero_standee/enemy 站桩成员类型 StandeeView→Node2D(StandeeBody),**hero_standee_center/enemy_standee_center 改 world_to_shell(本体中心)=壳层口径(C4)**。ui_probe 敌站桩断言等价改写(台账 170 前例):穿透明(enemy_box 子件 _name_label/_armor_icon/_intent_badge/_hp_bar)→本体出口 enemy_body_at(i)+name_line_probe()/intent_probe()/has_world_hp_bar——呈现口径逐字保持。**踩坑记录**——standee_body 漏声明 _portrait_tex 成员→编译连坐 main.gd 假性两错(w/h 推断失败),editor --quit 前置闸暴露后修复。**验证**——editor --quit 0 error+冒烟 557/0(=基线零增删)+五探针全绿(ui_probe/ui_click 问题=0/ui_tune/ui_input 十一断言/layout 外框零漂移 stage 1280×252 逐位=T0 基线)+static_scan exit0+文档三闸零漂移。进入 T4。
|
||||
172. **信号与演出等价证明批(Phase B T4,2026-09-26,本会话——循环 1;worktree battle-stage-node2d-20260926,零代码变更纯取证)**:等价证明落盘 `production/qa/battle-stage-node2d-等价证明-2026-09-26.md`——①**调用点 grep 对比零 diff**:main.gd→stage 九处调用(309/310/439/441/475/495/503/768/770)与 hud_presenter→hero_standee 四处投喂(53/54/79/80)逐字节一致;hud_presenter/main/core/** 文件级 git diff 基线=零行变更(投喂链零改动实证+核心层零接触)。②**时序常量逐字对照**——血条递减 0.15/意图弹入 0.10+0.16/前倾 0.10+0.14/死亡摇摆 0.12+0.1+0.08 与 modulate (0.62,0.62,0.62,0.9)/受击闪白 0.08+0.2 与 (1.6,1.4,1.2)/复活复位/清空反馈 1.2+0.8 全部逐字同(前倾项注记:旧仅转字形 Label、贴图态无动画——新等价保持)。③**写路径逐行同构**——on_step_row_fx(早退链+flash+killed→mark_dead)/set_enemies 数量分叉/clear_enemies/gray_all_enemies/set_round_text/set_settle_focus 逐行同构;弹道落点 hero/enemy_standee_center 签名不变、实现改 world_to_shell(本体中心)=壳层口径保持(C4)。④结构性差异五笔登记(本体载体/slot_row 壳层化/enemy_box 语义/血条直角矩形呈现/ui_probe 本体探针出口)=非漂移改判,指向台账 170/171。轻闸全绿(冒烟 557/0+ui_probe+ui_input 十一断言+static_scan exit0)。进入 T5。
|
||||
173. **探针取证与断言同步批(Phase B T5,2026-09-26,本会话——循环 1;worktree battle-stage-node2d-20260926,零常驻代码变更)**:①**临时取证探针**(跑完即删,台账 152 先例;踩坑复录=裸 .gd 无 tscn 载体跑场景探针=静默挂死,补 tscn 包装解):真实战斗态 B 区场景树 dump——**世界子树(SubViewport 内)Button=0/GridContainer=0/HBox=0**(站桩载体归零证);世界站桩本体 hero=true+enemies=1(StandeeBody)、伴随件容器子件=1 与本体数一致;壳层 HBox 逐件语义标注=文本行载体+StatusSlotRow 伴随件+log 内部(零站桩载体残留)。②ui_probe 敌站桩断言等价改写已于 T3 随批落地(enemy_box 子件穿透明→stage.enemy_body_at(i).name_line_probe()/intent_probe()/has_world_hp_bar 本体出口,呈现口径逐字保持——台账 171 改判记录);ui_click_probe :223 hero_standee.slot_row 伴随件引用=零改动即兼容(tooltip 机制零返工——代拍板①实证)。③ui_input_probe 十一断言原样全绿(B 区改造零波及 D 区实证——grep stage/standee/enemy 零命中在案)。取证报告本条即档案。轻闸全绿(冒烟 557/0+五探针 PASS)。进入 T6。
|
||||
173. **探针取证与断言同步批(Phase B T5,2026-09-26,本会话——循环 1;worktree battle-stage-node2d-20260926,零常驻代码变更)**:①**临时取证探针**(跑完即删,台账 152 先例;踩坑复录=裸 .gd 无 tscn 载体跑场景探针=静默挂死,补 tscn 包装解):真实战斗态 B 区场景树 dump——**世界子树(SubViewport 内)Button=0/GridContainer=0/HBox=0**(站桩载体归零证);世界站桩本体 hero=true+enemies=1(StandeeBody)、伴随件容器子件=1 与本体数一致;壳层 HBox 逐件语义标注=文本行载体+StatusSlotRow 伴随件+log 内部(零站桩载体残留)。②ui_probe 敌站桩断言等价改写已于 T3 随批落地(enemy_box 子件穿透明→stage.enemy_body_at(i).name_line_probe()/intent_probe()/has_world_hp_bar 本体出口,呈现口径逐字保持——台账 171 改判记录);ui_click_probe :223 hero_standee.slot_row 伴随件引用=零改动即兼容(tooltip 机制零返工——代拍板①实证)。③ui_input_probe 十一断言原样全绿(B 区改造零波及 D 区实证——grep stage/standee/enemy 零命中在案)。取证报告本条即档案。轻闸全绿(冒烟 557/0+五探针 PASS)。进入 T6。
|
||||
174. **文档随批与登记批(Phase B T6,2026-09-26,本会话——循环 1)**:①architecture.md——Last Updated 行+D1 层表形态行补 BattleStageView 例外(StageWorld/StandeeBody,slot_row 伴随件留壳层,Phase A/B 双注记引 ADR-0006)。②HUD框架.md——v0.10 渲染技术注记行(Phase B 同构改造/契约不变/伴随件/C6 复用/预算不变/等价证明外链)。③battle.md——2026-09-26 实现注记修订行(B 区 Node2D 化/setter 面保持/弹道锚点壳层口径/外框 252px 零改动)。④board-node2d-migration-plan.md §3——「Phase B 预留」改写为「已落地」(实施面三点+挂点复用)+**样张硬前置条款按裁决①作废落文**(样张冻结只卡换皮/演出批=循环 2 前置,不卡结构迁移)。⑤Alpha 清单状态列更新(A5 已实证转周期化复跑件待建/F1F2 全绿注记/F4 待 T7 对拍+修订记录行)。⑥06 待办核对=本批无解决条目(呈现层测试分级条 B/C 档与本批无涉;样张硬前置非 06 登记项)。验证=文档三闸对 T0 基线逐字节零新增(lint/link/term 三 diff 空)+轻闸随批全绿。进入 T7。
|
||||
Reference in new issue
Block a user