Nik Afiq a8ff95d6f5 feat: Implement OCR-driven story AP sweep with deterministic stage targeting
- Added `wait_for_state` function in `navigation.py` for state monitoring and reaction handling.
- Updated `mapping.md` to reflect changes in story sweep implementation and OCR usage.
- Refactored `story_sweep.py` to utilize OCR for region and stage identification, replacing random selection with configured targets.
- Enhanced modal handling and confirmation checks for AP usage in `story_sweep.py`.
- Updated setup script to require `tesseract` for OCR functionality and included installation instructions.
- Revised `plan.md` to document the transition from heuristic to OCR-based stage targeting and the associated findings from live testing.
2026-07-06 01:41:58 +09:00

3.8 KiB

Reference mapping

Maps each local feature to the corresponding ~/repo/baas-reference/module/... implementation, driver/backend replacements, and current status. Update this before/while implementing or migrating a feature — see CLAUDE.md → "Reference mapping notes" and plan.md → "Reference mapping table".

Local feature Reference file Reference functions/classes Local file Backend replacements Status
Mailbox module/mail.py to_mail, implement ba_auto/tasks/mailbox.py tap/click via xdotool, screenshot via scrot, color.rgb_in_rangedriver.color_at pixel-probe check Migrated: real Python, state-verified via color probe (no legacy bridge)
Cafe module/cafe_reward.py to_cafe, interaction_for_cafe_solve_method3, collect ba_auto/tasks/cafe.py picture.co_detect/color.rgb_in_rangedriver.color_at pixel-probe checks; sparkle template match ported in-process into ba_auto/detector.py (find_cafe_sparkle, now multi-scale) Migrated: real Python, state-verified via color probes (no legacy bridge). Pat loop now polls for the full attempt budget instead of stopping on the first miss (see plan.md Phase 6 follow-up) — not yet confirmed against a live sparkle since none was available during testing
Stamina/AP module/collect_daily_free_power.py, module/collect_daily_task_power.py to_tasks/implement (task-power, ported); to_purchase_pyroxenes_menu (free-power, not ported) ba_auto/tasks/stamina.py color.rgb_in_rangedriver.color_at; reference's per-tab claim loop → live UI's single "一括受取" bulk-claim button + Enter Partially migrated: Mission-panel claim done (see plan.md Phase 8). Daily Free Power (real-money purchase menu) deliberately not automated
Normal/Hard story AP sweep module/explore_tasks/sweep_task.py, module/explore_tasks/task_utils.py to_region (ported: OCR region-number readout + delta-click), a scoped-down swipe_search_target_str (ported: OCR stage-row label matching), start_sweep's named-outcome contract (ported via navigation.wait_for_state, this project's scoped co_detect port) ba_auto/tasks/story_sweep.py OCR region/stage-name matching, ported for real (Phase 10) — replaces Phase 9's "next-region arrow stops advancing, then random stage" heuristic; MAX click verified via SWEEP_MINUS_BUTTON_PROBE color check (reused, still correct), modal closed via its own X button (Escape doesn't close it; X-button position re-calibrated per stage-layout variant, see Phase 10) Done (see plan.md Phase 10, supersedes Phase 9). Config-driven exact (region, stage, count) targets (config.STORY_SWEEP_TARGETS), not latest-region/random-stage. Opt-in only, not in default flow
Group/Club AP module/group.py Need to inspect ba_auto/tasks/group.py fixed click + state check via local driver Not started
Bounty module/rewarded_task.py Need to inspect ba_auto/tasks/bounty.py sweep/color/OCR adaptation Not started
Commissions module/clear_special_task_power.py Need to inspect ba_auto/tasks/commission.py sweep/color adaptation Not started
Arena module/arena.py Need to inspect ba_auto/tasks/arena.py auto-fight + OCR + local driver Not started
Common Shop module/shop/common_shop.py, module/shop/shop_utils.py Need to inspect ba_auto/tasks/shop_common.py OCR + tab navigation + local clicks Not started
Tactical Shop module/shop/tactical_challenge_shop.py, module/shop/shop_utils.py Need to inspect ba_auto/tasks/shop_tactical.py OCR + tab navigation + local clicks Not started
Lesson/Schedule module/lesson.py Need to inspect ba_auto/tasks/lesson.py OCR + template/portrait search + local driver Not started

Do not implement a feature without filling at least the relevant row.