Add iso-bot skill and project structure
This commit is contained in:
parent
bfaaca18ed
commit
bb25311911
3 changed files with 110 additions and 10 deletions
|
|
@ -1,14 +1,21 @@
|
|||
{
|
||||
"date": "2026-02-12",
|
||||
"date": "2026-02-13",
|
||||
"events": [
|
||||
{ "time": "19:45", "activity": "Done with work. Nose shower already done ✅" },
|
||||
{ "time": "19:50-20:08", "activity": "Chatting about new features (portfolio game, morning briefing, weekly review). Planning D2R Necro build." },
|
||||
{ "time": "20:08", "activity": "Free for the evening. D2R / audiobook / TV suggested." },
|
||||
{ "time": "20:26", "activity": "Started playing D2R 🎮 Necromancer 'Baltasar'" },
|
||||
{ "time": "21:57", "activity": "Stopped playing D2R. Lvl 11, farmed Countess for runes. Good session." },
|
||||
{ "time": "22:00", "activity": "Winding down, heading to sleep soon 🌙" },
|
||||
{ "time": "22:30", "activity": "Tea + audiobook (Askir - Das Auge der Wüste, 77%)" },
|
||||
{ "time": "22:59", "activity": "Going to sleep 🌙" }
|
||||
{ "time": "17:39", "activity": "Finished D2R session — Act 2 complete, lvl 22. Enough Diablo for today." },
|
||||
{ "time": "17:42", "activity": "Listening to podcast, then plans to play BG3 🎧➡️🎮" },
|
||||
{ "time": "18:06", "activity": "Playing BG3 — Goblin Camp, found Halsin as cave bear" },
|
||||
{ "time": "19:00", "activity": "Still playing BG3. Good wind-down activity ✅" },
|
||||
{ "time": "18:40", "activity": "BG3: Found Priestess Gut, killed her ✅ (1/3 goblin leaders)" },
|
||||
{ "time": "18:55", "activity": "BG3: Planning attack on Dror Ragzlin (2/3)" },
|
||||
{ "time": "20:13", "activity": "Still gaming BG3 — deep in goblin camp" },
|
||||
{ "time": "20:43", "activity": "BG3: All 3 goblin leaders killed ✅ Heading back to rescue Halsin" },
|
||||
{ "time": "20:52", "activity": "Still BG3, discussing Astarion builds and controller setup" },
|
||||
{ "time": "21:00", "activity": "BG3: Respecced Astarion to Thief Rogue. Party at camp after goblin camp clear." },
|
||||
{ "time": "21:04", "activity": "BG3: Act 1 wrapping up, Shadowheart romance scene 🌙" },
|
||||
{ "time": "22:08", "activity": "Still playing BG3, entering Act 2 soon" },
|
||||
{ "time": "22:42", "activity": "WhatsApp down, fixed via web chat + gateway restart" },
|
||||
{ "time": "22:45", "activity": "Chatting about D2R acts. Suggested bed time." },
|
||||
{ "time": "01:43", "activity": "Trying to sleep. Way too late." }
|
||||
],
|
||||
"summary": "Excellent evening. Work done by 19:45, nose shower done early. ~1.5h D2R, then tea + audiobook. Asleep before midnight ✅ (23:00). Best wind-down in a while."
|
||||
"summary": "Good evening overall — D2R + BG3 gaming all evening. Nose shower reminded. But went to bed way too late at 01:43. No work after 17:39 ✅ but gaming kept him up."
|
||||
}
|
||||
|
|
|
|||
1
projects/iso-bot
Submodule
1
projects/iso-bot
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit e0282a7111bc428438efd38fac178cfdb8c16a40
|
||||
92
skills/iso-bot/SKILL.md
Normal file
92
skills/iso-bot/SKILL.md
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# ISO Bot — Isometric Game Bot Engine
|
||||
|
||||
## Overview
|
||||
Screen-reading bot engine for isometric games. First implementation: Diablo II: Resurrected.
|
||||
|
||||
**Approach:** Screen capture + computer vision + human-like input simulation. No memory injection, no hooking, no client modification.
|
||||
|
||||
## Repository
|
||||
- **Local:** `/home/openclaw/.openclaw/workspace/projects/iso-bot`
|
||||
- **Remote:** `git@git.cloonar.com:openclawd/iso-bot.git` (pending repo creation)
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
engine/ # Reusable core — game-agnostic
|
||||
├── screen/ # Screenshot capture (mss), OCR, template matching
|
||||
├── input/ # Mouse (bezier curves), keyboard, humanization
|
||||
├── vision/ # Object detection, color analysis, UI element finding
|
||||
├── state/ # State machine, event bus
|
||||
├── navigation/ # Pathfinding (A*), click-to-move
|
||||
└── safety/ # Session timing, break scheduling, pattern randomization
|
||||
|
||||
games/d2r/ # Diablo II: Resurrected implementation
|
||||
├── config.py # Screen regions, colors, timings (1920x1080)
|
||||
├── game.py # Main bot loop & orchestration
|
||||
├── screens/ # State detection (menu, in-game, inventory)
|
||||
├── routines/ # Farming routines (Mephisto, Pindle, Countess)
|
||||
└── templates/ # UI template images for matching
|
||||
|
||||
ui/ # Web dashboard (FastAPI) — planned
|
||||
config/ # YAML configuration
|
||||
```
|
||||
|
||||
## Key Design Decisions
|
||||
1. **Screen reading only** — captures screenshots, analyzes pixels/templates, never touches game memory
|
||||
2. **Human-like input** — Bezier mouse curves, randomized delays, micro/long breaks, fatigue simulation
|
||||
3. **Reusable engine** — adding a new game = new `games/<name>/` directory implementing game-specific detection
|
||||
4. **Anti-detection** — session timing, route randomization, behavioral variation, configurable break schedules
|
||||
5. **Configuration-driven** — YAML configs for all tunable parameters
|
||||
|
||||
## Tech Stack
|
||||
- Python 3.11+
|
||||
- OpenCV (template matching, color detection)
|
||||
- pytesseract (OCR)
|
||||
- mss (fast screenshot capture)
|
||||
- pyautogui/pynput (input simulation)
|
||||
- FastAPI (dashboard — planned)
|
||||
|
||||
## Development Conventions
|
||||
- Type hints on all functions
|
||||
- Docstrings on all modules, classes, public methods
|
||||
- `black` formatting
|
||||
- Tests in `tests/`
|
||||
- Feature branches → main
|
||||
|
||||
## Git Workflow
|
||||
```bash
|
||||
cd /home/openclaw/.openclaw/workspace/projects/iso-bot
|
||||
git checkout -b feature/<name>
|
||||
# ... work ...
|
||||
git add -A && git commit -m "descriptive message"
|
||||
git checkout main && git merge feature/<name>
|
||||
git push origin main
|
||||
```
|
||||
|
||||
## Current Status
|
||||
- ✅ Project structure created
|
||||
- ✅ Core engine modules with meaningful stubs
|
||||
- ✅ D2R config (screen regions, colors, timings)
|
||||
- ✅ D2R farming routines (Mephisto, Pindle, Countess) — stub phase
|
||||
- ⏳ Remote git repo (needs write-access token)
|
||||
- ⏳ Implement actual screen detection logic
|
||||
- ⏳ Implement input simulation
|
||||
- ⏳ Template image collection
|
||||
- ⏳ Web dashboard
|
||||
- ⏳ Testing
|
||||
|
||||
## Next Steps (Priority Order)
|
||||
1. Get remote repo set up and push
|
||||
2. Implement `engine/screen/capture.py` — verified working on target machine
|
||||
3. Implement `engine/input/mouse.py` — Bezier curve mouse movement
|
||||
4. Implement `engine/input/keyboard.py` — human-like key presses
|
||||
5. D2R menu detection (character select, create game)
|
||||
6. D2R basic Mephisto run (teleport → kill → loot → exit)
|
||||
7. Loot detection and filtering
|
||||
8. Web dashboard for monitoring
|
||||
|
||||
## Notes
|
||||
- Bot runs on a separate machine or VM from the game client
|
||||
- Target resolution: 1920x1080
|
||||
- Primary farming character: Sorceress with Teleport
|
||||
- The user plays D2R (Necro "Baltasar", Summoner build) — knows the game well
|
||||
Loading…
Add table
Add a link
Reference in a new issue