diff --git a/src/battle_util.c b/src/battle_util.c index 58219080e..82bd049a2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2834,6 +2834,28 @@ void TryClearRageAndFuryCutter(void) } } +static bool32 IsThawingMove(u8 battlerId, u16 move) +{ + switch (move) + { + case MOVE_BURN_UP: + if (!IS_BATTLER_OF_TYPE(battlerId, TYPE_FIRE)) + return FALSE; + //fallthrough + case MOVE_FLAME_WHEEL: + case MOVE_FLARE_BLITZ: + case MOVE_FUSION_FLARE: + case MOVE_PYRO_BALL: + case MOVE_SACRED_FIRE: + case MOVE_SCALD: + case MOVE_SCORCHING_SANDS: + case MOVE_STEAM_ERUPTION: + return TRUE; + default: + return FALSE; + } +} + enum { CANCELLER_FLAGS, @@ -3133,8 +3155,7 @@ u8 AtkCanceller_UnableToUseMove(void) case CANCELLER_THAW: // move thawing if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) { - if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT - || (gBattleMoves[gCurrentMove].effect == EFFECT_BURN_UP && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_FIRE))) + if (IsThawingMove(gBattlerAttacker, gBattleMoves[gCurrentMove].effect)) { gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor();