@@ -266,23 +266,18 @@ def _handle_prepare_combat(self) -> None:
266266 return
267267
268268 if self ._state .node == 'U' :
269- if self ._state .stage == 1 and self ._has_chosen_fleet :
270- self ._state .node = 'A'
271- _log .info ('[决战] 首次进入第 1 小节,跳过节点识别并默认使用节点 A' )
272- else :
273- self ._state .node = self ._map .recognize_node ()
269+ # 初次进入都要进行节点识别
270+ self ._state .node = self ._map .recognize_node ()
274271 _log .info (
275272 '[决战] 出征准备 (小关 {} 节点 {})' ,
276273 self ._state .stage ,
277274 self ._state .node ,
278275 )
279276
280277 # ── 恢复模式检测 ─────────────────────────────────────────────
281- # 统一在进图后根据节点判定:只要不是首次进入的 1A,均视为恢复模式。
282- if not self ._resume_mode and (
283- not self ._state .is_begin () or (self ._state .is_begin () and not self ._has_chosen_fleet )
284- ):
285- self ._resume_mode = True
278+ # 恢复模式逻辑修改,默认进入恢复模式,如果是首节点,则不进入恢复模式
279+ if self ._state .is_begin ():
280+ self ._resume_mode = False
286281 _log .info (
287282 '[决战] 检测到恢复模式 (节点={}, has_chosen_fleet={})' ,
288283 self ._state .node ,
@@ -291,30 +286,25 @@ def _handle_prepare_combat(self) -> None:
291286
292287 # 先使用技能,再注册舰船,如果是未知节点,也判定一下技能是否使用
293288 current_node = self ._state .node
294- time .sleep (0.5 ) # 等待动画稳定后截图判定
289+ time .sleep (0.5 ) # 等待动画稳定后截图判定
295290 skill_used = self ._map .is_skill_used ()
296291 _log .debug ('[决战] 节点: {}, 技能已使用检测: {}' , current_node , skill_used )
297292
298- # 强制使用技能条件:节点 A/U 且首次进入(已经选择过舰队)
299- should_use_skill = (current_node == 'A' or current_node == 'U' ) and self ._has_chosen_fleet
300-
301- if should_use_skill or ((current_node == 'A' or current_node == 'U' ) and not skill_used ):
302- _log .debug ('[决战] 执行技能使用: 强制={}' , should_use_skill )
303- time .sleep (0.5 )
293+ if not skill_used :
304294 gained = self ._map .use_skill ()
295+ _log .debug ('[决战] 执行技能使用获得: {}' , gained )
305296 if gained :
306297 if self ._config .useful_skill and not self ._logic .check_useful_skill (gained ):
307298 _log .info ('[决战] 技能获得: {}, 效果不佳,撤退重试' , gained )
308299 self ._state .phase = DecisivePhase .RETREAT
309300 return
310- _log .info ('[决战] 使用技能获得: {}' , gained )
311301 self ._state .ships .update (gained )
312302 else :
313303 _log .debug ('[决战] 跳过技能使用: 节点={}, 技能已使用={}' , current_node , skill_used )
314304
315305 # 首次进入且尚未选择过舰队时,使用技能后可能出现战备舰队获取 overlay,
316306 # 先切回 WAITING_FOR_MAP 等待 overlay 稳定,避免直接点击编队超时。
317- if not skill_used not self ._has_chosen_fleet :
307+ if not skill_used and not self ._has_chosen_fleet :
318308 _log .info ('[决战] 首次进入,使用技能后等待 overlay 稳定' )
319309 self ._wait_deadline = time .monotonic () + 10.0
320310 self ._state .phase = DecisivePhase .WAITING_FOR_MAP
0 commit comments