diff --git a/src/battle_util.c b/src/battle_util.c index e27049cba536..88ae8af274a1 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10454,7 +10454,8 @@ u16 GetBattleFormChangeTargetSpecies(u32 battler, u16 method) targetSpecies = formChanges[i].targetSpecies; } // Otherwise, just check for a match between the weather and the form change table. - else if (gBattleWeather & formChanges[i].param1 + // Added a check for whether the weather is in effect to prevent end-of-turn soft locks with Cloud Nine / Air Lock + else if (((gBattleWeather & formChanges[i].param1) && WEATHER_HAS_EFFECT) || (gBattleWeather == B_WEATHER_NONE && formChanges[i].param1 == B_WEATHER_NONE)) { targetSpecies = formChanges[i].targetSpecies; diff --git a/test/battle/ability/forecast.c b/test/battle/ability/forecast.c index df7ecd00a46c..f87e34a532be 100644 --- a/test/battle/ability/forecast.c +++ b/test/battle/ability/forecast.c @@ -266,7 +266,6 @@ SINGLE_BATTLE_TEST("Forecast transforms Castform back to normal when Sandstorm i SINGLE_BATTLE_TEST("Forecast transforms Castform back to normal under Air Lock") { - KNOWN_FAILING; GIVEN { PLAYER(SPECIES_CASTFORM_NORMAL) { Ability(ABILITY_FORECAST); } OPPONENT(SPECIES_WOBBUFFET);