diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 3d60680da6..54c3ecaaf4 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -351,3 +351,12 @@ createvisualtask AnimTask_IsDoubleBattle, 0 jumprettrue \ptr .endm + +@ Commonly grouped steps + .macro break_screen_animation + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET + .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index b23b0d4401..c0cfac5168 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -11876,20 +11876,9 @@ gBattleAnimMove_PsychicFangs:: monbg ANIM_TARGET call SetPsychicBackground setalpha 12, 8 - choosetwoturnanim PsychicFangsRegular PsychicFangsDestroyWall -PsychicFangsRegular: - playsewithpan SE_M_BITE, SOUND_PAN_TARGET - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0xffe0, 0xffe0, 0x1, 0x333, 0x333, 0xa - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0x20, 0x20, 0x5, 0xfccd, 0xfccd, 0xa - delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 - delay 16 - playsewithpan SE_M_BITE, SOUND_PAN_TARGET - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0x20, 0xffe0, 0x7, 0xfccd, 0x333, 0xa - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0xffe0, 0x20, 0x3, 0x333, 0xfccd, 0xa - delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 1 + choosetwoturnanim PsychicFangsNormal, PsychicFangsShatteredWall +PsychicFangsNormal: + call PsychicFangsCommon createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 PsychicFangsEnd: playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET @@ -11898,28 +11887,28 @@ PsychicFangsEnd: blendoff call UnsetPsychicBg end -PsychicFangsDestroyWall: - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 0x1, 0x0, 0x0, 0x21, 0xa +PsychicFangsShatteredWall: + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 33, 10 + call PsychicFangsCommon + break_screen_animation + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 + delay 16 + goto PsychicFangsEnd + +PsychicFangsCommon: playsewithpan SE_M_BITE, SOUND_PAN_TARGET - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0xffe0, 0xffe0, 0x1, 0x333, 0x333, 0xa - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0x20, 0x20, 0x5, 0xfccd, 0xfccd, 0xa + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 delay 16 playsewithpan SE_M_BITE, SOUND_PAN_TARGET - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0x20, 0xffe0, 0x7, 0xfccd, 0x333, 0xa - createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0xffe0, 0x20, 0x3, 0x333, 0xfccd, 0xa + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 + createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 1 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x0, 0xfff8, 0xfff4 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x1, 0x8, 0xfff4 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x2, 0xfff8, 0xc - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x3, 0x8, 0xc - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 - delay 16 - goto PsychicFangsEnd + return gBattleAnimMove_StompingTantrum:: loadspritegfx ANIM_TAG_ROCKS @rock colour @@ -17179,33 +17168,13 @@ gBattleAnimMove_RagingBull:: loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim RagingBullNormal, RagingBullShatteredWall RagingBullNormal: - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 - createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - delay 20 - createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - waitforvisualfinish - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 - waitforvisualfinish - playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + call RagingBullCommon1 call SetImpactBackground createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3 - waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 - waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 - waitforvisualfinish + call RagingBullCommon2 +RagingBullEnd: createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 @@ -17215,6 +17184,17 @@ RagingBullNormal: clearmonbg ANIM_TARGET end RagingBullShatteredWall: + call RagingBullCommon1 + call SetImpactBackground + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 + delay 3 + waitforvisualfinish + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + call RagingBullCommon2 + break_screen_animation + goto RagingBullEnd + +RagingBullCommon1: monbg ANIM_TARGET setalpha 12, 8 createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 @@ -17226,11 +17206,9 @@ RagingBullShatteredWall: createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER - call SetImpactBackground - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 - delay 3 - waitforvisualfinish - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + return + +RagingBullCommon2: playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3 @@ -17243,19 +17221,7 @@ RagingBullShatteredWall: createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 - delay 3 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 - waitforvisualfinish - restorebg - waitbgfadein - clearmonbg ANIM_TARGET - end + return gBattleAnimMove_UpperHand:: loadspritegfx ANIM_TAG_SHADOW_BALL @@ -24484,36 +24450,29 @@ gBattleAnimMove_BrickBreak:: loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall BrickBreakNormal: - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 - delay 4 - delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - delay 20 - createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 - delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - delay 20 - createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 6, RGB_BLACK - delay 37 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 - createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - waitforvisualfinish + call BrickBreakCommon1 + call BrickBreakCommon2 +BrickBreakEnd: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET end BrickBreakShatteredWall: + call BrickBreakCommon1 + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + call BrickBreakCommon2 + break_screen_animation + waitforvisualfinish + goto BrickBreakEnd + +BrickBreakCommon1: monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + return + +BrickBreakCommon2: delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET @@ -24530,16 +24489,7 @@ BrickBreakShatteredWall: createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK - waitforvisualfinish - clearmonbg ANIM_TARGET - end + return gBattleAnimMove_Yawn:: loadspritegfx ANIM_TAG_PINK_CLOUD @@ -33952,10 +33902,10 @@ ShatteredPsycheFinish: restorebg createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0 waitbgfadeout createvisualtask AnimTask_AllBattlersVisible, 0xA waitforvisualfinish @@ -34133,10 +34083,10 @@ SubzeroSlammerFinish: loadspritegfx ANIM_TAG_TORN_METAL playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 3 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0 createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 8, 28 call SubzeroSlammerExplosion call SubzeroSlammerExplosion