-
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 ;) ).
- UI uses the same text as the official games. Layout is as close as I can
neatlyget it inside the terminal:
- OOP used to create Pokemon, Moves and Trainers
-
Generates Weakness Chart for both mono and dual-type Pokemon
-
Type charts affect move damage, including immunities
- Allows Full 6v6 Battles
-
Allow the user to switch Pokemon during battle. (Set switching - switching is instead of using a move).
-
Checks users have nough PP to use a certain move
- Added 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
- Choose your Pokemon
- All user inputs validated
- Get a different victory message based on your opponent
- 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
- Battle will loop until a Pokemon faints
- Uses Random to select the computer's moves and resolve speed ties (when both Pokemon have the same speed stat):
- 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
- Added move priority. Metagross is slower than Garchomp, but Bullet Punch's priority allows Metagross to attack first.