Files
my-botty/docs/run_countess_plan.md
T
alex 77f2092572 Refactor bot behavior on TP failure, enhance item processing logic, and improve game stats logging
- Updated bot behavior to end the game when no TP charges are left, instead of attempting to walk back to town.
- Refined item processing logic in `processing_helpers.py` to use identity checks for item comparisons and improved item removal methods.
- Enhanced game stats logging to include failure reasons and send Discord notifications for failed games.
- Improved health management logic to trigger chicken behavior based on health percentage after rapid rejuvination.
- Added error handling for item pickup failures in `pickit.py` to blacklist items that cannot be picked up.
- Introduced walking fallback nodes for Countess, Andariel, Mephisto, and Baal runs in `pather.py`.
- Implemented path data validation in run scripts for Countess, Andariel, Mephisto, and Baal to ensure paths are correctly defined.
- Enhanced item identification and stash processes in `diablo.py` with retry logic for failures.
- Updated town management to handle identification failures gracefully and log appropriate warnings.
- Improved character selection logic to provide clearer logging messages.
- Modified game restart logic to launch the game via PowerShell for better session handling.
- Added documentation for recording paths for the Countess run and created a PowerShell script for scheduled task management.
2026-06-05 14:58:50 +02:00

72 lines
2.8 KiB
Markdown

# Run Countess Route Plan
## Goal
Record path data and templates for the Countess run (Act 1 Forgotten Tower) so it executes reliably with Hammerdin.
## Current State
- `src/run/countess.py` exists and is wired into bot.py
- `Location` constants defined in `pather.py`: A1_TOWER_LEVEL2_ENTER through A1_TOWER_LEVEL5_ENTER, A1_COUNTESS_SAFE_DIST
- `config/game.ini` has 5 path entries — all set to `0,0` (placeholders)
- Run is disabled in `params.ini` (`order=run_arcane, run_pindle`)
## Paths Needed (5 entries in game.ini)
| Config Key | Description | How to Record |
|---|---|---|
| `a1_tower_level2_enter` | First click point inside tower after entering from Black Marsh | Walk into tower, record first position on L2 |
| `a1_tower_level3_enter` | Click point at top of stairs to L3 | Walk up stairs, record position at L3 entrance |
| `a1_tower_level4_enter` | Click point at top of stairs to L4 | Walk up stairs, record position at L4 entrance |
| `a1_tower_level5_enter` | Click point at top of stairs to L5 | Walk up stairs, record position at L5 entrance |
| `a1_countess_safe_dist` | Click point near Countess (safe hammer range) | Walk to Countess, step back to hammer range |
## Recording Steps
### 1. Record path coordinates
1. Start botty, let it waypoint to Black Marsh
2. Enter the tower manually (walk through the door)
3. Run `static_run_recorder.py`:
```
conda activate botty
cd src/utils
python static_run_recorder.py
```
4. Right-click each target position in game order (L2 enter → L3 enter → L4 enter → L5 enter → Countess safe distance)
5. Copy the printed coordinate list
### 2. Update game.ini
Replace the `0,0` values with recorded coordinates. Format: `x,y` per line, or comma-separated for multi-point paths.
Example:
```ini
a1_tower_level2_enter=400,300
a1_tower_level3_enter=410,280
a1_tower_level4_enter=420,260
a1_tower_level5_enter=430,240
a1_countess_safe_dist=450,200
```
### 3. Test the run
1. Add `run_countess` back to `order=` in `params.ini`
2. Start botty and verify it navigates through all tower levels
3. Adjust coordinates if it misses stairs or clicks in wrong spots
## Hammerdin-Specific Notes
- `atk_len_countess=3.0` is already set in `params.ini`
- Hammerdin uses `kill_countess()` method — ensure conviction aura is active before engaging
- Safe distance should account for hammer swing range (~3-4 game units)
## Path Recorder Alternative
If `static_run_recorder.py` is inconvenient, use `node_recorder.py`:
```
cd src/utils
python node_recorder.py
```
Follow on-screen prompts to record nodes, then copy the generated path coordinates.
## Acceptance Criteria
- Botty enters Black Marsh via waypoint
- Navigates L2 → L3 → L4 → L5 without getting stuck
- Reaches Countess and engages
- Completes kill and returns to town
- No false template matches on tower stairs