From 1520cb3e23a1bdae85cbb16b745c6cc9f49c3d9a Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 13 Jan 2024 16:51:54 +0100 Subject: [PATCH 1/6] A few new gen 9 move animations --- data/battle_anim_scripts.s | 199 +++++++++++++++++++++++++++---------- 1 file changed, 146 insertions(+), 53 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 84b94940d9a6..49d849d03495 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -15925,7 +15925,7 @@ Move_SPRINGTIDE_STORM:: loadspritegfx ANIM_TAG_RED_HEART playsewithpan SE_M_GUST, SOUND_PAN_TARGET createvisualtaskontargets AnimTask_ShakeMon2, 2, 0, ANIM_TARGET, 0, 4, 0x58, 1 - createvisualtask AnimTask_BlendColorCycle, 0x2, F_PAL_TARGET, 0x2, 0x6, 0x0, 0xB, 0x7ADF + createvisualtask AnimTask_BlendColorCycle, 0x2, F_PAL_TARGET, 0x2, 0x6, 0x0, 0xB, 0x7ADF call HurricaneGustCentered call SpringtideStormHeartSwirl call HurricaneGustCentered @@ -15943,17 +15943,17 @@ Move_SPRINGTIDE_STORM:: end SpringtideStormHeartSwirl: - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET + createspriteontargets gSpriteTemplate_SpringtideHeart, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET return @@ -16495,7 +16495,7 @@ Move_BLEAKWIND_STORM:: loadspritegfx ANIM_TAG_ICE_CRYSTALS playsewithpan SE_M_GUST, SOUND_PAN_TARGET createvisualtaskontargets AnimTask_ShakeMon2, 2, 0, ANIM_TARGET, 0, 4, 0x58, 1 - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x7FFF + createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x7FFF call HurricaneGustCentered call BleakwindStormIceSwirl call HurricaneGustCentered @@ -16510,21 +16510,21 @@ Move_BLEAKWIND_STORM:: call BleakwindStormIceSwirl waitforvisualfinish stopsound - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x7FFF + createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x7FFF waitforvisualfinish end BleakwindStormIceSwirl: - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET + createspriteontargets gSpriteTemplate_BleakwindIce, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET return @@ -16538,7 +16538,7 @@ Move_WILDBOLT_STORM:: waitbgfadein playsewithpan SE_M_GUST, SOUND_PAN_TARGET createvisualtaskontargets AnimTask_ShakeMon2, 2, 0, ANIM_TARGET, 0, 4, 0x58, 1 - createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x07FE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x07FE call HurricaneGustCentered call WildboltStormSparkSwirl call HurricaneGustCentered @@ -16553,23 +16553,23 @@ Move_WILDBOLT_STORM:: call WildboltStormSparkSwirl waitforvisualfinish stopsound - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x07FE + createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x07FE call UnsetPsychicBg waitforvisualfinish end WildboltStormSparkSwirl: - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x210, 0x1e, 0xa, 0x32, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x24, 0x1e0, 0x14, 0xd, 0xffd2, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x240, 0x14, 0x5, 0x2a, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x23, 0x190, 0x19, 0x8, 0xffd6, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x200, 0x19, 0xd, 0x2e, ANIM_TARGET delay 0x2 - createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET + createspriteontargets gSpriteTemplate_WildboltStormSpark, ANIM_TARGET, 2, 6, 0x0, 0x25, 0x1d0, 0x1e, 0xc, 0xffce, ANIM_TARGET return @@ -16580,7 +16580,7 @@ Move_SANDSEAR_STORM:: createvisualtask AnimTask_BlendParticle, 0x5, ANIM_TAG_GUST, 0x0, 0xA, 0xA, 0x190B playsewithpan SE_M_GUST, SOUND_PAN_TARGET createvisualtaskontargets AnimTask_ShakeMon2, 2, 0, ANIM_TARGET, 0, 4, 0x58, 1 - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x1F + createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x4, 0x0, 0xB, 0x1F call HurricaneGustCentered call SandsearStormFireSpin call HurricaneGustCentered @@ -16595,22 +16595,22 @@ Move_SANDSEAR_STORM:: call SandsearStormFireSpin waitforvisualfinish stopsound - createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x1F + createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x1, 0xB, 0x0, 0x1F waitforvisualfinish end SandsearStormFireSpin: - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1c, 0x210, 0x1e, 0xd, 0x32, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1c, 0x210, 0x1e, 0xd, 0x32, ANIM_TARGET delay 0x2 - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x1e0, 0x14, 0x10, 0xffd2, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x20, 0x1e0, 0x14, 0x10, 0xffd2, ANIM_TARGET delay 0x2 - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x21, 0x240, 0x14, 0x8, 0x2a, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x21, 0x240, 0x14, 0x8, 0x2a, ANIM_TARGET delay 0x2 - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1f, 0x190, 0x19, 0xb, 0xffd6, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1f, 0x190, 0x19, 0xb, 0xffd6, ANIM_TARGET delay 0x2 - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1c, 0x200, 0x19, 0x10, 0x2e, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x1c, 0x200, 0x19, 0x10, 0x2e, ANIM_TARGET delay 0x2 - createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x21, 0x1d0, 0x1e, 0xf, 0xffce, ANIM_TARGET + createspriteontargets gFireSpinSpriteTemplate, ANIM_TARGET, 2, 6, 0x0, 0x21, 0x1d0, 0x1e, 0xf, 0xffce, ANIM_TARGET return @@ -16719,40 +16719,32 @@ Move_DOUBLE_SHOCK:: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_LIGHTNING - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 3, 0, 12, RGB_BLACK - waitforvisualfinish + fadetobg BG_MAX_LIGHTNING + waitbgfadeout + createvisualtask AnimTask_StartSlidingBg, 0x5, 0xff00, 0x0, 0x1, 0xffff + waitbgfadein createvisualtask AnimTask_ElectricChargingParticles, 0x2, ANIM_ATTACKER, 30, 0, 3 @;Amount, Slowness, Slowness, Compaction playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 12 createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 0, 0x0 waitforvisualfinish - delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK - delay 1 + delay 2 waitforvisualfinish playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET - createvisualtask AnimTask_InvertScreenColor, 2, 0x1 | 0x2 | 0x4 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, -32 - delay 1 + delay 2 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, -16, -16 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, -16 - delay 1 + delay 2 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 24, 16 - delay 1 - playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET - createvisualtask AnimTask_InvertScreenColor, 2, 0x1 | 0x2 | 0x4 delay 2 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 - delay 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 11, 1 + waitforvisualfinish + call UnsetPsychicBg waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff end Move_SYRUP_BOMB:: @@ -16956,6 +16948,111 @@ Move_ALLURING_VOICE:: waitforvisualfinish end +@ Credits to Z-nogyroP +Move_AQUA_CUTTER:: + loadspritegfx ANIM_TAG_SLASH + loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_SMALL_BUBBLES + loadspritegfx ANIM_TAG_ICE_CRYSTALS + loadspritegfx ANIM_TAG_IMPACT + createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + delay 4 + createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + waitforvisualfinish + call RisingWaterHitEffect + waitforvisualfinish + end + +@ Credits to Z-nogyroP +Move_GIGATON_HAMMER:: + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_WOOD_HAMMER_HAMMER + loadspritegfx ANIM_TAG_CLAW_SLASH + loadspritegfx ANIM_TAG_IMPACT + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 4 + createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK + createsprite gWoodHammerHammerSpriteTemplate, ANIM_TARGET, 2 + delay 60 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 + delay 18 + createvisualtask AnimTask_SquishTarget, 0x2 + delay 6 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 50 + call GigatonHammerImpact + waitforvisualfinish + end +GigatonHammerImpact: + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 0xfff4, 0x20, 0x3, 0x4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 0x8, 0x1f, 0x2, 0x2 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 0xfffc, 0x1c, 0x2, 0x3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 0xc, 0x1e, 0x4, 0x3 + return + +@ Credits to Z-nogyroP +Move_ICE_SPINNER:: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_RAPID_SPIN + monbg ANIM_ATTACKER + fadetobg BG_ICE + waitbgfadeout + createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 + waitforvisualfinish + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + waitforvisualfinish + delay 8 + createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + call UnsetPsychicBg + end + +@ Credits to Z-nogyroP +Move_RAGING_BULL:: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ANGER + loadspritegfx ANIM_TAG_BREATH + 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 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 16, 16, RGB_WHITE + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 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, 1, -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 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE + waitforvisualfinish + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 + waitforvisualfinish + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 + delay 3 + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 + waitforvisualfinish + end + Move_TERA_BLAST:: Move_AXE_KICK:: Move_LAST_RESPECTS:: @@ -16965,7 +17062,6 @@ Move_JET_PUNCH:: Move_SPICY_EXTRACT:: Move_SPIN_OUT:: Move_POPULATION_BOMB:: -Move_ICE_SPINNER:: Move_GLAIVE_RUSH:: Move_REVIVAL_BLESSING:: Move_SALT_CURE:: @@ -16977,7 +17073,6 @@ Move_KOWTOW_CLEAVE:: Move_FLOWER_TRICK:: Move_TORCH_SONG:: Move_AQUA_STEP:: -Move_RAGING_BULL:: Move_MAKE_IT_RAIN:: Move_RUINATION:: Move_COLLISION_COURSE:: @@ -16991,9 +17086,7 @@ Move_HYPER_DRILL:: Move_TWIN_BEAM:: Move_RAGE_FIST:: Move_ARMOR_CANNON:: -Move_GIGATON_HAMMER:: Move_COMEUPPANCE:: -Move_AQUA_CUTTER:: Move_BLAZING_TORQUE:: Move_WICKED_TORQUE:: Move_NOXIOUS_TORQUE:: From 20cb81ff4e2cba46293fbf63b8fefa4cdba806c1 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jan 2024 06:49:12 +0100 Subject: [PATCH 2/6] draco meteor anim tmp --- data/battle_anim_scripts.s | 97 ++++++++++++++++++++++++++++++------- include/battle_anim.h | 3 ++ src/battle_anim_dragon.c | 61 +++++++++++++++++++++++ src/battle_anim_effects_3.c | 11 ----- src/battle_anim_new.c | 4 +- 5 files changed, 146 insertions(+), 30 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 49d849d03495..87f4985959e7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3316,28 +3316,91 @@ InitRoomAnimation: createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 return +@ Credits to Skeli Move_DRACO_METEOR: - loadspritegfx ANIM_TAG_WARM_ROCK - loadspritegfx ANIM_TAG_GOLD_STARS - loadspritegfx ANIM_TAG_IMPACT - loadspritegfx ANIM_TAG_ICE_SPIKES - playsewithpan SE_M_CHARGE, SOUND_PAN_TARGET - fadetobg BG_COSMIC - waitbgfadein + loadspritegfx ANIM_TAG_ROCKS @Rocks + loadspritegfx ANIM_TAG_FAIRY_LOCK_CHAINS @Gray Colour + loadspritegfx ANIM_TAG_WATER_GUN @Sparkles Trail + loadspritegfx ANIM_TAG_FIRE_PLUME @Eruption + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 0, 12, 0x2C41 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WATER_GUN, 0, 10, 10, RGB_PURPLE @;Purple + monbg ANIM_TARGET + setalpha 12, 8 waitforvisualfinish - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -47, -63, 72, 32, 30 - delay 10 - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -111, -63, 8, 32, 30 - delay 40 - createsprite gDracoMetorSpriteTemplate, 131, 4, 0, 0, 0, 30 - createsprite gDracoMeteorSmashSpriteTemplate, 131, 5, -79, -63, 40, 32, 30 - delay 20 + playsewithpan SE_FALL, SOUND_PAN_ATTACKER + @setblends 0x80C + call DracoMeteor1 + delay 7 + call DracoMeteor2 playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET - delay 10 - restorebg - waitbgfadein + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x28, 0x20 @; For Meteor 1 + createvisualtask AnimTask_HorizontalShake, 5, 3, 5, 2, 0x1 + delay 7 + call DracoMeteor3 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0xFFF8, 0x20 @; For Meteor 2 + delay 7 + call DracoMeteor4 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x15, 0x20 @; For Meteor 3 + delay 7 + call DracoMeteor1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0xFFF8, 0x20 @; For Meteor 4 + createvisualtask AnimTask_HorizontalShake, 5, 3, 5, 2, 0x1 + delay 7 + call DracoMeteor2 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x28, 0x20 @; For Meteor 1 + delay 7 + call DracoMeteor3 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x15, 0x20 @; For Meteor 3 + delay 15 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 4, 2 + createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x15, 0x20 @; For Meteor 3 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 2, 1 + delay 7 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 12, 0, 0x2C41 waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end +DracoMeteor1: + createsprite gDracoMeteorRocksSpriteTemplate 0x83, 5, 0xffd0, 0xffc0, 0x28, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffd0, 0xffc0, 0x28, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffd0, 0xffc0, 0x28, 0x20, 0x19 + return +DracoMeteor2: + createsprite gDracoMeteorRocksSpriteTemplate 0x83, 5, 0xff90, 0xffc0, 0xFFF8, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xff90, 0xffc0, 0xFFF8, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xff90, 0xffc0, 0xFFF8, 0x20, 0x19 + return +DracoMeteor3: + createsprite gDracoMeteorRocksSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0x18, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0x18, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0x18, 0x20, 0x19 + return +DracoMeteor4: + createsprite gDracoMeteorRocksSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0xFFF8, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0xFFF8, 0x20, 0x19 + delay 2 + createsprite gDracoMeteorTailSpriteTemplate 0x83, 5, 0xffb0, 0xffc0, 0xFFF8, 0x20, 0x19 + return Move_DISCHARGE: loadspritegfx ANIM_TAG_IMPACT diff --git a/include/battle_anim.h b/include/battle_anim.h index 62aca91318d4..75cce62d2c13 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -296,6 +296,8 @@ extern const union AffineAnimCmd *const gSwiftStarAffineAnimTable[]; extern const union AnimCmd *const gMetronomeThroughtBubbleAnimTable[]; extern const union AffineAnimCmd *const gStockpileAbsorptionOrbAffineAnimTable[]; extern const union AnimCmd *const gSlashSliceAnimTable[]; +extern const union AffineAnimCmd* const sSpriteAffineAnimTable_HydroCannonBall[]; +extern const union AffineAnimCmd sSpriteAffineAnim_HydroCannonBall[]; // battle_anim_effects_2.c void AnimUproarRing(struct Sprite *sprite); @@ -544,6 +546,7 @@ void AnimDragonFireToTarget(struct Sprite *sprite); void AnimDragonDanceOrb(struct Sprite *sprite); void AnimOverheatFlame(struct Sprite *sprite); void AnimOutrageFlame(struct Sprite *sprite); +void AnimDracoMeteorRock(struct Sprite *sprite); // battle_anim_new.c void CoreEnforcerLoadBeamTarget(struct Sprite *sprite); diff --git a/src/battle_anim_dragon.c b/src/battle_anim_dragon.c index 376fb6dd4a5f..2decbb448240 100644 --- a/src/battle_anim_dragon.c +++ b/src/battle_anim_dragon.c @@ -12,6 +12,7 @@ static void UpdateDragonDanceScanlineEffect(struct Task *); static void AnimDragonRushStep(struct Sprite *sprite); static void AnimSpinningDracoMeteor(struct Sprite *sprite); static void AnimSpinningDracoMeteorFinish(struct Sprite *sprite); +static void AnimDracoMeteorRock_Step(struct Sprite *sprite); EWRAM_DATA static u16 sUnusedOverheatData[7] = {0}; @@ -185,6 +186,30 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate = .callback = AnimOverheatFlame, }; +// Draco Meteor Rocks +const struct SpriteTemplate gDracoMeteorRocksSpriteTemplate = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_FAIRY_LOCK_CHAINS, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDracoMeteorRock, +}; + +// Draco Meteor Tail +const struct SpriteTemplate gDracoMeteorTailSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_GUN, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_HydroCannonBall, + .callback = AnimDracoMeteorRock, +}; + const union AnimCmd gDragonRushAnimCmds[] = { ANIMCMD_FRAME(0, 4), @@ -566,3 +591,39 @@ static void AnimOverheatFlame_Step(struct Sprite *sprite) if (++sprite->data[0] > sprite->data[3]) DestroyAnimSprite(sprite); } + +void AnimDracoMeteorRock(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + { + sprite->data[0] = sprite->x - gBattleAnimArgs[0]; + sprite->data[2] = sprite->x - gBattleAnimArgs[2]; + } + else + { + sprite->data[0] = sprite->x + gBattleAnimArgs[0]; + sprite->data[2] = sprite->x + gBattleAnimArgs[2]; + } + + sprite->data[1] = sprite->y + gBattleAnimArgs[1]; + sprite->data[3] = sprite->y + gBattleAnimArgs[3]; + sprite->data[4] = gBattleAnimArgs[4]; + + sprite->data[6] = gBattleAnimArgs[2]; + sprite->data[7] = gBattleAnimArgs[3]; + + sprite->x = sprite->data[0]; + sprite->y = sprite->data[1]; + sprite->callback = AnimDracoMeteorRock_Step; +} + +static void AnimDracoMeteorRock_Step(struct Sprite *sprite) +{ + sprite->x2 = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; + sprite->y2 = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; + + if (sprite->data[5] == sprite->data[4]) + DestroyAnimSprite(sprite); + + sprite->data[5]++; +} diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 26fb3ef2ec2d..d8fd768f6325 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -4803,17 +4803,6 @@ static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) } } -const struct SpriteTemplate gDracoMeteorSmashSpriteTemplate = -{ - .tileTag = ANIM_TAG_WARM_ROCK, - .paletteTag = ANIM_TAG_WARM_ROCK, - .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimMeteorMashStar, -}; - static void AnimMeteorMashStar_Step(struct Sprite *sprite) { sprite->x2 = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index 1d4a0bd5625a..3d89149f1637 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -4241,11 +4241,11 @@ const struct SpriteTemplate gSpriteTemplate_SpiritBreakExplode = { }; // chloroblast -static const union AffineAnimCmd sSpriteAffineAnim_HydroCannonBall[] = { +const union AffineAnimCmd sSpriteAffineAnim_HydroCannonBall[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 16), //Double in size AFFINEANIMCMD_END }; -static const union AffineAnimCmd* const sSpriteAffineAnimTable_HydroCannonBall[] = { +const union AffineAnimCmd* const sSpriteAffineAnimTable_HydroCannonBall[] = { sSpriteAffineAnim_HydroCannonBall, }; const struct SpriteTemplate gSpriteTemplate_ChloroblastShot = { From 06d6f5a41ccb5952d406f0f8fcfe044c5c52f575 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jan 2024 08:13:41 +0100 Subject: [PATCH 3/6] applied suggestions --- data/battle_anim_scripts.s | 83 ++++++++++++++++++++++++++++++-------- src/battle_anim_ice.c | 11 +++++ 2 files changed, 78 insertions(+), 16 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 87f4985959e7..47751962ce3e 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -17013,19 +17013,48 @@ Move_ALLURING_VOICE:: @ Credits to Z-nogyroP Move_AQUA_CUTTER:: - loadspritegfx ANIM_TAG_SLASH - loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_ICE_CRYSTALS - loadspritegfx ANIM_TAG_IMPACT - createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 - playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET - delay 4 - createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 - createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 - playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + loadspritegfx ANIM_TAG_WATER_IMPACT + createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET + delay 16 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET + delay 2 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 + delay 2 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET + delay 2 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 48 + delay 2 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 64 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET + delay 2 + createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 80 + delay 2 waitforvisualfinish - call RisingWaterHitEffect + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 4 + waitforvisualfinish + loopsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET, 20, 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 8, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, ANIM_TARGET + delay 4 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, ANIM_TARGET waitforvisualfinish end @@ -17063,11 +17092,15 @@ Move_ICE_SPINNER:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER - fadetobg BG_ICE - waitbgfadeout createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 - loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 8, 4 + loadspritegfx ANIM_TAG_ICE_CRYSTALS + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 47, 1 + call IceCrystalSpinEffect + call IceCrystalSpinEffect + fadetobg BG_ICE + waitbgfadeout waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 @@ -17075,12 +17108,27 @@ Move_ICE_SPINNER:: waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 - loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER call UnsetPsychicBg end +IceCrystalSpinEffect: + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER + delay 2 + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER + delay 2 + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER + delay 2 + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER + delay 2 + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER + delay 2 + createsprite gIceCrystalSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER + delay 2 + return + @ Credits to Z-nogyroP Move_RAGING_BULL:: loadspritegfx ANIM_TAG_IMPACT @@ -17092,8 +17140,10 @@ Move_RAGING_BULL:: 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 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 16, 16, RGB_WHITE + call SetImpactBackground createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish @@ -17105,7 +17155,6 @@ Move_RAGING_BULL:: 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 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 @@ -17114,6 +17163,8 @@ Move_RAGING_BULL:: delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 waitforvisualfinish + restorebg + waitbgfadein end Move_TERA_BLAST:: diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index fde1c228cf5d..d6238083afa6 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -174,6 +174,17 @@ const struct SpriteTemplate gIceCrystalSpiralInwardSmall = .callback = AnimIcePunchSwirlingParticle, }; +const struct SpriteTemplate gIceSpinSpriteTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineDouble_ObjBlend_8x16, + .anims = gAnims_IceCrystalLarge, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex, +}; + static const union AffineAnimCmd sAffineAnim_IceBeamInnerCrystal[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), From 75142199ebc0f3d6504037aca3be5393208766b6 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jan 2024 08:19:09 +0100 Subject: [PATCH 4/6] fix compile --- src/battle_anim_ice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index d6238083afa6..32db964d1b15 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -174,7 +174,7 @@ const struct SpriteTemplate gIceCrystalSpiralInwardSmall = .callback = AnimIcePunchSwirlingParticle, }; -const struct SpriteTemplate gIceSpinSpriteTemplate = +const struct SpriteTemplate gIceCrystalSpinSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, From 95bde9b21d2b9fde72f5e42e7456caec3858de8d Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 14 Jan 2024 09:08:20 +0100 Subject: [PATCH 5/6] add more crystals to ice spinner --- data/battle_anim_scripts.s | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 47751962ce3e..36376adae2d5 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -17109,6 +17109,10 @@ Move_ICE_SPINNER:: delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 loopsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER, 8, 4 + loadspritegfx ANIM_TAG_ICE_CRYSTALS + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 47, 1 + call IceCrystalSpinEffect + call IceCrystalSpinEffect waitforvisualfinish clearmonbg ANIM_ATTACKER call UnsetPsychicBg From 326142288e6f987619ee4276719992854f325e6b Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 16 Jan 2024 16:35:16 +0100 Subject: [PATCH 6/6] further fixes --- data/battle_anim_scripts.s | 11 ----------- src/battle_anim_dragon.c | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 36376adae2d5..b94f63dcb6e8 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -17017,14 +17017,6 @@ Move_AQUA_CUTTER:: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_WATER_IMPACT - createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - delay 16 - createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET - delay 2 - createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 - delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 @@ -17099,8 +17091,6 @@ Move_ICE_SPINNER:: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 47, 1 call IceCrystalSpinEffect call IceCrystalSpinEffect - fadetobg BG_ICE - waitbgfadeout waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 @@ -17115,7 +17105,6 @@ Move_ICE_SPINNER:: call IceCrystalSpinEffect waitforvisualfinish clearmonbg ANIM_ATTACKER - call UnsetPsychicBg end IceCrystalSpinEffect: diff --git a/src/battle_anim_dragon.c b/src/battle_anim_dragon.c index 2decbb448240..1398d899b3b8 100644 --- a/src/battle_anim_dragon.c +++ b/src/battle_anim_dragon.c @@ -203,7 +203,7 @@ const struct SpriteTemplate gDracoMeteorTailSpriteTemplate = { .tileTag = ANIM_TAG_WATER_GUN, .paletteTag = ANIM_TAG_WATER_GUN, - .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sSpriteAffineAnimTable_HydroCannonBall,