2023-12-22 15:45:55 +00:00
|
|
|
#include "global.h"
|
|
|
|
#include "test/battle.h"
|
|
|
|
|
|
|
|
ASSUMPTIONS
|
|
|
|
{
|
|
|
|
ASSUME(gBattleMoves[MOVE_DOODLE].effect == EFFECT_DOODLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Doodle gives the target's ability to user and ally")
|
|
|
|
{
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WYNAUT);
|
|
|
|
PLAYER(SPECIES_WYNAUT);
|
2023-12-22 17:25:23 +00:00
|
|
|
OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); }
|
2023-12-22 15:45:55 +00:00
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft);
|
2023-12-22 17:25:23 +00:00
|
|
|
MESSAGE("Wynaut copied Foe Torchic's Blaze!");
|
|
|
|
MESSAGE("Wynaut copied Foe Torchic's Blaze!");
|
2023-12-22 15:45:55 +00:00
|
|
|
} THEN {
|
2023-12-22 17:25:23 +00:00
|
|
|
EXPECT(playerLeft->ability == ABILITY_BLAZE);
|
|
|
|
EXPECT(playerRight->ability == ABILITY_BLAZE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Doodle can't copy a banned ability")
|
|
|
|
{
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WYNAUT);
|
|
|
|
PLAYER(SPECIES_WYNAUT);
|
|
|
|
OPPONENT(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); }
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft);
|
|
|
|
NONE_OF {
|
|
|
|
MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!");
|
|
|
|
MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!");
|
|
|
|
}
|
|
|
|
} THEN {
|
|
|
|
EXPECT(playerLeft->ability != ABILITY_PROTOSYNTHESIS);
|
|
|
|
EXPECT(playerRight->ability != ABILITY_PROTOSYNTHESIS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Doodle fails if user has a banned Ability")
|
|
|
|
{
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); }
|
|
|
|
PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); }
|
|
|
|
OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); }
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft);
|
|
|
|
MESSAGE("But it failed!");
|
|
|
|
} THEN {
|
|
|
|
EXPECT(playerLeft->ability == ABILITY_PROTOSYNTHESIS);
|
|
|
|
EXPECT(playerRight->ability == ABILITY_SHADOW_TAG);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Doodle fails if partner has a banned Ability")
|
|
|
|
{
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); }
|
|
|
|
PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); }
|
|
|
|
OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); }
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft);
|
|
|
|
MESSAGE("But it failed!");
|
|
|
|
} THEN {
|
|
|
|
EXPECT(playerLeft->ability == ABILITY_SHADOW_TAG);
|
|
|
|
EXPECT(playerRight->ability == ABILITY_PROTOSYNTHESIS);
|
2023-12-22 15:45:55 +00:00
|
|
|
}
|
|
|
|
}
|