Examples: Trainer Battles

Section 5.B

Trainer Battle Example # 1

The example below demonstrates a 1v1 quiz battle vs Gym Leader Opal, as she appeared in Pokemon Sword & Shield. In this battle, the following rule is set:

  • "midbattleScript" is used to set a script to use for this battle which does the following:

    • At the end of the first round, Opal quizes the player on what her nickname is. If the player guesses right, their Pokemon's Speed is increased by 2 stages. If the player guesses wrong, their Pokemon's Speed is decreased by 2 stages.

    • At the end of the third round, Opal quizes the player on her favorite color. If the player guesses right, their Pokemon's defenses are increased by 2 stages. If the player guesses wrong, their Pokemon's defenses are decreased by 2 stages.

    • At the end of the fifth round, Opal quizes the player on her age. If the player guesses the answer she wants to hear, their Pokemon's offenses are increased by 2 stages. If the player guesses wrong, their Pokemon's offenses are decreased by 2 stages.

    • Before Opal speaks a message prior to sending out her final Pokemon.

setBattleRule("midbattleScript", {
  "RoundEnd_1_foe" => {
    "setChoices" => [:nickname, 2, {
                      "The magic-user" => "Bzzt! Too bad!",
                      "The wizard"     => "Ding ding ding! Congratulations, you're correct."
                    }],
    "speech"     => ["Question!", "You...\nDo you know my nickname?", :Choices]
  },
  "ChoiceRight_nickname" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:SPEED, 2]
  },
  "ChoiceWrong_nickname" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:SPEED, -2]
  },
  "RoundEnd_3_foe" => {
    "setChoices" => [:color, 2, {
                      "Pink"   => "That's what I like to see in other people, but it's not what I like for myself.",
                      "Purple" => "Yes, a nice, deep purple...\nTruly grand, don't you think?"
                    }],
    "speech"     => ["Question!", "What is my favorite color?", :Choices]
  },
  "ChoiceRight_color" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:DEFENSE, 2, :SPECIAL_DEFENSE, 2]
  },
  "ChoiceWrong_color" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:DEFENSE, -2, :SPECIAL_DEFENSE, -2]
  },
  "RoundEnd_5_foe" => {
    "setChoices" => [:age, 1, {
                      "16 years old" => "Hah!\nI like your answer!",
                      "88 years old" => "Well, you're not wrong. But you could've been a little more sensitive."
                    }],
    "speech"     => ["Question!", "All righty then... How old am I?", :Choices]
  },
  "ChoiceRight_age" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:ATTACK, 2, :SPECIAL_ATTACK, 2]
  },
  "ChoiceWrong_age" => {
    "setBattler"   => :Opposing,
    "battlerStats" => [:ATTACK, -2, :SPECIAL_ATTACK, -2]
  },
  "BeforeLastSwitchIn_foe" => "My morning tea is finally kicking in, and not a moment too soon!"
})
TrainerBattle.start(:LEADER_Opal, "Opal")

Trainer Battle Example # 2

The example below demonstrates a 1v1 battle vs a Team Rocket grunt who is blocking the exit of a collapsing cave. In this battle, the following rules are set:

  • "canLose" is used to allow the player to continue even if they lose the battle.

  • "victoryBGM" is used to set no victory music to play if you win this battle.

  • "battleIntroText" is used to customize the intro text at the start of the battle.

  • "opponentLoseText" is used to set custom lose text for this trainer when you beat them.

  • "midbattleScript" is used to set a script to use for this battle which does the following:

    • Informs the player at the start of the battle that the cave is collapsing and they have a limited number of turns to win the battle.

    • Plays a sound effect and displays a message at the end of each turn to indicate the cave is in the midst of collapsing.

    • When the HP of the opponent's final Pokemon is low, they will stand their ground to recover some HP, and increase both of their defenses by two stages.

    • At the end of the second round, a falling rock falls on your Pokemon's head, dealing damage to them and causing confusion.

    • At the end of the third round, a message is displayed indicating that the player is almost out of time.

    • At the end of the fourth round, the player has run out of time and is forced to recall their Pokemon and flee the battle to escape the cave.

    • Upon the player forfeiting the match, the opponent will speak a message taunting the player.

Last updated

Was this helpful?