diff --git a/debug_loot_capture.png b/debug_loot_capture.png index f988200..68ec639 100644 Binary files a/debug_loot_capture.png and b/debug_loot_capture.png differ diff --git a/debug_loot_detected.png b/debug_loot_detected.png index 8ca895e..b30698b 100644 Binary files a/debug_loot_detected.png and b/debug_loot_detected.png differ diff --git a/debug_loot_edges.png b/debug_loot_edges.png index 18aeb04..a4821ac 100644 Binary files a/debug_loot_edges.png and b/debug_loot_edges.png differ diff --git a/src/Poe2Trade.Bot/BossRunExecutor.cs b/src/Poe2Trade.Bot/BossRunExecutor.cs index 6997825..f103a6a 100644 --- a/src/Poe2Trade.Bot/BossRunExecutor.cs +++ b/src/Poe2Trade.Bot/BossRunExecutor.cs @@ -975,12 +975,23 @@ public class BossRunExecutor : GameExecutor } await Sleep(Delays.PostTravel); - // /hideout to go home - var arrivedHome = await _inventory.WaitForAreaTransition( - _config.TravelTimeoutMs, () => _game.GoToHideout()); + // /hideout to go home — retry up to 3 times (command can fail to register while loading) + var arrivedHome = false; + for (var attempt = 1; attempt <= 3; attempt++) + { + arrivedHome = await _inventory.WaitForAreaTransition( + _config.TravelTimeoutMs, () => _game.GoToHideout()); + if (arrivedHome) break; + + if (attempt < 3) + { + Log.Warning("Hideout command didn't register (attempt {Attempt}/3), retrying", attempt); + await Sleep(1000); + } + } if (!arrivedHome) { - Log.Error("Timed out going to hideout"); + Log.Error("Timed out going to hideout after 3 attempts"); return false; }