diff --git a/memory/wind-down-log.json b/memory/wind-down-log.json index b675720..1aed016 100644 --- a/memory/wind-down-log.json +++ b/memory/wind-down-log.json @@ -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." } diff --git a/projects/iso-bot b/projects/iso-bot new file mode 160000 index 0000000..e0282a7 --- /dev/null +++ b/projects/iso-bot @@ -0,0 +1 @@ +Subproject commit e0282a7111bc428438efd38fac178cfdb8c16a40 diff --git a/skills/iso-bot/SKILL.md b/skills/iso-bot/SKILL.md new file mode 100644 index 0000000..d47abdd --- /dev/null +++ b/skills/iso-bot/SKILL.md @@ -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//` 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/ +# ... work ... +git add -A && git commit -m "descriptive message" +git checkout main && git merge feature/ +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