76 lines
2.7 KiB
C
76 lines
2.7 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
SINGLE_BATTLE_TEST("Synchronize will mirror back non volatile status back at opposing mon")
|
|
{
|
|
u32 config;
|
|
PARAMETRIZE { config = GEN_4; }
|
|
PARAMETRIZE { config = GEN_5; }
|
|
GIVEN {
|
|
ASSUME(GetMoveEffect(MOVE_TOXIC) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_TOXIC) == MOVE_EFFECT_TOXIC);
|
|
WITH_CONFIG(B_SYNCHRONIZE_TOXIC, config);
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_ABRA) { Ability(ABILITY_SYNCHRONIZE); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_TOXIC); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player);
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent);
|
|
STATUS_ICON(opponent, badPoison: TRUE);
|
|
ABILITY_POPUP(opponent, ABILITY_SYNCHRONIZE);
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player);
|
|
if (config >= GEN_5)
|
|
STATUS_ICON(player, badPoison: TRUE);
|
|
else
|
|
STATUS_ICON(player, poison: TRUE);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Synchronize will still show up the ability pop up even if it fails")
|
|
{
|
|
GIVEN {
|
|
WITH_CONFIG(B_PARALYZE_ELECTRIC, GEN_6);
|
|
ASSUME(MoveMakesContact(MOVE_TACKLE));
|
|
PLAYER(SPECIES_PIKACHU) { Ability(ABILITY_STATIC); }
|
|
OPPONENT(SPECIES_ABRA) { Ability(ABILITY_SYNCHRONIZE); }
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_TACKLE); MOVE(player, MOVE_CELEBRATE); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent);
|
|
ABILITY_POPUP(player, ABILITY_STATIC);
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent);
|
|
STATUS_ICON(opponent, paralysis: TRUE);
|
|
ABILITY_POPUP(opponent, ABILITY_SYNCHRONIZE);
|
|
NONE_OF {
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player);
|
|
STATUS_ICON(player, paralysis: TRUE);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
SINGLE_BATTLE_TEST("Synchronize will mirror back static activation")
|
|
{
|
|
GIVEN {
|
|
ASSUME(MoveMakesContact(MOVE_TACKLE));
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_PIKACHU) { Ability(ABILITY_STATIC); }
|
|
OPPONENT(SPECIES_ABRA) { Ability(ABILITY_SYNCHRONIZE); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SKILL_SWAP); }
|
|
TURN { SWITCH(opponent, 1); }
|
|
TURN { MOVE(opponent, MOVE_TACKLE); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player);
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent);
|
|
ABILITY_POPUP(player, ABILITY_STATIC);
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent);
|
|
STATUS_ICON(opponent, paralysis: TRUE);
|
|
ABILITY_POPUP(opponent, ABILITY_SYNCHRONIZE);
|
|
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player);
|
|
STATUS_ICON(player, paralysis: TRUE);
|
|
}
|
|
}
|