Class UtilityUmbrellaTests

java.lang.Object
com.pixelmonmod.pixelmon.api.test.impl.item.UtilityUmbrellaTests

public class UtilityUmbrellaTests extends Object
Tests for the Utility Umbrella
  • Constructor Details

    • UtilityUmbrellaTests

      public UtilityUmbrellaTests()
  • Method Details

    • testUtilityUmbrellaAffectsChlorophyllAndSynthesisInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsChlorophyllAndSynthesisInHarshSunlight(BattleTestHelper helper)
      If the holder of a Utility Umbrella has Chlorophyll it will not have its Speed doubled in harsh sunlight. If the holder of a Utility Umbrella uses Synthesis in harsh sunlight it will heal only half of its HP.

      In this test, a Sunkern at 40% HP with the Chlorophyll ability, that holds a Utility Umbrella, and knows the move Synthesis faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Sunkern uses Synthesis. It recovers ½ of its maximum HP.
           -
           We verify that the Sunkern's Speed in battle is the same as its Speed out of battle.
           We verify that the Sunkern does not have full health.
       
    • testUtilityUmbrellaAffectsSolarPowerAndGrowth

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsSolarPowerAndGrowth(BattleTestHelper helper)
      In harsh sunlight, if the holder of a Utility Umbrella has Solar Power it will not have its Special Attack increased 1.5x and will not lose 1/8 its maximum HP per turn. If the holder uses Growth in harsh sunlight its stats will be boosted by only 1 stage.

      In this test, a Sunkern with the Solar Power ability that holds a Utility Umbrella and knows the move Growth faces a Groudon that knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Sunkern uses Growth and its Attack and Special Attack are raised by one stage.
           The Groudon uses Sleep Talk.
           The Sunkern's Solar Power does not lose any HP to Solar Power.
           -
           We verify that the Sunkern has full health.
           We verify that the Sunkern's Attack was raised by only one stage.
           We verify that the Sunkern's Special Attack was raised by only one stage.
       
    • testUtilityUmbrellaPreventsPowerBoostForFireTypeMovesAgainstHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsPowerBoostForFireTypeMovesAgainstHolderInHarshSunlight(BattleTestHelper helper)
      Fire-type moves that target the holder of a Utility Umbrella do not have their power increased in sun.

      In this test, a Magmortar that knows the move Lava Plume faces a Groudon that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Magmortar uses Lava Plume.
           -
           We verify that the Lava Plume's power was not increased by 50%.
       
    • testUtilityUmbrellaAllowsPowerBoostForFireTypeMovesFromHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsPowerBoostForFireTypeMovesFromHolderInHarshSunlight(BattleTestHelper helper)
      Fire-type moves that target the holder of a Utility Umbrella do not have their power increased in sun. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Magmortar that holds a Utility Umbrella and knows the move Lava Plume faces a Groudon that knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Magmortar uses Lava Plume.
           -
           We verify that the Lava Plume's power was increased by 50%.
       
    • testUtilityUmbrellaPreventsPowerLossForWaterTypeMovesAgainstHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsPowerLossForWaterTypeMovesAgainstHolderInHarshSunlight(BattleTestHelper helper)
      Water-type moves that target the holder do not have their power decreased in sun.

      In this test, a Dewott that knows the move Water Pulse faces a Groudon that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Dewott uses Water Pulse.
           -
           We verify that the Water Pulse's power was not decreased by 50%.
       
    • testUtilityUmbrellaAllowsPowerLossForWaterTypeMovesFromHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsPowerLossForWaterTypeMovesFromHolderInHarshSunlight(BattleTestHelper helper)
      Water-type moves that target the holder do not have their power decreased in sun. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Dewott that holds a Utility Umbrella and knows the move Water Pulse faces a Groudon that knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Dewott uses Water Pulse.
           -
           We verify that the Water Pulse's power was decreased by 50%.
       
    • testUtilityUmbrellaPreventsAccuracyChangeForMovesAgainstHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsAccuracyChangeForMovesAgainstHolderInHarshSunlight(BattleTestHelper helper)
      Moves with a different accuracy sun (such as Thunder) have their normal accuracy when they target the holder.

      In this test, a Swanna that knows the move Hurricane faces a Groudon that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Swanna uses Hurricane.
           The Groudon uses Sleep Talk.
           -
           We verify that the Hurricane's accuracy was the same as its base accuracy.
       
    • testUtilityUmbrellaAllowsAccuracyChangeForMovesFromHolderInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsAccuracyChangeForMovesFromHolderInHarshSunlight(BattleTestHelper helper)
      Moves with a different accuracy in rain or sun (such as Thunder) have their normal accuracy when they target the holder. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Swanna that holds a Utility Umbrella and knows the move Hurricane faces a Groudon that knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Swanna uses Hurricane.
           The Groudon uses Sleep Talk.
           -
           We verify that the Hurricane's accuracy was decreased to 50%.
       
    • testUtilityUmbrellaPreventsHolderFromUsingOneTurnSolarBeams

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsHolderFromUsingOneTurnSolarBeams(BattleTestHelper helper)
      In harsh sunlight, Solar Beam's number of turns to charge and power is unaffected by weather if used by a Pokémon holding the Utility Umbrella.

      In this test, a Sunkern that holds a Utility Umbrella and knows the move Solar Beam faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Sunkern uses Solar Beam. The Sunkern begins absorbing light.
           -
           We verify that the Groudon is at full health.
       
    • testUtilityUmbrellaAllowsNonHoldersToUseOneTurnSolarBeams

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsNonHoldersToUseOneTurnSolarBeams(BattleTestHelper helper)
      In harsh sunlight, Solar Beam's number of turns to charge and power is unaffected by weather if used by a Pokémon holding the Utility Umbrella. These effects are only removed if the move's user is holding a Utility Umbrella; they are not affected by a target's held Utility Umbrella.

      In this test, a Sunkern that knows the move Solar Beam faces a Torkoal with the Drought ability that holds a Utility Umbrella and knows the move Endure.

           Before turn 1
           The Torkoal's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Torkoal uses Endure.
           The Sunkern uses Solar Beam. The Torkoal takes damage.
           -
           We verify that the Torkoal is not at full health.
       
    • testUtilityUmbrellaPreventsHolderFromUsingFireTypeWeatherBall

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsHolderFromUsingFireTypeWeatherBall(BattleTestHelper helper)
      During harsh sunlight, the holder's Weather Ball will be Normal-type and its power will not be doubled (as if no weather was present).

      In this test, a Sunkern that holds a Utility Umbrella and knows the move Weather Ball faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Sunkern uses Weather Ball.
           -
           We verify that the Sunkern's last attack was Normal-type.
       
    • testUtilityUmbrellaAllowsNonHoldersToUseFireTypeWeatherBall

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsNonHoldersToUseFireTypeWeatherBall(BattleTestHelper helper)
      During harsh sunlight, the holder's Weather Ball will be Normal-type and its power will not be doubled (as if no weather was present). These effects are only removed if the move's user is holding a Utility Umbrella; they are not affected by a target's held Utility Umbrella.

      In this test, a Sunkern that knows the move Weather Ball faces a Groudon that holds a Utility Umbrella and knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Sunkern uses Weather Ball.
           -
           We verify that the Sunkern's last attack was Fire-type.
       
    • testUtilityUmbrellaPreventsHoldersHydroSteamReceivingPowerBoost

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsHoldersHydroSteamReceivingPowerBoost(BattleTestHelper helper)
      During harsh sunlight, Hydro Steam's power is not boosted by 50% if used by a Pokémon holding the Utility Umbrella, but is instead reduced by 50% like other Water-type moves.

      In this test, a Walking Wake that holds a Utility Umbrella and knows the move Hydro Steam faces a Groudon that holds a Focus Sash and knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Walking Wake uses Hydro Steam.
           -
           We verify that the Walking Wake's Hydro Steam had its power reduced by 50%.
       
    • testUtilityUmbrellaAllowsNonHoldersHydroSteamToReceivePowerBoost

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsNonHoldersHydroSteamToReceivePowerBoost(BattleTestHelper helper)
      During harsh sunlight, Hydro Steam's power is not boosted by 50% if used by a Pokémon holding the Utility Umbrella, but is instead reduced by 50% like other Water-type moves. These effects are only removed if the move's user is holding a Utility Umbrella; they are not affected by a target's held Utility Umbrella.

      In this test, a Walking Wake that knows the move Hydro Steam faces a Torkoal with the Drought ability that holds a Utility Umbrella and knows the move Endure.

           Before turn 1
           The Torkoal's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Torkoal uses Endure.
           The Walking Wake uses Hydro Steam.
           -
           We verify that the Walking Wake's Hydro Steam had its power increased by 50%.
       
    • testUtilityUmbrellaAllowsHolderToBeFrozenInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsHolderToBeFrozenInHarshSunlight(BattleTestHelper helper)
      A Pokémon holding the Utility Umbrella can be frozen during harsh sunlight.

      In this test, a Frigibax that knows the move Ice Fang faces a Groudon that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Frigibax uses Ice Fang. The Groudon becomes frozen.
           The Groudon uses Sleep Talk.
           -
           We verify that the Groudon has the Freeze status.
       
    • testUtilityUmbrellaPreventsCherrimChangingToSunshineForm

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsCherrimChangingToSunshineForm(BattleTestHelper helper)
      Overcast Form Cherrim holding the Utility Umbrella cannot change to Sunshine Form.

      In this test, a Cherrim that holds a Utility Umbrella and knows the move Sleep Talk faces a Groudon that knows move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Cherrim uses Sleep Talk.
           The Groudon uses Sleep Talk.
           -
           We verify that the Cherrim is in its Overcast form.
       
    • testCherrimChangesFormAsItGainsOrLosesUtilityUmbrella

      public static CompletableFuture<TestResult> testCherrimChangesFormAsItGainsOrLosesUtilityUmbrella(BattleTestHelper helper)
      If a Sunshine Form Cherrim gains the Utility Umbrella (through a move such as Trick), it will immediately change to Overcast Form. Likewise, a Cherrim losing the Utility Umbrella in the sun will immediately change to Sunshine Form.

      In this test, a Cherrim that knows the move Sleep Talk faces a Bronzong that holds a Utility Umbrella and knows the moves Sunny Day and Trick.

           Turn 1
           The Cherrim uses Sleep Talk.
           The Bronzong uses Sunny Day.
           The Cherrim changes to its Sunshine form.
           Turn 2
           The Cherrim uses Sleep Talk.
           The Bronzong uses Trick. The Bronzong's Utility Umbrella is passed to the Cherrim.
           The Cherrim changes to its Overcast form.
           Turn 3
           The Cherrim uses Sleep Talk.
           The Bronzong uses Trick. The Cherrim's Utility Umbrella is passed to the Bronzong.
           The Cherrim changes to its Sunshine form.
           -
           After turn 1
           We verify that the Cherrim is in its Sunshine form.
           After turn 2
           We verify that the Cherrim is in its Overcast form.
           After turn 3
           We verify that the Cherrim is in its Sunshine form.
       
    • testProtosynthesisDoesNotGetAffectedByUmbrella

      public static CompletableFuture<TestResult> testProtosynthesisDoesNotGetAffectedByUmbrella(BattleTestHelper helper)
      Protosynthesis should not be affected by gaining or losing Utility Umbrella.

      In this test, a Fluttermane holding a Utility Umbrella that knows the move Sleep Talk faces a Ninetales with the Drought ability knows the move Trick.

           Turn 0
           The Ninetales's Drought activates, placing sun.
           The Fluttermane's Protosynthesis activates, adding the ParadoxBoost status despite Utility Umbrella.
           Turn 1
           The Fluttermane uses Sleep Talk.
           The Ninetales uses Trick. The Fluttermane's Utility Umbrella is passed to the Ninetales.
           The Fluttermane's Protosynthesis continues to be active.
           Turn 2
           The Fluttermane uses Sleep Talk.
           The Ninetales uses Trick. The Ninetales's Utility Umbrella is passed back to the Fluttermane.
           The Fluttermane's Protosynthesis continues to be active.
           -
           Before turn 1
           We verify that the weather is Sunny from Drought.
           We verify that Fluttermane's Protosynthesis placed the ParadoxBoost status by activating.
           After turn 2
           We verify that Fluttermane no longer has the UtilityUmbrella.
           We verify that Fluttermane still has the ParadoxBoost status.
           After turn 3
           We verify that Fluttermane has the UtilityUmbrella again.
           We verify that Fluttermane still has the ParadoxBoost status.
           * 
    • testCherrimDoesNotChangeFormIfTrickingTwoUtilityUmbrellas

      public static CompletableFuture<TestResult> testCherrimDoesNotChangeFormIfTrickingTwoUtilityUmbrellas(BattleTestHelper helper)
      If a Cherrim switches between two Utility Umbrellas (through a move such as Trick), it will not change to Sunshine Form.

      In this test, a Cherrim that holds a Utility Umbrella and knows the move Sleep Talk faces a Bronzong that holds a Utility Umbrella and knows moves Sunny Day and Trick.

           Turn 1
           The Cherrim uses Sleep Talk.
           The Bronzong uses Sunny Day.
           The Cherrim does not change to its Sunshine form.
           Turn 2
           The Cherrim uses Sleep Talk.
           The Bronzong uses Trick. The Bronzong and Cherrim exhange Utility Umbrellas.
           The Cherrim remains in its Overcast form.
           -
           After turn 1
           We verify that the Cherrim is in its Overcast form.
           After turn 2
           We verify that the Cherrim is in its Overcast form.
           We verify that the Cherrim never entered its Sunshine form.
       
    • testCherrimSwitchingOutHoldingUtilityUmbrellaIsNotAffectedByWeather

      public static CompletableFuture<TestResult> testCherrimSwitchingOutHoldingUtilityUmbrellaIsNotAffectedByWeather(BattleTestHelper helper)
      If a Cherrim switches out while holding a Utility Umbrella, it will not change to Sunshine Form.

      In this test, a Cherrim that holds a Utility Umbrella and with a Magikarp on the bench faces a Groudon that knows the move Sleep Talk.

           Turn 0
           The Groudon starts Sun with Drought.
           The Cherrim remains in Overcast form.
           Turn 1
           The Cherrim switches to Magikarp.
           The Groudon uses Sleep Talk.
           Turn 2
           The Magikarp switches to Cherrim.
           The Groudon uses Sleep Talk.
           The Cherrim remains in Overcast form.
           -
           Before turn 1
           We verify that the Cherrim is in its Overcast form.
           After turn 2
           We verify that the Cherrim is in its Overcast form.
           We verify that the Cherrim never entered its Sunshine form.
       
    • testUtilityUmbrellaAllowsAlliesFlowerGiftToAffectTheHolder

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsAlliesFlowerGiftToAffectTheHolder(BattleTestHelper helper)
      A Pokémon holding a Utility Umbrella is still affected by its allies' Flower Gift.

      In this Double Battle test, a Cherrim that knows the move Sleep Talk is on a team with a Cherubi that holds a Utility Umbrella and knows the move Sleep Talk. They face a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Cherrim uses Sleep Talk.
           The Cherubi uses Sleep Talk.
           -
           We verify that the Cherubi's has its Attack raised by 50%.
           We verify that the Cherubi's has its Special Defense raised by 50%.
       
    • testUtilityUmbrellaAffectsDrySkinInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsDrySkinInHarshSunlight(BattleTestHelper helper)
      If the holder of a Utility Umbrella has the Dry Skin ability, they will not lose ⅛ of their maximum HP at the end of every turn.

      In this test, a Helioptile with the Dry Skin ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Helioptile uses Sleep Talk.
           -
           We verify that the Helioptile with a Utility Umbrella is at full health.
       
    • testUtilityUmbrellaAffectsForecastInHarshSunlight

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsForecastInHarshSunlight(BattleTestHelper helper)
      If a Castform holds a Utility Umbrella during harsh sunlight, its Forecast ability will not change it into its Sunny form.

      In this test, a Castform with the Forecast ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Sleep Talk.
           The Castform uses Sleep Talk.
           -
           We verify that the Castform is not in its Sunny form.
       
    • testUtilityUmbrellaAffectsLeafGuard

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsLeafGuard(BattleTestHelper helper)
      If the holder of a Utility Umbrella has the Leaf Guard ability, they will still be able to be afflicted by non-volatile status conditions.

      In this test, a Bayleef with the Dry Skin ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Groudon that knows the move Sleep Talk.

           Before turn 1
           The Groudon's Drought activates and makes the weather harsh sunlight.
           Turn 1
           The Groudon uses Toxic.
           The Bayleef uses Sleep Talk.
           -
           We verify that the Bayleef is badly poisoned.
       
    • testUtilityUmbrellaAffectsSynthesisInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsSynthesisInRain(BattleTestHelper helper)
      If the holder of a Utility Umbrella uses Synthesis in rain it will heal ½ of its maximum HP, instead of ¼ of its maximum HP.

      In this test, a Sunkern at 60% HP that holds a Utility Umbrella and knows the move Synthesis faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Sunkern uses Synthesis. It recovers ½ of its maximum HP.
           -
           We verify that the Sunkern is at full health.
       
    • testUtilityUmbrellaPreventsPowerLossForFireTypeMovesAgainstHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsPowerLossForFireTypeMovesAgainstHolderInRain(BattleTestHelper helper)
      Fire-type moves that target the holder of a Utility Umbrella do not have their power decreased in rain.

      In this test, a Magmortar that knows the move Lava Plume faces a Kyogre that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Magmortar uses Lava Plume.
           -
           We verify that the Lava Plume's power was not decreased by 50%.
       
    • testUtilityUmbrellaAllowsPowerLossForFireTypeMovesFromHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsPowerLossForFireTypeMovesFromHolderInRain(BattleTestHelper helper)
      Fire-type moves that target the holder of a Utility Umbrella do not have their power decreased in rain. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Magmortar that holds a Utility Umbrella and knows the move Lava Plume faces a Kyogre that knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Magmortar uses Lava Plume.
           -
           We verify that the Lava Plume's power was decreased by 50%.
       
    • testUtilityUmbrellaPreventsPowerBoostForWaterTypeMovesAgainstHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsPowerBoostForWaterTypeMovesAgainstHolderInRain(BattleTestHelper helper)
      Water-type moves that target the holder do not have their power increased in rain.

      In this test, a Dewott that knows the move Water Pulse faces a Kyogre that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Dewott uses Water Pulse.
           -
           We verify that the Water Pulse's power was not increased by 50%.
       
    • testUtilityUmbrellaAllowsPowerBoostForWaterTypeMovesFromHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsPowerBoostForWaterTypeMovesFromHolderInRain(BattleTestHelper helper)
      Water-type moves that target the holder do not have their power increased in rain. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Dewott that holds a Utility Umbrella and knows the move Water Pulse faces a Kyogre that knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Dewott uses Water Pulse.
           -
           We verify that the Water Pulse's power was increased by 50%.
       
    • testUtilityUmbrellaPreventsAccuracyChangeForMovesAgainstHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsAccuracyChangeForMovesAgainstHolderInRain(BattleTestHelper helper)
      Moves with a different accuracy in rain (such as Thunder) have their normal accuracy when they target the holder.

      In this test, a Swanna that knows the move Hurricane faces a Kyogre that holds a Utility Umbrella and knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Swanna uses Hurricane.
           The Kyogre uses Sleep Talk.
           -
           We verify that the Hurricane's accuracy was the same as its base accuracy.
       
    • testUtilityUmbrellaAllowsAccuracyChangeForMovesFromHolderInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsAccuracyChangeForMovesFromHolderInRain(BattleTestHelper helper)
      Moves with a different accuracy in rain (such as Thunder) have their normal accuracy when they target the holder. Conversely, these weather effects are applied as normal to the holder's moves.

      In this test, a Swanna that holds a Utility Umbrella and knows the move Hurricane faces a Kyogre that knows move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Swanna uses Hurricane.
           The Kyogre uses Sleep Talk.
           -
           We verify that the Hurricane is set to always hit the target.
       
    • testUtilityUmbrellaPreventsHoldersSolarBeamHavingPowerDecreased

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsHoldersSolarBeamHavingPowerDecreased(BattleTestHelper helper)
      Solar Beam's power is unaffected by rain if used by a Pokémon holding the Utility Umbrella.

      In this test, a Sunkern that holds a Utility Umbrella and knows the move Solar Beam faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Sunkern uses Solar Beam. The Sunkern begins absorbing light.
           Turn 2
           The Kyogre uses Sleep Talk.
           The Sunkern uses Solar Beam. The Sunkern deals damage to the Kyogre with Solar Beam.
           -
           We verify that the power of the Sunkern's Solar Beam is the same as Solar Beam's base power.
       
    • testUtilityUmbrellaPreventsHolderFromUsingWaterTypeWeatherBall

      public static CompletableFuture<TestResult> testUtilityUmbrellaPreventsHolderFromUsingWaterTypeWeatherBall(BattleTestHelper helper)
      During rain, the holder's Weather Ball will be Normal-type and its power will not be doubled (as if no weather was present).

      In this test, a Sunkern that holds a Utility Umbrella and knows the move Weather Ball faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Sunkern uses Weather Ball.
           -
           We verify that the Sunkern's last attack was Normal-type.
       
    • testUtilityUmbrellaAllowsNonHoldersToUseWaterTypeWeatherBall

      public static CompletableFuture<TestResult> testUtilityUmbrellaAllowsNonHoldersToUseWaterTypeWeatherBall(BattleTestHelper helper)
      During rain, the holder's Weather Ball will be Normal-type and its power will not be doubled (as if no weather was present). These effects are only removed if the move's user is holding a Utility Umbrella; they are not affected by a target's held Utility Umbrella.

      In this test, a Sunkern that knows the move Weather Ball faces a Kyogre that holds a Utility Umbrella and knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Sunkern uses Weather Ball.
           -
           We verify that the Sunkern's last attack was Water-type.
       
    • testUtilityUmbrellaAffectsDrySkinInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsDrySkinInRain(BattleTestHelper helper)
      If the holder of a Utility Umbrella has the Dry Skin ability, they will not gain ⅛ of their maximum HP at the end of every turn.

      In this test, a Helioptile at 90% HP, with the Dry Skin ability, that holds a Utility Umbrella and knows the move Sleep Talk faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Helioptile uses Sleep Talk.
           -
           We verify that the Helioptile with a Utility Umbrella is not at full health.
       
    • testUtilityUmbrellaAffectsForecastInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsForecastInRain(BattleTestHelper helper)
      If a Castform holds a Utility Umbrella during rain, its Forecast ability will not change it into its Rainy form.

      In this test, a Castform with the Forecast ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Castform uses Sleep Talk.
           -
           We verify that the Castform is not in its Rainy form.
       
    • testUtilityUmbrellaAffectsHydrationInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsHydrationInRain(BattleTestHelper helper)
      If a Pokémon with the Hydration ability holds a Utility Umbrella, they will not be cured of their non-volatile status conditions at the end of the turn during rain.

      In this test, a Alomomola with the Hydration ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Kyogre that knows the move Toxic.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Toxic.
           The Alomomola uses Sleep Talk.
           -
           We verify that the Alomomola is badly poisoned.
       
    • testUtilityUmbrellaAffectsRainDishInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsRainDishInRain(BattleTestHelper helper)
      If a Pokémon with the Rain Dish ability holds a Utility Umbrella, it will not recover 1/16 of its maximum HP at the end of each turn during rain.

      In this test, a Surskit at 98% HP with the Rain Dish ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Surskit uses Sleep Talk.
           -
           We verify that the Surskit is not at full health.
       
    • testUtilityUmbrellaAffectsSwiftSwimInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsSwiftSwimInRain(BattleTestHelper helper)
      If a Pokémon with the Swift Swim ability holds a Utility Umbrella, its Speed stat will not be doubled.

      In this test, a Surskit with the Swift Swim ability that holds a Utility Umbrella and knows the move Sleep Talk faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Surskit uses Sleep Talk.
           -
           We verify that the Surskit's in-battle Speed stat is the same as its out-of-battle Speed stat.
       
    • testUtilityUmbrellaAffectsElectroShotInRain

      public static CompletableFuture<TestResult> testUtilityUmbrellaAffectsElectroShotInRain(BattleTestHelper helper)
      If a Pokémon holds a Utility Umbrella while using Electro Shot, the move will need to charge even in rain.

      In this test, a Archaludon that holds a Utility Umbrella and knows the move Electro Shot faces a Kyogre that knows the move Sleep Talk.

           Before turn 1
           The Kyogre's Drizzle activates and makes the weather rain.
           Turn 1
           The Kyogre uses Sleep Talk.
           The Archaludon uses Electro Shot. The Archaludon begins absorbing electricity.
           -
           We verify that the Kyogre is at full health.