diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 2e281e6084..0fc9d7b3b1 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -7184,7 +7184,7 @@ static void UpdateSentMonFlags(u32 battler) static bool32 DoSwitchInEffectsForBattler(u32 battler) { - u32 i; + u32 i = 0; // Neutralizing Gas announces itself before hazards if (gBattleMons[battler].ability == ABILITY_NEUTRALIZING_GAS && gSpecialStatuses[battler].announceNeutralizingGas == 0) { @@ -7252,9 +7252,11 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler) } else if (IsBattlerAffectedByHazards(battler, TRUE)) { + i = GetBattlerAbility(battler); if (!(gBattleMons[battler].status1 & STATUS1_ANY) && !IS_BATTLER_OF_TYPE(battler, TYPE_STEEL) - && GetBattlerAbility(battler) != ABILITY_IMMUNITY + && i != ABILITY_IMMUNITY + && i != ABILITY_PURIFYING_SALT && !IsAbilityOnSide(battler, ABILITY_PASTEL_VEIL) && !(gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD) && !(gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN)) diff --git a/test/battle/ability/purifying_salt.c b/test/battle/ability/purifying_salt.c index 4c25321e5f..495ce01a46 100644 --- a/test/battle/ability/purifying_salt.c +++ b/test/battle/ability/purifying_salt.c @@ -84,3 +84,19 @@ SINGLE_BATTLE_TEST("Purifying Salt grants immunity to status effects") } } } + +SINGLE_BATTLE_TEST("Purifying Salt user can't be poisoned by Toxic Spikes") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_GARGANACL) { Ability(ABILITY_PURIFYING_SALT); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TOXIC_SPIKES); } + TURN { SWITCH(player, 1); } + } SCENE { + SEND_IN_MESSAGE("Garganacl"); + } THEN { + EXPECT_EQ(player->status1, STATUS1_NONE); + } +}