Skip to content

Alex-935/Pokemon-Battle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

128 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pokemon Battle Program

  • Created using Object-Oriented Program

  • Was created by myself without any help or external programming resources (only referenced material was the official Pokemon stats, move stats, diologue and calculations)

  • Written in Java using VS Code

  • Main Features:

    • Allows full team, 6v6 Battling.
    • Allows move types to affect battle (Super effective, Not very effective, Does not affect).
    • Switch your active Pokemon during battle (Set switching).
    • Ability to select your Pokemon, the trainer / trainer's Pokemon, your moves each turn. (All inputs validated).
    • Checks that a user has enough PP (Power Points) to use their chosen move.
    • Advances Damage Calculation.
      • Calculations use the official damage formula.
      • Move Accuracy.
      • Speed stat determines move order. In the event of a speed tie, the order is randomly decided.
      • Move priority (such as Extreme Speed, having +2 priority, allows the user to go first regardless of speed stats).
      • STAB - Same-Type Attack Bonus.
      • Critical Hits.
      • Randomly fluctuating damage.
    • Custom victory message based on which trainer you beat (or a loss message if you fail, but hopefully not ;) ).

Features in more detail

  • UI uses the same text as the official games. Layout is as close as I can neatly get it inside the terminal:
pokemonBattle welcome message
  • OOP used to create Pokemon, Moves and Trainers
pokemonBattle oop
  • Generates Weakness Chart for both mono and dual-type Pokemon

    pokemonBattle typeChart
  • Type charts affect move damage, including immunities

pokemonBattle Super Effective
  • Allows Full 6v6 Battles
pokemonBattle Whole Team
  • Allow the user to switch Pokemon during battle. (Set switching - switching is instead of using a move).

    Set Switching
  • Checks users have nough PP to use a certain move

pokemonBattle PP chech
  • Added Dynamic Battle Screen
pokemonBattle dynamic battle screen
  • Validation on move selection
    • Choose your Pokemon
      • Choosing your pokemon changes the move pool
    • Choose the Trainer you want to face
    • Choose your move
pokemonBattle Choose Pokemon
  • All user inputs validated
pokemonBattle Validation on move selection
  • Get a different victory message based on your opponent
pokemonBattle Custom Battle
  • Various features shown below:
    • Code is modular to take advantage of reusable components
    • Fastest Pokemon moves first
    • Correct Hp shown when damage is dealt (will not drop below 0)
    • Custom message based on wether you won or lost
pokemonBattle various features
  • Battle will loop until a Pokemon faints
pokemonBattle Loops through
  • Uses Random to select the computer's moves and resolve speed ties (when both Pokemon have the same speed stat):
pokemonBattle Speed Ties
  • Includes damage multipliers such as STAB and the Physical/Special Move Split:
    • STAB - Same Type Attack Bonus: Attacks deal 1.5x damage is the Pokemon and move are of the same type.
    • Phys/Spec split uses Atk & Def/ SpAtk & SpDef to calculate move damage.
    • Randomised Damage between 0.85x and 1x overall damage
    • Attacks have a chance to miss based off the attack's accuracy
pokemonBattle stab and psysSpec pokemon randomisedDamage# pokemonBattle Attack accuracy
  • Added move priority. Metagross is slower than Garchomp, but Bullet Punch's priority allows Metagross to attack first.
pokemon Battle speed priority

About

OOP-based Pokemon Battle Simulator. Choose your team of Pokemon and your opponent (including Cynthia and Steven). Full 6v6 battling. Advanced battle features such as Super Effective moves, priority moves, critical hits and STAB. Special Victory message based on the trainer you beat.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors