sovereignx/test/battle/move_effect/chilly_reception.c
Patrick Curran f7ca839f23
EFFECT_CHILLY_RECEPTION (#3379)
* Chilly Reception Effect

* Wrap Chilling Reception Message Better

* Animation & Some Testing

* Remove Wimp Out cases from Chilly Reception tests

* Animation tweaks

* Battle Script Updates
* Created CheckPrimalWeather macro for Weather Effects
* Updated Chilly Reception logic to switch even if weather doesn't change

Testing Updates

* Fixed test: Move does not animate if weather fails to change

* Remove snow animation check during failure path test

* * Fix indentation
* Move Chilly Reception animation to always play (even when weather change fails)

* Updates to MoveSwitch and PartingShot to get closer to original logic

* Update BattleScript_EffectChillyReception logic

* * Move CHILLY_RECEPTION animation
* Test updates

* Fix Chilly Reception MESSAGE  checks

---------

Co-authored-by: Patrick Curran <rapidnutcracker@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2023-12-06 17:11:13 +01:00

90 lines
3 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(gBattleMoves[MOVE_CHILLY_RECEPTION].effect == EFFECT_CHILLY_RECEPTION);
}
SINGLE_BATTLE_TEST("Chilly Reception sets up snow and switches the user out")
{
GIVEN {
PLAYER(SPECIES_SLOWKING_GALARIAN);
PLAYER(SPECIES_SLOWPOKE_GALARIAN);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CHILLY_RECEPTION); SEND_OUT(player, 1); }
} SCENE {
MESSAGE("Slowking is preparing to tell a chillingly bad joke!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player);
MESSAGE("It started to snow!");
MESSAGE("Slowking went back to 1");
MESSAGE("Go! Slowpoke!");
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SNOW_CONTINUES);
}
}
SINGLE_BATTLE_TEST("Chilly Reception switches the user out, even if the weather does not change")
{
GIVEN {
PLAYER(SPECIES_SLOWKING_GALARIAN);
PLAYER(SPECIES_SLOWPOKE_GALARIAN);
OPPONENT(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); }
} WHEN {
TURN { MOVE(player, MOVE_CHILLY_RECEPTION); SEND_OUT(player, 1); }
} SCENE {
MESSAGE("Slowking is preparing to tell a chillingly bad joke!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player);
MESSAGE("There is no relief from this heavy rain!");
MESSAGE("Slowking went back to 1");
MESSAGE("Go! Slowpoke!");
MESSAGE("Rain continues to fall.");
}
}
SINGLE_BATTLE_TEST("Chilly Reception does not switch the user out if no replacements")
{
GIVEN {
PLAYER(SPECIES_SLOWKING_GALARIAN);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CHILLY_RECEPTION); }
} SCENE {
MESSAGE("Slowking is preparing to tell a chillingly bad joke!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player);
MESSAGE("It started to snow!");
NOT MESSAGE("Slowking went back to 1");
}
}
SINGLE_BATTLE_TEST("Chilly Reception does not switch the user out if replacements fainted")
{
GIVEN {
PLAYER(SPECIES_SLOWKING_GALARIAN);
PLAYER(SPECIES_SLOWPOKE_GALARIAN) { HP(0); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CHILLY_RECEPTION); }
} SCENE {
MESSAGE("Slowking is preparing to tell a chillingly bad joke!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player);
MESSAGE("It started to snow!");
NOT MESSAGE("Slowking went back to 1");
}
}
SINGLE_BATTLE_TEST("Chilly Reception changes the weather, even if the user cannot switch out")
{
GIVEN {
PLAYER(SPECIES_SLOWKING_GALARIAN);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_CHILLY_RECEPTION); }
} SCENE {
MESSAGE("Slowking is preparing to tell a chillingly bad joke!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player);
MESSAGE("It started to snow!");
NOT MESSAGE("Slowking went back to 1");
}
}