写卡修订(架构审查presentation层封装修复批v1.1): grilling复核六项自裁折入——T2/T5时序修正(:69与ui_kit公开化同移T5)+main.gd例外区间实数化(25-30→28-32=既有1+服务17+句柄口12)+flash归位形态修正(vitals自持owner与tween先例_play_hp_flash,宿主成员零增)+T3签名定稿(vitals14/motion14/hover7,绘制路径逐个getter免帧分配)+削弱申报追加ui_struct_probe两串; 处置记录同步3处(T1一致性义务); 引擎三查NEVER/Gotchas/性能预算零命中未加载领域reference(逐字保留无新形态); pipeline_gate PASS
This commit is contained in:
1 parent
7fa1422021
commit
5fc9a131bb
2 files changed
+16
-14
No files matched your search
@@ -57,7 +57,7 @@
|
||||
| _order | :131 写;:410 读 | 同上 |
|
||||
| _dead | :173/:262 写(击杀/复活);:91/:98/:138/:171/:248/:277 读 | 生命周期行为——归位为子件公开方法(标记死亡/复位),宿主停写 |
|
||||
| _hp_cur | :419 读 | 子件自管(宿主零直写)——读走公开读法 |
|
||||
| _hp_flash_tw | :254-258 宿主自建 tween 改宿主自身 modulate | 误放子件的宿主动画句柄——**归位回 standee_body 成员**(成员 10→11,预算内) |
|
||||
| _hp_flash_tw | :254-258 宿主自建 tween 改宿主自身 modulate | 归位为子件行为方法 `play_hp_flash()`——vitals 已自持 `_owner: Node2D` 与 tween 先例(apply_hp/_hp_tween 同型),句柄留 vitals,宿主成员零增 |
|
||||
|
||||
**standee_body.gd → mo(standee_motion.gd 实例,7 字段)**:_hero_state :40 写(生成时置 IDLE)→ 走既有公开方法 apply_hero_state(:300 在役先例);_intent_visible/_glyph/_col/_scale/_rot 写 :140/:145/:159-161/:181、读 :58/:431-458 → 意图显示是演出行为——归位为子件公开方法(显示/隐藏/复位),绘制所需状态经一个公开读取口交付(宿主 _draw 消费,:439-458 现役);_portrait_sprite :284/:431 读、生成期挂载 → 挂载走公开口,绘制读取走公开读法。
|
||||
|
||||
@@ -87,10 +87,10 @@
|
||||
|
||||
| 触件 | 公开方法现值 | 成员现值 | 本批预期 |
|
||||
|---|---|---|---|
|
||||
| main.gd | 1 | 15(默认顶) | 公开方法升 25–30——**指标例外申报**(规则 B6);成员零增 |
|
||||
| main.gd | 1 | 15(默认顶) | 公开方法升 28–32(构成=既有 1+服务 17+句柄口 12)——**指标例外申报**(规则 B6);成员零增 |
|
||||
| 五分文件 | 各 0 | 各 0 | 公开方法 3–15,预算内 |
|
||||
| level_map_screen / battle_end_overlay / debug_overlay | 8/6/19 | 7/5/4 | A1 只改字段名,两键零变化 |
|
||||
| standee_body | 20(顶) | 10 | 公开方法零增;成员 10→11(_hp_flash_tw 归位),预算内 |
|
||||
| standee_body | 20(顶) | 10 | 公开方法与成员双零增(flash 行为归位 vitals 自持) |
|
||||
| standee_vitals / standee_motion | 1/6 | 12/11 | 行为归位+读投影公开方法净增(各 ≤20 内);成员零增 |
|
||||
| board_view | 27(基线在册) | 31(基线在册) | **零净增**(C 族走构造交付;A2 走 board_hover 公开面) |
|
||||
| board_hover | 0 | 9 | 公开方法 +6,预算内 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 需求卡片:架构审查 presentation 层封装修复批(2026-11-04)
|
||||
|
||||
来源:待办清单「架构审查余项——闸面缺口、豁免存废、零测试点名与架构文档漂移」条目 presentation 层私取面部分(**唯一事实源**:reports/处置-presentation层封装修复-2026-11-04.md——处置记录与本卡并行成文,本卡开工时 T1 首步核其已落盘且与本卡第 3 节逐条一致,冲突即 L3 停卡。设计闭合凭据=2026-11-04 设计讨论会话用户逐项裁决〔改法A=三个内部数据类字段公开化;方案一=四族一批做完〕+审计报告 presentation 普查+code-conventions §1.6)。验收档:**中**(零行为变更批——做错的后果玩家可见但不损持久状态:存档/RNG/结算/数值零触碰)。改动面:游戏代码(含随逻辑改的测试代码)。
|
||||
来源:待办清单「架构审查余项——闸面缺口、豁免存废、零测试点名与架构文档漂移」条目 presentation 层私取面部分(**唯一事实源**:reports/处置-presentation层封装修复-2026-11-04.md——处置记录与本卡并行成文,本卡开工时 T1 首步核其已落盘且与本卡第 3 节逐条一致,冲突即 L3 停卡。设计闭合凭据=2026-11-04 设计讨论会话用户逐项裁决〔改法A=三个内部数据类字段公开化;方案一=四族一批做完〕+审计报告 presentation 普查+code-conventions §1.6)。验收档:**中**(零行为变更批——做错的后果玩家可见但不损持久状态:存档/RNG/结算/数值零触碰)。状态:已写卡(v1.1,2026-11-04 grilling 复核折入——T2/T5 时序修正+main.gd 例外区间实数化+flash 归位形态修正+T3 签名定稿+削弱申报追加)。改动面:游戏代码(含随逻辑改的测试代码)。
|
||||
|
||||
## 1. 目标与完成定义
|
||||
|
||||
@@ -86,7 +86,7 @@ A1 三件
|
||||
A2 五件
|
||||
game/presentation/views/standee_vitals.gd 【非行为 R2】构造/配置交付口+死亡/复位行为方法+读投影(成员 12 零增)
|
||||
game/presentation/views/standee_motion.gd 【非行为 R2】意图显示/隐藏/复位行为方法+绘制状态读口+挂载口(成员 11 零增)
|
||||
game/presentation/views/standee_body.gd 【非行为 R2】55 处改址+_hp_flash_tw 归位为宿主成员(10→11)+头注
|
||||
game/presentation/views/standee_body.gd 【非行为 R2】55 处改址+头注(成员零增——flash 行为归位 vitals 自持 tween)
|
||||
game/presentation/views/board_hover.gd 【非行为 R2】+6 公开面(重绑口/复位/刷新/悬停/chord/连接目标/读口)
|
||||
game/presentation/views/board_view.gd 【非行为 R2】7 处改址(公开方法与成员零净增——贴顶件)
|
||||
B 七件
|
||||
@@ -120,7 +120,7 @@ C 四件
|
||||
**T2 A1 三类字段公开化**(估时 0.5 工作日;区间 0.25–0.75)
|
||||
取用:T1 底账。产出:A1 族 206 行清零。
|
||||
|
||||
- [ ] level_map_screen.gd:处置记录 §三 A1 表 14 字段去下划线(体零改动),87 处 `_map._x` → `_map.x`;:69 `UiKit._gradient_base` → `UiKit.gradient_base`(随 T5 公开化先行改址,孤立验证在 T5 对账);头注补一句内部数据类定位
|
||||
- [ ] level_map_screen.gd:处置记录 §三 A1 表 14 字段去下划线(体零改动),87 处 `_map._x` → `_map.x`;头注补一句内部数据类定位(:69 UiKit 调用改址随 T5 同批生效)
|
||||
- [ ] battle_end_overlay.gd:同型 14 字段+69 处;debug_overlay.gd:同型 14 字段+50 处
|
||||
- [ ] sweep 测试件骨架与 A1 断言组先行落盘(presentation_encapsulation_sweep_test.gd:三文件非空+class 正锚+`_map\._|st\._` 模式零命中+公开字段正锚+`_MapState|_EndOverlayState|_DebugState` 文件外零消费者断言〔pres封装 V1〕)
|
||||
- [ ] 孤立验证:sweep A1 组+冒烟——出红只跑红件最小单元
|
||||
@@ -128,9 +128,9 @@ C 四件
|
||||
**T3 A2 standee 与 board_hover**(估时 1.0 工作日;区间 0.75–1.5)
|
||||
取用:T1 底账、处置记录 §三 A2 逐字段归属表。产出:A2 族 62 行清零。
|
||||
|
||||
- [ ] standee_vitals.gd:身份/配置字段(kind/display_name/enemy_id/armor/order/hp_max)收构造与配置交付口(签名按现役调用点数据形态定,成员 12 零增);_dead 归位为 `mark_dead()`/`reset()` 型公开方法;读投影(display_name()/hp_cur()/is_dead() 型)按宿主消费面落
|
||||
- [ ] standee_motion.gd:意图行为归位 `show_intent(glyph, col)`/`hide_intent()`/`reset()` 型;绘制状态读口一个(返回 intent 绘制四态,宿主 _draw 消费);portrait 挂载口+读口;_hero_state 生成期走既有 apply_hero_state
|
||||
- [ ] standee_body.gd:55 处改址(逐字段按归属表);`var _hp_flash_tw` 归位宿主成员(:254-258 逻辑随迁,体逐字);头注「外部直访冻结成员」句按新面改写
|
||||
- [ ] standee_vitals.gd 公开面 14(既有 apply_hp+新增 13,成员 12 零增):`configure_identity(kind: String, display_name: String, enemy_id: String, armor: String)`、`set_max_hp(v: float)`、`set_order(i: int)`、`set_dead(v: bool)`、读投影 `is_dead()/kind()/armor()/display_name()/enemy_id()/order()/hp_cur()/hp_max()`——宿主 :39/:82-85/:96/:131/:173/:262 写点与 :48/:53/:66-69/:91/:98/:138/:171/:246-248/:277/:340-342/:419/:465-482 读点逐一对口
|
||||
- [ ] standee_motion.gd 公开面 14(既有 6+新增 8,成员 11 零增):`show_intent(glyph: String, col: Color)`、`hide_intent()`(:140/:145/:181 三处同型归位);绘制路径读投影逐个 getter `intent_visible()/intent_glyph()/intent_col()/intent_scale()/intent_rot()/portrait_sprite()`(_draw 每帧调用,免逐帧字典分配——性能预算依据);_hero_state 生成期走既有 apply_hero_state;非绘制路径沿用现役 state_probe() 字典形态
|
||||
- [ ] standee_body.gd:55 处改址(逐字段按归属表;flash_hit() 体改调 `st.play_hp_flash()`,tween 逻辑整体归位 vitals——宿主成员零增);头注「外部直访冻结成员」句按新面改写
|
||||
- [ ] board_hover.gd:+6 公开面(rebind(minesweeper)/reset()/refresh_after_paint()/hover_at(pos)/detect_chord(c)/on_shell_mouse_exited 更名公开化/hover_pos() 读口——七处消费逐一对口);board_view.gd 7 处改址
|
||||
- [ ] sweep A2 断言组(standee_body `\bst\._|\bmo\._` 零命中+board_view `_hover_comp\._` 零命中+新公开面正锚〔pres封装 V2〕)
|
||||
- [ ] 孤立验证:sweep A2 组+渲染 golden+战斗探针——出红只跑红件最小单元
|
||||
@@ -150,7 +150,7 @@ C 四件
|
||||
**T5 C 族+批收口**(估时 0.375 工作日;区间 0.25–0.5)
|
||||
取用:全部前卡。产出:C 族清零+结构性恒零证据+批收口两件。
|
||||
|
||||
- [ ] ui_kit.gd 三工厂公开化(体逐字);cell_mark_overlay 构造收遮罩下发口(board_view 构造点随改,board_view 面零净增)+2 处改址;ui_assembler/settings_overlay 改址;level_map_screen :69 改址对账(T2 已预改)
|
||||
- [ ] ui_kit.gd 三工厂公开化(体逐字);cell_mark_overlay 构造收遮罩下发口(board_view 构造点随改,board_view 面零净增)+2 处改址;ui_assembler/settings_overlay 改址;level_map_screen :69 `UiKit.gradient_base` 改址(与本步 ui_kit 公开化同批生效)
|
||||
- [ ] sweep C 断言组(ui_kit 私有工厂全库零外调+cell_mark `_owner\._` 零命中+正锚〔pres封装 V4〕);run_all.gd manifest 追加 1 行(sweep,expect 0)
|
||||
- [ ] 全量 sweep 复核+冒烟+渲染 golden+探针套件终读数(零行为变更证据链闭合)
|
||||
- [ ] **实现报告** `reports/iter<N>-实现报告-<日期>.md`:各卡状态+S13 键改前改后对账(T1 基线逐件核+main.gd 例外键落基线记录)+探针替换清单执行账+实现决定记录
|
||||
@@ -169,11 +169,11 @@ T1 0.25|T2 0.5|T3 1.0|T4 2.0|T5 0.375。区间合计 3.5–5.25 工作
|
||||
|---|---|---|---|---|---|---|
|
||||
| R1 A1·战末弹层 | battle_end_overlay 14 字段+69 处改址 | sweep A1 组〔pres封装 V1〕;冒烟+战末弹层既有探针回归 | 探针 | `BattleEndOverlay.open_victory()`(战末弹层真实开合链) | 私取模式零命中+公开字段正锚+文件外零消费者;弹层可见性与载荷零漂移 | 既有:站桩敌人呈现与结算演出落点 |
|
||||
| R2 A1·调试浮窗 | debug_overlay 14 字段+50 处改址 | sweep A1 组〔pres封装 V1〕;调参相关探针既有回归 | 探针 | `TuneSimController.run()`(调试浮窗批量模拟入口) | 同 R1 判据面;浮窗呈现与批量模拟读数零漂移 | 既有:调参测速批量模拟(逐帧步进与统计读数) |
|
||||
| R3 A1·关卡画面 | level_map_screen 14 字段+87 处+:69 改址 | sweep A1 组〔pres封装 V1〕;冒烟+选路集成既有回归 | 集成+探针 | 选路集成链(起关→选路→断点重生成)+冒烟全链 | 私取模式零命中+公开字段正锚;选路链零漂移 | 既有:起关/选路/断点重生成同图(集成) |
|
||||
| R3 A1·关卡画面 | level_map_screen 14 字段+87 处改址 | sweep A1 组〔pres封装 V1〕;冒烟+选路集成既有回归 | 集成+探针 | 选路集成链(起关→选路→断点重生成)+冒烟全链 | 私取模式零命中+公开字段正锚;选路链零漂移 | 既有:起关/选路/断点重生成同图(集成) |
|
||||
| R4 A2·站桩三件 | standee 三件改址+_hp_flash_tw 归位 | sweep A2 组〔pres封装 V2〕;渲染 golden 逐像素零转红;站桩探针既有回归 | 探针+golden | `BattleStageView` 真实实例化(站桩渲染链) | 站桩呈现逐位同;子件私取模式零命中+新公开面正锚 | 既有:站桩敌人呈现与结算演出落点 |
|
||||
| R5 A2·悬停子件 | board_hover 六公开面+board_view 7 处改址 | sweep A2 组〔pres封装 V2〕;ui_input_probe 既有回归 | 探针 | `ui_input_probe` 合成鼠标事件→`BoardView._gui_input()` | 悬停三语义零漂移;子件私取零命中+六公开面正锚 | 既有:棋盘悬停反馈(三语义光标/目标格边框/路径预览点迹) |
|
||||
| R6 B·组合根交接面 | main+五分文件+探针/测试替换 | sweep B 组〔pres封装 V3〕;14 件替换后当轮真实跑绿;冒烟+系统测试 | 集成+探针 | `ui_click_probe` 大门两分支段(main 处理器→分文件→营地态全链)+探针套件其余件 | 六文件私取模式零命中+新公开面正锚;探针断言零删改引用改址后全绿 | 既有:营地大门两分支确认与断点续玩接线 |
|
||||
| R7 C·杂项公开面 | ui_kit 三工厂+cell_mark 构造交付+改址 | sweep C 组〔pres封装 V4〕;layout/shot 探针既有回归 | 单元+探针 | 界面装配真实链(ui_kit 工厂消费面) | 私有工厂零外调+cell_mark 私取零命中+呈现零漂移 | 既有:站桩呈现定值与素材绑定 |
|
||||
| R7 C·杂项公开面 | ui_kit 三工厂+level_map :69+cell_mark 构造交付+改址 | sweep C 组〔pres封装 V4〕;layout/shot 探针既有回归 | 单元+探针 | 界面装配真实链(ui_kit 工厂消费面) | 私有工厂零外调+cell_mark 私取零命中+呈现零漂移 | 既有:站桩呈现定值与素材绑定 |
|
||||
|
||||
**零行为改动面的证据义务**:本卡全部行为面为非行为改动(零行为变更批)——不设「行为改动」行;每行零变更证明=渲染 golden 零转红+探针套件零转红+冒烟/单元零转红+sweep 恒零。能力行全部「既有」、零新增——判断依据:玩家可观测能力面零变化,无新能力可登记,`game/tests/README.md` 零编辑(批末核对义务在 T5)。
|
||||
|
||||
@@ -182,6 +182,8 @@ T1 0.25|T2 0.5|T3 1.0|T4 2.0|T5 0.375。区间合计 3.5–5.25 工作
|
||||
**测试削弱申报**(允许改/删的旧断言全清单;未申报的删改由独立验收审计判红):
|
||||
1. 探针/测试 14 件中与公开化名字交集的 `main._x` 引用 → 改公开名(清单=T1 精确清单)——随被测改动同步的引用形态迁移,断言内容零改动,无一条删除断言或放宽阈值。
|
||||
|
||||
**测试削弱申报补充(v1.1)**:2. ui_struct_probe.gd:144-146 退出调用链源码串断言两处("MainEscFlow._on_quit(self)"→"MainEscFlow.on_quit(self)"、"root._quit_game()"→"root.quit_game()")——随公开化改址的引用形态迁移,断言意图(调用链完整)不变;同函数 :141 `get_method() == "_on_esc_quit"` 断言零改动(处理器保私有)。
|
||||
|
||||
**独立验收审计**:入口=批末 T5 后、合并前;报告=`reports/iter<N>-验收审计-<日期>.md`;由没参与实现的会话或子代理执行,核对:对照表逐行断言真实存在且当轮跑批通过、零行为变更证据链在案(golden/探针/冒烟改前改后零转红读数)、测试削弱申报 1 条之外零删改、第 13 节无效成员零残留、S13 键对账(含 main.gd 例外键申报一致)。未过不合并。
|
||||
|
||||
## 9. 异常分级
|
||||
@@ -226,8 +228,8 @@ T1 0.25|T2 0.5|T3 1.0|T4 2.0|T5 0.375。区间合计 3.5–5.25 工作
|
||||
|
||||
新增 .gd 仅 1 个测试件(SceneTree 测试脚本,全类型标注、零公开生产面)。生产代码全落既有件,按「存量触面一查」对账(S13 默认阈值:公开方法 ≤20/类变量 ≤15/分支 ≤8/返回 ≤6):
|
||||
|
||||
- **指标例外申报(main.gd)**:键=`game/presentation/main.gd|quality/max-public-methods`,现值 1,预期 25–30(T1 实数核);理由=组合根服务面(分文件消费的公开口集中于此),架构先例=level_runner.gd 公开方法 33 在册基线、adventure_runner.gd 类变量 23 在册基线;落法=实现批 `python tools/gdstyle_gate.py --refresh`(人工专用通道,随批重生成)。
|
||||
- **贴顶件约束**:board_view 27/31(基线在册)**零净增**(本批对 board_view 的全部动作=7 处改址+构造点传参);standee_body 公开方法 20 贴顶零增(成员 10→11 仅 _hp_flash_tw 归位);debug_overlay 公开方法 19——A1 只改字段名不动方法,零变化。
|
||||
- **指标例外申报(main.gd)**:键=`game/presentation/main.gd|quality/max-public-methods`,现值 1,预期 28–32(构成=既有 1+服务公开化 17+句柄读写口 12;T1 实数核);理由=组合根服务面(分文件消费的公开口集中于此),架构先例=level_runner.gd 公开方法 33 在册基线、adventure_runner.gd 类变量 23 在册基线;落法=实现批 `python tools/gdstyle_gate.py --refresh`(人工专用通道,随批重生成)。
|
||||
- **贴顶件约束**:board_view 27/31(基线在册)**零净增**(本批对 board_view 的全部动作=7 处改址+构造点传参);standee_body 公开方法 20 贴顶零增(成员零增——flash 归位 vitals 自持);debug_overlay 公开方法 19——A1 只改字段名不动方法,零变化。
|
||||
- **类变量净增件**:cell_mark_overlay 13→14(构造交付的遮罩口引用);其余触件零增(A1 改名不增数;vitals/motion 成员零增)。
|
||||
- **公开方法净增件**:五分文件 0→3–15;board_hover 0→6;standee_vitals 1→预算内、standee_motion 6→预算内(均 ≤20);ui_kit 0→3;main.gd 见例外申报。
|
||||
- **迁移函数对账**:本批公开化方法全部「体逐字去下划线」,无跨文件迁移体;唯一迁移=_hp_flash_tw 归位(standee_body 内自用逻辑随迁,非跨件函数迁移);若 T1 读数发现源函数 branches/returns 超默认登记值,随迁即拆函数(拆分不改语义,与第 13 节区分)。
|
||||
|
||||
Reference in new issue
Block a user