Class KnockOffTests

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

public class KnockOffTests extends Object
  • Constructor Details

    • KnockOffTests

      public KnockOffTests()
  • Method Details

    • testShouldRemoveMostItems

      public static CompletableFuture<TestResult> testShouldRemoveMostItems(BattleTestHelper helper)
      Knock Off inflicts damage, and knocks off the target's held item if it has one.

      In this test, a Mew that knows the move Knock Off faces off against a Blissey that is holding a Shed Shell and that knows Soft-Boiled. - Turn 1 Mew uses Knock Off. Blissey's Shed Shell is removed. Blissey uses Soft-Boiled. - We verify that the Blissey does not have a held item.

    • testShouldNotRemoveItemsUponHittingASubstitute

      public static CompletableFuture<TestResult> testShouldNotRemoveItemsUponHittingASubstitute(BattleTestHelper helper)
      Knock Off cannot knock off an item from a Pokémon if it hits a Pokémon's Substitute.

      In this test, a Mew that knows the move Knock Off faces off against a Ninjask that is holding a Shed Shell and that knows Substitute. - Turn 1 Mew uses Knock Off. Ninjask's Shed Shell is removed. Ninjask uses Substitute. - We verify that the Ninjask has a held item.

    • testShouldNotRemovePlatesFromArceus

      public static CompletableFuture<TestResult> testShouldNotRemovePlatesFromArceus(BattleTestHelper helper)
      Knock Off cannot remove a plate from Arceus.

      In this test, a Mew that knows the move Knock Off faces off against a Arceus that is holding a Flame Plate and that knows Swords Dance. - Turn 1 Arceus uses Swords Dance. Mew uses Knock Off. Arceus's Flame Plate is not removed. - We verify that the Arceus has a held item.

    • testShouldRemovePlatesFromNonArceus

      public static CompletableFuture<TestResult> testShouldRemovePlatesFromNonArceus(BattleTestHelper helper)
      Knock Off can remove a Plate from a Pokémon that is not Arceus.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Flame Plate and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Flame Plate is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveGriseousOrbFromGiratina

      public static CompletableFuture<TestResult> testShouldNotRemoveGriseousOrbFromGiratina(BattleTestHelper helper)
      Knock Off cannot remove a Griseous Orb from Giratina.

      In this test, a Mew that knows the move Knock Off faces off against a Giratina that is holding a Griseous Orb and that knows Sleep Talk. - Turn 1 Mew uses Knock Off. Giratina's Griseous Orb is not removed. Giratina uses Sleep Talk. - We verify that the Giratina has a held item.

    • testShouldRemoveGriseousOrbFromNonGiratina

      public static CompletableFuture<TestResult> testShouldRemoveGriseousOrbFromNonGiratina(BattleTestHelper helper)
      Knock Off can remove a Griseous Orb from a Pokémon that is not Giratina.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Griseous Orb and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Griseous Orb is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveDrivesFromGenesect

      public static CompletableFuture<TestResult> testShouldNotRemoveDrivesFromGenesect(BattleTestHelper helper)
      Knock Off cannot remove a drive from Genesect.

      In this test, a Mew that knows the move Knock Off faces off against a Genesect that is holding a Douse Drive and that knows Shift Gear. - Turn 1 Mew uses Knock Off. Genesect's Douse Drive is not removed. Genesect uses Shift Gear. - We verify that the Genesect has a held item.

    • testShouldRemoveDrivesFromNonGenesect

      public static CompletableFuture<TestResult> testShouldRemoveDrivesFromNonGenesect(BattleTestHelper helper)
      Knock Off can remove a Drive from a Pokémon that is not Genesect.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Douse Drive and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Douse Drive is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveMegaStonesFromPokemonThatCouldUseThem

      public static CompletableFuture<TestResult> testShouldNotRemoveMegaStonesFromPokemonThatCouldUseThem(BattleTestHelper helper)
      Knock Off cannot remove a Mega Stone if the target could use it to Mega Evolve.

      In this test, a Mew that knows the move Knock Off faces off against a Scizor that is holding a Scizorite and that knows Swords Dance. - Turn 1 Mew uses Knock Off. Scizor's Scizorite is not removed. Scizor uses Swords Dance. - We verify that the Scizor has a held item.

    • testShouldRemoveMegaStonesFromPokemonThatCouldNotUseThem

      public static CompletableFuture<TestResult> testShouldRemoveMegaStonesFromPokemonThatCouldNotUseThem(BattleTestHelper helper)
      Knock Off can remove a Mega Stone if the target could not use it to Mega Evolve.

      In this test, a Mew that knows the move Knock Off faces off against a Scizor that is holding an Audinite and that knows Swords Dance. - Turn 1 Mew uses Knock Off. Scizor's Audinite is not removed. Scizor uses Swords Dance. - We verify that the Scizor doesn't have a held item.

    • testShouldNotRemoveItemsIfTheUserFaintsMidMoveDueToTarget

      public static CompletableFuture<TestResult> testShouldNotRemoveItemsIfTheUserFaintsMidMoveDueToTarget(BattleTestHelper helper)
      If the user faints due to the target's Ability (Rough Skin or Iron Barbs) or held Rocky Helmet, it cannot remove the target's held item.

      In this test, a Shedinja that knows the move Knock Off and a Magikarp that knows Splash face off against a Ferrothorn that is holding a Rocky Helmet, has the Iron Barbs ability, and that knows Curse. - Turn 1 Shedinja uses Knock Off. Shedinja faints during the attack. Ferrothorn's Rocky Helmet is not removed. Ferrothorn uses Curse. - We verify that the Shedinja has fainted. We verify that the Ferrothorn has a held item.

    • testShouldRemoveItemsIfTheUserFaintsMidMoveDueToUser

      public static CompletableFuture<TestResult> testShouldRemoveItemsIfTheUserFaintsMidMoveDueToUser(BattleTestHelper helper)
      If the user faints due to the user's held Life Orb, then it can still remove the target's held item.

      In this test, a Shedinja that is holding a Life Orb and that knows the move Knock Off is on a team with a Magikarp that knows Splash and they are facing a Blissey that is holding a Shed Shell and that knows the move Sleep Talk. - Turn 1 Blissey uses Sleep Talk. Shedinja uses Knock Off. Shedinja faints due to its own Life Orb. Blissey's Shed Shell is removed. - We verify that the Shedinja has fainted. We verify that the Blissey does not have a held item.

    • testShouldNotRemoveZCrystalsFromAnyPokemon

      public static CompletableFuture<TestResult> testShouldNotRemoveZCrystalsFromAnyPokemon(BattleTestHelper helper)
      Knock Off cannot remove a Z-Crystal from any Pokémon.

      In this test, a Mew that knows the move Knock Off faces off against a Magikarp that is holding a Normalium Z and that knows the move Splash. - Turn 1 Mew uses Knock Off. Magikarp's Normalium Z is not removed. Magikarp uses Splash. - We verify that the Magikarp has a held item.

    • testShouldNotRemoveAnOrbFromAPokemonThatCouldUseIt

      public static CompletableFuture<TestResult> testShouldNotRemoveAnOrbFromAPokemonThatCouldUseIt(BattleTestHelper helper)
      Knock Off cannot remove an Orb if the target could use it to undergo Primal Reversion.

      In this test, a Mew that knows the move Knock Off faces off against a Groudon that is holding a Red Orb and that knows the move Bulk Up. - Turn 1 Mew uses Knock Off. Groudon's Red Orb is not removed. Groudon uses Bulk Up. - We verify that the Groudon has a held item.

    • testShouldRemoveAnOrbFromAPokemonThatCouldNotUseIt

      public static CompletableFuture<TestResult> testShouldRemoveAnOrbFromAPokemonThatCouldNotUseIt(BattleTestHelper helper)
      Knock Off can remove an Orb if the target can't use it to undergo Primal Reversion.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Red Orb and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Red Orb is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu has a held item.

    • testShouldNotRemoveMemoriesFromSilvally

      public static CompletableFuture<TestResult> testShouldNotRemoveMemoriesFromSilvally(BattleTestHelper helper)
      Knock Off cannot remove a Memory from a Silvally.

      In this test, a Mew that knows the move Knock Off faces off against a Silvally that is holding a Bug Memory and that knows the move Metal Sound. - Turn 1 Mew uses Knock Off. Silvally uses Metal Sound. Silvally's Bug Memory is not removed. - We verify that the Silvally has a held item.

    • testShouldRemoveMemoriesFromNonSilvally

      public static CompletableFuture<TestResult> testShouldRemoveMemoriesFromNonSilvally(BattleTestHelper helper)
      Knock Off can remove a Memory from a Pokémon that is not Silvally.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Bug Memory and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Bug Memory is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveRustedSwordFromZacian

      public static CompletableFuture<TestResult> testShouldNotRemoveRustedSwordFromZacian(BattleTestHelper helper)
      Knock Off cannot remove a Rusted Sword from a Zacian.

      In this test, a Mew that knows the move Knock Off faces off against a Zacian that is holding a Rusted Sword and that knows the move Swords Dance. - Turn 1 Zacian uses Swords Dance. Mew uses Knock Off. Zacian's Rusted Sword is not removed. - We verify that the Zacian has a held item.

    • testShouldRemoveRustedSwordFromNonZacians

      public static CompletableFuture<TestResult> testShouldRemoveRustedSwordFromNonZacians(BattleTestHelper helper)
      Knock Off can remove a Rusted Sword from a Pokémon that is not Zacian.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Rusted Sword and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Rusted Sword is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveRustedShieldFromZamazenta

      public static CompletableFuture<TestResult> testShouldNotRemoveRustedShieldFromZamazenta(BattleTestHelper helper)
      Knock Off cannot remove a Rusted Shield from a Zamazenta.

      In this test, a Mew that knows the move Knock Off faces off against a Zamazenta that is holding a Rusted Shield and that knows the move Swords Dance. - Turn 1 Zamazenta uses Swords Dance. Mew uses Knock Off. Zamazenta's Rusted Shield is not removed. - We verify that the Zamazenta has a held item.

    • testShouldRemoveRustedShieldFromNonZamazenta

      public static CompletableFuture<TestResult> testShouldRemoveRustedShieldFromNonZamazenta(BattleTestHelper helper)
      Knock Off can remove a Rusted Shield from a Pokémon that is not Zamazenta.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Rusted Shield and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Rusted Shield is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldNotRemoveBoosterEnergyFromParadoxPokemon

      public static CompletableFuture<TestResult> testShouldNotRemoveBoosterEnergyFromParadoxPokemon(BattleTestHelper helper)
      Knock Off cannot remove a Booster Shield from a Paradox Pokémon (exluding Koraidon and Miraidon), even if it hasn't consumed the item because its Ability triggered from the appropriate weather or terrain condition instead.

      In this Double Battle test, a Mew that knows the move Knock Off and a Magikarp that knows Splash face off against a Great Tusk that is holding a Booster Energy and that knows the move Defense Curl as well as a Groudon with the Drought ability that knows the move Bulk Up. - Turn 1 Harsh sunlight takes effect due to Groudon's Drought ability. The harsh sunlight activates Great Tusk's Protosynthesis ability, which stops it from consuming its Booster Energy to activate its Protosynthesis ability. Mew uses Knock Off. Great Tusk's Booster Energy is not removed. Groudon uses Bulk Up. Great Tusk uses Defense Curl. Magikarp uses Splash. - We verify that the Great Tusk has a held item.

    • testShouldRemoveBoosterEnergyFromNonParadoxPokemon

      public static CompletableFuture<TestResult> testShouldRemoveBoosterEnergyFromNonParadoxPokemon(BattleTestHelper helper)
      Knock Off can remove a Booster Energy from a Pokémon that is not a Paradox Pokémon.

      In this test, a Mew that knows the move Knock Off faces off against a Pikachu that is holding a Booster Energy and that knows the move Nasty Plot. - Turn 1 Mew uses Knock Off. Pikachu's Booster Energy is removed. Pikachu uses Nasty Plot. - We verify that the Pikachu does not have a held item.

    • testShouldIncreaseBasePowerByFiftyPercentIfAnItemCanBeKnockedOff

      public static CompletableFuture<TestResult> testShouldIncreaseBasePowerByFiftyPercentIfAnItemCanBeKnockedOff(BattleTestHelper helper)
      If Knock Off is used on a Pokémon that is holding an item that can be knocked off, its base power will be boosted by 50%.

      In this Double Battle test, two Mew that both know the move Knock Off face off against two Blissey that both know the move Sleep Talk. One Blissey is holding a Shed Shell and the other is holding a Normalium Z. - Turn 1 Mew1 uses Knock Off. Mew2 uses Knock Off. Blissey1's Shed Shell is removed. Blissey2's Normalium Z is not removed. Blissey1 uses Sleep Talk. Blissey2 uses Sleep Talk. - We verify that Blissey1 does not have a held item. We verify that Blissey2 does have a held item. We verify that the overridden base power of a boosted Knock Off is 50% more than the normal base power of unboosted Knock Off. We verify that the damage dealt by the boosted Knock Off is 50% more than the unboosted Knock Off.

    • testShouldIncreaseBasePowerByFiftyPercentDespiteStickyHold

      public static CompletableFuture<TestResult> testShouldIncreaseBasePowerByFiftyPercentDespiteStickyHold(BattleTestHelper helper)
      Knock Off cannot remove the held item of a target that has Sticky Hold, but the bonus damage will apply anyway.

      In this Double Battle test, two Mew that both know the move Knock Off face off against two Shellos that both have the Sticky Hold ability and both know the move Sleep Talk. One Shellos is holding a Shed Shell and the other is holding a Normalium Z. - Turn 1 Mew1 uses Knock Off. Mew2 uses Knock Off. Shellos1's Shed Shell is not removed. Shellos2's Normalium Z is not removed. Shellos1 uses Sleep Talk. Shellos2 uses Sleep Talk. - We verify that Shellos1 has a held item. We verify that Shellos2 has a held item. We verify that Mew1's Knock Off was boosted by 50% despite not being able to remove the Shed Shell due to Shellos1's Sticky Hold.

    • testShouldIncreaseBasePowerByFiftyPercentDespiteSubstitute

      public static CompletableFuture<TestResult> testShouldIncreaseBasePowerByFiftyPercentDespiteSubstitute(BattleTestHelper helper)
      Knock Off cannot remove the held item of a target if it hits the target's substitute, but the bonus damage will apply anyway.

      In this Double Battle test, two Mew that both know the move Knock Off face off against two Floatzel. One Floatzel knows the move Substitute and the other knows Sleep Talk. One Floatzel is holding a Shed Shell and the other is holding a Normalium Z. Floatzels are only chosen because they move faster than Mew. - Turn 1 Floatzel1 uses Substitute. Floatzel2 uses Sleep Talk. Mew1 uses Knock Off. Mew2 uses Knock Off. Floatzel1's Shed Shell is not removed. Floatzel2's Normalium Z is not removed. - We verify that Floatzel1 has a held item. We verify that Floatzel2 has a held item. We verify that Mew1's Knock Off was boosted by 50% despite not being able to remove the Shed Shell due to Floatzel1's substitute.

    • testShouldRemoveItemFromATargetWithSubstituteIfUserHasInfiltrator

      public static CompletableFuture<TestResult> testShouldRemoveItemFromATargetWithSubstituteIfUserHasInfiltrator(BattleTestHelper helper)
      Knock Off can remove the held item of a target behind a substitute if the user has the Infiltrator ability.

      In this Double Battle test, two Seviper, one with the Infiltrator ability, and both knowing the move Knock Off face off against two Floatzel. One Floatzel knows the move Substitute and the other knows Sleep Talk. The Floatzel that knows Substitute is holding a Shed Shell and the other is holding a Normalium Z. - Turn 1 Floatzel1 uses Substitute. Floatzel2 uses Sleep Talk. Seviper1 uses Knock Off on Floatzel1. Seviper2 uses Knock Off on Floatzel2. Floatzel1's Shed Shell is removed. Floatzel2's Normalium Z is not removed. - We verify that Floatzel1 does not have a held item. We verify that Floatzel2 has a held item. We verify that Seviper1's Knock Off was boosted by 50%.

    • testShouldIncreaseBasePowerByFiftyPercentEvenIfTheBerryIsEatenDuringTheAttack

      public static CompletableFuture<TestResult> testShouldIncreaseBasePowerByFiftyPercentEvenIfTheBerryIsEatenDuringTheAttack(BattleTestHelper helper)
      If used on a Pokémon weak to Dark-type moves holding a Colbur Berry, the Colbur Berry will still be eaten, but Knock Off will get the damage boost regardless.

      In this Double Battle test, two Mew that both know the move Knock Off face off against two Beedrill that both know the move Sleep Talk. One Beedrill is holding a Colbur Berry and the other is holding a Normalium Z. - Turn 1 Mew1 uses Knock Off. Mew2 uses Knock Off. Beedrill1 eats its Colbur Berry before Knock Off can remove it. Beedrill2's Normalium Z is not removed. Beedrill1 uses Sleep Talk. Beedrill2 uses Sleep Talk. - We verify that Beedrill1 does not have a held item. We verify that Beedrill2 does have a held item. We verify that Mew1's Knock Off onto Beedrill1 has its base power boosted by 50% despite the Colbur Berry being eaten before it can be removed.

    • testShouldNotIncreaseBasePowerByFiftyPercentIfTheTargetHoldsAnItemThatCouldNotBeRemovedFromTheKnockOffUser

      public static CompletableFuture<TestResult> testShouldNotIncreaseBasePowerByFiftyPercentIfTheTargetHoldsAnItemThatCouldNotBeRemovedFromTheKnockOffUser(BattleTestHelper helper)
      The boost will also not be applied if the user of Knock Off targets a Pokémon holding an item that would not be able to be removed from the Pokémon using Knock Off.

      In this Double Battle test, two Genesect that both know the move Knock Off face off against two Pikachu that both know the move Sleep Talk. One Pikachu is holding a Douse Drive and the other is holding a Normalium Z. - Turn 1 Genesect1 uses Knock Off. Genesect2 uses Knock Off. Pikachu1's Douse Drive is removed. Pikachu2's Normalium Z is not removed. Pikachu1 uses Sleep Talk. Pikachu2 uses Sleep Talk. - We verify that Pikachu1 does have a held item. We verify that Pikachu2 does have a held item. We verify that the overridden base power of a boosted Knock Off is 50% more than the normal base power of unboosted Knock Off. We verify that the damage dealt by the boosted Knock Off is 50% more than the unboosted Knock Off.

    • testShouldAllowTargetToObtainAnotherItem

      public static CompletableFuture<TestResult> testShouldAllowTargetToObtainAnotherItem(BattleTestHelper helper)
      Knock Off removes the held item rather than rendering it unusable; this means that the Pokémon can obtain another item if its held item is removed by Knock Off.

      In this test, a Mew holding a Lum Berry that knows the move Knock Off faces off against a Thievul that is holding a Shed Shell and that knows Thief. - Turn 1 Mew uses Knock Off. Thievul's Shed Shell is removed. Thievul uses Thief. Thievul obtains Mew's Lum Berry. - We verify that Thievul has a held item. We verify that Mew does not have a held item.

    • testRecycleShouldNotBeAbleToRecoverTheHeldItem

      public static CompletableFuture<TestResult> testRecycleShouldNotBeAbleToRecoverTheHeldItem(BattleTestHelper helper)
      Recycle cannot recover an item removed by Knock Off.

      In this test, a Mew that knows the move Knock Off faces off against a Porygon2 that is holding a Lum Berry and that knows Recycle. - Turn 1 Mew uses Knock Off. Porygon2's Lum Berry is removed. Porygon2 uses Recycle. - We verify that Porygon2 does not have a held item.

    • testFocusSashActivatesAndIsConsumedBeforeKnockOffCanRemoveIt

      public static CompletableFuture<TestResult> testFocusSashActivatesAndIsConsumedBeforeKnockOffCanRemoveIt(BattleTestHelper helper)
      If Knock Off triggers an item (such as a Focus Sash) after the attack, that item activates before Knock Off can knock it off.

      In this test, a Mew that knows the move Knock Off faces off against a Hoopa that is holding a Focus Sash and that knows the move Sleep Talk. - Turn 1 Mew uses Knock Off. Hoopa's Focus Sash activates and it survives at 1 HP. The Focus Sash is consumed. Hoopa uses Sleep Talk. - We verify that Hoopa does not have a held item. We verify that Mew's Knock Off onto Hoopa has its base power boosted by 50% despite the Focus Sash activating before it can be removed.

    • testFocusBandActivatesBeforeKnockOffCanRemoveItAndIsThenRemoved

      public static CompletableFuture<TestResult> testFocusBandActivatesBeforeKnockOffCanRemoveItAndIsThenRemoved(BattleTestHelper helper)
      If Knock Off triggers an item (such as a Focus Band) after the attack, that item activates before Knock Off can knock it off (in the case of the Focus Band, which is not consumed, it will be removed after its effect has activated).

      In this test, a Mew that knows the move Knock Off faces off against a Hoopa that is holding a Focus Band and that knows the move Sleep Talk. - Turn 1 Mew uses Knock Off. Hoopa's Focus Band activates and it survives at 1 HP. The Focus Band is not consumed, but Knock Off removes it. Hoopa uses Sleep Talk. - We verify that Hoopa does not have a held item. We verify that Mew's Knock Off onto Hoopa has its base power boosted by 50% despite the Focus Band activating before it can be removed.