diff --git a/game/smoke/ui_click_probe.gd b/game/smoke/ui_click_probe.gd index 1fc1a3d2..c44477ad 100644 --- a/game/smoke/ui_click_probe.gd +++ b/game/smoke/ui_click_probe.gd @@ -196,9 +196,13 @@ func _ready() -> void: continue if main.bonus_overlay.visible: # 迭代 10 三选一停点(BonusPickOverlay——奖励节点/通关兑付共用面;T17 硬锁批适配—— - # 本探针此前未适配该层,走到即卡死):真实信号路径点选首件+确认。 - main.bonus_overlay.press_card(0) - main.bonus_overlay.press_confirm() + # 本探针此前未适配该层,走到即卡死):真实信号路径点选首件+确认;同调位满=替换子态, + # 放弃新件(replace_chosen(-1) 真实信号路径)。 + if main.bonus_overlay._replace_box.visible: + main.bonus_overlay.replace_chosen.emit(-1) + else: + main.bonus_overlay.press_card(0) + main.bonus_overlay.press_confirm() _flags_placed.clear() continue if main.level_screen.visible: @@ -281,8 +285,19 @@ func _ready() -> void: if main.settlement.battle_result == "" and main.settlement.action_economy.phase == "Active": _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() + 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 清除断点。 + # T17 适配:战败或放弃二途皆达终局面(放弃=预算耗尽收口路径——见上),断点段前提不变。 await get_tree().process_frame var bp_file := "user://smoke_click_probe_reset.json" var iso_chk = load("res://core/save_manager.gd").new(bp_file)