diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 1f83317c9e..45a957100e 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -17845,15 +17845,15 @@ ElectroShotUnleash: end Move_IVY_CUDGEL:: - loadspritegfx ANIM_TAG_IVY_CUDGEL_GRASS + loadspritegfx ANIM_TAG_IVY_CUDGEL_GRASS loadspritegfx ANIM_TAG_WOOD_HAMMER loadspritegfx ANIM_TAG_WOOD_HAMMER_HAMMER loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 4 - jumpifmovetypeequal TYPE_FIRE, IvyCudgelFire - jumpifmovetypeequal TYPE_ROCK, IvyCudgelRock - jumpifmovetypeequal TYPE_WATER, IvyCudgelWater + jumpifmovetypeequal TYPE_FIRE, IvyCudgelFire + jumpifmovetypeequal TYPE_ROCK, IvyCudgelRock + jumpifmovetypeequal TYPE_WATER, IvyCudgelWater createsprite gIvyCudgelSpriteTemplate, ANIM_TARGET, 2 delay 60 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 @@ -17862,9 +17862,9 @@ Move_IVY_CUDGEL:: delay 6 call WoodHammerImpact waitforvisualfinish - end + end IvyCudgelFire: - loadspritegfx ANIM_TAG_IVY_CUDGEL_FIRE + loadspritegfx ANIM_TAG_IVY_CUDGEL_FIRE createsprite gIvyCudgelFireSpriteTemplate, ANIM_TARGET, 2 delay 60 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 @@ -17873,9 +17873,9 @@ IvyCudgelFire: delay 6 call WoodHammerImpact waitforvisualfinish - end + end IvyCudgelRock: - loadspritegfx ANIM_TAG_IVY_CUDGEL_ROCK + loadspritegfx ANIM_TAG_IVY_CUDGEL_ROCK createsprite gIvyCudgelRockSpriteTemplate, ANIM_TARGET, 2 delay 60 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 @@ -17884,9 +17884,9 @@ IvyCudgelRock: delay 6 call WoodHammerImpact waitforvisualfinish - end + end IvyCudgelWater: - loadspritegfx ANIM_TAG_IVY_CUDGEL_WATER + loadspritegfx ANIM_TAG_IVY_CUDGEL_WATER createsprite gIvyCudgelWaterSpriteTemplate, ANIM_TARGET, 2 delay 60 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 @@ -17895,7 +17895,7 @@ IvyCudgelWater: delay 6 call WoodHammerImpact waitforvisualfinish - end + end Move_AXE_KICK:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @@ -17907,7 +17907,7 @@ Move_AXE_KICK:: delay 2 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 1 - createvisualtask AnimTask_SquishTarget, 2 + createvisualtask AnimTask_SquishTargetShort, 2 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index 24ccaa2983..a4dce6aa0d 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -110,6 +110,14 @@ static const union AffineAnimCmd sSquishTargetAffineAnimCmds[] = AFFINEANIMCMD_END, }; +static const union AffineAnimCmd sSquishTargetShortAffineAnimCmds[] = +{ + AFFINEANIMCMD_FRAME(0, 64, 0, 4), //Flatten + AFFINEANIMCMD_FRAME(0, 0, 0, 16), + AFFINEANIMCMD_FRAME(0, -64, 0, 4), + AFFINEANIMCMD_END, +}; + // GEN 4 // shadow sneak const struct SpriteTemplate gShadowSneakImpactSpriteTemplate = @@ -8525,6 +8533,15 @@ void AnimTask_SquishTarget(u8 taskId) task->func = AnimTask_WaitAffineAnim; } +void AnimTask_SquishTargetShort(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + + PrepareAffineAnimInTaskData(task, spriteId, sSquishTargetShortAffineAnimCmds); + task->func = AnimTask_WaitAffineAnim; +} + void CoreEnforcerLoadBeamTarget(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[2];