merge: probe收尾两件

This commit is contained in:
DKChan committed 2026-10-02 08:15:11 +08:00
commit 1273372ff1
1 file changed
+39 -11
+39 -11
View File
@@ -100,7 +100,8 @@ func _ready() -> void:
_problems.append("设置面未打开(点击路径)")
else:
# 减动效转正双态(卡④ AC③):开=0.5 引擎态即时生效+落盘持久;关=1.0 回常态
var motion_btn: Button = _find_button_by_text(main.settings_overlay, "减动效") # 二轮 D2——开关已换 UiKit toggle 按钮形态
# T17 随批:按钮语义化改文案「结算演出动画:完整/快速」(状态值内联+操作提示)
var motion_btn: Button = _find_button_by_text(main.settings_overlay, "结算演出动画")
if motion_btn == null:
_problems.append("设置面减动效开关缺失")
else:
@@ -290,17 +291,44 @@ func _ready() -> void:
_run_modal_probes_once()
_play_one_action()
# ---- 预算耗尽收口(T17 硬锁批适配):选件变强后 probe 可能活过预算不再战败——断点段前提
# (冒险终局面在案)须主动满足:真实放弃路径(底栏放弃二击确认)收口到终局面。
if not _done and not main._end_overlay.is_open() and main.level_screen.visible:
var abandon_btn: Button = _find_button_by_prefix(main.level_screen, "放弃")
if abandon_btn != null:
abandon_btn.pressed.emit()
# (冒险终局面在案)须主动满足。收口驱动:任何停点层逐个推进(复用主循环分支语义)至
# level_screen 选路停点→真实放弃二击→终局面。战斗中则继续 autoplay 打完。
if not _done and not main._end_overlay.is_open():
var close_guard := 1200
while close_guard > 0 and not main._end_overlay.is_open():
close_guard -= 1
await get_tree().process_frame
abandon_btn.pressed.emit() # 二击确认(3s 窗内)
for i in 10:
await get_tree().process_frame
# ---- 断点续玩段(迭代 8 卡②③——真实按钮信号路径;存档面已隔离 iso_reset)----
# 前提注记:本探针首局常态 = L1 战败收口(问题=0 基线口径)——断点段①借战败结局验 T3 清除断点。
if main.bonus_overlay.visible:
if main.bonus_overlay._replace_box.visible:
main.bonus_overlay.replace_chosen.emit(-1)
elif main.bonus_overlay._continue_btn.visible:
main.bonus_overlay.press_continue()
elif main.adventure != null and not main.adventure._bonus_pending.is_empty():
main.bonus_overlay.press_card(0)
main.bonus_overlay.press_confirm()
else:
main.bonus_overlay.press_continue()
elif main.node_overlay.visible:
main.node_overlay.press_continue()
elif main.shop_overlay.visible:
main.shop_overlay.leave_pressed.emit()
elif main._inter_overlay.visible:
var next_btn2: Button = _find_button_by_prefix(main._inter_overlay, "进入下一层")
if next_btn2 != null:
next_btn2.pressed.emit()
elif main.level_screen.visible:
var abandon_btn: Button = _find_button_by_prefix(main.level_screen, "放弃")
if abandon_btn != null:
abandon_btn.pressed.emit()
await get_tree().process_frame
abandon_btn.pressed.emit() # 二击确认(3s 窗内)
for i in 10:
await get_tree().process_frame
break
elif main.settlement != null and main.settlement.battle_result == "" \
and main.settlement.action_economy.phase == "Active":
_play_one_action()
# 排播期/Waiting 等待态=自然流逝(演播秒级、锁随队列空解除)
# T17 适配:战败或放弃二途皆达终局面(放弃=预算耗尽收口路径——见上),断点段前提不变。
await get_tree().process_frame
var bp_file := "user://smoke_click_probe_reset.json"