How amlan-sinha07/pokemon_advisor works
Pokemon Champions Battle Advisor is a CLI tool for choosing a four-Pokemon squad before a match and recommending a move during battle; it also manages a saved six-Pokemon box. The main workflow starts in the CLI, loads Pokemon and move data, and delegates to separate pre-match or battle advisors. The battle advisor uses type matchups and a Python-to-C++ damage calculation path. The README documents cached data and optional live PokeAPI fetching. Some runtime wiring is supported only by the README or source index, so those links are identified accordingly.
Main entry points: data_loader.py Data Loader · main.py CLI Modes · damage_calc.py Damage Calculator · type_calc.py Type Calculator
Components 17
CLI and Team Setup
- CLI Modes
main.py - Box Manager
box_manager.py
Data and Persistence
- Saved Box
- Data Loader
data_loader.py - Pokemon Cache
data/pokemon_all.json - Move Caches
data - PokeAPI Fetcher
scraper/fetch_data.py - Pokemon Model
models/pokemon.py - Move Model
models/move.py
Battle Analysis
- Team Advisor
engine/pre_match_advisor.py - Move Advisor
engine/battle_advisor.py
Calculation Engine
- Type Calculator
engine/type_calc.py - Type Chart
data/type_chart.json - Damage Calculator
engine/damage_calc.py - C++ Damage Engine
engine/damage_calc.cpp
Other components
- Player
- PokeAPI
Connections 17
- Player → CLI Modes: chooses mode
README.md - CLI Modes → Box Manager: manages box
main.py - Box Manager → Saved Box: reads and writes
box_manager.py - CLI Modes → Data Loader: loads Pokemon
main.py - Data Loader → Pokemon Cache: reads cache
data_loader.py - Data Loader → Pokemon Model: constructs
data_loader.py - Data Loader → Move Model: constructs
data_loader.py - Data Loader → Move Caches: reads and writes
data_loader.py - Data Loader → PokeAPI Fetcher: fetches missing moves
data_loader.py - PokeAPI Fetcher → PokeAPI: requests data
scraper/fetch_data.py - CLI Modes → Team Advisor: requests team picks
main.py - CLI Modes → Move Advisor: requests move advice
main.py - Team Advisor → Type Calculator: scores matchups
engine/pre_match_advisor.py - Type Calculator → Type Chart: loads chart
engine/type_calc.py - Move Advisor → Damage Calculator: evaluates moves
engine/battle_advisor.py - Damage Calculator → Type Calculator: gets effectiveness
engine/damage_calc.py - Damage Calculator → C++ Damage Engine: runs damage engine
README.md