diff --git a/game/smoke/ui_click_probe.gd b/game/smoke/ui_click_probe.gd index ea906268..b5a5e2b6 100644 --- a/game/smoke/ui_click_probe.gd +++ b/game/smoke/ui_click_probe.gd @@ -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"