fix(闸): 本批闸面三修——冒烟作用域/shot_probe 浮窗归一/click_probe 断言归位

- smoke_all.gd:确定性断言跨块引用 bb/crng 出作用域(Parse Error)——首跑结果
  hoist 为 boss1_ids/boss1_calls 函数级变量再比对
- shot_probe.gd:DS_DEBUG 写死后 boot 即开浮窗压在菜单上(boot 顶层检查/golden/文字
  占比三处受扰)——截图前走 _close_modal 真实单口归一,视觉契约与调试模式解耦
- ui_click_probe.gd:恒开断言原址在设置面开中段(ModalStack 遮挡语义下浮窗暂隐,
  误判)——挪至 boot 段断言即开,设置面关闭段补遮挡恢复断言
This commit is contained in:
DKChan committed 2026-10-16 03:27:36 +08:00
1 parent f1663ef935
commit d468595a5a
3 files changed
+20 -7

No files matched your search

+5
View File
@@ -44,6 +44,11 @@ func _ready() -> void:
# apply 隔离档出厂默认=窗口化 1280x800,恢复本探针设计前提。探针侧环境修正,零运行时改动)
main.settings_store.apply()
await get_tree().process_frame
# 调试浮窗归一(2026-10-16 用户令 DS_DEBUG 写死=true 后 boot 即开——视觉契约截图不含开发件,
# 走真实关闭单口 _close_modal;golden/shot 基线与调试模式解耦,发布前删写死时基线不受影响)
if main.debug_overlay != null and main.debug_overlay.visible:
main._close_modal(main.debug_overlay)
await get_tree().process_frame
# ① 菜单(启动态)——meta 锚经 S1 裁后换代(2026-10-08 用户裁:副标题锚改认现行文案;
# 帮助文腿整个退役——载体玩法速览牌 2026-10-06 用户令退役,checker 对应断言段同撤)
# 自检一(迭代 28 T4):boot 态顶层可见全屏层=start_overlay(内容层树遍历——屏壳是容器不当候选:
+5 -1
View File
@@ -2351,6 +2351,8 @@ func _smoke_global_variant() -> void:
var boss_settlement = load("res://core/battle_orchestrator.gd").new(_db, crng)
var boss_ok: bool = boss_settlement.begin_battle({"level_index": 2, "node_depth": 4, "hero_hp": int(_db.hero.max_hp), "node_type": "boss"})
check(boss_ok, "L2 Boss 战斗启动(node_depth=4 boss 节点——兜底回落断言载体)")
var boss1_ids: Array = []
var boss1_calls := 0
if boss_ok:
var bb = boss_settlement.minesweeper.current_board()
check(bb.board_variant_ids().size() == 1 and (String(bb.board_variant_ids()[0]) in ["magma", "ash"]),
@@ -2359,13 +2361,15 @@ func _smoke_global_variant() -> void:
check(crng.variant_calls > 0, "屏蔽后回落:variant_place 恢复取号(原全局取用零取号态消失)")
var snap: Dictionary = boss_settlement.presentation_snapshot()
check(_arr_str_eq(snap.get("board_variants", []), bb.board_variant_ids()), "快照投影:board_variants 与板载 region 行一致(横幅/角标唯一读取面)")
boss1_ids = bb.board_variant_ids()
boss1_calls = crng.variant_calls
# Boss 图确定性:同种子两遍逐位相同
var crng2 = _CountVariantRng.new()
crng2.set_master_seed(42)
var boss2 = load("res://core/battle_orchestrator.gd").new(_db, crng2)
if boss2.begin_battle({"level_index": 2, "node_depth": 4, "hero_hp": int(_db.hero.max_hp), "node_type": "boss"}):
var bb2 = boss2.minesweeper.current_board()
check(_arr_str_eq(bb2.board_variant_ids(), bb.board_variant_ids()) and crng2.variant_calls == crng.variant_calls,
check(_arr_str_eq(bb2.board_variant_ids(), boss1_ids) and crng2.variant_calls == boss1_calls,
"确定性:同种子 Boss 图两遍 board_variants/取号逐位相同(region 布置路径)")
# ④ 资源面偏斜投影(RewardEconomy 纯函数面——守恒/白名单/构造例/合成序)
var eco = load("res://core/reward_economy.gd").new(_db, load("res://core/rng_service.gd").new())
+10 -6
View File
@@ -46,6 +46,10 @@ func _ready() -> void:
add_child(main)
await get_tree().process_frame
var t_ui_ready := Time.get_ticks_msec() - t0
# 调试浮窗恒开(2026-10-16 用户令 DS_DEBUG 写死=true——boot 即开;他模态开时暂隐归 ModalStack
# 遮挡语义,恢复判据见设置面关闭段)
if not main.debug_overlay.visible:
_problems.append("调试浮窗启动未即开(恒开门控失守)")
# ---- 营地购买合成点击路径(元进度实现批——campbtn/购买/关闭全走真实按钮信号路径;
# 隔离存档换注 main.meta 保确定性(禁碰真实档 user://save.json);陈旧档段首清理)----
for p0 in ["user://smoke_click_probe_reset.json", "user://smoke_click_probe_reset.json.tmp"]:
@@ -167,20 +171,20 @@ func _ready() -> void:
_problems.append("音量滑杆未实时生效(master bus db %f ≠ %f)" % [AudioServer.get_bus_volume_db(master_idx), expect_db])
if absf(iso_s.volume_linear - 0.3) > 0.001:
_problems.append("音量未入 store(%f ≠ 0.3)" % iso_s.volume_linear)
# 调试入口断言改向(迭代 18 卡⑦ P2 甲——开始层角标退役迁宿主两屏;2026-10-16 用户令
# DS_DEBUG 写死=true=浮窗恒开〔原环境变量门控退役〕、角标门控由开始层移两屏)
# 调试入口断言改向(迭代 18 卡⑦ P2 甲——开始层角标退役迁宿主两屏;DS_DEBUG 写死后浮窗
# 恒开,本段(设置面开中)浮窗暂隐归 ModalStack 遮挡语义,恢复判据见下方关闭段)
if ProbeUiUtil.find_button(main._start_overlay, "调试", "prefix") != null:
_problems.append("开始层调试角标未退役(迭代 18 卡⑦ P2 甲迁宿主失守)")
if not main.debug_overlay.visible:
_problems.append("调试浮窗未恒开(2026-10-16 写死令失守)")
var settings_close: Button = ProbeUiUtil.find_button(main.settings_overlay, "返回", "prefix")
if settings_close == null:
_problems.append("设置面返回按钮缺失")
else:
settings_close.pressed.emit()
await get_tree().process_frame
if main.settings_overlay.visible or not main._start_overlay.visible:
_problems.append("设置面关闭后未恢复开始层")
if main.settings_overlay.visible or not main._start_overlay.visible:
_problems.append("设置面关闭后未恢复开始层")
if not main.debug_overlay.visible:
_problems.append("设置面关闭后调试浮窗未恢复(ModalStack 遮挡恢复失守)")
# 旧入口退役断言(卡④ AC③——测试调整板不再含减动效开关;14.5 起载体=调试浮窗)
var legacy_motion = ProbeUiUtil.find_check_button(main.debug_overlay, "减动效")
if legacy_motion != null: