pokeemmo/test/battle/ai/check_bad_move.c
2026-02-06 11:57:33 +01:00

51 lines
2.0 KiB
C

#include "global.h"
#include "test/battle.h"
#include "battle_ai_util.h"
AI_SINGLE_BATTLE_TEST("AI will not try to lower opposing stats if target is protected by it's ability")
{
enum Ability ability;
u32 species, move;
PARAMETRIZE { ability = ABILITY_SPEED_BOOST; species = SPECIES_TORCHIC; move = MOVE_SCARY_FACE; }
PARAMETRIZE { ability = ABILITY_HYPER_CUTTER; species = SPECIES_KRABBY; move = MOVE_GROWL; }
PARAMETRIZE { ability = ABILITY_BIG_PECKS; species = SPECIES_PIDGEY; move = MOVE_SCREECH; }
PARAMETRIZE { ability = ABILITY_ILLUMINATE; species = SPECIES_STARYU; move = MOVE_SAND_ATTACK; }
PARAMETRIZE { ability = ABILITY_KEEN_EYE; species = SPECIES_PIDGEY; move = MOVE_SAND_ATTACK; }
PARAMETRIZE { ability = ABILITY_CONTRARY; species = SPECIES_SNIVY; move = MOVE_NOBLE_ROAR; }
PARAMETRIZE { ability = ABILITY_CLEAR_BODY; species = SPECIES_BELDUM; move = MOVE_NOBLE_ROAR; }
GIVEN {
WITH_CONFIG(B_ILLUMINATE_EFFECT, GEN_9);
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_OMNISCIENT);
PLAYER(species) { Ability(ability); }
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_TACKLE, move); }
} WHEN {
TURN { SCORE_LT_VAL(opponent, move, AI_SCORE_DEFAULT); }
}
}
AI_DOUBLE_BATTLE_TEST("AI will not try to lower opposing stats if target is protected by Flower Veil")
{
u16 move;
PARAMETRIZE { move = MOVE_SCARY_FACE; }
PARAMETRIZE { move = MOVE_GROWL; }
PARAMETRIZE { move = MOVE_SCREECH; }
PARAMETRIZE { move = MOVE_SAND_ATTACK; }
PARAMETRIZE { move = MOVE_SAND_ATTACK; }
PARAMETRIZE { move = MOVE_NOBLE_ROAR; }
PARAMETRIZE { move = MOVE_NOBLE_ROAR; }
GIVEN {
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_OMNISCIENT);
PLAYER(SPECIES_COMFEY) { Ability(ABILITY_FLOWER_VEIL); }
PLAYER(SPECIES_BULBASAUR);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_TACKLE, move); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { SCORE_LT_VAL(opponentLeft, move, AI_SCORE_DEFAULT, target: playerRight); }
}
}