diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 80d50710ba..ae8642feb4 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -350,34 +350,27 @@ gBattleAnimMove_MetalBurst:: waitforvisualfinish end +@Credits: Skeli gBattleAnimMove_UTurn:: - loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_SMALL_BUBBLES + loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - setalpha 12, 8 - playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER - createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 - playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER - createvisualtask AnimTask_CanBattlerSwitch, 1, ANIM_ATTACKER - jumpretfalse UTurnVisible - createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20, TRUE -UTurnContinue: - delay 20 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 - playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET - waitforvisualfinish - clearmonbg ANIM_DEF_PARTNER - createvisualtask AnimTask_CanBattlerSwitch, 1, ANIM_ATTACKER - jumpretfalse UTurnLast + splitbgprio ANIM_TARGET + setalpha 8, 8 invisible ANIM_ATTACKER -UTurnLast: - blendoff + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + createsprite gUTurnBallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 21 waitforvisualfinish + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 1, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + createsprite gUTurnBallBackSpriteTemplate, ANIM_ATTACKER, 3, 4, 0, -16, 36 + waitforvisualfinish + visible ANIM_ATTACKER + clearmonbg ANIM_TARGET + blendoff end -UTurnVisible: - createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20, FALSE - goto UTurnContinue gBattleAnimMove_CloseCombat:: loadspritegfx ANIM_TAG_IMPACT diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index 50bb83305f..2d1ad3e807 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -4380,6 +4380,29 @@ const struct SpriteTemplate gSpriteTemplate_FlipTurnBack = { .callback = AnimAbsorptionOrb }; +// U-Turn +const struct SpriteTemplate gUTurnBallSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall, +}; + +const struct SpriteTemplate gUTurnBallBackSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimAbsorptionOrb, +}; + // wicked blow static const union AffineAnimCmd sSpriteAffineAnim_DrainPunchFist[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 1), //Double sprite size