Implement Battle Engine
Closed this issue · 1 comments
cireficc commented
See UML diagram pinned in Slack#planning.
Subtasks:
- Raw damage calculation for unexceptional moves (e.g. no special considerations for "Fly", "Double Slap", etc.)
- Handle status effects
- Apply effects to Pokemon
- Paralyze
- Freeze
- Sleep
- Confusion
- Poison
- Burn
- Flinch
- Apply effects to turn progression
- Paralyze
- Freeze
- Sleep
- Confusion
- Poison
- Burn
- Flinch
- Apply effects to Pokemon
- Move calculations
- Mult-hit (Double Slap, Twinneedle, etc.)
- Charging (Fly, Solar Beam, etc.)
- Cooldowns (Hyper Beam, etc.)
- Self-heal (without damage, e.g. Recover)
- Self-heal (with damage, e.g. Absorb, Mega Drain)
- Recoil (1/4 damage)
- Recoil (1/3 damage)
- Crash damage (half max HP recoil; e.g. Jump Kick, High Jump Kick)
- Exception cases
- Night Shade
- Super Fang
- Haze
- Dragon Rage
- Seismic Toss
- Sonic Boom
- Psywave
- Double-damage movesets
- Earthquake vs Dig
- Gust || Thunder vs Fly
- Handle stage changes
- Apply stage changes to Pokemon
- Attack
- Defense
- SpecialAttack
- SpecialDefense
- Speed
- Crit
- Apply stage changes to turn progression
- Attack
- Defense
- SpecialAttack
- SpecialDefense
- Speed
- Crit
- Apply stage changes to Pokemon