Fixes Sparkling Aria Shield Dust / Covert Cloak interaction (#5911)
This commit is contained in:
parent
3db351359a
commit
51cfb96fd5
@ -335,5 +335,6 @@ bool32 IsSleepClauseActiveForSide(u32 battlerSide);
|
||||
bool32 IsSleepClauseEnabled();
|
||||
void ClearDamageCalcResults(void);
|
||||
u32 DoesDestinyBondFail(u32 battler);
|
||||
bool32 IsMoveEffectBlockedByTarget(u32 ability);
|
||||
|
||||
#endif // GUARD_BATTLE_UTIL_H
|
||||
|
||||
@ -3177,15 +3177,9 @@ void SetMoveEffect(bool32 primary, bool32 certain)
|
||||
gBattleScripting.moveEffect &= ~MOVE_EFFECT_CERTAIN;
|
||||
|
||||
if (!primary && affectsUser != MOVE_EFFECT_AFFECTS_USER
|
||||
&& !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT)
|
||||
&& (battlerAbility == ABILITY_SHIELD_DUST || GetBattlerHoldEffect(gEffectBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK))
|
||||
{
|
||||
if (battlerAbility == ABILITY_SHIELD_DUST)
|
||||
RecordAbilityBattle(gEffectBattler, battlerAbility);
|
||||
else
|
||||
RecordItemEffectBattle(gEffectBattler, HOLD_EFFECT_COVERT_CLOAK);
|
||||
&& !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT)
|
||||
&& IsMoveEffectBlockedByTarget(battlerAbility))
|
||||
INCREMENT_RESET_RETURN
|
||||
}
|
||||
|
||||
if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT)
|
||||
&& !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION)
|
||||
@ -6258,7 +6252,8 @@ static void Cmd_moveend(void)
|
||||
case MOVE_EFFECT_REMOVE_STATUS: // Smelling salts, Wake-Up Slap, Sparkling Aria
|
||||
if ((gBattleMons[gBattlerTarget].status1 & gMovesInfo[gCurrentMove].argument.status)
|
||||
&& IsBattlerAlive(gBattlerTarget)
|
||||
&& !DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove))
|
||||
&& !DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)
|
||||
&& (gBattleStruct->numSpreadTargets > 1 || !IsMoveEffectBlockedByTarget(GetBattlerAbility(gBattlerTarget))))
|
||||
{
|
||||
gBattleMons[gBattlerTarget].status1 &= ~(gMovesInfo[gCurrentMove].argument.status);
|
||||
|
||||
|
||||
@ -12161,3 +12161,20 @@ bool32 DoesDestinyBondFail(u32 battler)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// This check has always to be the last in a condtion statement because of the recording of AI data.
|
||||
bool32 IsMoveEffectBlockedByTarget(u32 ability)
|
||||
{
|
||||
if (ability == ABILITY_SHIELD_DUST)
|
||||
{
|
||||
RecordAbilityBattle(gBattlerTarget, ability);
|
||||
return TRUE;
|
||||
}
|
||||
else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_COVERT_CLOAK)
|
||||
{
|
||||
RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_COVERT_CLOAK);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -124,7 +124,6 @@ SINGLE_BATTLE_TEST("Shield Dust does not block self-targeting effects, primary o
|
||||
DOUBLE_BATTLE_TEST("Shield Dust does or does not block Sparkling Aria depending on number of targets hit")
|
||||
{
|
||||
u32 moveToUse;
|
||||
KNOWN_FAILING;
|
||||
PARAMETRIZE { moveToUse = MOVE_FINAL_GAMBIT; }
|
||||
PARAMETRIZE { moveToUse = MOVE_TACKLE; }
|
||||
GIVEN {
|
||||
@ -150,7 +149,6 @@ DOUBLE_BATTLE_TEST("Shield Dust does or does not block Sparkling Aria depending
|
||||
|
||||
SINGLE_BATTLE_TEST("Shield Dust blocks Sparkling Aria in singles")
|
||||
{
|
||||
KNOWN_FAILING;
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_VIVILLON) { Ability(ABILITY_SHIELD_DUST); Status1(STATUS1_BURN); }
|
||||
|
||||
@ -127,7 +127,6 @@ SINGLE_BATTLE_TEST("Covert Cloak does not block self-targeting effects, primary
|
||||
DOUBLE_BATTLE_TEST("Covert Cloak does or does not block Sparkling Aria depending on number of targets hit")
|
||||
{
|
||||
u32 moveToUse;
|
||||
KNOWN_FAILING;
|
||||
PARAMETRIZE { moveToUse = MOVE_FINAL_GAMBIT; }
|
||||
PARAMETRIZE { moveToUse = MOVE_TACKLE; }
|
||||
GIVEN {
|
||||
@ -153,7 +152,6 @@ DOUBLE_BATTLE_TEST("Covert Cloak does or does not block Sparkling Aria depending
|
||||
|
||||
SINGLE_BATTLE_TEST("Covert Cloak blocks Sparkling Aria in singles")
|
||||
{
|
||||
KNOWN_FAILING;
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_COVERT_CLOAK); Status1(STATUS1_BURN); }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user