-
Notifications
You must be signed in to change notification settings - Fork 0
Specification
When making a PokéBattle program, you must start by naming all of the pokémon and trainers in the battle. No two pokémon can have the same name. Use the following header:
Trainer 1: *trainer*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
Trainer 2: *trainer*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
*pokémon*
Battle Start!
Turn 0:
*trainer*: *pokémon* Go!
*trainer*: *pokémon* Go!
The pokémon listed with Turn 0 are the starting Active pokémon.
Note: Indentation and line breaks are not taken into account and are included for easy readability.
At the end of the program, you must include the following footer:
Battle End!
Winner: *trainer*
Name whichever trainer you want as the winner; it doesn't matter.
Each pokémon stores a single variable. This variable is the pokémon's HP. Each pokémon starts the battle/program with 5 HP.
There is no maximum or minimum HP.
Being at 0 or less HP has no special effect.
There are two versions of PokéBattle: Strict and Open.
In Strict PokéBattle, each trainer can only have 6 pokémon and they must all be existing pokémon from canon.
In Open PokéBattle, each trainer can have any number of pokémon and they can have any name.
In both modes, no pokémon name is allowed to be used on both teams.
There are no limits regarding which pokémon can use which moves.
All commands must be done in the following format:
Turn 1:
*command*
*command*
Turn 2:
*command*
*command*
Turn 3:
*command*
*command*
Turn 4:
*command*
*command*
Each of the two commands in a turn must be from different trainers. The order may change freely between turns.
A move is from a trainer if:
- Starts with the trainers name, or
- Starts with the trainers active pokémon.
Does nothing.
<trainer> tried to run away! You can't run from a trainer battle!
<pokémon> flinches!
<pokémon> uses Splash!
Rreduce the HP of the opposing active pokémon by the level of the move.
<pokémon> uses <move>!
- Level 2: Tackle, Ember, Vine Whip, Water Gun, Thunder Shock, Rock Throw, Confusion, Mach Punch, Wing Attack, Powder Snow.
- Level 4: Body Slam, Flamethrower, Razor Leaf, Hydro Pump, Thunderbolt, Earthquake, Psychic, High Jump Kick, Fly, Ice Beam.
As an additional effect, you can add either of these tags after the command:
- "It's super effective!": the level of the move is doubled.
- "It's not very effective.": the level of the move is halved.
Reduce the HP of the opposing pokémon by the HP of the user.
<pokémon> uses <move>!
Moves: Hyper Beam, Dragon Rage.
Set the HP of the opposing pokémon to zero.
<pokémon> uses <move>!
Moves: Fissure, Guillotine, Sheer Cold.
Increase the HP of the trainer's active pokémon by the level of the item.
<trainer> uses <item>!
- Level 1: Potion.
- Level 2: Super Potion.
- Level 4: Hyper Potion.
- Level 8: Max Potion.
Increase the users HP by the HP of the opposing pokémon.
<pokémon> uses <move>!
Moves: Absorb, Leech Life.
Set the users HP to the HP of the opposing pokémon)
<pokémon> uses <move>!
Moves: Skill Swap, Heart Swap.
Change the trainer's active pokémon to the pokémon named.
<trainer>: That's enough! Go <new_pokémon>!
Inflict a status condition if the HP totals are right.
<pokémon> uses <move>!
- Freeze: Blizzard
- Paralyze: Thunder Wave
- Sleep: Sing
Each condition only works if the HP totals are right:
- Freeze requires the two active pokémon to have matching HP totals.
- Paralyze requires the two active pokémon to have non-matching HP totals.
- Sleep requires the opposing active pokémon to have less HP than the pokémon "using" the move.
If a status condition is inflicted, the next command is skipped.
Jumps code execution to the start of the numbered turn.
<trainer> thinks about turn <number>.
Outputs the HP of the user to the screen
<pokémon> uses <move>!
- ASCII: Swords Dance
- Integer: Barrier
The data requested depends on which move was used:
- ASCII takes in an ASCII character and uses its encoding value.
- Integer takes in an integer and uses it.
Sets the HP of the opposing pokémon to an input.
<pokémon> uses <move>!
- ASCII: Growl
- Integer: Lear
The data requested depends on which move was used:
- ASCII takes in an ASCII character and uses its encoding value.
- Integer takes in an integer and uses it.