Class GeomancyTests

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

public class GeomancyTests extends Object
  • Constructor Details

    • GeomancyTests

      public GeomancyTests()
  • Method Details

    • testGeomancyResolvesOnSecondTurn

      public static CompletableFuture<TestResult> testGeomancyResolvesOnSecondTurn(BattleTestHelper helper)
      Check that Geomancy charges on turn 1 and then boosts the stats of the user on turn 2. Turn 1: User uses Geomancy (charging). No stat stages change. Turn 2: Geomancy resolves. SpA/SpD/Spe become +2 each.
    • testGeomancyPowerHerbResolvesImmediatelyAndConsumesItem

      public static CompletableFuture<TestResult> testGeomancyPowerHerbResolvesImmediatelyAndConsumesItem(BattleTestHelper helper)
      Check that Geomancy resolves immediately when the user is holding a Power Herb, and that the item is consumed. Turn 1: Geomancy resolves immediately (no charge) with Power Herb. Verify +2/+2/+2 and Power Herb consumed.
    • testGeomancyRespectsStatCapsAndAppliesPartially

      public static CompletableFuture<TestResult> testGeomancyRespectsStatCapsAndAppliesPartially(BattleTestHelper helper)
      Check that Geomancy respects stat stage caps (+6) and applies boosts partially if needed. Setup: SpA +6, SpD +5, Spe +0 After Geomancy resolution: SpA stays +6, SpD -> +6, Spe -> +2
    • testGeomancyFailsIfTauntedWhileCharging

      public static CompletableFuture<TestResult> testGeomancyFailsIfTauntedWhileCharging(BattleTestHelper helper)
      Check that if the user is Taunted while charging Geomancy, the move fails to apply boosts on the next turn. Turn 1: User begins charging Geomancy. Foe uses Taunt successfully. Turn 2: Geomancy should fail (no boosts applied).
    • testGeomancyCannotBeStartedWhileTaunted

      public static CompletableFuture<TestResult> testGeomancyCannotBeStartedWhileTaunted(BattleTestHelper helper)
      Check that if the user is already Taunted before selecting Geomancy, the move fails to start (no charge). Turn 1: User is Taunted before selecting Geomancy. Turn 2: Selecting Geomancy should fail immediately and not enter charging state.
    • testGeomancyCancelledByForcedSwitchDuringCharge

      public static CompletableFuture<TestResult> testGeomancyCancelledByForcedSwitchDuringCharge(BattleTestHelper helper)
      Check that if the user is forced to switch out while charging Geomancy, the move fails to apply boosts on the next turn. Turn 1: User starts charging Geomancy. Foe uses Roar/Whirlwind and successfully forces a switch (needs user to have a bench mon). Verify Geomancy never resolves later (no boosts), and no "pending charge" remains.
    • testGeomancyNoBoostIfUserFaintsDuringCharge

      public static CompletableFuture<TestResult> testGeomancyNoBoostIfUserFaintsDuringCharge(BattleTestHelper helper)
      Check that if the user faints while charging Geomancy, the move fails to apply boosts on the next turn. Turn 1: User begins charging Geomancy. Turn 1 or Turn 2: Foe KOs the user before resolution. Verify no boosts were applied.
    • testGeomancyWithSimpleGivesPlusFourEach

      public static CompletableFuture<TestResult> testGeomancyWithSimpleGivesPlusFourEach(BattleTestHelper helper)
      Check that the ability Simple causes Geomancy to give +4/+4/+4 instead of +2/+2/+2. Turn 1: User uses Geomancy (charging). Turn 2: Geomancy resolves. SpA/SpD/Spe become +4 each.
    • testGeomancyWithContraryGivesMinusTwoEach

      public static CompletableFuture<TestResult> testGeomancyWithContraryGivesMinusTwoEach(BattleTestHelper helper)
      Check that the ability Contrary causes Geomancy to give -2/-2/-2 instead of +2/+2/+2. Turn 1: User uses Geomancy (charging). Turn 2: Geomancy resolves. SpA/SpD/Spe become -2 each.
    • testSnatchDoesNotStealGeomancy

      public static CompletableFuture<TestResult> testSnatchDoesNotStealGeomancy(BattleTestHelper helper)
      Check that Snatch does not steal Geomancy in a doubles battle and that the user still receives the boosts. Doubles: Side A: user uses Geomancy Side B: one opponent uses Snatch Verify opponent does not gain boosts, user still resolves normally.
    • testGeomancyLocksUserIntoSecondTurnResolution

      public static CompletableFuture<TestResult> testGeomancyLocksUserIntoSecondTurnResolution(BattleTestHelper helper)
      Check that once Geomancy is selected, the user is locked into resolving it on the next turn, even if they attempt to select a different move. User has Geomancy and another move. Turn 1: selects Geomancy (charge) Turn 2: attempt to select another move; engine should still resolve Geomancy.
    • testEncoreAfterPowerHerbGeomancyUsesTwoTurnVersionNext

      public static CompletableFuture<TestResult> testEncoreAfterPowerHerbGeomancyUsesTwoTurnVersionNext(BattleTestHelper helper)
      Check that if the user uses Geomancy with a Power Herb and then is Encored into using Geomancy again, the second use of Geomancy correctly goes through the two-turn version (charging first, then boosting). Turn 1: user uses Geomancy with Power Herb -> immediate boosts, herb consumed. Foe uses Encore after seeing Geomancy. Turn 2: user is forced to use Geomancy again, but WITHOUT Power Herb it should charge (no new boosts yet). Turn 3: Geomancy resolves, applying another +2/+2/+2