diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index cab0750c4..09639da00 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1222,6 +1222,23 @@ Move_SUCKER_PUNCH: end Move_TOXIC_SPIKES: + loadspritegfx ANIM_TAG_TOXIC_SPIKES + loadspritegfx ANIM_TAG_POISON_BUBBLE + monbg ANIM_DEF_PARTNER + playsewithpan SE_W026, SOUND_PAN_ATTACKER + waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + createsprite gToxicSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 + delay 10 + playsewithpan SE_W026, SOUND_PAN_ATTACKER + waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + createsprite gToxicSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 + delay 10 + waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + createsprite gToxicSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 + delay 40 + call PoisonBubblesEffect + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER end Move_HEART_SWAP: diff --git a/graphics/battle_anims/sprites/toxicspike_color.png b/graphics/battle_anims/sprites/toxicspike_color.png new file mode 100644 index 000000000..3102949fd Binary files /dev/null and b/graphics/battle_anims/sprites/toxicspike_color.png differ diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index dea8eca1b..b4f18547e 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -298,6 +298,7 @@ #define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288) #define ANIM_TAG_WHITE_STREAK (ANIM_SPRITES_START + 289) #define ANIM_TAG_PURPLE_JAB (ANIM_SPRITES_START + 290) +#define ANIM_TAG_TOXIC_SPIKES (ANIM_SPRITES_START + 291) // battlers #define ANIM_ATTACKER 0 diff --git a/include/graphics.h b/include/graphics.h index 3c43acf54..45ed0251f 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4675,6 +4675,7 @@ extern const u32 gBattleAnimSpritePalette_287[]; extern const u32 gBattleAnimSpritePalette_288[]; extern const u32 gBattleAnimSpritePalette_289[]; extern const u32 gBattleAnimSpritePalette_290[]; +extern const u32 gBattleAnimSpritePalette_291[]; extern const u32 gBattleAnimBackgroundImage_00[]; extern const u32 gBattleAnimBackgroundImage_02[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index 90e87aa13..abc9ca9e3 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1057,6 +1057,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_BLUE_RING_2}, {gBattleAnimSpriteSheet_289, 0x1000, ANIM_TAG_WHITE_STREAK}, {gBattleAnimSpriteSheet_290, 0x800, ANIM_TAG_PURPLE_JAB}, + {gBattleAnimSpriteSheet_152, 0x0080, ANIM_TAG_TOXIC_SPIKES}, }; @@ -1353,6 +1354,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePalette_288, ANIM_TAG_BLUE_RING_2}, {gBattleAnimSpritePalette_289, ANIM_TAG_WHITE_STREAK}, {gBattleAnimSpritePalette_290, ANIM_TAG_PURPLE_JAB}, + {gBattleAnimSpritePalette_291, ANIM_TAG_TOXIC_SPIKES}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index a8b7d6d6a..dc59d33be 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -263,6 +263,17 @@ const struct SpriteTemplate gUnknown_085CE11C = .callback = sub_815A6C4, }; +const struct SpriteTemplate gToxicSpikesSpriteTemplate = +{ + .tileTag = ANIM_TAG_TOXIC_SPIKES, + .paletteTag = ANIM_TAG_TOXIC_SPIKES, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_815A6C4, +}; + const union AnimCmd gUnknown_085CE134[] = { ANIMCMD_FRAME(0, 3), diff --git a/src/graphics.c b/src/graphics.c index 4c2974ef2..cefab4ea9 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -571,6 +571,8 @@ const u32 gBattleAnimSpritePalette_289[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpriteSheet_290[] = INCBIN_U32("graphics/battle_anims/sprites/290.4bpp.lz"); const u32 gBattleAnimSpritePalette_290[] = INCBIN_U32("graphics/battle_anims/sprites/290.gbapal.lz"); +const u32 gBattleAnimSpritePalette_291[] = INCBIN_U32("graphics/battle_anims/sprites/toxicspike_color.gbapal.lz"); //reuse the spike image + const u32 gBattleAnimSpritePalette_164[] = INCBIN_U32("graphics/battle_anims/sprites/164.gbapal.lz"); const u32 gBattleAnimSpritePalette_165[] = INCBIN_U32("graphics/battle_anims/sprites/165.gbapal.lz");