From d68c32470e4272f1c56fa4e5b64f39b3222f1e6e Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Fri, 6 Nov 2026 05:53:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B(=E7=9C=9F=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=8C=963/7=C2=B7ui=5Ftune=5Fprobe):=202=E5=A4=84emit=E5=A4=84?= =?UTF-8?q?=E7=BD=AE=E2=80=94=E2=80=94boot=E5=BC=80=E7=AA=97emit=E2=86=92?= =?UTF-8?q?=5Fshow=5Fdebug=5Foverlay=E7=9B=B4=E8=B0=83(=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E6=80=81=E8=A7=92=E6=A0=87=E6=81=92=E9=9A=90main.gd:138,?= =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E8=B7=AF=E5=BE=84=E5=B7=B2=E9=80=80=E5=BD=B9?= =?UTF-8?q?,:123=E5=9C=A8=E5=86=8C=E5=85=88=E4=BE=8B=E2=80=94=E2=80=94?= =?UTF-8?q?=E4=BF=9D=E7=95=99emit=E5=8F=AA=E4=BC=9A=E5=9C=A8=E9=9A=90?= =?UTF-8?q?=E6=80=81=E5=81=87=E5=BC=80),=E5=85=B3=E9=97=AD=E9=92=AEemit?= =?UTF-8?q?=E2=86=92=E7=9C=9F=E7=82=B9push=5Fclick;=20=E5=88=A4=E6=8D=AE?= =?UTF-8?q?=E5=87=BA=E5=A4=84=E6=B3=A8=E8=AE=B06=E6=9D=A1(test-conventions?= =?UTF-8?q?:49=E8=B0=83=E8=AF=95=E9=9D=A2=C3=974=E7=BB=84+architecture:168?= =?UTF-8?q?=E7=A7=8D=E5=AD=90=E4=B8=89=E5=88=86+code-conventions:21?= =?UTF-8?q?=E9=9B=B6=E8=BF=9E=E6=8E=A5=E5=B7=A1=E6=A3=80);=20=E8=A7=84?= =?UTF-8?q?=E6=A0=BC=E7=BC=BA=E5=8F=A3=E5=8F=91=E7=8E=B0#1:=20=5Foverlay?= =?UTF-8?q?=5Fzero=5Fmotion=5Fcontract=E9=9B=B6=E5=8A=A8=E6=95=88=E5=A5=91?= =?UTF-8?q?=E7=BA=A6=E6=97=A0=E7=8E=B0=E8=A1=8C=E6=96=87=E6=A1=A3=E5=8F=A5?= =?UTF-8?q?=E5=8F=AF=E9=94=9A(=E6=BA=90=E5=8D=A117=E5=8D=A1=E2=91=A2?= =?UTF-8?q?=E5=B7=B2=E9=80=80=E5=BD=B9),=E8=AE=B0=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E4=B8=8D=E9=80=A0=E9=94=9A=E5=BE=85=E6=94=B6=E5=B0=BE=E5=91=88?= =?UTF-8?q?=E6=8A=A5;=20=E6=9C=AC=E6=AD=A5=E5=87=AD=E6=8D=AE:=20ui=5Ftune?= =?UTF-8?q?=5Fprobe=20headless=E7=9B=B4=E8=B7=91PASS=20exit=3D0(N=3D10?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=85=A8=E9=93=BE=E8=B7=AF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/probe/ui_tune_probe.gd | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/game/probe/ui_tune_probe.gd b/game/probe/ui_tune_probe.gd index b90c2aca..3c910611 100644 --- a/game/probe/ui_tune_probe.gd +++ b/game/probe/ui_tune_probe.gd @@ -43,7 +43,8 @@ func _ready() -> void: # ① 全局浮层角标开窗(调试入口=UI 最顶层浮层,任何 UI 不遮挡—— # main 直接子层、LAYER_CONTRACT 末位 float 类;boot 菜单优先不开浮窗,角标真实点击路径开窗; # 悬浮于菜单之上——开始层不隐藏;树序新基准=登记册末位(确认弹窗之后=绘制序最上)) - main.ui.screens.debug_badge.pressed.emit() + # oracle: design/engineering/test-conventions.md:49 调试面=DebugOverlay/DS_DEBUG——发布态恒隐无 UI 开启口、开发期临时启用(①开窗层级组) + main._show_debug_overlay() # 发布态角标恒隐(main.gd:138 _debug_entry 缺省 false)——角标信号路径已退役(:123 同款先例),开窗经组合根直调承载 await get_tree().process_frame if not main.ui.modals.menu.debug_overlay.visible: problems.append("调试浮层角标点击后浮窗未开(全局浮层入口失守)") @@ -56,12 +57,14 @@ func _ready() -> void: if str(boosted_atk) not in main.ui.modals.menu.debug_overlay.effect_text() or str(boosted_hp) not in main.ui.modals.menu.debug_overlay.effect_text(): problems.append("生效预览未联动(%s)" % main.ui.modals.menu.debug_overlay.effect_text()) # ③ 应用(真实信号路径:apply_requested → 组合根)——E4 后加成零表写,生效断言移至 ⑧ 战斗快照 + # oracle: design/engineering/test-conventions.md:49 调试面加成链路:滑条联动/应用/重置、hero 表运行期只读(②③④⑦组) main.ui.modals.menu.debug_overlay.press_apply_for_probe() # ④ 重置(重开浮窗 → 重置按钮真实路径;面板百分比归零——下一场战斗生效值回到基线) main._show_debug_overlay() main.ui.modals.menu.debug_overlay.press_reset_for_probe() # ⑤ 批量模拟全链路(N=10——走 level_autoplay 与 headless 扫描同口径;表基线由组合根复位; # 菜单态上下文未锁定=按钮可点,is_running 语义=模拟在跑〔18卡⑦ 与对局禁用态拆分〕) + # oracle: design/engineering/test-conventions.md:49 调试面批量模拟链路:N=10 输出关卡完成率/剩余 HP/败北节点(⑤组) main.ui.modals.menu.debug_overlay.set_sliders(100, 0) main.ui.modals.menu.debug_overlay.set_sim_count(10) main.ui.modals.menu.debug_overlay.press_simulate_for_probe() @@ -116,6 +119,7 @@ func _ready() -> void: # ⑨ 对局中可开(18卡⑦ P2 甲/T2 防护——S1+ 停机点回归闸):战斗屏角标真实信号路径开窗; # 棋盘输入不锁、状态角标不置灰(「默认开×遮挡复活」下必锁死的破约回归面); # 对局中批量模拟/两层调试两钮禁用;当局数据六项与只读访问器逐项一致;关闭钮真实路径收窗恢复 + # oracle: design/engineering/test-conventions.md:49 调试面对局态:不锁棋盘输入/两钮禁用/当局数据只读一致(⑨组) var dbg_badge: Button = main.ui.screens.debug_badge if dbg_badge == null or dbg_badge.visible: problems.append("对局中调试浮层角标非恒隐(发布态语义失守——卡⑦ 删写死行批)") @@ -150,7 +154,7 @@ func _ready() -> void: if close_btn == null: problems.append("浮窗关闭钮缺失(真实收窗路径中断)") else: - close_btn.pressed.emit() + ProbeUiUtil.push_click(main, close_btn) if main.ui.modals.menu.debug_overlay.visible or main.ui.flow.locks_input(): problems.append("对局中关闭浮窗后态失守(visible=%s locked=%s)" % [str(main.ui.modals.menu.debug_overlay.visible), str(main.ui.flow.locks_input())]) @@ -159,6 +163,7 @@ func _ready() -> void: _overlay_zero_motion_contract(main, problems) # ⑩ 种子三分单点断言(18卡⑦ C1——判定只落 _seed_value() 单点;对局态不影响本判定面): # 显式合法整数全场景优先(含首局)→ 首局(存档布尔 false)恒 42 → 非首局空框引擎熵连抽不全等 42 + # oracle: design/engineering/architecture/architecture.md:168 seed_value=组合根公开服务面(⑩种子三分判定单点组) main.ui.modals.menu.debug_overlay.seed_edit.text = "777" if main.seed_value() != 777: problems.append("显式种子输入未优先(_seed_value != 777——C1 ①失守)") @@ -199,6 +204,7 @@ func _ready() -> void: # 全连接巡检——白名单={视图自身八方法 + 注册面模态编排口 ui.flow.close(closed 外发消费—— # 注册面批把该连接目标从组合根转发壳改为 flow 真方法,机检白名单随批登记同一连接)}; # 当局数据区块=纯标签零连接在此被一并约束(新增任何连接=红须入册审查)。 +# oracle: design/engineering/code-conventions.md:21 视图零核心写调用、依赖单向(白名单外零连接巡检组) func _overlay_readonly_contract(main: Node, problems: Array) -> void: var overlay: Control = main.ui.modals.menu.debug_overlay var stack: Array = [overlay]