mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
Fix field abilities activating when an other mon switches in (#8743)
This commit is contained in:
parent
ec0db10694
commit
2183fa748a
|
|
@ -1846,7 +1846,7 @@ static void TryClearChargeVolatile(enum Type moveType)
|
|||
|
||||
for (u32 battler = 0; battler < gBattlersCount; battler++)
|
||||
{
|
||||
if (gBattleMons[battler].volatiles.chargeTimer == 2) // Has been set this turn by move
|
||||
if (gBattleMons[battler].volatiles.chargeTimer == 2) // Has been set this turn by move or ability
|
||||
gBattleMons[battler].volatiles.chargeTimer--;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4580,6 +4580,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_DRIZZLE:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_RAIN, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
@ -4592,6 +4594,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_SAND_STREAM:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_SANDSTORM, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
@ -4605,6 +4609,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
break;
|
||||
case ABILITY_ORICHALCUM_PULSE:
|
||||
case ABILITY_DROUGHT:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_SUN, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
@ -4617,6 +4623,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_SNOW_WARNING:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
{
|
||||
u32 weather = (GetConfig(CONFIG_SNOW_WARNING) >= GEN_9 ? BATTLE_WEATHER_SNOW : BATTLE_WEATHER_HAIL);
|
||||
if (TryChangeBattleWeather(battler, weather, gLastUsedAbility))
|
||||
|
|
@ -4633,6 +4641,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
break;
|
||||
case ABILITY_ELECTRIC_SURGE:
|
||||
case ABILITY_HADRON_ENGINE:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleTerrain(battler, STATUS_FIELD_ELECTRIC_TERRAIN))
|
||||
{
|
||||
BattleScriptCall(BattleScript_ElectricSurgeActivates);
|
||||
|
|
@ -4640,6 +4650,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_GRASSY_SURGE:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleTerrain(battler, STATUS_FIELD_GRASSY_TERRAIN))
|
||||
{
|
||||
BattleScriptCall(BattleScript_GrassySurgeActivates);
|
||||
|
|
@ -4647,6 +4659,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_MISTY_SURGE:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleTerrain(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
{
|
||||
BattleScriptCall(BattleScript_MistySurgeActivates);
|
||||
|
|
@ -4654,6 +4668,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_PSYCHIC_SURGE:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleTerrain(battler, STATUS_FIELD_PSYCHIC_TERRAIN))
|
||||
{
|
||||
BattleScriptCall(BattleScript_PsychicSurgeActivates);
|
||||
|
|
@ -4748,6 +4764,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_DESOLATE_LAND:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_SUN_PRIMAL, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
@ -4755,6 +4773,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_PRIMORDIAL_SEA:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_RAIN_PRIMAL, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
@ -4762,6 +4782,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab
|
|||
}
|
||||
break;
|
||||
case ABILITY_DELTA_STREAM:
|
||||
if (!shouldAbilityTrigger)
|
||||
break;
|
||||
if (TryChangeBattleWeather(battler, BATTLE_WEATHER_STRONG_WINDS, gLastUsedAbility))
|
||||
{
|
||||
BattleScriptCall(BattleScript_WeatherAbilityActivates);
|
||||
|
|
|
|||
|
|
@ -247,3 +247,23 @@ ONE_VS_TWO_BATTLE_TEST("Switch-in abilities trigger in Speed Order after post-KO
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Status setting abilities don't re-activate when a new mon switches in")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { ABILITY_POPUP(opponentRight, ABILITY_ELECTRIC_SURGE); }
|
||||
TURN {}
|
||||
TURN {}
|
||||
TURN {}
|
||||
TURN {}
|
||||
TURN { SWITCH(opponentLeft, 2); NOT ABILITY_POPUP(opponentRight, ABILITY_ELECTRIC_SURGE); }
|
||||
} THEN {
|
||||
EXPECT(!(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user