diff --git a/src/run/pindle.py b/src/run/pindle.py index 30a64e0..e73610f 100644 --- a/src/run/pindle.py +++ b/src/run/pindle.py @@ -82,9 +82,18 @@ class Pindle: # A5_TOWN_START start walked it into the Harrogath wall — and onto the # waypoint, whose panel the health manager then read as a chicken. retry_loc = self._town_manager.detect_current_act() - if retry_loc != Location.A5_TOWN_START: + if retry_loc is None: + # No town marker in view. That is NOT evidence we left the act — it happens + # routinely by the portal in Harrogath's NE corner, where none of the + # TOWN_MARKERS render. `loc` was confirmed to be act 5 at the top of this + # run and a failed portal click cannot move us between acts, so reuse it. + # Treating None as "wrong act" hard-failed 6 runs and burned the 5-strike + # circuit breaker, ending an otherwise healthy 31-game session. + Logger.debug("Pindle approach: no town marker in view — reusing the act-5 location confirmed at run start") + retry_loc = loc + elif retry_loc != Location.A5_TOWN_START: Logger.warning(f"Pindle approach: not confirmed in A5 (detected {retry_loc}) — traveling to act 5") - retry_loc = self._town_manager.go_to_act(5, retry_loc) if retry_loc else False + retry_loc = self._town_manager.go_to_act(5, retry_loc) if not retry_loc: self.approach_fail_step = "retry_traverse_to_portal" Logger.error("Pindle approach: could not confirm A5 town position for retry")