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:
parent
e6a6ea4977
commit
f7ca839f23
7 changed files with 256 additions and 62 deletions
|
@ -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::
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
90
test/battle/move_effect/chilly_reception.c
Normal file
90
test/battle/move_effect/chilly_reception.c
Normal 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");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue