diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 3a1cd720c39e..d13cb5f2194f 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -16835,6 +16835,77 @@ SyrupBombSpeedDropYellow: waitforvisualfinish end +Move_CHILLY_RECEPTION:: + loadspritegfx ANIM_TAG_CONFETTI + loadspritegfx ANIM_TAG_PINK_CLOUD + loadspritegfx ANIM_TAG_ICE_CRYSTALS + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 1, 0, 13, RGB_BLACK + delay 60 + waitforvisualfinish + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 1, 13, 0, RGB_BLACK + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 + waitforvisualfinish + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_ROAR + setalpha 12, 4 + monbg ANIM_ATTACKER + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, 6, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 120, 3, -12, 12, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 119, 3, 14, 18, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 118, 3, 0, 0, 24 + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 10 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 0, 3, RGB_WHITE + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET + waitforvisualfinish + waitsound + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 3, 0, RGB_WHITE + end +ChillyReceptionSnowballs: + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -150, 24, 0, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -100, 24, -10, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -100, 24, 10, 56, -4, 3, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, -20, 56, -4, 5, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -150, 24, 15, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, -20, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, 20, 56, 4, 4, 0 + delay 3 + return + Move_TERA_BLAST:: Move_AXE_KICK:: Move_LAST_RESPECTS:: @@ -16862,7 +16933,6 @@ Move_RUINATION:: Move_COLLISION_COURSE:: Move_ELECTRO_DRIFT:: Move_SHED_TAIL:: -Move_CHILLY_RECEPTION:: Move_TIDY_UP:: Move_POUNCE:: Move_TRAILBLAZE:: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a88d270ef7dd..bed903cab204 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -436,6 +436,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_POPULATION_BOMB .4byte BattleScript_EffectMortalSpin @ EFFECT_MORTAL_SPIN .4byte BattleScript_EffectSaltCure @ EFFECT_SALT_CURE + .4byte BattleScript_EffectChillyReception @ EFFECT_CHILLY_RECEPTION .4byte BattleScript_EffectMatchaGotcha @ EFFECT_MATCHA_GOTCHA .4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL @@ -471,6 +472,71 @@ BattleScript_SyrupBombTurnDmgEnd: BattleScript_EffectMatchaGotcha:: setmoveeffect MOVE_EFFECT_BURN goto BattleScript_EffectAbsorb + end + +BattleScript_EffectChillyReception:: + printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE + waitmessage B_WAIT_TIME_LONG + attackcanceler + ppreduce + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalSun + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_EffectChillyReceptionBlockedByStrongWinds + call BattleScript_EffectChillyReceptionPlayAnimation + setsnow + call BattleScript_MoveWeatherChangeRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionPlayAnimation: + attackstring + attackanimation + waitanimation + return +BattleScript_EffectChillyReceptionBlockedByPrimalSun: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_ExtremelyHarshSunlightWasNotLessenedRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionBlockedByPrimalRain: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_NoReliefFromHeavyRainRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionBlockedByStrongWinds: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_MysteriousAirCurrentBlowsOnRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionTrySwitchWeatherFailed: + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_FailedFromAtkString + jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_FailedFromAtkString + call BattleScript_EffectChillyReceptionPlayAnimation + return + +BattleScript_CheckPrimalWeather: + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + return + +BattleScript_MoveSwitch: + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_MoveSwitchEnd + jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd + printstring STRINGID_PKMNWENTBACK + waitmessage B_WAIT_TIME_SHORT + openpartyscreen BS_ATTACKER, BattleScript_MoveSwitchEnd + switchoutabilities BS_ATTACKER + waitstate + switchhandleorder BS_ATTACKER, 2 + returntoball BS_ATTACKER + getswitchedmondata BS_ATTACKER + switchindataupdate BS_ATTACKER + hpthresholds BS_ATTACKER + trytoclearprimalweather + printstring STRINGID_EMPTYSTRING3 + waitmessage 1 + printstring STRINGID_SWITCHINMON + switchinanim BS_ATTACKER, TRUE + waitstate + switchineffects BS_ATTACKER +BattleScript_MoveSwitchEnd: + end BattleScript_EffectPledge:: attackcanceler @@ -661,14 +727,14 @@ BattleScript_EffectRevivalBlessing:: waitanimation printstring STRINGID_PKMNREVIVEDREADYTOFIGHT waitmessage B_WAIT_TIME_LONG - jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectRevivalBlessingSendOut + jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectRevivalBlessingSendOut goto BattleScript_MoveEnd BattleScript_EffectRevivalBlessingSendOut: - switchinanim BS_SCRIPTING, FALSE + switchinanim BS_SCRIPTING, FALSE waitstate switchineffects BS_SCRIPTING - goto BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_StealthRockActivates:: setstealthrock BattleScript_MoveEnd @@ -1696,22 +1762,7 @@ BattleScript_EffectPartingShotTrySpAtk: waitmessage B_WAIT_TIME_LONG BattleScript_EffectPartingShotSwitch: moveendall - jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_PartingShotEnd - jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_PartingShotEnd - openpartyscreen BS_ATTACKER, BattleScript_PartingShotEnd - switchoutabilities BS_ATTACKER - waitstate - switchhandleorder BS_ATTACKER, 2 - returntoball BS_ATTACKER - getswitchedmondata BS_ATTACKER - switchindataupdate BS_ATTACKER - hpthresholds BS_ATTACKER - trytoclearprimalweather - flushtextbox - printstring STRINGID_SWITCHINMON - switchinanim BS_ATTACKER, TRUE - waitstate - switchineffects BS_ATTACKER + goto BattleScript_MoveSwitch BattleScript_PartingShotEnd: end @@ -3173,23 +3224,8 @@ BattleScript_EffectHitEscape: moveendfrom MOVEEND_TARGET_VISIBLE jumpifbattleend BattleScript_HitEscapeEnd jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd - jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd - jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd - openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd - switchoutabilities BS_ATTACKER - waitstate - switchhandleorder BS_ATTACKER, 2 - returntoball BS_ATTACKER - getswitchedmondata BS_ATTACKER - switchindataupdate BS_ATTACKER - hpthresholds BS_ATTACKER - trytoclearprimalweather - flushtextbox - printstring STRINGID_SWITCHINMON - switchinanim BS_ATTACKER, TRUE - waitstate - switchineffects BS_ATTACKER + goto BattleScript_MoveSwitch BattleScript_HitEscapeEnd: end @@ -4971,9 +5007,7 @@ BattleScript_EffectSandstorm:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setsandstorm goto BattleScript_MoveWeatherChange @@ -5162,25 +5196,25 @@ BattleScript_EffectRainDance:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setrain BattleScript_MoveWeatherChange:: attackanimation waitanimation + call BattleScript_MoveWeatherChangeRet + goto BattleScript_MoveEnd + +BattleScript_MoveWeatherChangeRet:: printfromtable gMoveWeatherChangeStringIds waitmessage B_WAIT_TIME_LONG call BattleScript_ActivateWeatherAbilities - goto BattleScript_MoveEnd + return BattleScript_EffectSunnyDay:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setsunny goto BattleScript_MoveWeatherChange @@ -5644,9 +5678,7 @@ BattleScript_EffectHail:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather sethail goto BattleScript_MoveWeatherChange @@ -10771,9 +10803,7 @@ BattleScript_BerserkGeneRet_End: BattleScript_EffectSnow:: attackcanceler attackstring - ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + ppreduce + call BattleScript_CheckPrimalWeather setsnow goto BattleScript_MoveWeatherChange diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 1fb300347e54..19118ca4e96c 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -413,13 +413,14 @@ #define EFFECT_POPULATION_BOMB 407 #define EFFECT_MORTAL_SPIN 408 #define EFFECT_SALT_CURE 409 -#define EFFECT_MATCHA_GOTCHA 410 -#define EFFECT_SYRUP_BOMB 411 -#define EFFECT_IVY_CUDGEL 412 -#define EFFECT_MAX_MOVE 413 -#define EFFECT_GLAIVE_RUSH 414 -#define EFFECT_RAGING_BULL 415 +#define EFFECT_CHILLY_RECEPTION 410 +#define EFFECT_MATCHA_GOTCHA 411 +#define EFFECT_SYRUP_BOMB 412 +#define EFFECT_IVY_CUDGEL 413 +#define EFFECT_MAX_MOVE 414 +#define EFFECT_GLAIVE_RUSH 415 +#define EFFECT_RAGING_BULL 416 -#define NUM_BATTLE_MOVE_EFFECTS 416 +#define NUM_BATTLE_MOVE_EFFECTS 417 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 354b3d20b544..6263f87a38b0 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -695,8 +695,9 @@ #define STRINGID_THESEAOFFIREDISAPPEARED 693 #define STRINGID_SWAMPENVELOPEDSIDE 694 #define STRINGID_THESWAMPDISAPPEARED 695 +#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 696 -#define BATTLESTRINGS_COUNT 696 +#define BATTLESTRINGS_COUNT 697 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, diff --git a/src/battle_message.c b/src/battle_message.c index fa2df70688b5..d8dbceab244a 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -822,6 +822,7 @@ static const u8 sText_TargetIsBeingSaltCured[] = _("{B_DEF_NAME_WITH_PREFIX} is static const u8 sText_TargetIsHurtBySaltCure[] = _("{B_DEF_NAME_WITH_PREFIX} is hurt by {B_BUFF1}!"); static const u8 sText_OpportunistCopied[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} copied its\nopponent's stat changes!"); static const u8 sText_TargetCoveredInStickyCandySyrup[] = _("{B_DEF_NAME_WITH_PREFIX} got covered\nin sticky syrup!"); +static const u8 sText_PkmnTellChillingReceptionJoke[] = _("{B_ATK_NAME_WITH_PREFIX} is preparing to tell a\nchillingly bad joke!"); static const u8 sText_ZeroToHeroTransformation[] = _("{B_ATK_NAME_WITH_PREFIX} underwent a heroic\ntransformation!"); static const u8 sText_TheTwoMovesBecomeOne[] = _("The two moves become one!\nIt's a combined move!{PAUSE 16}"); static const u8 sText_ARainbowAppearedOnSide[] = _("A rainbow appeared in the sky\non {B_ATK_TEAM2} team's side!"); @@ -845,6 +846,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_ARAINBOWAPPEAREDONSIDE - BATTLESTRINGS_TABLE_START] = sText_ARainbowAppearedOnSide, [STRINGID_THETWOMOVESBECOMEONE - BATTLESTRINGS_TABLE_START] = sText_TheTwoMovesBecomeOne, [STRINGID_ZEROTOHEROTRANSFORMATION - BATTLESTRINGS_TABLE_START] = sText_ZeroToHeroTransformation, + [STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnTellChillingReceptionJoke, [STRINGID_MOVEBLOCKEDBYDYNAMAX - BATTLESTRINGS_TABLE_START] = sText_MoveBlockedByDynamax, [STRINGID_OPPORTUNISTCOPIED - BATTLESTRINGS_TABLE_START] = sText_OpportunistCopied, [STRINGID_TARGETISHURTBYSALTCURE - BATTLESTRINGS_TABLE_START] = sText_TargetIsHurtBySaltCure, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index f3cf0fa76b5d..078f32f5acf3 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -14004,7 +14004,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_CHILLY_RECEPTION] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_CHILLY_RECEPTION + .effect = EFFECT_CHILLY_RECEPTION, .power = 0, .type = TYPE_ICE, .accuracy = 0, diff --git a/test/battle/move_effect/chilly_reception.c b/test/battle/move_effect/chilly_reception.c new file mode 100644 index 000000000000..6f731f4b6ff7 --- /dev/null +++ b/test/battle/move_effect/chilly_reception.c @@ -0,0 +1,90 @@ +#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"); + } +} +