2025-10-12 08:59:33 +02:00

79 lines
3.0 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(GetMoveEffect(MOVE_MAGIC_ROOM) == EFFECT_MAGIC_ROOM);
}
DOUBLE_BATTLE_TEST("Magic Room prevents item hold effects")
{
GIVEN {
ASSUME(gItemsInfo[ITEM_BERRY_JUICE].holdEffect == HOLD_EFFECT_RESTORE_HP);
ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE);
ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40);
PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); }
PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); }
OPPONENT(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); }
OPPONENT(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); }
} WHEN {
TURN { MOVE(playerLeft, MOVE_MAGIC_ROOM); }
TURN {
MOVE(playerLeft, MOVE_DRAGON_RAGE, target: opponentLeft);
MOVE(opponentLeft, MOVE_DRAGON_RAGE, target: playerLeft);
MOVE(playerRight, MOVE_DRAGON_RAGE, target: opponentRight);
MOVE(opponentRight, MOVE_DRAGON_RAGE, target: playerRight);
}
TURN { MOVE(playerLeft, MOVE_MAGIC_ROOM); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_ROOM, playerLeft);
ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_ROOM, playerLeft);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight);
}
}
SINGLE_BATTLE_TEST("Magic Room: An item that can activate will activate once Magic Room is over")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_MAGIC_ROOM); MOVE(opponent, MOVE_GROWL); }
TURN {}
TURN {}
TURN {}
TURN {}
TURN {}
} SCENE {
// Turn 1
ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_ROOM, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, opponent);
// Turn 2
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
// Turn 3
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
// Turn 4
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
// Turn 5
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
NONE_OF {
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
}
MESSAGE("Magic Room wore off, and held items' effects returned to normal!");
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
}
}
TO_DO_BATTLE_TEST("TODO: Write Magic Room (Move Effect) test titles")