docs: add the baal_xp leech cycle to the state machine section

The state list was missing baal_xp (and cold_plains) even though the
route has been in bot.py since August. One short paragraph on how the
cycle works, since it deliberately bypasses the run_wrapper pattern.
This commit is contained in:
alexpolo1
2026-09-15 07:43:38 +02:00
parent 2333a437bd
commit a3abd15878
+3 -1
View File
@@ -258,7 +258,9 @@ Conversion functions in `screen.py`: `convert_monitor_to_screen()`, `convert_scr
`bot.py` uses the `transitions` library. States and transitions are defined at `Bot.__init__` time.
**States**: `initialization`, `hero_selection`, `town`, `level`, `pindle`, `shenk`, `trav`, `nihlathak`, `arcane`, `diablo`, `vizier`, `baal`, `mephisto`, `andariel`, `countess`
**States**: `initialization`, `hero_selection`, `town`, `level`, `cold_plains`, `baal_xp`, `pindle`, `shenk`, `trav`, `nihlathak`, `arcane`, `diablo`, `vizier`, `baal`, `mephisto`, `andariel`, `countess`
**Baal XP leech** (`baal_xp` state, `on_run_baal_xp`): a self-contained cycle that does NOT use the run_wrapper/approach/battle pattern. It leaves the bot's own game, joins a public Baal game via the online lobby (`src/ui/game_browser.py`), hides and stands still to collect shared area XP, then leaves and re-enters its own game. The hide-and-wait phase is a pure wait — no maintenance, no runs, no pathing; the health manager thread keeps auto-potioning and the death manager handles the death screen. Config lives in the `[baal_xp]` section of `params.ini`; the route is `run_baal_xp` and re-arms itself between cycles via `_baal_xp_rearm`.
**Key transitions**: