public sealed override void ExecuteAndUpdate(BattlePokemon user, BattlePokemon defender)
        {
            OnUsed();

            user.ResetStatStageModifiers();
            defender.ResetStatStageModifiers();

            user.DeactivateBurnDecreasingAttack();
            defender.DeactivateBurnDecreasingAttack();

            user.DeactivateParalysisDecreasingSpeed();
            defender.DeactivateParalysisDecreasingSpeed();

            user.DeactivateFocusEnergy();
            defender.DeactivateFocusEnergy();

            user.DeactivateMist();
            defender.DeactivateMist();

            user.DeactivateLeechSeed();
            defender.DeactivateLeechSeed();

            user.DeactivateLightScreen();
            defender.DeactivateLightScreen();

            user.DeactivateReflect();
            defender.DeactivateReflect();

            user.DeactivateDisable();
            defender.DeactivateDisable();

            user.DeactivateConfusion();
            defender.DeactivateConfusion();

            user.AttemptChangeBadlyPoisonToPoison();
            defender.ClearStatus();

            SetLastMoveAndMirrorMove(user, defender);
            SubtractPP(1);
        }