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>
This commit is contained in:
Patrick Curran 2023-12-06 11:11:13 -05:00 committed by GitHub
parent e6a6ea4977
commit f7ca839f23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 256 additions and 62 deletions

View file

@ -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::

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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");
}
}