diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 8bf7aa64ca6d..7bf1dfe7fd2d 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3584,6 +3584,7 @@ void SetMoveEffect(bool32 primary, bool32 certain) case MOVE_EFFECT_SPECTRAL_THIEF: if (!NoAliveMonsForEitherParty()) { + bool32 contrary = (GetBattlerAbility(gBattlerAttacker) == ABILITY_CONTRARY); gBattleStruct->stolenStats[0] = 0; // Stats to steal. gBattleScripting.animArg1 = 0; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) @@ -3605,16 +3606,16 @@ void SetMoveEffect(bool32 primary, bool32 certain) if (gBattleScripting.animArg1 == 0) { if (byTwo) - gBattleScripting.animArg1 = STAT_ANIM_PLUS2 + i; + gBattleScripting.animArg1 = (contrary ? STAT_ANIM_MINUS2 : STAT_ANIM_PLUS2) + i; else - gBattleScripting.animArg1 = STAT_ANIM_PLUS1 + i; + gBattleScripting.animArg1 = (contrary ? STAT_ANIM_MINUS1 : STAT_ANIM_PLUS1) + i; } else { if (byTwo) - gBattleScripting.animArg1 = STAT_ANIM_MULTIPLE_PLUS2; + gBattleScripting.animArg1 = (contrary ? STAT_ANIM_MULTIPLE_MINUS2 : STAT_ANIM_MULTIPLE_PLUS2); else - gBattleScripting.animArg1 = STAT_ANIM_MULTIPLE_PLUS1; + gBattleScripting.animArg1 = (contrary ? STAT_ANIM_MULTIPLE_MINUS1 : STAT_ANIM_MULTIPLE_PLUS1); } } }