Simple gimmick tests
This commit is contained in:
parent
97376a5b5a
commit
9e56a259e6
@ -53,20 +53,19 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_TERA: AI will not tera if it gets ko'd by p
|
||||
}
|
||||
}
|
||||
|
||||
// AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_TERA: AI might tera if it gets saved from a ko")
|
||||
// {
|
||||
// KNOWN_FAILING; // Tests don't currently give the AI the capability to tera, even with a tera type set.
|
||||
// PASSES_RANDOMLY(90, 100, RNG_AI_CONSERVE_TERA);
|
||||
// GIVEN {
|
||||
// ASSUME(GetMovePower(MOVE_SEED_BOMB) == 80);
|
||||
// AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_TERA | AI_FLAG_OMNISCIENT );
|
||||
// PLAYER(SPECIES_WOBBUFFET) { HP(47); Speed(100); Moves(MOVE_SEED_BOMB); }
|
||||
// PLAYER(SPECIES_WOBBUFFET) { Speed(100); }
|
||||
// OPPONENT(SPECIES_WOBBUFFET) { Speed(100); HP(30); Moves(MOVE_SEED_BOMB); TeraType(TYPE_FIRE); }
|
||||
// OPPONENT(SPECIES_WOBBUFFET) { Speed(100); TeraType(TYPE_FIRE); }
|
||||
// } WHEN {
|
||||
// TURN { MOVE(player, MOVE_SEED_BOMB); }
|
||||
// } SCENE {
|
||||
// MESSAGE("The opposing Wobbuffet terastallized into the Fire type!");
|
||||
// }
|
||||
// }
|
||||
AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_TERA: AI might tera if it gets saved from a ko")
|
||||
{
|
||||
PASSES_RANDOMLY(90, 100, RNG_AI_CONSERVE_TERA);
|
||||
GIVEN {
|
||||
ASSUME(GetMovePower(MOVE_SEED_BOMB) == 80);
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_TERA | AI_FLAG_OMNISCIENT );
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(47); Speed(100); Moves(MOVE_SEED_BOMB); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(100); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(100); HP(30); Moves(MOVE_SEED_BOMB); TeraType(TYPE_FIRE); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(100); TeraType(TYPE_FIRE); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SEED_BOMB); }
|
||||
} SCENE {
|
||||
MESSAGE("The opposing Wobbuffet terastallized into the Fire type!");
|
||||
}
|
||||
}
|
||||
|
||||
15
test/battle/ai/gimmick_dynamax.c
Normal file
15
test/battle/ai/gimmick_dynamax.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "battle_ai_util.h"
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI uses Dynamax")
|
||||
{
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT );
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_SCRATCH); DynamaxLevel(10); }
|
||||
} WHEN {
|
||||
TURN { EXPECT_MOVE(opponent, MOVE_SCRATCH, gimmick: GIMMICK_DYNAMAX); }
|
||||
}
|
||||
}
|
||||
|
||||
19
test/battle/ai/gimmick_mega.c
Normal file
19
test/battle/ai/gimmick_mega.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "battle_ai_util.h"
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI uses Mega Evolution")
|
||||
{
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT );
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_VENUSAUR) { Item(ITEM_VENUSAURITE); Moves(MOVE_SLUDGE_BOMB); }
|
||||
} WHEN {
|
||||
TURN { EXPECT_MOVE(opponent, MOVE_SLUDGE_BOMB, gimmick: GIMMICK_MEGA); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent);
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->species, SPECIES_VENUSAUR_MEGA);
|
||||
}
|
||||
}
|
||||
|
||||
34
test/battle/ai/gimmick_z_move.c
Normal file
34
test/battle/ai/gimmick_z_move.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "battle_ai_util.h"
|
||||
#include "constants/battle_z_move_effects.h"
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI uses Z-moves.")
|
||||
{
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT );
|
||||
ASSUME(GetMoveType(MOVE_QUICK_ATTACK) == TYPE_NORMAL);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_NORMALIUM_Z); Moves(MOVE_QUICK_ATTACK); }
|
||||
} WHEN {
|
||||
TURN { EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK, gimmick: GIMMICK_Z_MOVE); }
|
||||
}
|
||||
}
|
||||
|
||||
AI_SINGLE_BATTLE_TEST("AI does not use damaging Z-moves if the player would faint anyway.")
|
||||
{
|
||||
u32 currentHP;
|
||||
PARAMETRIZE { currentHP = 1; }
|
||||
PARAMETRIZE { currentHP = 500; }
|
||||
GIVEN {
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT );
|
||||
ASSUME(GetMoveType(MOVE_QUICK_ATTACK) == TYPE_NORMAL);
|
||||
PLAYER(SPECIES_WOBBUFFET) { HP(currentHP); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_NORMALIUM_Z); Moves(MOVE_QUICK_ATTACK); }
|
||||
} WHEN {
|
||||
if (currentHP != 1)
|
||||
TURN { EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK, gimmick: GIMMICK_Z_MOVE); }
|
||||
else
|
||||
TURN { EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK, gimmick: GIMMICK_NONE); }
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user