From 255ac6b54d83e836194e7534facb8904471cd0f6 Mon Sep 17 00:00:00 2001 From: Papa Cancer Date: Fri, 5 Apr 2019 23:42:00 +0100 Subject: [PATCH] Leaf Storm animation All credit to Doesnt, just stole it from his pokeruby build --- data/battle_anim_scripts.s | 110 +++++++++++++++++++++++++++++++++++++ include/battle_anim.h | 7 +++ src/ghost.c | 22 ++++++++ 3 files changed, 139 insertions(+) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index d363ac1df0..e7085f3880 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2025,6 +2025,116 @@ Move_LAVA_PLUME: end Move_LEAF_STORM: + loadspritegfx ANIM_TAG_RAZOR_LEAF + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_LEAF + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 12, 8 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, RGB(13, 31, 12) + waitforvisualfinish + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0 + delay 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 50, 1 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -8, 11, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -16, 19, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 12, 19, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -20, 23, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 16, 23, 0, 0 + delay 3 + playsewithpan SE_W026, 192 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 14, -12, 0, -24, 27, 0, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm, ANIM_ATTACKER, 2, 26, 8, 12, 20, 27, 0, 0 + delay 3 + waitforvisualfinish + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 0, -36, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 24, -12, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 24, 12, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 0, 36, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -24, 12, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -24, -12, 10 + playsewithpan SE_W013, 63 + delay 2 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 36, 0, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 12, -24, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, 12, 24, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -36, 0, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -12, 24, 10 + createsprite gBattleAnimSpriteTemplate_LeafStorm2, ANIM_TARGET, 2, 1, 1, -12, -24, 10 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + delay 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 12, 0, RGB(13, 31, 12) + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER end Move_POWER_WHIP: diff --git a/include/battle_anim.h b/include/battle_anim.h index 9331b9d70d..51d3df794a 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -223,12 +223,19 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, // battle_anim_effects_1.c void sub_810310C(u8 battler, struct Sprite* sprite); void AnimMoveTwisterParticle(struct Sprite* sprite); +extern const union AnimCmd *const gUnknown_08592388[]; +void sub_8100898(struct Sprite *); // water.c void sub_8108C94(struct Sprite *sprite); // flying.c void sub_810E2C8(struct Sprite *sprite); +extern const union AnimCmd *const gUnknown_085962D0[]; +void sub_810E044(struct Sprite *sprite); + +//poison.c +extern const union AffineAnimCmd *const gUnknown_085961A0[]; // smokescreen.c u8 sub_807521C(s16 x, s16 y, u8 a3); diff --git a/src/ghost.c b/src/ghost.c index 491251e26e..26fb9affeb 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -109,6 +109,28 @@ const struct SpriteTemplate gEnergyBallSpriteTemplate = .callback = InitAnimShadowBall, }; +const struct SpriteTemplate gBattleAnimSpriteTemplate_LeafStorm = +{ + .tileTag = ANIM_TAG_RAZOR_LEAF, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gUnknown_08524934, + .anims = gUnknown_085962D0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810E044, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_LeafStorm2 = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08592388, + .images = NULL, + .affineAnims = gUnknown_085961A0, + .callback = sub_8100898, +}; + const union AnimCmd gUnknown_08596D70[] = { ANIMCMD_FRAME(0, 2),