No description
Find a file
2026-05-02 15:42:32 +09:30
debug it actually works? 2026-05-02 15:42:32 +09:30
runs it actually works? 2026-05-02 15:42:32 +09:30
scripts it actually works? 2026-05-02 15:42:32 +09:30
templates templates needed for reading stat values 2026-04-05 00:01:42 +10:30
.gitignore it actually works? 2026-05-02 15:42:32 +09:30
api_reference.md it actually works? 2026-05-02 15:42:32 +09:30
autoplay.py it actually works? 2026-05-02 15:42:32 +09:30
capture.py it actually works? 2026-05-02 15:42:32 +09:30
config.yaml it actually works? 2026-05-02 15:42:32 +09:30
current_screen.py detection for the current screen state 2026-04-04 23:59:56 +10:30
debug_regions.py it actually works? 2026-05-02 15:42:32 +09:30
dp_priority.txt it actually works? 2026-05-02 15:42:32 +09:30
dp_state.json it actually works? 2026-05-02 15:42:32 +09:30
labels.txt it actually works? 2026-05-02 15:42:32 +09:30
logic.txt it actually works? 2026-05-02 15:42:32 +09:30
main.py it actually works? 2026-05-02 15:42:32 +09:30
overlay.py it actually works? 2026-05-02 15:42:32 +09:30
readme.md it actually works? 2026-05-02 15:42:32 +09:30
region_crop_finder.py added a script to help with region/crop definitions 2026-04-03 18:34:28 +10:30
region_finder.py region setup for each screen + debug stuff 2026-04-03 15:04:21 +10:30
requirements.txt it actually works? 2026-05-02 15:42:32 +09:30
stat_bar_live.png it actually works? 2026-05-02 15:42:32 +09:30
stat_bar_training.png it actually works? 2026-05-02 15:42:32 +09:30
stat_bar_training.py it actually works? 2026-05-02 15:42:32 +09:30
state.json it actually works? 2026-05-02 15:42:32 +09:30
support_ card_events.json it actually works? 2026-05-02 15:42:32 +09:30
team_level.py it actually works? 2026-05-02 15:42:32 +09:30
test_model.py it actually works? 2026-05-02 15:42:32 +09:30
test_overlay.py it actually works? 2026-05-02 15:42:32 +09:30
training_check.py it actually works? 2026-05-02 15:42:32 +09:30
umamusume_events.json it actually works? 2026-05-02 15:42:32 +09:30

shionfucker9000

whatever poor attempt i come up with making a bot play the game for me
not happening until the planning doc is finished fuck it we ball

progress

currently working on stat reading and current screen detection

scripts

script purpose
capture.py window capture, region definitions, click/move helpers
config.py global config (USE_GPU)
names.py uma and race name lists
current_screen.py detects which game screen is currently active via OCR keyword matching
stat_bar_training.py reads stat values and gains from the training screen stat bar using template matching
training_check.py main training checker — reads energy, cycles through all 5 training options and reports best
debug_regions.py debug overlay tool — run and enter a screen name to save a region overlay image
region_finder.py interactive live region helper — hover + S to snap, R to define a Region()
region_crop_finder.py same as above but for static saved images
train.py / yolo_convert.py / fix_dataset.py / split_dataset.py YOLO training pipeline
portrait_training_data_capture.py captures portrait training data

training check flow

python training_check.py

  1. Read energy — captures the energy bar on the home/training screen. If the back button is visible (wrong screen), clicks back and waits 3s first. Waits 3s for the screen to settle before reading. Values > 130 are assumed to have a spurious trailing digit and are divided by 10.
  2. Click training button — enters the training selection screen, waits 3s.
  3. Detect first selected stat — reads the highlighted training label. Retries up to 5 times (1s apart) if unrecognised, using a fuzzy keyword list covering common OCR misreads of both English and Japanese labels.
  4. Read all 5 stats — starting from whichever stat is already selected (no redundant click), then clicking through the remaining 4 in order: speed → stamina → power → guts → wit. After each click, waits for the screen to stabilise before reading.
  5. Per-stat output — for each training option prints: current/cap and gain+bonus for all 5 stats and skill pts, plus total stat gain and total skill pt gain.
  6. Wit energy gain — when wit is selected, also captures the energy bar and calculates wit_energy - initial_energy to show the energy recovery from wit training.
  7. Summary — prints which training option gives the most total stats and which gives the most skill points.
  8. Low energy warning — if initial energy was ≤ 50, prints a failure risk warning.

roadmap

  • create detection model
  • basic navigation
  • decision making
  • support card/uma event database