85 lines
3.3 KiB
C
85 lines
3.3 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
ASSUMPTIONS
|
|
{
|
|
ASSUME(GetMoveEffect(MOVE_TOXIC) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_TOXIC) == MOVE_EFFECT_TOXIC);
|
|
ASSUME(GetMoveEffect(MOVE_POISON_GAS) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_POISON_GAS) == MOVE_EFFECT_POISON);
|
|
ASSUME(GetMoveEffect(MOVE_WILL_O_WISP) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_WILL_O_WISP) == MOVE_EFFECT_BURN);
|
|
ASSUME(GetMoveEffect(MOVE_THUNDER_WAVE) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_THUNDER_WAVE) == MOVE_EFFECT_PARALYSIS);
|
|
ASSUME(GetMoveEffect(MOVE_HYPNOSIS) == EFFECT_NON_VOLATILE_STATUS);
|
|
ASSUME(GetMoveNonVolatileStatus(MOVE_HYPNOSIS) == MOVE_EFFECT_SLEEP);
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Flower Veil prevents status on allied Grass-types - right target")
|
|
{
|
|
u32 move;
|
|
|
|
PARAMETRIZE { move = MOVE_TOXIC; }
|
|
PARAMETRIZE { move = MOVE_POISON_GAS; }
|
|
PARAMETRIZE { move = MOVE_WILL_O_WISP; }
|
|
PARAMETRIZE { move = MOVE_THUNDER_WAVE; }
|
|
PARAMETRIZE { move = MOVE_HYPNOSIS; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
PLAYER(SPECIES_WYNAUT);
|
|
OPPONENT(SPECIES_COMFEY) { Ability(ABILITY_FLOWER_VEIL); }
|
|
OPPONENT(SPECIES_CHIKORITA);
|
|
} WHEN {
|
|
TURN { MOVE(playerLeft, move, target: opponentRight); }
|
|
} SCENE {
|
|
NOT ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
|
ABILITY_POPUP(opponentLeft, ABILITY_FLOWER_VEIL);
|
|
MESSAGE("The opposing Chikorita surrounded itself with a veil of petals!");
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Flower Veil prevents status on allied Grass-types - left target")
|
|
{
|
|
u32 move;
|
|
|
|
PARAMETRIZE { move = MOVE_TOXIC; }
|
|
PARAMETRIZE { move = MOVE_POISON_GAS; }
|
|
PARAMETRIZE { move = MOVE_WILL_O_WISP; }
|
|
PARAMETRIZE { move = MOVE_THUNDER_WAVE; }
|
|
PARAMETRIZE { move = MOVE_HYPNOSIS; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
PLAYER(SPECIES_WYNAUT);
|
|
OPPONENT(SPECIES_CHIKORITA);
|
|
OPPONENT(SPECIES_COMFEY) { Ability(ABILITY_FLOWER_VEIL); }
|
|
} WHEN {
|
|
TURN { MOVE(playerLeft, move, target: opponentLeft); }
|
|
} SCENE {
|
|
NOT ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
|
ABILITY_POPUP(opponentRight, ABILITY_FLOWER_VEIL);
|
|
MESSAGE("The opposing Chikorita surrounded itself with a veil of petals!");
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Flower Veil's stat reduction protection considers Contrary") // Eg. If a move would reduce stats due to Contrary, it will be protected by Mist.
|
|
{
|
|
GIVEN {
|
|
ASSUME(GetMoveEffect(MOVE_SWAGGER) == EFFECT_SWAGGER);
|
|
ASSUME(GetSpeciesType(SPECIES_SNIVY, 0) == TYPE_GRASS || GetSpeciesType(SPECIES_SNIVY, 1) == TYPE_GRASS);
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
PLAYER(SPECIES_WYNAUT);
|
|
OPPONENT(SPECIES_COMFEY) { Ability(ABILITY_FLOWER_VEIL); }
|
|
OPPONENT(SPECIES_SNIVY) { Ability(ABILITY_CONTRARY); }
|
|
} WHEN {
|
|
TURN { MOVE(playerLeft, MOVE_SWAGGER, target: opponentRight); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SWAGGER, playerLeft);
|
|
ABILITY_POPUP(opponentLeft, ABILITY_FLOWER_VEIL);
|
|
MESSAGE("The opposing Snivy surrounded itself with a veil of petals!");
|
|
} THEN {
|
|
EXPECT_EQ(opponentRight->statStages[STAT_ATK], DEFAULT_STAT_STAGE);
|
|
}
|
|
}
|