From 5a39b1162b0571804780aa33808546c4bda69321 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Thu, 22 Oct 2026 22:41:58 +0800 Subject: [PATCH] =?UTF-8?q?iter33=20=E5=8D=A1=E2=91=A1=20T2=20=E5=8F=98?= =?UTF-8?q?=E5=BC=82=E4=BC=B4=E7=94=9F=E6=96=AD=E8=A8=80=E5=BC=BA=E5=8C=96?= =?UTF-8?q?=EF=BC=9AV2d=20=E8=A1=A5=E6=B8=B2=E6=9F=93=E9=9D=A2=E5=8F=AF?= =?UTF-8?q?=E8=A7=81=E6=8C=89=E9=92=AE=E8=AE=A1=E6=95=B0=E9=94=9A=EF=BC=88?= =?UTF-8?q?=E5=8F=A5=E6=9F=84=E7=BC=9D=E7=9B=B2=E5=8C=BA=E7=94=B1=E5=8F=98?= =?UTF-8?q?=E5=BC=82A=E6=9A=B4=E9=9C=B2=E2=80=94=E2=80=94=E6=97=A7?= =?UTF-8?q?=E9=92=AE=E6=8E=A5=E5=9B=9E=E5=8F=A5=E6=9F=84=E5=A4=96=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E4=B8=8D=E7=BA=A2=EF=BC=8C=E4=B8=8E=E5=8D=A1=E2=91=A2?= =?UTF-8?q?=20sl4=20=E5=90=8C=E6=AC=BE=E6=95=99=E8=AE=AD=EF=BC=89=EF=BC=9B?= =?UTF-8?q?=E5=8F=98=E5=BC=82A=EF=BC=88=E7=94=9F=E6=B6=AF=E9=92=AE?= =?UTF-8?q?=E6=8E=A5=E5=9B=9E=E2=86=92=E5=86=92=E7=83=9F=E7=BA=A2=EF=BC=89?= =?UTF-8?q?/=E5=8F=98=E5=BC=82B=EF=BC=88=E8=BF=9B=E5=85=A5=E5=AD=98?= =?UTF-8?q?=E6=A1=A3=E6=8E=A5=E9=94=99=E5=B1=82=E2=86=92=E5=B1=8F=E6=B5=81?= =?UTF-8?q?=205=20=E7=BA=A2=E5=90=AB=20mn3=EF=BC=89=E5=AE=9E=E6=B5=8B?= =?UTF-8?q?=E9=97=AD=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/smoke/smoke_all.gd | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/game/smoke/smoke_all.gd b/game/smoke/smoke_all.gd index 220f74bb..ee05c892 100644 --- a/game/smoke/smoke_all.gd +++ b/game/smoke/smoke_all.gd @@ -238,6 +238,14 @@ func _topmost_visible_layer(main: Node) -> Node: return best +# 渲染面可见按钮递归计数(V2d mn1/mn2 变异锚——句柄缝盲区闭合) +func _count_visible_buttons(node: Node) -> int: + var n := 1 if (node is Button and node.visible) else 0 + for c in node.get_children(): + n += _count_visible_buttons(c) + return n + + # ---- boot 链路时序后置条件(启动态六断言;只立行为可判断言,不造假时序)---- func _smoke_boot_chain() -> void: print("--- 迭代28 T2 boot 链路时序后置条件(V2:六断言)---") @@ -289,6 +297,8 @@ func _smoke_boot_chain() -> void: for old_btn in ["lvbtn", "resumebtn", "campbtn", "careerbtn"]: check(not (old_btn in main._menu_screen), "V2d 四旧钮句柄零命中·%s(彻底撤出——禁隐藏态禁置灰态残留)〔卡② mn2〕" % old_btn) + check(_count_visible_buttons(main._start_overlay) == 3, + "V2d 渲染面可见按钮计数==3(旧钮接回即红——渲染面锚,句柄缝盲区闭合)〔卡② mn1/mn2〕") # ⑤ 闲时会话(_ready 即建、永非 null、在树) check(main.run_scope != null and not main.run_scope.is_adventure and main.run_scope.is_inside_tree(), "V2e run_scope 非空且为闲时会话(is_adventure=false+is_inside_tree)〔装配生命批 V2〕")