Tachyon Cutter and Salt Cure animations (#6182)

Co-authored-by: Hedara <hedara90@gmail.com>
This commit is contained in:
hedara90 2025-02-05 15:27:21 +01:00 committed by GitHub
parent b90b1e2546
commit cad1a37566
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 123 additions and 3 deletions

View File

@ -18215,10 +18215,50 @@ TeraStarstormCreateBeam::
createsprite gTeraStarstormBeamSpriteTemplate, ANIM_BATTLER, 1, 2, 0, 0, 0, 20
return
gBattleAnimMove_TachyonCutter::
loadspritegfx ANIM_TAG_CUT
loadspritegfx ANIM_TAG_BUBBLE
createsprite gTachyonCutterSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0
createsprite gTachyonCutterSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 1
playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER
waitforvisualfinish
end
gBattleAnimMove_SaltCure::
loadspritegfx ANIM_TAG_SALT_PARTICLE
loadspritegfx ANIM_TAG_WATER_ORB
call SaltCureEffect
call SaltCureEffect
call SaltCureEffect
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
waitforvisualfinish
call gBattleAnimGeneral_SaltCureDamage
end
SaltCureEffect:
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
createsprite gSaltCureSwirlSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, ANIM_TARGET
delay 2
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
return
gBattleAnimMove_TeraBlast::
gBattleAnimMove_OrderUp::
gBattleAnimMove_GlaiveRush::
gBattleAnimMove_SaltCure::
gBattleAnimMove_TripleDive::
gBattleAnimMove_Doodle::
gBattleAnimMove_Ruination::
@ -18233,7 +18273,6 @@ gBattleAnimMove_MagicalTorque::
gBattleAnimMove_Psyblade::
gBattleAnimMove_MatchaGotcha::
gBattleAnimMove_MightyCleave::
gBattleAnimMove_TachyonCutter::
gBattleAnimMove_SupercellSlam::
end @to do
@ -28927,7 +28966,41 @@ General_AffectionHangedOn_3Hearts:
end
gBattleAnimGeneral_SaltCureDamage::
goto gBattleAnimStatus_Freeze
loadspritegfx ANIM_TAG_SALT_PARTICLE
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
delay 4
createsprite gSaltCureCrystalSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1
playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET
waitforvisualfinish
end
gBattleAnimGeneral_Rainbow::
call RainDrops

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

View File

@ -418,6 +418,7 @@
#define ANIM_TAG_PURPLE_CHAIN (ANIM_SPRITES_START + 404)
#define ANIM_TAG_PINKVIO_ORB (ANIM_SPRITES_START + 405)
#define ANIM_TAG_STARSTORM (ANIM_SPRITES_START + 406)
#define ANIM_TAG_SALT_PARTICLE (ANIM_SPRITES_START + 407)
// battlers
#define ANIM_ATTACKER 0

View File

@ -2895,6 +2895,8 @@ extern const u32 gBattleAnimSpriteGfx_PinkVioletOrb[];
extern const u32 gBattleAnimSpritePal_PinkVioletOrb[];
extern const u32 gBattleAnimSpriteGfx_TeraStarstormBeam[];
extern const u32 gBattleAnimSpritePal_TeraStarstormBeam[];
extern const u32 gBattleAnimSpriteGfx_SaltParticle[];
extern const u32 gBattleAnimSpritePal_SaltParticle[];
extern const u32 gBattleAnimBgImage_Dark[];
extern const u32 gBattleAnimBgImage_Ghost[];

View File

@ -1502,6 +1502,12 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
// arg0: start x offset
// arg1: start y offset
// arg2: end x offset
// arg3: end y offset
// arg4: duration
// arg5: arc amplitude
void AnimThrowProjectile(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);

View File

@ -1379,3 +1379,14 @@ void AnimPsychoBoost(struct Sprite *sprite)
break;
}
}
const struct SpriteTemplate gTachyonCutterSpriteTemplate =
{
.tileTag = ANIM_TAG_CUT,
.paletteTag = ANIM_TAG_BUBBLE,
.oam = &gOamData_AffineOff_ObjBlend_32x32,
.anims = gCuttingSliceAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimCuttingSlice,
};

View File

@ -1026,3 +1026,25 @@ void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId)
DestroyAnimVisualTask(taskId);
}
}
const struct SpriteTemplate gSaltCureCrystalSpriteTemplate =
{
.tileTag = ANIM_TAG_SALT_PARTICLE,
.paletteTag = ANIM_TAG_SALT_PARTICLE,
.oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = gAnims_IceCrystalLarge,
.images = NULL,
.affineAnims = gAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle,
};
const struct SpriteTemplate gSaltCureSwirlSpriteTemplate =
{
.tileTag = ANIM_TAG_SALT_PARTICLE,
.paletteTag = ANIM_TAG_SALT_PARTICLE,
.oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = gAnims_WaterMudOrb,
.images = NULL,
.affineAnims = gAffineAnims_Whirlpool,
.callback = AnimParticleInVortex,
};

View File

@ -1467,6 +1467,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
{gBattleAnimSpriteGfx_PurpleChain, 0x1000, ANIM_TAG_PURPLE_CHAIN},
{gBattleAnimSpriteGfx_PinkVioletOrb, 0x0080, ANIM_TAG_PINKVIO_ORB},
{gBattleAnimSpriteGfx_TeraStarstormBeam, 0x200, ANIM_TAG_STARSTORM},
{gBattleAnimSpriteGfx_SaltParticle, 0x400, ANIM_TAG_SALT_PARTICLE},
};
const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
@ -1935,6 +1936,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
{gBattleAnimSpritePal_PurpleChain, ANIM_TAG_PURPLE_CHAIN},
{gBattleAnimSpritePal_PinkVioletOrb, ANIM_TAG_PINKVIO_ORB},
{gBattleAnimSpritePal_TeraStarstormBeam, ANIM_TAG_STARSTORM},
{gBattleAnimSpritePal_SaltParticle, ANIM_TAG_SALT_PARTICLE},
};
const struct BattleAnimBackground gBattleAnimBackgroundTable[] =

View File

@ -1290,6 +1290,9 @@ const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sp
const u32 gBattleAnimSpriteGfx_TeraStarstormBeam[] = INCBIN_U32("graphics/battle_anims/sprites/starstorm_beam.4bpp.lz");
const u32 gBattleAnimSpritePal_TeraStarstormBeam[] = INCBIN_U32("graphics/battle_anims/sprites/starstorm_beam.gbapal.lz");
const u32 gBattleAnimSpriteGfx_SaltParticle[] = INCBIN_U32("graphics/battle_anims/sprites/salt_particle.4bpp.lz");
const u32 gBattleAnimSpritePal_SaltParticle[] = INCBIN_U32("graphics/battle_anims/sprites/salt_particle.gbapal.lz");
const u32 gBattleAnimUnusedPal_Unknown2[] = INCBIN_U32("graphics/battle_anims/unused/unknown_2.gbapal.lz");
#include "data/graphics/trainers.h"