- Introduced `story_sweep.py` for Normal/Hard story AP sweeping, allowing users to spend AP on randomly selected stages. - Updated `CLAUDE.md` to clarify the OCR policy, emphasizing the need to port OCR-driven logic from the reference implementation rather than substituting with non-OCR methods. - Modified `README.md` and `plan.md` to reflect the new story sweep feature and its operational details. - Adjusted `setup.sh` to include the new command for running the story sweep. - Enhanced `driver.py` with a new scroll function for better interaction with the game UI. - Updated configuration mappings in `config.py` to support the new story sweep functionality. - Refined existing task modules to ensure consistent state verification and error handling.
3.6 KiB
3.6 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_range → driver.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_range → driver.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_range → driver.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/to_normal_event + OCR-driven per-stage claim loop (not ported) |
ba_auto/tasks/story_sweep.py |
OCR region/stage-name matching → plain state-change probing (next-region arrow stops advancing); reference's per-stage claim loop → this client's stage-info modal's self-contained 掃討 sweep sub-panel (MIN/-/+/MAX stepper + start button), MAX click verified via SWEEP_MINUS_BUTTON_PROBE color check, modal closed via its own X button (Escape doesn't close it) |
Done (see plan.md Phase 9). Latest-region + random-stage selection and MAX-count spend per explicit user direction. 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.