Class MirrorMoveTests

java.lang.Object
com.pixelmonmod.pixelmon.api.test.impl.move.MirrorMoveTests

public class MirrorMoveTests extends Object
Tests for Mirror Move
  • Constructor Details

    • MirrorMoveTests

      public MirrorMoveTests()
  • Method Details

    • testMirrorMoveUsesOpponentsMove

      public static CompletableFuture<TestResult> testMirrorMoveUsesOpponentsMove(BattleTestHelper helper)
      Mirror Move uses the last move targeted at the user by a Pokémon still on the field. A move called by Mirror Move in this way counts as the last move used.

      In this test, a Chatot that knows Peck faces a Combusken that knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Peck.
           The Combusken uses Mirror Move.
           -
           After Turn 1
           We verify that the Combusken has taken damage.
           We verify that the Chatot has taken damage.
           We verify that the Combusken's last attack counts as Peck.
       
    • testMirrorMoveCanUseMultiTargetMoves

      public static CompletableFuture<TestResult> testMirrorMoveCanUseMultiTargetMoves(BattleTestHelper helper)
      Moves that target multiple Pokémon count as long as the user of Mirror Move is one of the targets.

      In this test, a Chatot that knows Hyper Voice faces a Combusken that knows Mirror Move. Torchic and Combusken are given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Hyper Voice.
           The Combusken uses Mirror Move.
           The Torchic uses Sleep Talk.
           -
           After Turn 1
           We verify that the Combusken has taken damage.
           We verify that the Chatot has taken damage.
           We verify that the Combusken's last attack counts as Hyper Voice.
       
    • testMirrorMoveFailsIfNotAttacked

      public static CompletableFuture<TestResult> testMirrorMoveFailsIfNotAttacked(BattleTestHelper helper)
      Mirror Move will fail if no moves were targeted at the user (by a Pokémon still on the field) before the use of Mirror Move.

      In this test, a Chatot that knows Roost faces a Combusken that knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Roost.
           The Combusken uses Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's attack failed.
       
    • testMirrorMoveFailsIfTargetSwitchesOut

      public static CompletableFuture<TestResult> testMirrorMoveFailsIfTargetSwitchesOut(BattleTestHelper helper)
      Mirror Move will fail if the user of the move that would be called by Mirror Move switches out during the turn Mirror Move is used.

      In this test, a Chatot that knows Parting Shot faces a Combusken that knows Mirror Move. The Chatot has a Pancham on its team. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Parting Shot, which switches it out.
           The Pancham switches in.
           The Combusken uses Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's attack failed.
       
    • testMirrorMoveFailsToCopyMirrorMove

      public static CompletableFuture<TestResult> testMirrorMoveFailsToCopyMirrorMove(BattleTestHelper helper)
      Mirror Move will fail if no moves were targeted at the user (by a Pokémon still on the field) before the use of Mirror Move.

      In this test, a Chatot that knows Mirror Move faces a Combusken that knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Mirror Move.
           The Combusken uses Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's attack failed.
       
    • testMirrorMoveCopiesSuccessfulMirrorMove

      public static CompletableFuture<TestResult> testMirrorMoveCopiesSuccessfulMirrorMove(BattleTestHelper helper)
      Mirror Move uses the last move targeted at the user by a Pokémon still on the field. A move called by Mirror Move in this way counts as the last move used. So, a Pokémon can mirror the target's move that they copied with Mirror Move.

      In this test, a Chatot that knows Mirror Move faces a Combusken that knows Ember and Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Mirror Move. The move fails.
           The Combusken uses Ember.
           Turn 2
           The Chatot uses Mirror Move. The Chatot copies Ember.
           The Combusken uses Mirror Move.
           -
           After Turn 2
           We verify that the Chatot's last attack was recorded as Ember.
           We verify that the Chatot's last temp attack was recorded as Ember.
           We verify that the Combusken's last attack was recorded as Ember.
           We verify that the Combusken's last temp attack was recorded as Ember.
       
    • testMirrorMoveFailsToCopyZMoves

      public static CompletableFuture<TestResult> testMirrorMoveFailsToCopyZMoves(BattleTestHelper helper)
      Mirror Move will fail if Mirror Move would call a Z-Move.

      In this test, a Chatot that holds a Flyinium Z and knows Peck faces a Dodrio that knows Mirror Move.

           Turn 1
           The Flyinium Z is activated and Chatot uses Supersonic Skystrike.
           The Dodrio uses Mirror Move.
           -
           After Turn 1
           We verify that the Dodrio's attack failed.
           We verify that the Dodrio's last attack was not Supersonic Skystrike.
       
    • testMirrorMoveAfterTargetParalyzed

      public static CompletableFuture<TestResult> testMirrorMoveAfterTargetParalyzed(BattleTestHelper helper)
      Paralysis has no effect on the last move used; if Mirror Move is used against a target that was fully paralyzed, Mirror Move will not count this as using a move.

      In this test, a Chatot with 252 Speed EVs that knows Confide and Peck faces a Torchic that knows Bounce and Mirror Move. Torchic is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Confide.
           The Torchic uses Bounce and bounces up into the air.
           Turn 2
           The Chatot uses Confide. The attack misses.
           The Torchic uses Bounce and deals damage to the Torchic. The Chatot becomes paralyzed.
           Turn 3
           The Chatot uses Peck, but is paralyzed and unable to move.
           The Torchic uses Mirror Move.
           -
           After Turn 2
           We verify that the Chatot is paralyzed.
           We verify that the Chatot is still faster than the Torchic.
           After Turn 3
           We verify that the Torchic has not taken damage.
           We verify that the Chatot's last attack was Confide.
           We verify that the Torchic's last attack counts as Confide.
           We verify that the Torchic's last temp attack was Confide.
           We verify that the Chatot's Special Attack was lowered by one stage.
       
    • testMirrorMoveAfterTargetConfused

      public static CompletableFuture<TestResult> testMirrorMoveAfterTargetConfused(BattleTestHelper helper)
      Confusion has no effect on the last move used; if Mirror Move is used against a target that hurt itself in confusion, Mirror Move will not count this as using a move.

      In this test, a Chatot that knows Mirror Move and Chatter faces a Torchic that knows Growl and Mirror Move. Torchic is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Mirror Move. It fails.
           The Torchic uses Growl.
           Turn 2
           The Chatot uses Chatter. The Torchic becomes confused.
           The Torchic uses Ember, but is confused and hurts itself.
           Turn 3
           The Chatot uses Mirror Move.
           The Torchic uses Growl, but is confused and hurts itself.
           -
           After Turn 2
           We verify that the Torchic is not fainted.
           We verify that the Torchic has the Confusion status.
           We verify that the Chatot does not take damage from the Torchic's Ember due to the Torchic hitting itself.
           After Turn 3
           We verify that the Torchic is not fainted.
           We verify that the Chatot's last attack counts as Growl.
           We verify that the Chatot's last temp attack was Growl.
           We verify that the Torchic's last attack counts as Growl.
           We verify that the Torchic had its Attack lowered by one stage.
       
    • testMirrorMoveAfterTargetRecharging

      public static CompletableFuture<TestResult> testMirrorMoveAfterTargetRecharging(BattleTestHelper helper)
      Recharging has no effect on the last move used.

      In this test, a Torterra that knows Frenzy Plant faces a Torchic that knows Sleep Talk and Mirror Move. Torchic is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Torterra uses Frenzy Plant.
           The Torchic uses Sleep Talk.
           Turn 2
           The Torterra recharges.
           The Torchic uses Mirror Move.
           -
           After Turn 1
           We verify that the Torterra has to recharge.
           We verify that the Torchic has not fainted.
           After Turn 2
           We verify that the Torterra takes damage.
           We verify that the Torterra's last attack was Frenzy Plant.
           We verify that the Torchic's last attack was Mirror Move.
           We verify that the Torchic's last temp attack was Frenzy Plant.
       
    • testMirrorMoveAfterTargetCharging

      public static CompletableFuture<TestResult> testMirrorMoveAfterTargetCharging(BattleTestHelper helper)
      Building up for a multi-turn move has no effect on the last move used. If Mirror Move is used against a target that executed the first part of a multi-turn move right before its use, Mirror Move will not count this as using a move.

      In this test, a White Kyurem that knows Ice Burn faces a Blaziken that knows Sleep Talk and Mirror Move. Blaziken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The White Kyurem starts charging for its Ice Burn.
           The Blaziken uses Mirror Move.
           -
           After Turn 1
           We verify that the White Kyurem's did not have a last attack recorded.
           We verify that the Blaziken has not taken damage.
           We verify that the Blaziken's last attack was Mirror Move.
           We verify that the Blaziken's attack failed.
           We verify that the Blaziken did not have a last temp attack recorded.
           We verify that the White Kyurem has not taken damage.
       
    • testMirrorMoveVsDisabledMove

      public static CompletableFuture<TestResult> testMirrorMoveVsDisabledMove(BattleTestHelper helper)
      A Pokémon will be able to use a move that is disabled if it is called via Mirror Move.

      In this test, a Spearow that knows Leer and Growl faces a Smeargle that knows Mirror Move and Disable.

           Turn 1
           The Smeargle uses Mirror Move. The move fails.
           The Spearow uses Leer.
           Turn 2
           The Smeargle uses Disable.
           The Spearow uses Leer, but it has become disabled.
           Turn 3
           The Smeargle uses Mirror Move.
           The Spearow uses Growl.
           -
           After Turn 2
           We verify that the Spearow has the Disabled status.
           After Turn 3
           We verify that the Smeargle's last attack was Leer.
           We verify that the Smeargle's last temp attack was Leer.
           We verify that the Spearow's Defense was lowered by one stage.
       
    • testMirrorMoveCanBeUsedOnTeammates

      public static CompletableFuture<TestResult> testMirrorMoveCanBeUsedOnTeammates(BattleTestHelper helper)
      A Pokémon will be able to use a move that is disabled if it is called via Mirror Move.

      In this Double Battle test, a Swablu that knows Helping Hand faces a Torchic that knows Mirror Move and a Dodrio that knows Sleep Talk. Torchic is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Dodrio uses Sleep Talk.
           The Pidgey uses Sleep Talk.
           The Swablu uses Helping Hand.
           The Torchic uses Mirror Move.
           -
           After Turn 1
           We verify that the Torchic's last attack was Helping Hand.
           We verify that the Torchic's last temp attack was Helping Hand.
           We verify that the Torchic's target ended up being the Dodrio.
           We verify that the Torchic's attack succeeded.
       
    • testMirrorMoveWithFlyiniumZ

      public static CompletableFuture<TestResult> testMirrorMoveWithFlyiniumZ(BattleTestHelper helper)
      If powered up by a Flyinium Z into Z-Mirror Move, the user's Attack stat rises by two stages. Additionally, the copied move will become its corresponding Z-Move.

      In this test, a Chatot that knows Peck faces a Combusken that holds a Flyinium Z and knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Peck.
           The Flyinium Z is activated and Combusken uses Z-Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's Attack was raised by two stages.
           We verify that the Combusken's last attack was recorded as Supersonic Skystrike.
           We verify that the Combusken's last temp attack was recorded as Supersonic Skystrike.
       
    • testMirrorMoveWithFlyiniumZVsNonFlyingMove

      public static CompletableFuture<TestResult> testMirrorMoveWithFlyiniumZVsNonFlyingMove(BattleTestHelper helper)
      If powered up by a Flyinium Z into Z-Mirror Move, the user's Attack stat rises by two stages. Additionally, the copied move will become its corresponding Z-Move.

      In this test, a Chatot that knows Round faces a Combusken that holds a Flyinium Z and knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Round.
           The Flyinium Z is activated and Combusken uses Z-Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's Attack was raised by two stages.
           We verify that the Combusken's last attack was recorded as Supersonic Skystrike.
           We verify that the Combusken's last temp attack was recorded as Supersonic Skystrike.
       
    • testMirrorMoveWithFlyiniumZVsNonStatusMove

      public static CompletableFuture<TestResult> testMirrorMoveWithFlyiniumZVsNonStatusMove(BattleTestHelper helper)
      If powered up by a Flyinium Z into Z-Mirror Move, the user's Attack stat rises by two stages. Additionally, the copied move will become its corresponding Z-Move. If the copied move is a status move, it will not receive its Z-Power effect.

      In this test, a Chatot that knows Confide faces a Combusken that holds a Flyinium Z and knows Mirror Move. Combusken is given the Blaze ability so that there is no chance it is created with the Speed Boost ability.

           Turn 1
           The Chatot uses Confide.
           The Flyinium Z is activated and Combusken uses Z-Mirror Move.
           -
           After Turn 1
           We verify that the Combusken's Attack was raised by two stages.
           We verify that the Combusken's last attack was recorded as Confide.
           We verify that the Combusken's last temp attack was recorded as Confide.
           We verify that the Combusken's Defense was not raised at all.