Class MagicBounceTests

java.lang.Object
com.pixelmonmod.pixelmon.api.test.impl.ability.MagicBounceTests

public class MagicBounceTests extends Object
Tests for Magic Bounce
  • Constructor Details

    • MagicBounceTests

      public MagicBounceTests()
  • Method Details

    • testBouncesGrowl

      public static CompletableFuture<TestResult> testBouncesGrowl(BattleTestHelper helper)
    • testBouncesOnceWhenTargetAndSourceShareAbility

      public static CompletableFuture<TestResult> testBouncesOnceWhenTargetAndSourceShareAbility(BattleTestHelper helper)
    • testDoesNotCauseChoiceLock

      public static CompletableFuture<TestResult> testDoesNotCauseChoiceLock(BattleTestHelper helper)
    • testMoldBreakerSuppression

      public static CompletableFuture<TestResult> testMoldBreakerSuppression(BattleTestHelper helper)
    • testDoesNotBounceMovesWhenSemiInvulnerable

      public static CompletableFuture<TestResult> testDoesNotBounceMovesWhenSemiInvulnerable(BattleTestHelper helper)
    • testMagicBounceReflectsEvenIfImmuneThunderWave

      public static CompletableFuture<TestResult> testMagicBounceReflectsEvenIfImmuneThunderWave(BattleTestHelper helper)
      Even if the Pokémon with Magic Bounce is immune to a move due to its type or species Magic Bounce will still reflect the move.

      In this test, a Baltoy with the Magic Bounce ability that knows Sleep Talk faces a Nosepass that knows Thunder Wave. Baltoy does not obtain Magic Bounce naturally in-game.

           Turn 1
           The Baltoy uses Sleep Talk.
           The Nosepass uses Thunder Wave.
           -
           After Turn 1
           We verify that the Baltoy does not have the Paralysis status.
           We verify that the Nosepass has the Paralysis status.
       
    • testMagicBounceReflectsEvenIfImmuneTelekinesis

      public static CompletableFuture<TestResult> testMagicBounceReflectsEvenIfImmuneTelekinesis(BattleTestHelper helper)
      Even if the Pokémon with Magic Bounce is immune to a move due to its type or species Magic Bounce will still reflect the move.

      In this test, a Dugtrio with the Magic Bounce ability that knows Sleep Talk faces a Gothorita that knows Telekinesis. Dugtrio does not obtain Magic Bounce naturally in-game.

           Turn 1
           The Dugtrio uses Sleep Talk.
           The Gothorita uses Telekinesis.
           -
           After Turn 1
           We verify that the Dugtrio does not have the Telekinesis status.
           We verify that the Gothorita has the Telekinesis status.
       
    • testMagicBounceReflectsEvenIfImmuneThunderWaveProtect

      public static CompletableFuture<TestResult> testMagicBounceReflectsEvenIfImmuneThunderWaveProtect(BattleTestHelper helper)
      Even if the Pokémon with Magic Bounce is immune to a move due to its type or species Magic Bounce will still reflect the move. However, it will not activate if the Pokémon with Magic Bounce is protected from that move.

      In this test, a Baltoy with the Magic Bounce ability that knows Protect faces a Nosepass that knows Thunder Wave. Baltoy does not obtain Magic Bounce naturally in-game.

           Turn 1
           The Baltoy uses Protect.
           The Nosepass uses Thunder Wave.
           -
           After Turn 1
           We verify that the Baltoy does not have the Paralysis status.
           We verify that the Nosepass has the Paralysis status.
       
    • testMagicBounceReflectsFailedMovesDisable

      public static CompletableFuture<TestResult> testMagicBounceReflectsFailedMovesDisable(BattleTestHelper helper)
      Magic Bounce can reflect a move even if the move would fail, such as if a Pokémon would use Disable on another Pokémon that hadn't used a move yet.

      In this Single Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Xatu with the Magic Bounce ability that knows Sleep Talk and faces a Darkrai that knows Disable.

           Turn 1
           The Natu switches out for the Xatu.
           The Darkrai uses Disable.
           Turn 1
           The Darkrai uses Disable.
           The Xatu uses Sleep Talk.
           -
           After Turn 2
           We verify that the Xatu does not have the Disable status.
           We verify that the Darkrai has the Disable status.
       
    • testMagicBounceReflectsFailedMovesFeatherDance

      public static CompletableFuture<TestResult> testMagicBounceReflectsFailedMovesFeatherDance(BattleTestHelper helper)
      Magic Bounce can reflect a move even if the move would fail, such as if Feather Dance would not be able to lower the Attack of a Pokémon, due to having -6 Attack already.

      In this test, a Natu with the Magic Bounce ability that knows Sleep Talk faces a Tranquill that knows Feather Dance.

           Before Turn 1
           The Natu's Attack is (artificially) lowered by six stages.
           Turn 1
           The Tranquill uses Feather Dance.
           The Natu uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu's Attack has been lowered by six stages.
           We verify that the Tranquill's Attack has been lowered by two stages.
       
    • testMagicBounceVsSpreadMoves

      public static CompletableFuture<TestResult> testMagicBounceVsSpreadMoves(BattleTestHelper helper)
      If a move targets multiple Pokémon individually (such as Heal Block or Growl), it will still affect each Pokémon that does not have Magic Bounce as normal, then each Pokémon that has Magic Bounce will reflect the move individually.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Flaaffy that knows Sleep Talk. Together they face a Fletchinder that knows Growl.

           Turn 1
           The Fletchinder uses Growl.
           The Natu uses Sleep Talk.
           The Flaaffy uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu's Attack was not lowered by one stage.
           We verify that the Flaaffy's Attack was lowered by one stage.
           We verify that the Fletchinder's Attack was lowered by one stage.
       
    • testMagicBounceOnBothTargetsVsSpreadMoves

      public static CompletableFuture<TestResult> testMagicBounceOnBothTargetsVsSpreadMoves(BattleTestHelper helper)
      If a move targets multiple Pokémon individually (such as Heal Block or Growl), it will still affect each Pokémon that does not have Magic Bounce as normal, then each Pokémon that has Magic Bounce will reflect the move individually.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Xatu with the Magic Bounce ability that knows Sleep Talk. Together they face a Fletchinder that knows Growl.

           Turn 1
           The Fletchinder uses Growl.
           The Natu uses Sleep Talk.
           The Xatu uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu's Attack was not lowered by one stage.
           We verify that the Xatu's Attack was not lowered by one stage.
           We verify that the Fletchinder's Attack was lowered by one stage.
       
    • testMagicBounceWithSlowerAllyOnlyBouncesOnce

      public static CompletableFuture<TestResult> testMagicBounceWithSlowerAllyOnlyBouncesOnce(BattleTestHelper helper)
      If a move targets an entire side (such as entry hazard moves), if any Pokémon on that side reflects the move with Magic Bounce then the whole side is unaffected; even if multiple Pokémon on that side have Magic Bounce, only one of the Pokémon on that side will have its Magic Bounce activate, and it will activate only once.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Flaaffy that knows Sleep Talk. Together they face a Mew that knows Toxic Spikes and a Rolycoly that knows Sleep Talk.

           Turn 1
           The Mew uses Toxic Spikes.
           The Natu uses Sleep Talk.
           The Flaaffy uses Sleep Talk.
           The Rolycoly uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu does not have Toxic Spikes on its side of the field.
           We verify that the Flaaffy does not have Toxic Spikes on its side of the field.
           We verify that the Mew has Toxic Spikes on its side of the field.
           We verify that the Rolycoly has Toxic Spikes on its side of the field.
           We verify that the Mew has only one stack of Toxic Spikes on its side of the field.
           We verify that the Rolycoly has only one stack of Toxic Spikes on its side of the field.
       
    • testMagicBounceWithFasterAllyOnlyBouncesOnce

      public static CompletableFuture<TestResult> testMagicBounceWithFasterAllyOnlyBouncesOnce(BattleTestHelper helper)
      If a move targets an entire side (such as entry hazard moves), if any Pokémon on that side reflects the move with Magic Bounce then the whole side is unaffected; even if multiple Pokémon on that side have Magic Bounce, only one of the Pokémon on that side will have its Magic Bounce activate, and it will activate only once.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Uxie that knows Sleep Talk. Together they face a Mew that knows Toxic Spikes and a Rolycoly that knows Sleep Talk.

           Turn 1
           The Mew uses Toxic Spikes.
           The Uxie uses Sleep Talk.
           The Natu uses Sleep Talk.
           The Rolycoly uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu does not have Toxic Spikes on its side of the field.
           We verify that the Uxie does not have Toxic Spikes on its side of the field.
           We verify that the Mew has Toxic Spikes on its side of the field.
           We verify that the Rolycoly has Toxic Spikes on its side of the field.
           We verify that the Mew has only one stack of Toxic Spikes on its side of the field.
           We verify that the Rolycoly has only one stack of Toxic Spikes on its side of the field.
       
    • testMagicBounceWithSlowerAllyReflectsHazardMoves

      public static CompletableFuture<TestResult> testMagicBounceWithSlowerAllyReflectsHazardMoves(BattleTestHelper helper)
      If a move targets an entire side (such as entry hazard moves), if any Pokémon on that side reflects the move with Magic Bounce then the whole side is unaffected; even if multiple Pokémon on that side have Magic Bounce, only one of the Pokémon on that side will have its Magic Bounce activate.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with a Flaaffy that knows Sleep Talk. Together they face a Stakataka that knows Stealth Rock and a Rolycoly that knows Sleep Talk.

           Turn 1
           The Natu uses Sleep Talk.
           The Flaaffy uses Sleep Talk.
           The Rolycoly uses Sleep Talk.
           The Stakataka uses Stealth Rock.
           -
           After Turn 1
           We verify that the Natu does not have Stealth Rock on its side of the field.
           We verify that the Flaaffy does not have Stealth Rock on its side of the field.
           We verify that the Stakataka has Stealth Rock on its side of the field.
           We verify that the Rolycoly has Stealth Rock on its side of the field.
       
    • testMagicBounceWithFasterAllyReflectsHazardMoves

      public static CompletableFuture<TestResult> testMagicBounceWithFasterAllyReflectsHazardMoves(BattleTestHelper helper)
      If a move targets an entire side (such as entry hazard moves), if any Pokémon on that side reflects the move with Magic Bounce then the whole side is unaffected; even if multiple Pokémon on that side have Magic Bounce, only one of the Pokémon on that side will have its Magic Bounce activate.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk is on a team with an Uxie that knows Sleep Talk. Together they face a Stakataka that knows Stealth Rock and a Rolycoly that knows Sleep Talk.

           Turn 1
           The Uxie uses Sleep Talk.
           The Natu uses Sleep Talk.
           The Rolycoly uses Sleep Talk.
           The Stakataka uses Stealth Rock.
           -
           After Turn 1
           We verify that the Natu does not have Stealth Rock on its side of the field.
           We verify that the Uxie does not have Stealth Rock on its side of the field.
           We verify that the Stakataka has Stealth Rock on its side of the field.
           We verify that the Rolycoly has Stealth Rock on its side of the field.
       
    • testMagicBounceReflectsZStatusMoves

      public static CompletableFuture<TestResult> testMagicBounceReflectsZStatusMoves(BattleTestHelper helper)
      Magic Bounce can reflect a move even if the move would fail, such as if Feather Dance would not be able to lower the Attack of a Pokémon, due to having -6 Attack already.

      In this test, a Natu with the Magic Bounce ability that knows Sleep Talk faces a Tranquill that holds a Flyinium Z and knows Feather Dance.

           Turn 1
           The Tranquill uses Z-Feather Dance.
           The Natu uses Sleep Talk.
           -
           After Turn 1
           We verify that the Natu's Attack has been lowered by six stages.
           We verify that the Tranquill's Attack has been lowered by two stages.
       
    • testMagicBounceReflectsDancerMoves

      public static CompletableFuture<TestResult> testMagicBounceReflectsDancerMoves(BattleTestHelper helper)
      Magic Bounce can reflect moves used via Dancer.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk faces a Tranquill that knows Feather Dance and an Oricorio with the Dancer ability that knows Sleep Talk.

           Turn 1
           The Oricorio uses Sleep Talk.
           The Natu uses Sleep Talk.
           The Tranquill uses Feather Dance.
           The Oricorio's Dancer ability activates and it also uses Feather Dance.
           -
           After Turn 1
           We verify that the Natu's Attack has not been lowered.
           We verify that the Tranquill's Attack has been lowered by two stages.
           We verify that the Oricorio's Attack has been lowered by two stages.
       
    • testMagicBounceReflectsInstructMoves

      public static CompletableFuture<TestResult> testMagicBounceReflectsInstructMoves(BattleTestHelper helper)
      Magic Bounce can reflect moves used via Instruct.

      In this Double Battle test, a Natu with the Magic Bounce ability that knows Sleep Talk faces a Tranquill that knows Feather Dance and an Oranguru that knows Instruct.

           Turn 1
           The Natu uses Sleep Talk.
           The Tranquill uses Feather Dance.
           The Oranguru uses Instruct on the Tranquill. The Tranquill uses Feather Dance on the Natu again.
           -
           After Turn 1
           We verify that the Natu's Attack has not been lowered.
           We verify that the Tranquill's Attack has been lowered by four stages.
       
    • testMagicBounceVsMyceliumMight

      public static CompletableFuture<TestResult> testMagicBounceVsMyceliumMight(BattleTestHelper helper)
      Magic Bounce will not activate if the opponent has the Ability Mycelium Might.

      In this test, a Natu with the Magic Bounce ability that knows Sleep Talk faces a Toedscool with the Mycelium Might ability that knows Screech.

           Turn 1
           The Natu uses Sleep Talk.
           The Toedscool uses Screech.
           -
           After Turn 1
           We verify that the Natu's Defense has been lowered by two stages.
           We verify that the Toedscool's Defense has not been lowered.