cireficc/pokemon-arena-android

Implement Battle Engine

Closed this issue · 1 comments

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
  • 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

Closing in favor of sub-issues #44 - #55.