diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d5013b0239..cc61f7e7b0 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -61,6 +61,8 @@ extern const u8 *const gBattleScriptsForMoveEffects[]; #define TAG_LVLUP_BANNER_MON_ICON 55130 +#define ATTACKS_THIS_TURN(battler, move) (AttacksThisTurn(battler, move) == 2) + static bool8 IsTwoTurnsMove(u16 move); static void TrySetDestinyBondToHappen(void); static u8 AttacksThisTurn(u8 battler, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2. @@ -1406,7 +1408,7 @@ static void Cmd_typecalc(void) } } - if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && ATTACKS_THIS_TURN(gBattlerAttacker, gCurrentMove) && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { @@ -1487,7 +1489,7 @@ static void CheckWonderGuardAndLevitate(void) i += 3; } - if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && ATTACKS_THIS_TURN(gBattlerAttacker, gCurrentMove)) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { @@ -1582,7 +1584,7 @@ u8 TypeCalc(u16 move, u8 attacker, u8 defender) } if (gBattleMons[defender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) - && AttacksThisTurn(attacker, move) == 2 + && ATTACKS_THIS_TURN(attacker, move) && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) { @@ -4576,7 +4578,7 @@ static void Cmd_typecalc2(void) if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) - && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 + && ATTACKS_THIS_TURN(gBattlerAttacker, gCurrentMove) && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) {