From c18b5966bf35a1667979963b93dd58413ccc3b95 Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 3 May 2020 22:09:03 -0600 Subject: [PATCH 1/7] undo some revert(?) --- data/battle_anim_scripts.s | 365 +++++++++++++++++- .../battle_anims/backgrounds/dark_void.bin | Bin 0 -> 1236 bytes .../battle_anims/backgrounds/dark_void.pal | 19 + .../battle_anims/backgrounds/dark_void.png | Bin 0 -> 7041 bytes .../backgrounds/spacial_rend_opponent.bin | Bin 0 -> 1000 bytes .../backgrounds/spacial_rend_opponent.pal | 19 + .../backgrounds/spacial_rend_opponent.png | Bin 0 -> 5861 bytes .../backgrounds/spacial_rend_player.bin | Bin 0 -> 996 bytes .../backgrounds/spacial_rend_player.pal | 19 + .../backgrounds/spacial_rend_player.png | Bin 0 -> 6948 bytes .../sprites/flash_cannon_ball.png | Bin 0 -> 257 bytes graphics/battle_anims/sprites/punishment.png | Bin 0 -> 470 bytes graphics/battle_anims/sprites/quick_guard.png | Bin 0 -> 205 bytes graphics/battle_anims/sprites/water_gun.png | Bin 0 -> 214 bytes include/battle_anim.h | 2 + include/constants/battle_anim.h | 7 + include/graphics.h | 17 + src/battle_anim.c | 11 + src/battle_anim_effects_1.c | 69 ++++ src/battle_anim_effects_2.c | 23 +- src/battle_anim_electric.c | 48 +++ src/battle_anim_fire.c | 22 ++ src/battle_anim_ghost.c | 11 + src/battle_anim_ice.c | 11 + src/battle_anim_rock.c | 37 ++ src/graphics.c | 24 ++ 26 files changed, 701 insertions(+), 3 deletions(-) create mode 100644 graphics/battle_anims/backgrounds/dark_void.bin create mode 100644 graphics/battle_anims/backgrounds/dark_void.pal create mode 100644 graphics/battle_anims/backgrounds/dark_void.png create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_opponent.bin create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_opponent.pal create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_opponent.png create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_player.bin create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_player.pal create mode 100644 graphics/battle_anims/backgrounds/spacial_rend_player.png create mode 100644 graphics/battle_anims/sprites/flash_cannon_ball.png create mode 100644 graphics/battle_anims/sprites/punishment.png create mode 100644 graphics/battle_anims/sprites/quick_guard.png create mode 100644 graphics/battle_anims/sprites/water_gun.png diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 6af4c3752b..6d3e9880fe 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2841,6 +2841,40 @@ Move_MIRROR_SHOT: end Move_FLASH_CANNON: + loadspritegfx ANIM_TAG_HANDS_AND_FEET + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + loadspritegfx ANIM_TAG_GUST + loadspritegfx ANIM_TAG_FLASH_CANNON_BALL + monbg ANIM_ATTACKER + setalpha 13, 8 + createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 60, 2, 12 + playsewithpan 0xce, SOUND_PAN_ATTACKER + delay 30 + playsewithpan 0xce, SOUND_PAN_ATTACKER + delay 30 + playsewithpan 0xce, SOUND_PAN_ATTACKER + createsprite gFlashCannonGrayChargeTemplate, ANIM_ATTACKER, 2, 0 + delay 25 + playsewithpan 0xce, SOUND_PAN_ATTACKER + delay 20 + playsewithpan 0xce, SOUND_PAN_ATTACKER + delay 15 + playsewithpan 0xce, SOUND_PAN_ATTACKER + delay 10 + delay 6 + loopsewithpan 0xce, SOUND_PAN_ATTACKER, 6, 5 + waitforvisualfinish + playsewithpan 0xA7, SOUND_PAN_ATTACKER + createsprite gFlashCannonBallMovementTemplate, ANIM_TARGET, 2, 0, 0, 0x15 + clearmonbg ANIM_ATTACKER + waitforvisualfinish + playsewithpan 0xB9, SOUND_PAN_ATTACKER + createvisualtask AnimTask_Flash, 2 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 16, 0, 0x1f + createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET end Move_ROCK_CLIMB: @@ -3441,10 +3475,140 @@ Move_GRASS_KNOT: end Move_CHATTER: + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_MUSIC_NOTES + monbg ANIM_DEF_PARTNER + createvisualtask AnimTask_UproarDistortion, 2, 0 + createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 0x1f, 8 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 0xff + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 0x1d, -12, 0 + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -12, 0xffe3, 1 + delay 16 + createvisualtask AnimTask_UproarDistortion, 2, 0 + createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 0x1f, 8 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 0xff + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 12, 0xffe3, 1 + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 0xffe3, -12, 0 + delay 16 + createvisualtask AnimTask_UproarDistortion, 2, 0 + createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 0x1f, 8 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 0xff + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 0x18, 0xffe8, 1 + createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 0xffe8, 0xffe8, 0 + waitforvisualfinish + loadspritegfx ANIM_TAG_ICE_CRYSTALS @FreezingCrystalsSingleBattle particles + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, -10, -10, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 10, 20, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 0xfffb, 10, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 0x11, -12, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 0xfff1, 15, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 0, 0, 0 + delay 4 + createsprite gChatterSingNotesTemplate, ANIM_TARGET, 2, 20, 2, 0 + clearmonbg ANIM_DEF_PARTNER end Move_JUDGMENT: + loadspritegfx ANIM_TAG_HANDS_AND_FEET + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_GREEN_SPIKE + loadspritegfx ANIM_TAG_GUST + loadspritegfx ANIM_TAG_ORBS + loadspritegfx ANIM_TAG_ELECTRICITY + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_GUST, 0, 14, 14, 0 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HANDS_AND_FEET, 0, 10, 10, 0 + monbg ANIM_TARGET + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 15, 32767 + waitforvisualfinish + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 83, 1 + createsprite gJudgmentBlackChargeTemplate, ANIM_TARGET, 1, 1, ANIM_TARGET + playsewithpan 0xb1, SOUND_PAN_TARGET + call JudgmentInwardSpikes + delay 5 + call JudgmentInwardSpikes2 + delay 5 + call JudgmentInwardSpikes + delay 5 + call JudgmentInwardSpikes2 + delay 5 + call JudgmentInwardSpikes + delay 5 + call JudgmentInwardSpikes2 + delay 5 + call JudgmentInwardSpikes2 + delay 0x2F + call JudgmentOutwardSpikes + delay 5 + call JudgmentOutwardSpikes2 + delay 5 + call JudgmentOutwardSpikes + delay 5 + call JudgmentOutwardSpikes2 + delay 5 + call JudgmentOutwardSpikes + delay 5 + call JudgmentOutwardSpikes2 + delay 5 + call JudgmentOutwardSpikes + delay 5 + call JudgmentOutwardSpikes2 + delay 5 + call JudgmentOutwardSpikes + delay 5 + call JudgmentOutwardSpikes2 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 15, 0, 32767 + waitforvisualfinish + clearmonbg ANIM_TARGET end +JudgmentOutwardSpikes: + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0, 0xFF90, 16 @up + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 95, 0xFF9D, 16 @upper right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x73, 0, 16 @right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x4F, 0x37, 16 @lower right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0, 0x53, 16 @down + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFB0, 0x43, 16 @lower left + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF60, 0, 16 @left + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFAA, 0xFF94, 16 @upper left + playsewithpan 0xA1, SOUND_PAN_ATTACKER + return +JudgmentOutwardSpikes2: + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x2D, 0xFF9D, 16 @between up and upper right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xDF, 0xFF9D, 16 @between right and upper right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x9F, 0x37, 16 @between right and lower right + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x1F, 0x37, 16 @between lower right and down + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFE0, 0x43, 16 @between lower left and down + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF60, 0x43, 16 @between left and lower left + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF2A, 0xFFAA, 16 @between left and upper left + createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFDA, 0xFF94, 16 @between up and upper left + playsewithpan 0xA1, SOUND_PAN_ATTACKER + return +JudgmentInwardSpikes: + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0, 0xFF90, 16 @up + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 95, 0xFF9D, 16 @upper right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0x73, 0, 16 @right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0x4F, 0x37, 16 @lower right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0, 0x53, 16 @down + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFFB0, 0x43, 16 @lower left + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFF60, 0, 16 @left + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFFAA, 0xFF94, 16 @upper left + return +JudgmentInwardSpikes2: + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0x2D, 0xFF9D, 16 @between up and upper right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xDF, 0xFF9D, 16 @between right and upper right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0x9F, 0x37, 16 @between right and lower right + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0x1F, 0x37, 16 @between lower right and down + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFFE0, 0x43, 16 @between lower left and down + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFF60, 0x43, 16 @between left and lower left + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFF2A, 0xFFAA, 16 @between left and upper left + createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0xFFDA, 0xFF94, 16 @between up and upper left + return Move_BUG_BITE: loadspritegfx ANIM_TAG_ROCKS @@ -3764,11 +3928,80 @@ Move_DOUBLE_HIT: end Move_ROAR_OF_TIME: + loadspritegfx ANIM_TAG_ORBS + loadspritegfx ANIM_TAG_EXPLOSION + loadspritegfx ANIM_TAG_WATER_GUN + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 16, 0 + delay 0x20 + monbg ANIM_ATK_PARTNER + setalpha 0xc, 0x8 + loopsewithpan 133, SOUND_PAN_ATTACKER 13 3 + call RecoverAbsorbEffect + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 16, 0, 0 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 16, -1 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 0xff + delay 0x20 + createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 20, 1 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + delay 6 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gRoarOfTimeBombTemplate, ANIM_ATTACKER, 3, 0x18, 0xffe8, 1, 1 + delay 6 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0xfff0, 16, 1, 1 + delay 6 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gRoarOfTimeBombTemplate, ANIM_ATTACKER, 3, 0xffe8, -12, 1, 1 + delay 6 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 + delay 6 + playsewithpan 170, SOUND_PAN_TARGET + createsprite gRoarOfTimeBombTemplate, ANIM_ATTACKER, 3, 0xffe8, 0x18, 1, 1 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 16, 0, -1 + waitforvisualfinish end - + Move_SPECIAL_REND: + loadspritegfx ANIM_TAG_PUNISHMENT_BLADES + loadspritegfx ANIM_TAG_PINK_HEART_2 @ANIM_TAG_BERRY_EATEN + monbg ANIM_ATK_PARTNER + setalpha 12, 8 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 16, 0 + loopsewithpan 133, SOUND_PAN_ATTACKER 13 2 + createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 0 + delay 2 + createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 4 + delay 2 + createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 8 + delay 2 + createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 12 + waitforvisualfinish + fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT + waitbgfadein + loopsewithpan 0x81, SOUND_PAN_TARGET, 3, 5 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xb0, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff40, 0xf0, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, SOUND_PAN_ATTACKER, 0xff60, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff40, 0xff90, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xa0, 0x30, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff20, 0xffe0, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0x70, 0xff80, 0x28 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 + waitforvisualfinish + restorebg + waitbgfadein + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 0, 0 + clearmonbg ANIM_ATK_PARTNER + blendoff end - + Move_LUNAR_DANCE: loadspritegfx ANIM_TAG_MOON loadspritegfx ANIM_TAG_GREEN_SPARKLE @@ -3811,6 +4044,28 @@ Move_LUNAR_DANCE: end Move_CRUSH_GRIP: + loadspritegfx ANIM_TAG_EXPLOSION + loadspritegfx ANIM_TAG_ACCUPRESSURE + loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE + setalpha 15, 0 + createsprite gCrushGripHandTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 0x101 + waitforvisualfinish + createvisualtask AnimTask_CompressTargetHorizontally, 2 + createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0, 0, 1, 1 + delay 3 + playsewithpan 0xab, SOUND_PAN_ATTACKER + createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0x18, 0xffe8, 1, 1 + delay 3 + playsewithpan 0xab, SOUND_PAN_ATTACKER + createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0xfff0, 16, 1, 1 + delay 3 + playsewithpan 0xab, SOUND_PAN_ATTACKER + createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0xffe8, -12, 1, 1 + delay 3 + playsewithpan 0xab, SOUND_PAN_ATTACKER + createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 16, 16, 1, 1 + waitforvisualfinish + blendoff end Move_MAGMA_STORM: @@ -3839,9 +4094,115 @@ Move_MAGMA_STORM: end Move_DARK_VOID: + loadspritegfx ANIM_TAG_WHITE_SHADOW @Destiny Bond + loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @Black Colour + loadspritegfx ANIM_TAG_SPARKLE_2 @Healing Stars + loadspritegfx ANIM_TAG_POISON_BUBBLE @Poison + fadetobg BG_DARK_VOID + waitbgfadeout + createvisualtask AnimTask_StartSlidingBg, 5, 0, 0xFFA0, 1, 0xffff + waitbgfadein + createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 0x30 + loopsewithpan 0xBD, SOUND_PAN_ATTACKER, 5, 2 + delay 0x30 + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0xfd00, 0x15, 0, 0x70 @Last is speed + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0xfd00, 0x15, 0, 0x70 @Last is speed + delay 0x40 + invisible ANIM_TARGET + invisible ANIM_DEF_PARTNER + createsprite gDarkVoidPurpleStarsTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0, 0x20, 0x3c + waitforvisualfinish + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, 16 + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0, 16 + delay 0x20 + call UnsetPsychicBg + visible ANIM_TARGET + visible ANIM_DEF_PARTNER end Move_SEED_FLARE: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_LEAF @green color + loadspritegfx ANIM_TAG_RAZOR_LEAF @green color 2 + loadspritegfx ANIM_TAG_ORBS @charging circles + loadspritegfx ANIM_TAG_FLYING_DIRT @heat wave animation + monbg ANIM_ATTACKER + setalpha 14, 8 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 0, 12, 32767 + waitforvisualfinish + playsewithpan 133, SOUND_PAN_ATTACKER + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, 0x28, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, 0xffd8, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0, 0x28, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0, 0xffd8, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, -20, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, 20, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, -20, 16 + delay 2 + createsprite gSeedFlareGreenChargeTemplate, ANIM_ATTACKER 2, 0 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, 20, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, -20, 30, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 20, 0xffe2, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, -20, 0xffe2, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 20, 30, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, 0, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, 0, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, 0x28, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, 0xffd8, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0, 0x28, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0, 0xffd8, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, -20, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0x28, 20, 16 + delay 2 + createsprite gSeedFlareGreenCirclesTemplate, ANIM_ATTACKER, 2, 0xffd8, -20, 16 + delay 30 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 0x28, 1 + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 10, 0x900, 0x60, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 + delay 2 + playsewithpan 0x81, SOUND_PAN_TARGET + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x5a, 0x800, 0x60, 1 + delay 8 + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x32, 0xa00, 0x60, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 + delay 2 + playsewithpan 0x81, SOUND_PAN_TARGET + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 20, 0x900, 0x60, 1 + delay 8 + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x46, 0x7c0, 0x60, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 + createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 + delay 2 + playsewithpan 0x81, SOUND_PAN_TARGET + delay 8 + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0, 0xb00, 0x60, 1 + delay 10 + createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x3c, 0xa00, 0x60, 1 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 1, 12, 0, 32767 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff end Move_OMINOUS_WIND: diff --git a/graphics/battle_anims/backgrounds/dark_void.bin b/graphics/battle_anims/backgrounds/dark_void.bin new file mode 100644 index 0000000000000000000000000000000000000000..922b72bc74d7f5c773331b1af537d54c2e939038 GIT binary patch literal 1236 zcmb`DQ*a�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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/spacial_rend_opponent.bin b/graphics/battle_anims/backgrounds/spacial_rend_opponent.bin new file mode 100644 index 0000000000000000000000000000000000000000..e6227db9c9d8e449155452362f88ca325272b8be GIT binary patch literal 1000 zcmWO4heODD0LJ0BK~$(v*`Js1k5E#Ptz=X7UPYnoO&K|E@9hR|@4a#R+}?NG-h1D1 zd!Kv$h9_lvoD@SWam1qrG$esWs4}igIv^;Jn|_(1tCA=g&j-mQu=4Stt$T7>_0}k&$5%@spXtR2`g# zrZa(x9Q(^|iqJ->IIgQiN8Jx*k zoQ=-mT+ZWsbO9H#i;K|3T*9U7Mtj)H-moWVcesqpxdL6uu5cAsqieX9>$o1>z>VC* z&FB_x!y5cUV{3-|K?50df_4^#gLkD|vo$m2YLp5!T> z<{9)X&+$Ajpci?GmwAPlS2@ICUQ>(?heP3Y-av2i7H{(odYAWjpAXQ7e8k6mf(_lp`Fa=x8_+^dmpJV=I+jR&i`wp)cPLIbx%3Z`7UrTxwi}5$9?5~?(YE} zC=c>r7r9s-;t~(_P(>xtFc0?#d89{qU^H4DpE+*w|J|!S#?ouv?;2$HbmPUq+@J@?P34` literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/spacial_rend_opponent.pal b/graphics/battle_anims/backgrounds/spacial_rend_opponent.pal new file mode 100644 index 0000000000..7f1f61789b --- /dev/null +++ b/graphics/battle_anims/backgrounds/spacial_rend_opponent.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +222 156 230 +222 180 246 +213 123 205 +213 189 246 +205 115 205 +213 164 230 +213 131 213 +222 197 255 +222 189 255 +213 139 222 +213 172 238 +213 106 197 +222 131 213 +213 115 205 +205 106 197 diff --git a/graphics/battle_anims/backgrounds/spacial_rend_opponent.png b/graphics/battle_anims/backgrounds/spacial_rend_opponent.png new file mode 100644 index 0000000000000000000000000000000000000000..637b9cf5a93f05f59639b81ff9a52ca6009dc9a0 GIT binary patch literal 5861 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 vbRUphQp*g@dHO5200000NkvXXu0mjfv_DB9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/spacial_rend_player.bin b/graphics/battle_anims/backgrounds/spacial_rend_player.bin new file mode 100644 index 0000000000000000000000000000000000000000..cae5112e003a1b2d5924c329d59bd2231481a186 GIT binary patch literal 996 zcmWO41!ENi7>3bz$>>XO+v?$fOooC@X43W@LoYBP~)RB~+U_)TJJ(PXii~K#gcj6PluC zG^YjGD2JA`qBUwmTiO94+C|%F6KWl;qGjZSOnW*IC`m^;(V6rvbfudLyQ3cTq!+zW zA9CqS9?GYHe)J0!M1JH&-%xJ!iQds44PYRJ3_^n$LJ>pJForXNkt9YjT5F0aL8Xjg zEaT94CNLq!hsMR&7!#$Tk|>UeOhRQ$W(rf$G^R6ynIvX0Ticp52hF9Nc~qeJR8mDX zTEK#+j;c^)%#Vtg7b=g1EaEV9I7e_KN1>xRhGRJn9nT4z$VupA7PEw zRk1QwgqFv$SQ<-0i{lhda4R=uFPyY|bJ5T+ZYClwlX3wXEYp)}xEqz(zKq zO|daH#KmZRT*A6o8@iOsxST7{m0ZQuT!XIVIx}OJlkcZI2Ji? zJ9fph>KU7^dTSdG5gSd_Q$^X z1bxb9e9jl>OTOZ3zCqve9pCc<`jMabnP1Sa{KoJ6f&SzGfAKf^hkvQzAUedMI2bh{ zImM|?vkpYMGn{GFa+Yhmj#bz7T;C0x)zAqy+TO^G0058#0{{R3eVcu=0000mP)t-s{{R5h zoaWxN_SJjM)xGxBgVoJ*&DEsl-o^jbi{9S7|JAJS)oR7nbIsnI=FMuw#EaV9000`V zNklp4ba0m_Z2Bhjwibd>{eomRrTt;`|dsW-1|zBBpi&fOl26KEaAb&vGn*E_VMjw ze`OzckABNOU%zH^{w;32lZ(e5(=cYV>&whNjDE+ftfuQ{OsWGKOT%={@Jy!Jok(Ju z-RNEUj(xnkwaPxfeaEqiS8%hdsQG?JqasH8LIdF~?)a=L>{US4J|-qHQ%~9TvzZv1 zT;1wq*B{1;?4PC=ox)Ar``A(fIT|zA4n@AmKv0Z34Z1^QezQ>WRD?(9t3 zcoM|9#%;^tw6;4PO+0oLfM=Qpt_Z-0SZsO{W0y01j487-zhgeHoi;2V zXLncQ)Aupp26y<^^iW{kG!u1%$pOy4ZWx$miKqY+0XEF}EA0Bs%s`rb);I94tiNEl zF<_+c7F`Cs1zUba1{R0S)|+*VMVnhs>)#*TH`W}h+h?w@e<=q3$bN9_ zr;OXY?QU*U+<(Tog)ig2?&0?GeHUYV%8i%sW_Q|@Jrd2qA2z*82Tfo^%v6vu@7S}` z>~2o^n*E){PqQx0m+x94ev>}V-^b4{bF+H+{rZ!w0Vy*8qqh&>F`4K+?a54~+12S8 z@Z0j`*j;Y_D*q@fn3~e)!8_bh>WN~cDSxEO@~e1>C6k$pZH5wzVd^do!Ny8Y8$SLXyI~j8H*6Yp zEPk6@d6hek)h3=>NfY0tAK@8^g{;SXaGG5$#=72Pzb$tCioHYG@QnYGUGuG`ulZ=y zQiawz-VgWwQam?zlTrRiudH?(1ZQ)%J;xp+wwmux?DJgLAK7&qfNwje*m$5D$w5fE zAp4wc)iZhAyDWZ6im;p!uWlOqa+J+?iW}ED$Cd`#Cb{Ax@7aH0<1+xB^POVGR4*nV zAB~AMkHFL4FloAuXUwcFo9TUcg>`Xe1g7SJKou;uR%8lLH@yB#jU_uW|VIucW*Ld%eZa0 zjkx_CNb(TgiuEETc93WIH+ub3L-@%U zRg~M!pp5rheVa>LpYGv-|FI5t&HV+f>pcSwdQ5qi#-ni4F(_mPaar1kxCUm*+HATB zc$F9WfUt+h3tGMKTwz~9sJ~{v<$N`5%oISDRsg2J>T%SS*2f+*Lj+1~%?bv(fb-n) z_5})U_4s_oEo8XM(C^rFUhwhzH{kL#TP#4bGdh%Xfhrol2R(^VCU_}$R0q5YK*ero z4$1`BRcE}CrZU9eGoCrc`|O4SuZ%<9$Z_;9aa(>s6<~a+E~*0XYIn2hOyY6J{$-Ot zLgiij{?num2+o`jWp#Y&Cg}li=vkUzQ=e%gz`4S7c4@u7+z~28dsV`{0*i%$Op%ho zmn1b<ℑ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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/quick_guard.png b/graphics/battle_anims/sprites/quick_guard.png new file mode 100644 index 0000000000000000000000000000000000000000..71d343eeb5a8f93b0a50cd832de74728bb9c2b6e GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jYiepLC@4rsNC*fB zluka#CnN!s#07E|XG#I(B0OCjLn`KMz39l*V8G*YF{fyMj+%MKyZRQbgA&V{xPFz_ zE@>5-=%Z-c+FttM0|Un|9u5vD literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/water_gun.png b/graphics/battle_anims/sprites/water_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..4f30b2133dcca00deb0874af741c321f3ec21d59 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT>mQ?N^ae1cqPk_P= zZc)xy?vy3WFAFAku!R^lM`UMId~}`AXl`Y7fURjwfQZAk5)lDbhP)CbyHbT!Z9vNy NJYD@<);T3K0RXhmR=@xN literal 0 HcmV?d00001 diff --git a/include/battle_anim.h b/include/battle_anim.h index 70f65123b2..5189c82112 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -224,9 +224,11 @@ void AnimMoveTwisterParticle(struct Sprite* sprite); void AnimParticleBurst(struct Sprite *); void AnimPowerAbsorptionOrb(struct Sprite* sprite); void AnimNeedleArmSpike(struct Sprite *); +void AnimTask_CompressTargetHorizontally(u8 taskId); extern const union AnimCmd *const gRazorLeafParticleAnimTable[]; extern const union AnimCmd *const gPowerAbsorptionOrbAnimTable[]; extern const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[]; +extern const union AnimCmd *const gMusicNotesAnimTable[]; // battle_anim_water.c void AnimWaterPulseRing(struct Sprite *sprite); diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index f9598c6658..c80d90b1ef 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -321,6 +321,10 @@ #define ANIM_TAG_STEALTH_ROCK (ANIM_SPRITES_START + 311) #define ANIM_TAG_POISON_JAB (ANIM_SPRITES_START + 312) #define ANIM_TAG_GREEN_POISON_BUBBLE (ANIM_SPRITES_START + 313) +#define ANIM_TAG_FLASH_CANNON_BALL (ANIM_SPRITES_START + 314) +#define ANIM_TAG_WATER_GUN (ANIM_SPRITES_START + 315) +#define ANIM_TAG_PUNISHMENT_BLADES (ANIM_SPRITES_START + 316) +#define ANIM_TAG_QUICK_GUARD_HAND (ANIM_SPRITES_START + 317) // battlers #define ANIM_ATTACKER 0 @@ -376,6 +380,9 @@ #define BG_GIGA_IMPACT_CONTEST 30 #define BG_TRICK_ROOM 31 #define BG_ROCK_WRECKER 32 +#define BG_SPACIAL_REND_ON_OPPONENT 33 +#define BG_SPACIAL_REND_ON_PLAYER 34 +#define BG_DARK_VOID 35 // table ids for general animations #define B_ANIM_CASTFORM_CHANGE 0x0 diff --git a/include/graphics.h b/include/graphics.h index 5a5c984daf..cf83e88c94 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4754,6 +4754,14 @@ extern const u32 gBattleAnimSpriteGfx_MegaParticles[]; extern const u32 gBattleAnimSpritePal_MegaParticles[]; extern const u32 gBattleAnimSpriteGfx_MegaSymbol[]; extern const u32 gBattleAnimSpritePal_MegaSymbol[]; +extern const u32 gBattleAnimSpriteGfx_FlashCannonBall[]; +extern const u32 gBattleAnimSpritePal_FlashCannonBall[]; +extern const u32 gBattleAnimSpriteGfx_WaterGun[]; +extern const u32 gBattleAnimSpritePal_WaterGun[]; +extern const u32 gBattleAnimSpriteGfx_Punishment[]; +extern const u32 gBattleAnimSpritePal_Punishment[]; +extern const u32 gBattleAnimSpriteGfx_QuickGuard[]; +extern const u32 gBattleAnimSpritePal_QuickGuard[]; extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; @@ -4770,6 +4778,15 @@ extern const u32 gBattleAnimBgImage_Aurora[]; extern const u32 gBattleAnimBgImage_Fissure[]; extern const u32 gBattleAnimBgImage_TrickRoom[]; extern const u32 gBattleAnimBgImage_RockWrecker[]; +extern const u32 gBattleAnimBgImage_SpacialRendOpponent[]; +extern const u32 gBattleAnimBgPalette_SpacialRendOpponent[]; +extern const u32 gBattleAnimBgTilemap_SpacialRendOpponent[]; +extern const u32 gBattleAnimBgImage_SpacialRendPlayer[]; +extern const u32 gBattleAnimBgPalette_SpacialRendPlayer[]; +extern const u32 gBattleAnimBgTilemap_SpacialRendPlayer[]; +extern const u32 gBattleAnimBgImage_DarkVoid[]; +extern const u32 gBattleAnimBgPalette_DarkVoid[]; +extern const u32 gBattleAnimBgTilemap_DarkVoid[]; extern const u32 gBattleAnimBgPalette_Dark[]; extern const u32 gBattleAnimBgPalette_Ghost[]; extern const u32 gBattleAnimBgPalette_Psychic[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index c89f582e62..b763b9980c 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1439,6 +1439,10 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_StealthRock, 0x0080, ANIM_TAG_STEALTH_ROCK}, {gBattleAnimSpriteGfx_PoisonJab, 0x0080, ANIM_TAG_POISON_JAB}, {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_GREEN_POISON_BUBBLE}, + {gBattleAnimSpriteGfx_FlashCannonBall, 0x200, ANIM_TAG_FLASH_CANNON_BALL}, + {gBattleAnimSpriteGfx_WaterGun, 0x180, ANIM_TAG_WATER_GUN}, + {gBattleAnimSpriteGfx_Punishment, 0xa00, ANIM_TAG_PUNISHMENT_BLADES}, + {gBattleAnimSpriteGfx_QuickGuard, 0x200, ANIM_TAG_QUICK_GUARD_HAND}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = @@ -1757,6 +1761,10 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_StealthRock, ANIM_TAG_STEALTH_ROCK}, {gBattleAnimSpritePal_PoisonJab, ANIM_TAG_POISON_JAB}, {gBattleAnimSpritePal_Vine, ANIM_TAG_GREEN_POISON_BUBBLE}, + {gBattleAnimSpritePal_FlashCannonBall, ANIM_TAG_FLASH_CANNON_BALL}, + {gBattleAnimSpritePal_WaterGun, ANIM_TAG_WATER_GUN}, + {gBattleAnimSpritePal_Punishment, ANIM_TAG_PUNISHMENT_BLADES}, + {gBattleAnimSpritePal_QuickGuard, ANIM_TAG_QUICK_GUARD_HAND}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = @@ -1794,6 +1802,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_GIGA_IMPACT_CONTEST] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_ImpactContests}, [BG_TRICK_ROOM] = {gBattleAnimBgImage_TrickRoom, gBattleAnimBgPalette_TrickRoom, gBattleAnimBgTilemap_TrickRoom}, [BG_ROCK_WRECKER] = {gBattleAnimBgImage_RockWrecker, gBattleAnimBgPalette_RockWrecker, gBattleAnimBgTilemap_RockWrecker}, + [BG_SPACIAL_REND_ON_OPPONENT] = {gBattleAnimBgImage_SpacialRendOpponent, gBattleAnimBgPalette_SpacialRendOpponent, gBattleAnimBgTilemap_SpacialRendOpponent}, + [BG_SPACIAL_REND_ON_PLAYER] = {gBattleAnimBgImage_SpacialRendPlayer, gBattleAnimBgPalette_SpacialRendPlayer, gBattleAnimBgTilemap_SpacialRendPlayer}, + [BG_DARK_VOID] = {gBattleAnimBgImage_DarkVoid, gBattleAnimBgPalette_DarkVoid, gBattleAnimBgTilemap_DarkVoid}, }; static void (* const sScriptCmdTable[])(void) = diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 07ac5bf570..66a5272c77 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2837,6 +2837,51 @@ const struct SpriteTemplate gWoodHammerSmallSpriteTemplate = .callback = AnimWoodHammerSmall, }; +const struct SpriteTemplate gJudgmentGrayOutwardSpikesTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_GUST, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gJudgmentGrayInwardOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gDarkVoidPurpleStarsTemplate = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gGrantingStarsAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimGrantingStars +}; + +const struct SpriteTemplate gSeedFlareGreenCirclesTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimPowerAbsorptionOrb +}; + +// functions static void AnimGrassKnot(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) @@ -6687,3 +6732,27 @@ static void AnimNightSlash(struct Sprite *sprite) sprite->callback = AnimSlashSlice; sprite->callback(sprite); } + +static const union AffineAnimCmd sCompressTargetHorizontallyAffineAnimCmds[] = +{ + AFFINEANIMCMD_FRAME(64, 0, 0, 16), //Compress + AFFINEANIMCMD_FRAME(0, 0, 0, 64), + AFFINEANIMCMD_FRAME(-64, 0, 0, 16), + AFFINEANIMCMD_END, +}; + +static void AnimTask_CompressTargetStep(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + + if (!RunAffineAnimFromTaskData(task)) + DestroyAnimVisualTask(taskId); +} + +void AnimTask_CompressTargetHorizontally(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + PrepareAffineAnimInTaskData(task, spriteId, sCompressTargetHorizontallyAffineAnimCmds); + task->func = AnimTask_CompressTargetStep; +} diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index e6ac7ffb27..a8b54d41df 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1232,7 +1232,6 @@ const union AffineAnimCmd *const gPerishSongMusicNoteAffineAnimTable[] = gPerishSongMusicNoteAffineAnimCmds3, }; -extern const union AnimCmd *const gMusicNotesAnimTable[]; const struct SpriteTemplate gPerishSongMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES_2, @@ -1284,6 +1283,28 @@ const struct SpriteTemplate gGuardRingSpriteTemplate = .callback = AnimGuardRing, }; +const struct SpriteTemplate gCrushGripExplosionTemplate = +{ + .tileTag = ANIM_TAG_EXPLOSION, + .paletteTag = ANIM_TAG_EXPLOSION, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gExplosionAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gRoarOfTimeBombTemplate = +{ + .tileTag = ANIM_TAG_EXPLOSION, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gExplosionAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + static void sub_8103448(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index eca10f2b49..b49427bc79 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -456,6 +456,54 @@ const struct SpriteTemplate gShockWaveProgressingBoltSpriteTemplate = .callback = AnimShockWaveProgressingBolt, }; +const struct SpriteTemplate gFlashCannonGrayChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +static const union AffineAnimCmd sSpriteAffineAnim_JudgmentBall[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(8, 8, 0, 15), //Half size + AFFINEANIMCMD_FRAME(0, 0, 0, 120), //Delay + AFFINEANIMCMD_FRAME(24, 24, 0, 5), //Normal size + AFFINEANIMCMD_FRAME(0, 0, 0, 10), //Delay + AFFINEANIMCMD_FRAME(-16, -16, 0, 15), //Revert to 1 px + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_JudgmentBall[] = +{ + sSpriteAffineAnim_JudgmentBall, +}; +const struct SpriteTemplate gJudgmentBlackChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_JudgmentBall, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gSeedFlareGreenChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +// functions static void AnimLightning(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index dbb21fe6cb..606f498d4c 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -510,6 +510,28 @@ const struct SpriteTemplate gLavaPlumeSpriteTemplate = .callback = AnimLavaPlumeOrbitScatter, }; +const struct SpriteTemplate gSpacialRendBladesTemplate = +{ + .tileTag = ANIM_TAG_PUNISHMENT_BLADES, + .paletteTag = ANIM_TAG_PINK_HEART_2, //ANIM_TAG_BERRY_EATEN, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_BasicFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpiralOutward +}; + +const struct SpriteTemplate gSpacialRendBladesTemplate2 = +{ + .tileTag = ANIM_TAG_PUNISHMENT_BLADES, + .paletteTag = ANIM_TAG_PINK_HEART_2, //ANIM_TAG_BERRY_EATEN, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = sAnims_FireSpiralSpread, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + static void AnimLavaPlumeOrbitScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 4671edbd48..273fdf38a4 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -249,6 +249,17 @@ const struct SpriteTemplate gUnknown_08596E48 = .callback = sub_8112F60, }; +const struct SpriteTemplate gFlashCannonBallMovementTemplate = +{ + .tileTag = ANIM_TAG_FLASH_CANNON_BALL, + .paletteTag = ANIM_TAG_FLASH_CANNON_BALL, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + static void AnimConfuseRayBallBounce(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 7a6f1352d9..ea46092d9a 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -561,6 +561,17 @@ const struct SpriteTemplate gAvalancheSpriteTemplate = .callback = AvalancheAnim_Step, }; +const struct SpriteTemplate gChatterSingNotesTemplate = +{ + .tileTag = ANIM_TAG_MUSIC_NOTES, + .paletteTag = ANIM_TAG_MUSIC_NOTES, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gMusicNotesAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_IceCrystalHit, + .callback = AnimIceEffectParticle +}; + static void AvalancheAnim_Step(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 7b4b448ace..22f9f2f8e6 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -327,6 +327,43 @@ const struct SpriteTemplate gStealthRockSpriteTemplate = .callback = AnimStealthRock, }; +static const union AffineAnimCmd sSpriteAffineAnim_CrushGripHandEnemyAttack[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 96, 1), //180 degree turn + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd sSpriteAffineAnim_DoNothing[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 1), //Do nothing + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_CrushGripHand[] = +{ + sSpriteAffineAnim_DoNothing, + sSpriteAffineAnim_CrushGripHandEnemyAttack, +}; +const struct SpriteTemplate gCrushGripHandTemplate = +{ + .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, + .paletteTag = ANIM_TAG_ACCUPRESSURE, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = sAnims_BasicRock, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_CrushGripHand, + .callback = AnimRockBlastRock +}; + +const struct SpriteTemplate gSeedFlareGreenWavesTemplate = +{ + .tileTag = ANIM_TAG_FLYING_DIRT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFlyingSandCrescent +}; + static void AnimStealthRock(struct Sprite *sprite) { u16 x; diff --git a/src/graphics.c b/src/graphics.c index 5df0bd9b1a..97250b963d 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -41,6 +41,18 @@ const u32 gBattleAnimSpritePal_MegaParticles[] = INCBIN_U32("graphics/battle_ani const u32 gBattleAnimSpriteGfx_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/mega_symbol.4bpp.lz"); const u32 gBattleAnimSpritePal_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/mega_symbol.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/flash_cannon_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/flash_cannon_ball.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/water_gun.4bpp.lz"); +const u32 gBattleAnimSpritePal_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/water_gun.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/punishment.4bpp.lz"); +const u32 gBattleAnimSpritePal_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/punishment.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.4bpp.lz"); +const u32 gBattleAnimSpritePal_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.gbapal.lz"); + // Battle anims const u32 gBattleAnimSpriteGfx_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz"); const u32 gBattleAnimSpriteGfx_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz"); @@ -1151,6 +1163,18 @@ const u32 gBattleAnimBgImage_RockWrecker[] = INCBIN_U32("graphics/battle_anims/b const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.gbapal.lz"); const u32 gBattleAnimBgTilemap_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker_map.bin.lz"); +const u32 gBattleAnimBgImage_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.4bpp.lz"); +const u32 gBattleAnimBgPalette_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.bin"); + +const u32 gBattleAnimBgImage_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.4bpp.lz"); +const u32 gBattleAnimBgPalette_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.bin"); + +const u32 gBattleAnimBgImage_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.4bpp.lz"); +const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.gbapal.lz"); +const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.bin"); + const u32 gUnknown_E6BC04[] = INCBIN_U32("graphics/unknown/unknown_E6BC04.bin.lz"); const u32 sBlenderCenterGfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz"); From 181bfbf5fdaa68c1e5b7e8c44fe103a66d73a802 Mon Sep 17 00:00:00 2001 From: Evan Date: Fri, 22 May 2020 10:10:10 -0600 Subject: [PATCH 2/7] cfru particles and bgs --- .../backgrounds/new/aeroblast.pal | 19 + .../backgrounds/new/aeroblast_map.bin | Bin 0 -> 804 bytes .../backgrounds/new/aeroblast_tiles.png | Bin 0 -> 2902 bytes .../backgrounds/new/aura_sphere.pal | 19 + .../backgrounds/new/blackhole_eclipse.bin | Bin 0 -> 892 bytes .../backgrounds/new/blackhole_eclipse.png | Bin 0 -> 4122 bytes .../backgrounds/new/bloom_doom.bin | Bin 0 -> 564 bytes .../backgrounds/new/bloom_doom.pal | 19 + .../backgrounds/new/bloom_doom.png | Bin 0 -> 1788 bytes .../backgrounds/new/bolt_strike.bin | Bin 0 -> 780 bytes .../backgrounds/new/bolt_strike.pal | 19 + .../backgrounds/new/bolt_strike.png | Bin 0 -> 5861 bytes .../backgrounds/new/clangorous_soulblaze.bin | Bin 0 -> 700 bytes .../backgrounds/new/clangorous_soulblaze.pal | 19 + .../backgrounds/new/clangorous_soulblaze.png | Bin 0 -> 1696 bytes .../backgrounds/new/dark_void.bin | Bin 0 -> 1236 bytes .../backgrounds/new/dark_void.pal | 19 + .../backgrounds/new/dark_void.png | Bin 0 -> 7041 bytes .../backgrounds/new/dynamax_cannon.pal | 19 + .../backgrounds/new/electric_terrain.bin | Bin 0 -> 2020 bytes .../backgrounds/new/electric_terrain.pal | 19 + .../backgrounds/new/electric_terrain.png | Bin 0 -> 3458 bytes .../battle_anims/backgrounds/new/fire1.bin | Bin 0 -> 684 bytes .../battle_anims/backgrounds/new/fire1.pal | 19 + .../battle_anims/backgrounds/new/fire1.png | Bin 0 -> 2557 bytes .../battle_anims/backgrounds/new/fire2.pal | 19 + .../backgrounds/new/focus_blast.bin | Bin 0 -> 952 bytes .../backgrounds/new/focus_blast.pal | 19 + .../backgrounds/new/focus_blast.png | Bin 0 -> 3537 bytes .../backgrounds/new/garbage_falls.pal | 19 + .../backgrounds/new/giga_impact_opponent.bin | Bin 0 -> 704 bytes .../backgrounds/new/giga_impact_opponent.pal | 19 + .../backgrounds/new/giga_impact_opponent.png | Bin 0 -> 3056 bytes .../backgrounds/new/giga_impact_player.bin | Bin 0 -> 744 bytes .../backgrounds/new/giga_impact_player.pal | 19 + .../backgrounds/new/giga_impact_player.png | Bin 0 -> 3098 bytes .../backgrounds/new/grassy_terrain.bin | Bin 0 -> 2244 bytes .../backgrounds/new/grassy_terrain.pal | 19 + .../backgrounds/new/grassy_terrain.png | Bin 0 -> 3912 bytes .../backgrounds/new/gunk_shot.pal | 19 + .../backgrounds/new/high_speed.bin | Bin 0 -> 496 bytes .../backgrounds/new/high_speed.pal | 19 + .../backgrounds/new/high_speed.png | Bin 0 -> 855 bytes .../backgrounds/new/hydro_cannon.bin | Bin 0 -> 880 bytes .../backgrounds/new/hydro_cannon.pal | 19 + .../backgrounds/new/hydro_cannon.png | Bin 0 -> 1089 bytes .../backgrounds/new/hydro_pump.bin | Bin 0 -> 224 bytes .../backgrounds/new/hydro_pump.pal | 19 + .../backgrounds/new/hydro_pump.png | Bin 0 -> 540 bytes .../backgrounds/new/hyper_beam.pal | 19 + .../backgrounds/new/hyperspace_fury.pal | 19 + .../backgrounds/new/inferno_overdrive.bin | Bin 0 -> 556 bytes .../backgrounds/new/inferno_overdrive.pal | 19 + .../backgrounds/new/inferno_overdrive.png | Bin 0 -> 5090 bytes .../backgrounds/new/leaf_storm.bin | Bin 0 -> 924 bytes .../backgrounds/new/leaf_storm.pal | 19 + .../backgrounds/new/leaf_storm.png | Bin 0 -> 3338 bytes .../backgrounds/new/magic_room.pal | 19 + .../backgrounds/new/malicious_moonsault.bin | Bin 0 -> 544 bytes .../backgrounds/new/malicious_moonsault.pal | 19 + .../backgrounds/new/malicious_moonsault.png | Bin 0 -> 1839 bytes .../backgrounds/new/max_lightning.bin | Bin 0 -> 744 bytes .../backgrounds/new/max_lightning.pal | 19 + .../backgrounds/new/max_lightning.png | Bin 0 -> 1959 bytes .../backgrounds/new/misty_terrain.bin | Bin 0 -> 2180 bytes .../backgrounds/new/misty_terrain.pal | 19 + .../backgrounds/new/misty_terrain.png | Bin 0 -> 3541 bytes .../backgrounds/new/neverending_nightmare.bin | Bin 0 -> 744 bytes .../backgrounds/new/neverending_nightmare.pal | 19 + .../backgrounds/new/neverending_nightmare.png | Bin 0 -> 3739 bytes .../backgrounds/new/nightmare.bin | Bin 0 -> 756 bytes .../backgrounds/new/nightmare.pal | 19 + .../backgrounds/new/nightmare.png | Bin 0 -> 3356 bytes .../backgrounds/new/poison_falls.pal | 19 + .../battle_anims/backgrounds/new/psychic.pal | 19 + .../backgrounds/new/psychic_terrain.bin | Bin 0 -> 1904 bytes .../backgrounds/new/psychic_terrain.pal | 19 + .../backgrounds/new/psychic_terrain.png | Bin 0 -> 3694 bytes .../backgrounds/new/rock_wrecker.bin | Bin 0 -> 676 bytes .../backgrounds/new/rock_wrecker.pal | 19 + .../backgrounds/new/rock_wrecker.png | Bin 0 -> 1511 bytes .../backgrounds/new/shattered_psyche.bin | Bin 0 -> 808 bytes .../backgrounds/new/shattered_psyche.pal | 19 + .../backgrounds/new/shattered_psyche.png | Bin 0 -> 2406 bytes .../backgrounds/new/sky_afternoon.pal | 19 + .../battle_anims/backgrounds/new/sky_day.bin | Bin 0 -> 1052 bytes .../battle_anims/backgrounds/new/sky_day.pal | 19 + .../battle_anims/backgrounds/new/sky_day.png | Bin 0 -> 7508 bytes .../backgrounds/new/sky_night.pal | 19 + .../backgrounds/new/sludge_wave.pal | 19 + .../backgrounds/new/snuggle_forever.bin | Bin 0 -> 988 bytes .../backgrounds/new/snuggle_forever.pal | 19 + .../backgrounds/new/snuggle_forever.png | Bin 0 -> 6425 bytes .../new/soulstealing_7star_strike.bin | Bin 0 -> 968 bytes .../new/soulstealing_7star_strike.pal | 19 + .../new/soulstealing_7star_strike.png | Bin 0 -> 2600 bytes .../backgrounds/new/spacial_rend_opponent.bin | Bin 0 -> 1000 bytes .../backgrounds/new/spacial_rend_opponent.pal | 19 + .../backgrounds/new/spacial_rend_opponent.png | Bin 0 -> 5861 bytes .../backgrounds/new/spacial_rend_player.bin | Bin 0 -> 996 bytes .../backgrounds/new/spacial_rend_player.pal | 19 + .../backgrounds/new/spacial_rend_player.png | Bin 0 -> 6948 bytes .../backgrounds/new/tectonic_rage.bin | Bin 0 -> 296 bytes .../backgrounds/new/tectonic_rage.pal | 19 + .../backgrounds/new/trick_room.bin | Bin 0 -> 844 bytes .../backgrounds/new/trick_room.pal | 19 + .../backgrounds/new/trick_room.png | Bin 0 -> 2137 bytes .../backgrounds/new/twinkle_tackle.bin | Bin 0 -> 784 bytes .../backgrounds/new/twinkle_tackle.pal | 19 + .../backgrounds/new/twinkle_tackle.png | Bin 0 -> 2243 bytes .../backgrounds/new/water_pulse.bin | Bin 0 -> 600 bytes .../backgrounds/new/water_pulse.pal | 19 + .../backgrounds/new/water_pulse.png | Bin 0 -> 2106 bytes .../backgrounds/new/waterfall.bin | Bin 0 -> 2128 bytes .../backgrounds/new/waterfall.pal | 19 + .../backgrounds/new/waterfall.png | Bin 0 -> 5092 bytes .../backgrounds/new/wonder_room.pal | 19 + .../backgrounds/new/zmove_activate.bin | Bin 0 -> 520 bytes .../backgrounds/new/zmove_activate.pal | 19 + .../backgrounds/new/zmove_activate.png | Bin 0 -> 905 bytes .../backgrounds/new/zmove_mountain.bin | Bin 0 -> 760 bytes .../backgrounds/new/zmove_mountain.pal | 19 + .../backgrounds/new/zmove_mountain.png | Bin 0 -> 2174 bytes .../sprites/new/ability_pop_up.png | Bin 0 -> 275 bytes .../sprites/new/acupressure_finger.png | Bin 0 -> 298 bytes .../battle_anims/sprites/new/alpha_stone.png | Bin 0 -> 933 bytes graphics/battle_anims/sprites/new/anchor.png | Bin 0 -> 282 bytes graphics/battle_anims/sprites/new/apple.png | Bin 0 -> 214 bytes graphics/battle_anims/sprites/new/arrows.png | Bin 0 -> 199 bytes .../sprites/new/assurance_hand.png | Bin 0 -> 330 bytes .../battle_anims/sprites/new/aura_sphere.png | Bin 0 -> 1086 bytes .../sprites/new/avalanche_rocks.pal | 19 + .../sprites/new/baton_pass_ball.png | Bin 0 -> 203 bytes graphics/battle_anims/sprites/new/bee.png | Bin 0 -> 317 bytes .../battle_anims/sprites/new/berry_eaten.png | Bin 0 -> 255 bytes .../battle_anims/sprites/new/berry_normal.png | Bin 0 -> 297 bytes .../battle_anims/sprites/new/big_rock.png | Bin 0 -> 727 bytes .../sprites/new/blacephalon_head.png | Bin 0 -> 411 bytes .../battle_anims/sprites/new/blue_flare.pal | 259 ++++++++++ graphics/battle_anims/sprites/new/branch.png | Bin 0 -> 256 bytes graphics/battle_anims/sprites/new/brine.png | Bin 0 -> 259 bytes graphics/battle_anims/sprites/new/cacoon.png | Bin 0 -> 10874 bytes .../battle_anims/sprites/new/chain_link.png | Bin 0 -> 249 bytes graphics/battle_anims/sprites/new/chop.png | Bin 0 -> 222 bytes graphics/battle_anims/sprites/new/confide.png | Bin 0 -> 633 bytes .../sprites/new/crafty_shield.png | Bin 0 -> 170 bytes .../battle_anims/sprites/new/curse_nail.png | Bin 0 -> 368 bytes .../battle_anims/sprites/new/draco_meteor.pal | 19 + .../sprites/new/dragon_pulse_ring.png | Bin 0 -> 223 bytes .../sprites/new/dreepy_missile.png | Bin 0 -> 281 bytes graphics/battle_anims/sprites/new/drill.png | Bin 0 -> 1151 bytes graphics/battle_anims/sprites/new/embers.png | Bin 0 -> 1334 bytes .../battle_anims/sprites/new/energy_ball.png | Bin 0 -> 409 bytes .../sprites/new/fairy_lock_chains.png | Bin 0 -> 227 bytes graphics/battle_anims/sprites/new/fishies.png | Bin 0 -> 265 bytes .../sprites/new/flash_cannon_ball.png | Bin 0 -> 257 bytes graphics/battle_anims/sprites/new/fly.png | Bin 0 -> 1172 bytes .../battle_anims/sprites/new/fusion_flare.pal | 19 + .../sprites/new/garbage_poison_column.pal | 19 + graphics/battle_anims/sprites/new/gear.png | Bin 0 -> 271 bytes .../sprites/new/gigavolt_havoc_spear.png | Bin 0 -> 413 bytes .../battle_anims/sprites/new/golden_apple.png | Bin 0 -> 302 bytes .../battle_anims/sprites/new/green_drake.pal | 19 + .../battle_anims/sprites/new/green_star.png | Bin 0 -> 258 bytes .../battle_anims/sprites/new/heart_stamp.png | Bin 0 -> 327 bytes graphics/battle_anims/sprites/new/hexes.png | Bin 0 -> 442 bytes .../battle_anims/sprites/new/hoopa_hand.png | Bin 0 -> 211 bytes .../battle_anims/sprites/new/hoopa_ring.png | Bin 0 -> 480 bytes graphics/battle_anims/sprites/new/horn.png | Bin 0 -> 1010 bytes .../battle_anims/sprites/new/horn_leech.png | Bin 0 -> 368 bytes .../sprites/new/horseshoe_fist.png | Bin 0 -> 5104 bytes .../battle_anims/sprites/new/hydro_pump.png | Bin 0 -> 244 bytes .../battle_anims/sprites/new/ice_rock.png | Bin 0 -> 1287 bytes graphics/battle_anims/sprites/new/impact.pal | 19 + .../battle_anims/sprites/new/large_spike.png | Bin 0 -> 734 bytes graphics/battle_anims/sprites/new/leaves.png | Bin 0 -> 503 bytes .../battle_anims/sprites/new/leech_seed.png | Bin 0 -> 280 bytes .../sprites/new/lightning_rain.png | Bin 0 -> 356 bytes .../battle_anims/sprites/new/mean_look.png | Bin 0 -> 1144 bytes .../battle_anims/sprites/new/metal_bits.png | Bin 0 -> 154 bytes .../battle_anims/sprites/new/mud_bomb.png | Bin 0 -> 525 bytes .../battle_anims/sprites/new/mushroom.png | Bin 0 -> 661 bytes .../sprites/new/natural_gift_ring.pal | 19 + .../sprites/new/necrozma_star.png | Bin 0 -> 191 bytes .../battle_anims/sprites/new/obstruct.png | Bin 0 -> 252 bytes .../battle_anims/sprites/new/omega_stone.png | Bin 0 -> 917 bytes .../battle_anims/sprites/new/pink_diamond.png | Bin 0 -> 170 bytes .../sprites/new/poison_column.png | Bin 0 -> 904 bytes .../battle_anims/sprites/new/poison_jab.png | Bin 0 -> 194 bytes .../battle_anims/sprites/new/power_gem.png | Bin 0 -> 179 bytes .../battle_anims/sprites/new/power_trick.png | Bin 0 -> 540 bytes .../battle_anims/sprites/new/punishment.png | Bin 0 -> 470 bytes .../battle_anims/sprites/new/purple_drake.png | Bin 0 -> 643 bytes .../battle_anims/sprites/new/quick_guard.png | Bin 0 -> 205 bytes .../battle_anims/sprites/new/razor_shell.png | Bin 0 -> 313 bytes .../battle_anims/sprites/new/rock_small.png | Bin 0 -> 237 bytes graphics/battle_anims/sprites/new/rocks.png | Bin 0 -> 1361 bytes .../battle_anims/sprites/new/shell_left.png | Bin 0 -> 381 bytes .../battle_anims/sprites/new/shell_right.png | Bin 0 -> 380 bytes .../sprites/new/spacial_rend_slices.pal | 19 + graphics/battle_anims/sprites/new/spikes.png | Bin 0 -> 175 bytes .../sprites/new/spirit_shackle_arrow.png | Bin 0 -> 236 bytes .../battle_anims/sprites/new/stealth_rock.png | Bin 0 -> 395 bytes .../sprites/new/steam_eruption.png | Bin 0 -> 222 bytes .../battle_anims/sprites/new/steamroller.png | Bin 0 -> 838 bytes .../battle_anims/sprites/new/stone_edge.png | Bin 0 -> 326 bytes .../battle_anims/sprites/new/stone_pillar.png | Bin 0 -> 1317 bytes .../sprites/new/straight_beam.png | Bin 0 -> 152 bytes .../sprites/new/substitute_back.png | Bin 0 -> 488 bytes .../sprites/new/substitute_front.png | Bin 0 -> 420 bytes .../battle_anims/sprites/new/surf_new.pal | 19 + graphics/battle_anims/sprites/new/sword.png | Bin 0 -> 272 bytes graphics/battle_anims/sprites/new/teeth.png | Bin 0 -> 465 bytes graphics/battle_anims/sprites/new/thrash.png | Bin 0 -> 440 bytes graphics/battle_anims/sprites/new/tornado.png | Bin 0 -> 1608 bytes .../battle_anims/sprites/new/water_gun.png | Bin 0 -> 214 bytes graphics/battle_anims/sprites/new/wood.png | Bin 0 -> 881 bytes .../sprites/new/z_move_symbol.png | Bin 0 -> 381 bytes include/constants/battle_anim.h | 109 +++++ include/constants/battle_config.h | 17 + include/graphics.h | 280 +++++++++++ src/battle_anim.c | 292 ++++++++++- src/graphics.c | 456 +++++++++++++++++- 223 files changed, 2530 insertions(+), 4 deletions(-) create mode 100644 graphics/battle_anims/backgrounds/new/aeroblast.pal create mode 100644 graphics/battle_anims/backgrounds/new/aeroblast_map.bin create mode 100644 graphics/battle_anims/backgrounds/new/aeroblast_tiles.png create mode 100644 graphics/battle_anims/backgrounds/new/aura_sphere.pal create mode 100644 graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin create mode 100644 graphics/battle_anims/backgrounds/new/blackhole_eclipse.png create mode 100644 graphics/battle_anims/backgrounds/new/bloom_doom.bin create mode 100644 graphics/battle_anims/backgrounds/new/bloom_doom.pal create mode 100644 graphics/battle_anims/backgrounds/new/bloom_doom.png create mode 100644 graphics/battle_anims/backgrounds/new/bolt_strike.bin create mode 100644 graphics/battle_anims/backgrounds/new/bolt_strike.pal create mode 100644 graphics/battle_anims/backgrounds/new/bolt_strike.png create mode 100644 graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin create mode 100644 graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal create mode 100644 graphics/battle_anims/backgrounds/new/clangorous_soulblaze.png create mode 100644 graphics/battle_anims/backgrounds/new/dark_void.bin create mode 100644 graphics/battle_anims/backgrounds/new/dark_void.pal create mode 100644 graphics/battle_anims/backgrounds/new/dark_void.png create mode 100644 graphics/battle_anims/backgrounds/new/dynamax_cannon.pal create mode 100644 graphics/battle_anims/backgrounds/new/electric_terrain.bin create mode 100644 graphics/battle_anims/backgrounds/new/electric_terrain.pal create mode 100644 graphics/battle_anims/backgrounds/new/electric_terrain.png create mode 100644 graphics/battle_anims/backgrounds/new/fire1.bin create mode 100644 graphics/battle_anims/backgrounds/new/fire1.pal create mode 100644 graphics/battle_anims/backgrounds/new/fire1.png create mode 100644 graphics/battle_anims/backgrounds/new/fire2.pal create mode 100644 graphics/battle_anims/backgrounds/new/focus_blast.bin create mode 100644 graphics/battle_anims/backgrounds/new/focus_blast.pal create mode 100644 graphics/battle_anims/backgrounds/new/focus_blast.png create mode 100644 graphics/battle_anims/backgrounds/new/garbage_falls.pal create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_opponent.pal create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_opponent.png create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_player.bin create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_player.pal create mode 100644 graphics/battle_anims/backgrounds/new/giga_impact_player.png create mode 100644 graphics/battle_anims/backgrounds/new/grassy_terrain.bin create mode 100644 graphics/battle_anims/backgrounds/new/grassy_terrain.pal create mode 100644 graphics/battle_anims/backgrounds/new/grassy_terrain.png create mode 100644 graphics/battle_anims/backgrounds/new/gunk_shot.pal create mode 100644 graphics/battle_anims/backgrounds/new/high_speed.bin create mode 100644 graphics/battle_anims/backgrounds/new/high_speed.pal create mode 100644 graphics/battle_anims/backgrounds/new/high_speed.png create mode 100644 graphics/battle_anims/backgrounds/new/hydro_cannon.bin create mode 100644 graphics/battle_anims/backgrounds/new/hydro_cannon.pal create mode 100644 graphics/battle_anims/backgrounds/new/hydro_cannon.png create mode 100644 graphics/battle_anims/backgrounds/new/hydro_pump.bin create mode 100644 graphics/battle_anims/backgrounds/new/hydro_pump.pal create mode 100644 graphics/battle_anims/backgrounds/new/hydro_pump.png create mode 100644 graphics/battle_anims/backgrounds/new/hyper_beam.pal create mode 100644 graphics/battle_anims/backgrounds/new/hyperspace_fury.pal create mode 100644 graphics/battle_anims/backgrounds/new/inferno_overdrive.bin create mode 100644 graphics/battle_anims/backgrounds/new/inferno_overdrive.pal create mode 100644 graphics/battle_anims/backgrounds/new/inferno_overdrive.png create mode 100644 graphics/battle_anims/backgrounds/new/leaf_storm.bin create mode 100644 graphics/battle_anims/backgrounds/new/leaf_storm.pal create mode 100644 graphics/battle_anims/backgrounds/new/leaf_storm.png create mode 100644 graphics/battle_anims/backgrounds/new/magic_room.pal create mode 100644 graphics/battle_anims/backgrounds/new/malicious_moonsault.bin create mode 100644 graphics/battle_anims/backgrounds/new/malicious_moonsault.pal create mode 100644 graphics/battle_anims/backgrounds/new/malicious_moonsault.png create mode 100644 graphics/battle_anims/backgrounds/new/max_lightning.bin create mode 100644 graphics/battle_anims/backgrounds/new/max_lightning.pal create mode 100644 graphics/battle_anims/backgrounds/new/max_lightning.png create mode 100644 graphics/battle_anims/backgrounds/new/misty_terrain.bin create mode 100644 graphics/battle_anims/backgrounds/new/misty_terrain.pal create mode 100644 graphics/battle_anims/backgrounds/new/misty_terrain.png create mode 100644 graphics/battle_anims/backgrounds/new/neverending_nightmare.bin create mode 100644 graphics/battle_anims/backgrounds/new/neverending_nightmare.pal create mode 100644 graphics/battle_anims/backgrounds/new/neverending_nightmare.png create mode 100644 graphics/battle_anims/backgrounds/new/nightmare.bin create mode 100644 graphics/battle_anims/backgrounds/new/nightmare.pal create mode 100644 graphics/battle_anims/backgrounds/new/nightmare.png create mode 100644 graphics/battle_anims/backgrounds/new/poison_falls.pal create mode 100644 graphics/battle_anims/backgrounds/new/psychic.pal create mode 100644 graphics/battle_anims/backgrounds/new/psychic_terrain.bin create mode 100644 graphics/battle_anims/backgrounds/new/psychic_terrain.pal create mode 100644 graphics/battle_anims/backgrounds/new/psychic_terrain.png create mode 100644 graphics/battle_anims/backgrounds/new/rock_wrecker.bin create mode 100644 graphics/battle_anims/backgrounds/new/rock_wrecker.pal create mode 100644 graphics/battle_anims/backgrounds/new/rock_wrecker.png create mode 100644 graphics/battle_anims/backgrounds/new/shattered_psyche.bin create mode 100644 graphics/battle_anims/backgrounds/new/shattered_psyche.pal create mode 100644 graphics/battle_anims/backgrounds/new/shattered_psyche.png create mode 100644 graphics/battle_anims/backgrounds/new/sky_afternoon.pal create mode 100644 graphics/battle_anims/backgrounds/new/sky_day.bin create mode 100644 graphics/battle_anims/backgrounds/new/sky_day.pal create mode 100644 graphics/battle_anims/backgrounds/new/sky_day.png create mode 100644 graphics/battle_anims/backgrounds/new/sky_night.pal create mode 100644 graphics/battle_anims/backgrounds/new/sludge_wave.pal create mode 100644 graphics/battle_anims/backgrounds/new/snuggle_forever.bin create mode 100644 graphics/battle_anims/backgrounds/new/snuggle_forever.pal create mode 100644 graphics/battle_anims/backgrounds/new/snuggle_forever.png create mode 100644 graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin create mode 100644 graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal create mode 100644 graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.png create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_opponent.bin create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_opponent.pal create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_opponent.png create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_player.bin create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_player.pal create mode 100644 graphics/battle_anims/backgrounds/new/spacial_rend_player.png create mode 100644 graphics/battle_anims/backgrounds/new/tectonic_rage.bin create mode 100644 graphics/battle_anims/backgrounds/new/tectonic_rage.pal create mode 100644 graphics/battle_anims/backgrounds/new/trick_room.bin create mode 100644 graphics/battle_anims/backgrounds/new/trick_room.pal create mode 100644 graphics/battle_anims/backgrounds/new/trick_room.png create mode 100644 graphics/battle_anims/backgrounds/new/twinkle_tackle.bin create mode 100644 graphics/battle_anims/backgrounds/new/twinkle_tackle.pal create mode 100644 graphics/battle_anims/backgrounds/new/twinkle_tackle.png create mode 100644 graphics/battle_anims/backgrounds/new/water_pulse.bin create mode 100644 graphics/battle_anims/backgrounds/new/water_pulse.pal create mode 100644 graphics/battle_anims/backgrounds/new/water_pulse.png create mode 100644 graphics/battle_anims/backgrounds/new/waterfall.bin create mode 100644 graphics/battle_anims/backgrounds/new/waterfall.pal create mode 100644 graphics/battle_anims/backgrounds/new/waterfall.png create mode 100644 graphics/battle_anims/backgrounds/new/wonder_room.pal create mode 100644 graphics/battle_anims/backgrounds/new/zmove_activate.bin create mode 100644 graphics/battle_anims/backgrounds/new/zmove_activate.pal create mode 100644 graphics/battle_anims/backgrounds/new/zmove_activate.png create mode 100644 graphics/battle_anims/backgrounds/new/zmove_mountain.bin create mode 100644 graphics/battle_anims/backgrounds/new/zmove_mountain.pal create mode 100644 graphics/battle_anims/backgrounds/new/zmove_mountain.png create mode 100644 graphics/battle_anims/sprites/new/ability_pop_up.png create mode 100644 graphics/battle_anims/sprites/new/acupressure_finger.png create mode 100644 graphics/battle_anims/sprites/new/alpha_stone.png create mode 100644 graphics/battle_anims/sprites/new/anchor.png create mode 100644 graphics/battle_anims/sprites/new/apple.png create mode 100644 graphics/battle_anims/sprites/new/arrows.png create mode 100644 graphics/battle_anims/sprites/new/assurance_hand.png create mode 100644 graphics/battle_anims/sprites/new/aura_sphere.png create mode 100644 graphics/battle_anims/sprites/new/avalanche_rocks.pal create mode 100644 graphics/battle_anims/sprites/new/baton_pass_ball.png create mode 100644 graphics/battle_anims/sprites/new/bee.png create mode 100644 graphics/battle_anims/sprites/new/berry_eaten.png create mode 100644 graphics/battle_anims/sprites/new/berry_normal.png create mode 100644 graphics/battle_anims/sprites/new/big_rock.png create mode 100644 graphics/battle_anims/sprites/new/blacephalon_head.png create mode 100644 graphics/battle_anims/sprites/new/blue_flare.pal create mode 100644 graphics/battle_anims/sprites/new/branch.png create mode 100644 graphics/battle_anims/sprites/new/brine.png create mode 100644 graphics/battle_anims/sprites/new/cacoon.png create mode 100644 graphics/battle_anims/sprites/new/chain_link.png create mode 100644 graphics/battle_anims/sprites/new/chop.png create mode 100644 graphics/battle_anims/sprites/new/confide.png create mode 100644 graphics/battle_anims/sprites/new/crafty_shield.png create mode 100644 graphics/battle_anims/sprites/new/curse_nail.png create mode 100644 graphics/battle_anims/sprites/new/draco_meteor.pal create mode 100644 graphics/battle_anims/sprites/new/dragon_pulse_ring.png create mode 100644 graphics/battle_anims/sprites/new/dreepy_missile.png create mode 100644 graphics/battle_anims/sprites/new/drill.png create mode 100644 graphics/battle_anims/sprites/new/embers.png create mode 100644 graphics/battle_anims/sprites/new/energy_ball.png create mode 100644 graphics/battle_anims/sprites/new/fairy_lock_chains.png create mode 100644 graphics/battle_anims/sprites/new/fishies.png create mode 100644 graphics/battle_anims/sprites/new/flash_cannon_ball.png create mode 100644 graphics/battle_anims/sprites/new/fly.png create mode 100644 graphics/battle_anims/sprites/new/fusion_flare.pal create mode 100644 graphics/battle_anims/sprites/new/garbage_poison_column.pal create mode 100644 graphics/battle_anims/sprites/new/gear.png create mode 100644 graphics/battle_anims/sprites/new/gigavolt_havoc_spear.png create mode 100644 graphics/battle_anims/sprites/new/golden_apple.png create mode 100644 graphics/battle_anims/sprites/new/green_drake.pal create mode 100644 graphics/battle_anims/sprites/new/green_star.png create mode 100644 graphics/battle_anims/sprites/new/heart_stamp.png create mode 100644 graphics/battle_anims/sprites/new/hexes.png create mode 100644 graphics/battle_anims/sprites/new/hoopa_hand.png create mode 100644 graphics/battle_anims/sprites/new/hoopa_ring.png create mode 100644 graphics/battle_anims/sprites/new/horn.png create mode 100644 graphics/battle_anims/sprites/new/horn_leech.png create mode 100644 graphics/battle_anims/sprites/new/horseshoe_fist.png create mode 100644 graphics/battle_anims/sprites/new/hydro_pump.png create mode 100644 graphics/battle_anims/sprites/new/ice_rock.png create mode 100644 graphics/battle_anims/sprites/new/impact.pal create mode 100644 graphics/battle_anims/sprites/new/large_spike.png create mode 100644 graphics/battle_anims/sprites/new/leaves.png create mode 100644 graphics/battle_anims/sprites/new/leech_seed.png create mode 100644 graphics/battle_anims/sprites/new/lightning_rain.png create mode 100644 graphics/battle_anims/sprites/new/mean_look.png create mode 100644 graphics/battle_anims/sprites/new/metal_bits.png create mode 100644 graphics/battle_anims/sprites/new/mud_bomb.png create mode 100644 graphics/battle_anims/sprites/new/mushroom.png create mode 100644 graphics/battle_anims/sprites/new/natural_gift_ring.pal create mode 100644 graphics/battle_anims/sprites/new/necrozma_star.png create mode 100644 graphics/battle_anims/sprites/new/obstruct.png create mode 100644 graphics/battle_anims/sprites/new/omega_stone.png create mode 100644 graphics/battle_anims/sprites/new/pink_diamond.png create mode 100644 graphics/battle_anims/sprites/new/poison_column.png create mode 100644 graphics/battle_anims/sprites/new/poison_jab.png create mode 100644 graphics/battle_anims/sprites/new/power_gem.png create mode 100644 graphics/battle_anims/sprites/new/power_trick.png create mode 100644 graphics/battle_anims/sprites/new/punishment.png create mode 100644 graphics/battle_anims/sprites/new/purple_drake.png create mode 100644 graphics/battle_anims/sprites/new/quick_guard.png create mode 100644 graphics/battle_anims/sprites/new/razor_shell.png create mode 100644 graphics/battle_anims/sprites/new/rock_small.png create mode 100644 graphics/battle_anims/sprites/new/rocks.png create mode 100644 graphics/battle_anims/sprites/new/shell_left.png create mode 100644 graphics/battle_anims/sprites/new/shell_right.png create mode 100644 graphics/battle_anims/sprites/new/spacial_rend_slices.pal create mode 100644 graphics/battle_anims/sprites/new/spikes.png create mode 100644 graphics/battle_anims/sprites/new/spirit_shackle_arrow.png create mode 100644 graphics/battle_anims/sprites/new/stealth_rock.png create mode 100644 graphics/battle_anims/sprites/new/steam_eruption.png create mode 100644 graphics/battle_anims/sprites/new/steamroller.png create mode 100644 graphics/battle_anims/sprites/new/stone_edge.png create mode 100644 graphics/battle_anims/sprites/new/stone_pillar.png create mode 100644 graphics/battle_anims/sprites/new/straight_beam.png create mode 100644 graphics/battle_anims/sprites/new/substitute_back.png create mode 100644 graphics/battle_anims/sprites/new/substitute_front.png create mode 100644 graphics/battle_anims/sprites/new/surf_new.pal create mode 100644 graphics/battle_anims/sprites/new/sword.png create mode 100644 graphics/battle_anims/sprites/new/teeth.png create mode 100644 graphics/battle_anims/sprites/new/thrash.png create mode 100644 graphics/battle_anims/sprites/new/tornado.png create mode 100644 graphics/battle_anims/sprites/new/water_gun.png create mode 100644 graphics/battle_anims/sprites/new/wood.png create mode 100644 graphics/battle_anims/sprites/new/z_move_symbol.png diff --git a/graphics/battle_anims/backgrounds/new/aeroblast.pal b/graphics/battle_anims/backgrounds/new/aeroblast.pal new file mode 100644 index 0000000000..e0b1af5bfb --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/aeroblast.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +172 222 230 +164 213 230 +148 205 222 +131 205 222 +123 197 213 +115 189 205 +98 180 197 +90 180 197 +82 172 189 +74 164 180 +65 156 180 +57 131 156 +49 115 131 +41 82 106 +24 74 82 diff --git a/graphics/battle_anims/backgrounds/new/aeroblast_map.bin b/graphics/battle_anims/backgrounds/new/aeroblast_map.bin new file mode 100644 index 0000000000000000000000000000000000000000..a7275a0747da421e5290f61115deb0f4fbc84aa9 GIT binary patch literal 804 zcmWN~iJy#h9KiAK@7aeP*73})#X3LVF_>jt>prIES(cnxM9CdRheWw;GppQG?xW=B zK(0uoShF2+)RwC|Ay;yio3`Z-c)#9GG)^3YB_<9VDMC@=@gc=1P68#6l9Zw}4xV3< z6G@^Bl1y33Q65PlC9MJ#@l~QSj$4JQ7N7*gttJGiP7P`bAyTPD?WpvKCyhGP73xu+ z2BZrOX+&e1_-INq+~&0K(UMk@9p(YS#Uq2(LK`w^OS{Q3|3TW*A!<4bo#;##9)hk! zvgk&4=pnfe)01BCh~z&?ZypQKM-KL-pM?9v0ErA_5RXTt(_n`11W$$-N^F=EJjK&d zDR_ow8P0RU2%cvoqe8r3{4dJH(PVmQSvg}EOJ>N7V>}a>IMDS^BHM&tA|kHXM9Ec3Uq=8^qnnri_TanGe`v3bx{W z$TlnCBR)nxVLPAFE|~dQUTgxxznI>|d_pU9ZSDzNs;+`h1PtX!tQl*rZR!99RiJGKkG+FbU=1#b*mecYoDOy1*Y9-C6 z?73C6s@idur;-uSY8q6jt~Io#hE!6ume$rZb?RtcG4-^*N&`*ThT2G_u{P1BdJk%x B*LVN` literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/aeroblast_tiles.png b/graphics/battle_anims/backgrounds/new/aeroblast_tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..33af8f482693e86db21f70875683c7c73e253f19 GIT binary patch literal 2902 zcmV-c3#s&pP)q%#j7N`3&F^6aC_?Aw-IHkNU>DY;iyIy-GkV0E74$0CEM$8E~V%k!5EG1;B3v zxE=@t2BY~o7yxU@00sCddw%HqE?~34AHUrK$PM691AeU4wg6shK;Hr`3}7h%e+#w& zUb%pOU<{Y59IXJryDWPcmR$IPKR%5GAfCLSB;*)JG$70Vb>MFUJQX2OfO7#@S->M7 z0O~6U!!V+hnHTG&^3mTo3HfRKhm)oO>KpYgt{?WDXJ7&F69WkUDgfF5y?#(wT`)uc zv~2+U09XM){j=HM3K&R2?~nm?3s45skMyrrt}mEya##lFkW?=%BJ}^a1Yont3D9+Z zztfK3X?7%GG)6=T5Ksin@+cxR>ru07<1iu{+C_l+S`Il)EE=pER_*&NYk_Fg!XrfX zIuV(|09ZeG0)=;pf?M0dUDSLO97d~$t5J#6KO6wo+{zko$_DHMplz0y0T%|aWWYO? zJ$ukmL8|!zaAN?IOoU)%J-AOE)OkI>9|6Cb7*h8Wl@E3IV~q^ZSvir*5%7xzoL2(A zBLe^+?I*y;N`Q#rvGAbduJ=7i2#ZcOfT2;o5si92(95XRUUE58LjcWb%_dZR7C_DF zHPwU!KzyR8D{auquLPWN!noNZzz-r4K9&C{5v5ai+a&?0S2LjAiJEMJuA2l+INSd*2tP1MN{oLe8em%o$bL$?s8i>$ z!bPEAl17*$)#XcoM`QrDE_ zfC-@}yoL=U`%nUK>!`B_vUCG0v=Qau5COLG|4AXhq#Zg2SQ8)!3FM*fS&_Ws=}yyu zva8kMf<eA>C`ZP#-ReydkQ=~r>g#nH zD+mY}z}?CPTnWG#jkbmiZ4ed!YIoSDZgs&1EHODx$%B0?56rc7p$xc`05#ga7l1Yy zAON551UwP|%0a+@Dz%Ri6pGSn9bZrl*N@(zgcMLCHN6}G{UTsu0r1>FOH)P=p-WoT z^#wMW&`L=tDy|TiBLY%T9u#4ot`!NOZV@N~kT9$xXhM2m zRRiu@zzJt03sAaQO1a4+uaQNXnkU=;RA-SKSz-vU||5P~=N zM0t!g;MHJQ1S|yL&~|bJ?3Dp-5LFhR)9*K+-$;Ni)FT6!RRMC^PoI(1ywl;nV>h-I zq=GTxM&tr~1L)Xfa8UNKP_-qu0cdB^HX93LLIZ-K0jUePaa^!ln<5}EfSIbbYJgu2 zs1*Q{834ZAVu9V7Sb+aK0W}LCR@VZO5s$q41q*x&Xchpke=necfEfec?&Lx>VCDc|a7qgrMF2)|PXH26Z>|jB z;tv6?`v!1s01I20cL3}K*!56?^zhJ@=x&8)!jsTP#Gb0hnOgjV*0R{<<$o0L^)|pF zHGp0Lkd^>X=_1InV6Obf(?jpj0w$G!XN9!&N&IrJJxG%zXUx`Yd&9|@YM+cR9^IyLcq=4faa}$yk7=jMV;L@ zL0~{w32-FHfcHwr4^0qSREt%B<&Xi-%vlF--_vi|YQBHsqV6JKHbDR@=vn3f7AYV1 z!fpXTqh0~DAmDyftvYof!jiw!*x|CWrwj-13dCSfOjc1--U#BExMc^X1*{CrzB|dz9e~p7Lkozy z{dPxuVu+7NV#n#6$+iJSduq28+R=8@ZI=Q6wd4JTtQe@dW08@jI?zV#b_wu-0rA|a zdfmCw$2G@^ND-nU;MxYk7A>`Njsj(+sjDuET)MU5SFX6Qlf$2ne}_p zgKUu$0P8o!MCVsJR~|>e@4`){TCF|EW(M$u0H21KXj8HIWi>$Mehwkf7cDl5YnV{F z%3w zIZ<=t-2oA-AL*f#p#cCG_M;sExE>wI7TSP?zCiEyqWVsNI{noHIAB7kiuUAi7eLrG z?}xS80qDHLetQ?dUT0w5uL1LnJs9@d;hlj019K0E-Dw%3Gynhq07*qoM6N<$f^i)c AJpcdz literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/aura_sphere.pal b/graphics/battle_anims/backgrounds/new/aura_sphere.pal new file mode 100644 index 0000000000..238493462b --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/aura_sphere.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 205 82 +238 205 74 +238 205 57 +246 222 123 +238 205 57 +238 197 49 +230 189 24 +246 213 82 +255 222 131 +255 213 115 +255 213 106 +255 213 90 +246 213 82 +255 230 156 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin b/graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin new file mode 100644 index 0000000000000000000000000000000000000000..27457c9a1651b819f7523b850c7d82f049f802ba GIT binary patch literal 892 zcmWN}2SZf_0EXf3z;&;S6I{HXsGx#^8xhaNjkr*8<6gMUw9*PlOKsC$8coxtrA;kt z+1B<{+tZN^OI!B*fG1iOF9pOAPXtw?IyIzTLQ|TN zh>~bd3tFO9v?dvlX+sKaQ9Ig`N*a+4bfi;Nn2s{&Ocydy7G3E^chrNP^rAP)rVlyv zC7Me=<%YzFwO zlu|}e&PA+ay$%K!a|s*Rs2$2-6PI!sx|}PxlB>|wRB#Q~qU*Sx8@Q3!O$u-37H&ni zv6(I0jw-o>JGqPK-Q1%S_p%k;$2PWeKZy_UpmL+ZLp&@VVF!=$80=KIi^q9FJjqi$ z%`;**dw7=T(x?iu_A1=U^Wp_w)td7JuEAI4vM7lHFS?=OYXSu7~ z&E4I@J>_2R?QHi+agMV4I#*#rp^`KDIdsfPdG1e`86T!a3nBwN(1TPo*c#%Y&i62@ zz{5SlBb_+PqqQNSqR?aHu^#6lkFP2VGxH~Sq9<9CJ;hU9Y)$iY&+trZmS=m8=Q=iz X^7&ri5^JFsd9jx`vee7GoPB2iycXQs literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/blackhole_eclipse.png b/graphics/battle_anims/backgrounds/new/blackhole_eclipse.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfd58625e7e2c9e65999d0d1a159306212651a5 GIT binary patch literal 4122 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/bloom_doom.pal b/graphics/battle_anims/backgrounds/new/bloom_doom.pal new file mode 100644 index 0000000000..834088c8fa --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/bloom_doom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +131 230 255 +106 213 255 +98 205 255 +57 156 180 +8 115 123 +180 189 172 +156 180 164 +115 164 131 +74 131 106 +49 106 65 +0 106 74 +0 90 49 +0 82 24 +0 65 0 +0 32 0 diff --git a/graphics/battle_anims/backgrounds/new/bloom_doom.png b/graphics/battle_anims/backgrounds/new/bloom_doom.png new file mode 100644 index 0000000000000000000000000000000000000000..de5553ec6e9346ea9ae5a681ded225265ce51990 GIT binary patch literal 1788 zcmV003A70{{R3fFR*&0000mP)t-s{{R4k z=KpHd|6%t>09r8sQWyY1001BW-t$YO000Ju zNklZy^`8i6vyu?WZz)n4G=C|12gudi&3#dZ{EP-1u`qP_3i}lq+euQQrMzR z1ENf`LHG%z?LFgF&N=t%NV>vgoimw?e0A^d{?DftA;5lVvWpg3<9ohQJ&8u3f}IDn z)(mVh;Kij`zGN?5H=hS=T^heyKd>sW}A*1bJN_Z4}4;Z*Zan999pv%`qnr?FFKgU3r~07a(>+JWc!BCJ;`ddE2!(uwmIF zaoDYU>~dyq>A)LsUcA079S~WXtlvUKaO9rghuj!5iz25*RSs2ijLFs(!ctnQ@~-*S%=zNLrK#-hl|r;-3PCK z=Z`k*lCyxvT-x8g8gBp*-6UkYCSY3uts2G451(uLMuw+|4Zuz*z$Z^|opmz>1KdklI3+^nF=m6FOpEKecT53c4)o>(H(0ii``=!cz zIby)EK$w2^6fpMtH6Xj9&3T&&@F~v@ zyI~awE#A||VY%OjlDO*ky_&!~2%QBM1WeOp_qh+of#f!w?7qgnrWOB9r@|Xx>`J^M z&r&4H0~{FpxBdP=PIjXkRWpZQjuH!eBp$j90|pX;RnzA{K&~s}V?8X5o7bacpW>*n z`Y02AWj1{kAkS|uy+Ev4UNL?V55$ec}gOTqzoQpVS6v! zb=ovYc~GuA?Lrs6)Efo-)y*q?I~vTtH37zEl)&!j*+5yYUiZ~B-lqoWyE@(J^oCYS zHv#gh|9iau`W;g(dQ`2AJUB^bHwIW1{bfGC^FM50ohs+cOh8n9xKXG5l-~&3Brzji z&1YdahyUh_k3d__!ax86bDrU7LL?#fC9*zVjRBCtfNTmlx^(29*J2AH8 zzX0wU325U0pMn4$#lE3fspritvT)UmbwtKqDiQ{K{KH|+DmW#1VK&TnrbW^-;TJ%OO~z*{E|P4l+V46^_krGqjX++Yoo zBkurpS!VsEu5XjWu)3 zYM>~hXs(U~f@eO|E$L38Hqbf=i?mW;U%%Z`*_;R!*EN9{O_lgCT)4_C`U6jj#v+gn z4?u0c1+#*^oqECltwU?C;p~`CpWX-dj3w|08 z*DXnDp5f4xNg!lHUqwP5`dFHwYRFQz;KxC-aNImTWs=tfEFdXwtH~H+9s~6#Lk2;N z?KRTMSL+2)EnkF;CoBr{#gd$m-!VRW4vcR96sgwP(I>)L`A1mYGM*5$fuYvxW|H;Ky zExX5y--$i_7M3}Dke>}*w2=~zpNh%UwhmnbUkzNRTW8ZxX@+-Y%Ns#Xq=)EU3xYr@ z;J2lT9t?7|Lz(W;RVkF&LnKJu!%_xnLR%BvMh`~RS3OLr9(BSqouXVP2C|%Nm(kMR zyTYx_pHr0zj1q>r8dG>FBI_yAs6L&*C!XP^!~jsjK-?;Ye;=EH@ay3$AZ2P1@h))x zRf4}B&I3+9RYUPpz@=_DwwNln`9^#%&arz;ttz7@3p|#hrsnloz-YcQ1Sk=z~KIsJH em0#@V0{;cQzwpM(e%f~c0000 z=t(bfMQ{4hmypOKpMG2<`ZIuwxkOw_0RtHXmqp6Nx z%;QNa#8W)Ye4Y`{@*L0eLbx*YA}_Ikh*-!X7PF*0uzV@Ys^XXPvUr78d5zb@m1QNY zU?p#eH+hSmGV9x9LP;f(uZtg zJ39#OWLKp6BR)pE`GimTjQl-CEB5j^Uo0A=FWJXed`-+Ze9Lzu%f3fHu%83`h<@TA zhxi%&!eNeZl;AOrN2*WoEBcL-oZ>V(!&%PpJ37xF{K;SFZ~oz5E};LYMh;j}j&_V= zEm6ZY9cRTm!L?l5s^hw@=b%;JiB56@tDzgYv6HPPZt7-kZnbbrw=!07s<2yIDNc2o z)2%kna9g*t+Pi~0I@9XpEO&MntE;;?+ua?=aS!)&FO?|Qz1_!st&oeU$UyoZb^P)004jl0{{R3eocQU0000mP)t-s00;>G z|Nq|h_PyrjoYmEX&CPSYy;`iSL7bd1i;Ez8dk|t`07^;#F);ujAOH{$U7Fwv000(n zNklwLlgcGWt{vfbu62l~rsRddo- z6CB%e=A8GBUgJ&bEKT z1&b+L^*Jz5#=vcum1f76aSGsQ@Uf)j3nqN1<=A#P0FI~hfmcp@&~u$nq+fAu%2K9w zI-$kRiL<*G<*iDs*&$$LJf&FtyvSrpF`ACuG8_BmwoJg$2ogrFNa{voJNXg6o5{&a zyHCFN<(zo;Vn4IfuuglIq*m_g-Il56;4Jjh8Tqw0+9kQKIecx2s zR;^8uvsn1+v;DMD)$5+upCD4>!^(K%Pz@qEskvmJ>S5%L3c^&@36%9c#xb%e#*6 zp*)D_Nv~Q(Eu%7xN$&@$Y?NfFU{);aI0&oRF*L)Ukc>^o^zy%3}!`Spa38z+WV>u?W;&~Rt-QUm(UW~%ywa0 z(l;vxm$B`+v~=WnEHG2mYt2(30QP#VqR8S#4NhyCRXwAZRY}R{W=>;TdKXKUR7Fi> z6WPMM>m{SSV^z3}Eo3^o*=m$!q|&B${xbBP-u1G^dkujzjM#U=SWyUsZ z!bX$6+{ zQO?OC%q7TclEjn^g=u1f>8f5dEXufFtm|HlX1;q!JII2{CuE0Ku8keP5EE)h=99Bc1nuoiT`8@CQ zZ7jBZIava}?z+!XqO2G~ClJsh0S)sZ$+NDm6L3wGVk{byWF~7VIIB@Ibq;)%k~UHL z=cy83R|dVavX(0x2u^3n1*Gg{?dioRyZ{(TCK6CwTLV?p#B{2lZ<<8{x`(Lq?aS#X z1p1l>uPwKW0)i=P!lm!cPw2XK+9Dj}IuVh&n?;97AT zwYIR?bSN#mNY_ z!d4TR;H1)|+PQjlWST`yj#KXEHAXi}O8(~(7dZg>7i5Q5$?Iu3ZIrCToSZm->Od4~ zFmu;!`d)f>W}3RbEg1pO+AkE~l~I|*i>}?jMCgI3@pN&^EN9oZjssxZJ)cakJU_ul zx>eJ(ej{dT4q3^nnra?i2@i@cix&XbX2|geYs?(yE6-E@F<1Ia#{^5rTVxe&W1UR$y;l?>uFH5@lxxR(Mec}H!L2Hap zoWZ?NgbGxuScs*Su0=(b*zqA0GvkHcM$6v*dfs--Mgue_tvyLARI1r@9*W!u#EL~> zbV-gI2WYT)qdWXT;5;&CG_*LaR#_HVK`%2++lbEBP4SJIX_yP(5(VvMNLh+=^j7Fw zP!ozErmHGn9HJ76&kidNHnyR2Nbv)lAef?p17mp-S{6U~F3%UUp z0bb5x!GXMJGvTR7C=MUyhBth?T|Kj`Dl>Hbhj~5_NxaplmP_iI<}rvD=t(S7 z(=$f%9J3W#X++}fU_jjfvUrh!BKu2*zf)|M@_C)A#z|2YR$e?x)cf6Q@_B1q0FZS8N=_JBcRYXSrRmVMf z_|q2b)^`7ZpV6ZJqJ7PKKF>F@4#2|6(XIlAP!bhAH|`8kQ|M^S*KR*1O5a&p8@qDXYrk#T>diy#5NIBq!U$ z5NN`CmP`S#I+(?HnKg<~%|RG)cLYwgL(<0T-vme74LnrZ30 zj_yll(rz#%efuc+$NBnizZAZ6U3mlN35$Q^@qj65%wKZ=#Kn{hfXcxhd*I*v&ASWW z_gu*0x7}6><0wYQeX@wWv}EF8s6>C*cFpa7=EVPHo2UN($aBusvpv;!QjO1du`uW2 z7ij=(;rMbkxKMvhH~gI$pZ+5t513x}^D0P?j)o|CZe?U#A4tW(31UfqL)J7i{8_rFX3bX?1yGw{rF#ALe7tw_PFEQB&J}1BRDCzWvU-Ei1 z2k!BDv?LQs+#EOzJVW@lQK5~&X#o8F&$xU1jWsXd@H?{%oym(HB+3P}n)iW`0qu=W zRs-NS$-m&2uReJY?2k?$ItRMG-^uf~hSn~n^-8VDyFv=LU}Kuvg$PMPz|}|phF16_ z`^)EHs4W9|W?8Bm3^lkGN;sZQ7CkDplpHAh^=Fr(7muW;lkdbX0X2t0dK4A}@hku!lN23skp$n~MGzed6JePsv@$$6H`*H$CK2Da|*6$Xg z`^xQlsKHd!=ar4R1cj^|>To=p-2?g(c4I!G0SrC*bDdfgXDNBvL$R%v(dU2`A z=RqMU1>LMw4}zI+yjWf2#_wEazKEXtL{u=elu`wBj0Ai4=#x)q z_m{LrlXX;}BcVoF=AE7t7K|9>5~vVSW;Z!-F)BsC@b}sy0WcM>*w$X5gt>V`BB0YK z(k3r5@ERY#M5=62rBI?)*ReZ%Y={J=ozWQs-z<*^lzWF4)s#}FxYywrQO1EsSqY7; z60Vu@6xkW3Gi&X$V?N8#lIc`z#<#BfVQ}0IXyd90GmsK#|8QZ5*qS7-Gd|=%%g0^2 z1JL9wNJ3%ipnM=Ig?gve9xl&tLWCbE(J2TW)Y0}< z$3KHYi*obYIZ7q#7`%kF<(ZJeL)Y_pRZ@)OizajzG|ODD0iOz1f+MTN859&d?4E2( zXp;b3nt~-69{(6+b^En|{^Ep%tZV+?Egv)*Pcf4yX`PGU>gl zo{HDnZo5CGyonL$#y=PB%}@R4TOWwQxb=vo4?0~sloVoqndQ@PRD^S9D%EVf-q>fE zy63hp2YpT&`X_Tf&Bb>#Sdo+h?As`^ou=2P7^w+SzUdYPH_FRK2Jv>3{izGz+;Kd& zry;#UIEw%n8P>hP}WcWlOPsggXgUx<7yn4bOdoKaJu@le>2)if=kqhH{~&Q1Nt_2}YZvhMWZzu9gq5SbT4&4 zY|AW^vI^2;6gfNqMhO^&0?8t!t%}9Zfjsx&?)hl+3^vT@$kDQ-vdr;40R=h&I5hNZ zKC8eo>$1pwB_@e7tONy0>1@HE13vB_7ytg?cr^YBB}2rLC~u0&?w{`gDcTVX-8a)- zq}$rh${3Pw?x?u6n*98sYL?S^RZBtT8}o-V`X^~98yVd9+MA#L-@AU)q9Z)x_=fUK zw?z&|+o;vDuG3s5vklqb)~DkPc&nVwX7mDX9MG!`oi~9m%0)S8wkMH0n&Itshi~v( zmT8s~@H1JJeXYm=P=$QD$@@i$)HirvKT&0AxBZ3h!L4?9Mgkk|6{rZKFN1s>sH9MJ z(Zm-_>j!}=Cn=F_wqFX9$iQs}`HD8TA!E5*Oy?90B`AhCVswy)e`zFp0t&CY9Uq9m ziA?T>FX@Gcu8V%4aymv89(HNhF?cC~PW-UweVvf16pL#drX_MpI!Ep*@Z(pc3$(>t zm$>`#w(A^~*=DVMJsKc=xt;#qa0y6lUb$E(rhTBMEnlR7=k7uIjt;(>Evwc# zu-lGvq+*nE&Y=w?7Oy|M8!m_rt=cRi1*D{nI8eapdA&sOX*UHU2!f7x@j-kSLb{kH zR541MqN4atd&uJeD-T{C5LVo(u5Fs8rlWl<%9Ms-tTr8Oq3{d^lkyTTIu}TEW#j3s zOU;<1!D&P>S#SH(#$C{IMJBJ$c$mNxB20}8-|X;;k2*F%$rr33?0dbh_Q(NtU()e^ z8Tu$|sw!m;+J2}81wS$yoMhveN<|)cjBQ!RJYoBPo&pG-f8;&*E$vKfK3~1U5{?cW zs2&|!us5_6seh0&rl~5rrWKV!!6INk>@TKMVJ={Q*g7(;M{oa0Sm_T?u^}h?qsVsu zavzBNTBz7nShUixa5cS7$cvz)B7ONh+V2GC4++}3nRa=Rg*_YZKDf725*eOhX0V$4 z__@>N?c;E%|CtK>NS^P%qpQ5~juJFrP<8LZqoM6j-fl0yG7=d)E3txAr(>6M0TOg> z?)7I8fgi|s{4RBL*FBsIbbGma3q5@HwsUWH=;}!hDWk@Dt7uF5%cBYbLx=TzhqcOP z32g`*Hl5cBX+4k56a%fFuX&!M)05eY;GGwEz;Jf=S^Qw}DvdwAa3WO$j!ebngkI1o z*vlreRb}o8d^2G>7XF95_oszapQ)Mp{3IrLTZ$im^HgG00Zb*!1tcR}6+EF*3*LR` z_k$D6zb5L7-Mf{~x0Rjw<{)j?_ItsRx=$>p5~&2iOcJqAiCH`&K87eL{)`=Mgg>_g)iJ~STr+aNyCe@#rz$XlG|zb)mo vYX0jj{>wg?ss6^E3ip9b*Nts<(3$){D=%%Nmb=pf00000NkvXXu0mjfT?c7a literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin b/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin new file mode 100644 index 0000000000000000000000000000000000000000..20e82ac1a31f5ec7869575c8eb0bf723a99b1edf GIT binary patch literal 700 zcmcJN*;kBl9EZO@uQ4;EvSe3}5kgTiGRBy9WKXiM;gx;Qk}WdH5|J!fv+sNMCCg;V z8p0p)bL%F@ah(1F=ec>#bMv|RM2bU1Q4fRqh>Zr=abS1SkVaZ*B@q%vW5S8Rj1<*` zrZhvE6GaPJVztr%-Q75VJ`EK`7B@|i?A(b2}?ySL&?*X1irB4ednk6XSA2PtNX|ZC zKL}z#tGphr#Q_S7iXzH$9a`{LAb~zE^|e=$~CTYL%7K;%DFAv z;VxzI_k{aA;31EM$2_5er@}Ly^Ma6rN?xjhSG*S9P{mu`3Gey9M?MMFeC7*ZYk!vh g`9mGGb^6!-OZfF~#d6k|>RUM9`JrR93K=550f)Za#Q*>R literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal b/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal new file mode 100644 index 0000000000..3470d8818f --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 189 49 +246 172 41 +238 156 32 +222 131 24 +205 115 8 +197 65 0 +180 57 0 +172 90 65 +156 74 49 +148 65 24 +139 74 49 +123 65 32 +98 49 32 +82 32 16 +74 24 8 diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.png b/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.png new file mode 100644 index 0000000000000000000000000000000000000000..abaf8576d80bce931842fa1d4bcb6b39901039a8 GIT binary patch literal 1696 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/dynamax_cannon.pal b/graphics/battle_anims/backgrounds/new/dynamax_cannon.pal new file mode 100644 index 0000000000..64a2e4566b --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/dynamax_cannon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 164 255 +255 106 139 +255 131 222 +255 139 230 +255 164 238 +255 189 255 +255 205 255 +246 230 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/electric_terrain.bin b/graphics/battle_anims/backgrounds/new/electric_terrain.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c3c757cd2cda17154c139ea993ef4d50c768846 GIT binary patch literal 2020 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/fire1.bin b/graphics/battle_anims/backgrounds/new/fire1.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b0c40159a18053ea8bd8323149c367ff7564966 GIT binary patch literal 684 zcmV~$cT|mG0Knn*{ko{Ea$SV@y?l`^d!>6RdtF>4tBhomZ2G!Z$xb%eWk*s*ijciS z_9ldLI*vaa=Xf3u!$p`R8ZJ4~L|};=b4g0Q@o_=AB6T<139ywmg33^qa)v{e#{*9) z7~xhkkri>%Ed*8~x-wO)%e^pFr5e?ZL~l$ruuyYUGT0SqwS>h&ZL&Ree5`qOs3sit zx<XdSLG<@_UJb-t-Z#J^Rv6#o6gEiW~z} z;y|^{A^r`L(mq%n9K!ElhI;r5J%nKlXM`^!r5Yu#hZ3eSnlX%3`Qr|$=i$na1=K89GCAi;HO#l9?2@k?d$GL{QsiDL!vuu^8MVl``AS<5<^yPgE6O4~pp8|A|o z^i3*vGh5gy*v58tuv3u4E_SnLmn_~Z|LkKw2L#EaaF9cS!yMr#$7*q0{oSOeYF;M< zCrRTJ>4xTWnhY{IBRI=B&XXm$K)jw!POLCr34K3lC{)*SUG4OlKJKpob hz(13ZeB!fH#C@TVuU2!W;2Ym5;)g-#Pk!-A{}0cV))xQ( literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/fire1.pal b/graphics/battle_anims/backgrounds/new/fire1.pal new file mode 100644 index 0000000000..505606066c --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/fire1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 0 +255 156 0 +255 98 0 +255 49 0 +246 57 16 +238 65 16 +180 65 24 +123 49 24 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/fire1.png b/graphics/battle_anims/backgrounds/new/fire1.png new file mode 100644 index 0000000000000000000000000000000000000000..5f29e792faefdd982c3a1c305b9265287ef08905 GIT binary patch literal 2557 zcmV003wN0{{R3gj(ju0000mP)t-s00030 z{{a7-0RLhD|1kjeIS}qa5VS!UdodUQ00000000000000000000000009gtL@000Sy zNklt>LvFCgyLA`hGq8GzP zJ0`!JkN-Idz1hI?c--y7Kclr1d@R;h^!H*Pv#s@4H@sTlhBgdb0wAs+pnzdu8a;4+ z3v}xRI0itsLN{J)6#!wheykr@!CQOayawLs%Uyu8t#ps+w-zq%T~<%gclw3~cwp$C zJXR(Kz+1vp{cl^0}Df;c+ha_7G)UL0&e>+h2QD;WDTV8#C7Y-b@E zNQoK|C?U{%t^)(p7D><)Xwj)jwpHsfR?om`4Xgs7lg^?*{&SWTBXIgJpbdcb*FXxO zvvBdipu#wEc3Pxrrp1X@W+_m97~cVx7ho;R>@+*z_+lZh0>TO?n@WNg1y+kRiiz~T zc#8nxcAjwb{s#Eaxs%A*TB&lZKKoGFNt9WPT-Y%#o>wCj05a8^jF@p*g$D3EcpuJfStR3({^)Pws2{BfW zyWl2{C;Pw@wa`+lo2956utJ^rgt1MPbNc@9kU(Rq1I-^Bz?Gr`v_Umg58ed0LE7E| zwFd4EI4xr(Q?%0rz-kV3V4q#CT@8#L2ojhWP_3y;k!aKS0} z0H}AShuyo#*cYIE1-86!RABonpp_#={|JHCjW>6o{rHr_ExN09&eU|69F(zG|I~rU z_MhPe$fulr0ph(YSC@YY%nloO0W5D%z<#h!F*PDcoWzFWgvaoDlfIrMe!{R_?{#>dH!S)_B zsG(%ar}1)v2CHEqApTxv>rLS|On$VrRtmN|I3Rv}#)mh+Y0=Z>B*57L@o<@=l&)g< zoE?zn{ET<+fmY;a{N^$dBND}p0}4R8@K4-JO{kc&2G(;14w3TX@wt zS=0yQ#6*n;wvD$iZ7Q}f)3jOvM*AR!n9rcG+M|i~zQuJ7!(sc@Cg>z z0z4THt-!^alO#pC zd*FEm%nbwiY-ZAiBj`^VT=?faA^0dNk1jf~C&i~}GIXsJ;;YSDOW&kkr;7DmMo0y9l90zo6~rw5`d+;a$s zA!VSxUNyLVlooG+BLTY(fn_6ZYC5~y5CUrl{7Jy;8mI9~R!Z>w6Qe4@1;0Gi-+I53%hZa4KKJqO9a{^MkNn)$76cArc|~^)>o9~McEHWo}BFv zm=3c2DWRgEx0WtrU}O$u&%&&{_G~v0@Ib&*KAdGTSQs&|@)q6&NK>L1frmydJQh?X z-Ecd5i~^9EwJOoX+A5z;jx# zz%tbr1L1yzvri@jrViLLP~?(1V0!&B2O465nWhDU1$bp(Zxk4NVAo&_RW2Fp1E!|e z3jvQ=N@Jj}Tg$);-Or9@mnCn2w*!P|cV@W=5JF0jP)RF$5!!6xpW(9-$wEallKAlVSoIF}pn_RO9+Kfxw17 z5&;&pG`*ob@gxTeKh)ibfO{OpNMiC@Dzi9=b=M=Gi(Jmw9JVZ-8_9D8gkyph53L85 zZAUAUNQEH4uZV$Cgqb0E!cQe$76d5a9)qJ~efM0lc(T#$EG0WZL2?JX^iZwc- zkwXCNUBT}i5Kn#&+>`ye%WH>_t6>%qyxx4TLGb=7@5=`!1t!) z=!nW!Kqr3!HYH3yqR9{eN3<%0Wz$(2juo{cJuFUG~&n4FW-9DFJW2K_GNEj#|p) zmf}%Ta<98GBvPs3OJ;)GbQFQu>^a^9GzIh_9Cg5k;z5@tskWN7P$9)vRX>)jTtQ{waM=;0T9zIKr$%KBL!;l z0WjN@ywCQ85kR169Pop8#{b*2&E`8FyaaqR@SJ})F#B$x`DWlT`F{hOZwCGgz-?c4 T=a0?+00000NkvXXu0mjfgE@)T literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/fire2.pal b/graphics/battle_anims/backgrounds/new/fire2.pal new file mode 100644 index 0000000000..36b1870d1a --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/fire2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +104 168 168 +88 144 160 +72 112 160 +64 64 120 +56 80 152 +64 80 144 +72 64 104 +72 56 96 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/focus_blast.bin b/graphics/battle_anims/backgrounds/new/focus_blast.bin new file mode 100644 index 0000000000000000000000000000000000000000..42bed6c96f9587588b049a0372527027aecfc6fa GIT binary patch literal 952 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 LNkvXXu0mjfoy7AW literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/garbage_falls.pal b/graphics/battle_anims/backgrounds/new/garbage_falls.pal new file mode 100644 index 0000000000..16a76f920b --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/garbage_falls.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +180 172 148 +159 156 129 +137 140 110 +115 123 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin b/graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin new file mode 100644 index 0000000000000000000000000000000000000000..8eb8e48cd2022588546d9c8335f35ea7b345dca6 GIT binary patch literal 704 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 F{{glD(u@EA literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_player.pal b/graphics/battle_anims/backgrounds/new/giga_impact_player.pal new file mode 100644 index 0000000000..ea01813a95 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/giga_impact_player.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 0 255 +255 16 98 +246 131 180 +238 98 164 +230 65 131 +222 0 57 +222 24 90 +205 32 82 +205 41 74 +189 0 49 +172 16 65 +156 0 41 +148 16 49 +131 8 32 diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_player.png b/graphics/battle_anims/backgrounds/new/giga_impact_player.png new file mode 100644 index 0000000000000000000000000000000000000000..b258035e343ddd983c12bf8098ed54eac3aa8430 GIT binary patch literal 3098 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.bin b/graphics/battle_anims/backgrounds/new/grassy_terrain.bin new file mode 100644 index 0000000000000000000000000000000000000000..be2421aaf18efd07a9667f6774effb4c68e6f46a GIT binary patch literal 2244 zcmchX<#W|{7sSu+LP*eDG&sAkUlIsz!9p(X1b26LcXxMpFYd0zrLMSJC2g@nTbe%4 ztNsI>o!K*U=FGl1J0HLK%{=&!01071NQ7X7z!D<~k|G%_IZ_}Legsllwp2)sH1MZI zI*SZLdRPWzL?&d0WkFVC17JjUjWj51W9An1so&DVU0Bm=2qPnV5yyusN8Ed6*AdfQ49u z#jqtg5~pCNaRz7cG3*@9;{q^ppq8@LI(h1j|X@NdxXb$f~T-&c#aqN0p5@J2|pw5u4ljCSNw*T zuvd7EH+T#C9q;fSf587I{_=%>h=06!^f3VwGJOye#d#JQ%n%B(N(N;Du^D#dQ z7z?rx3$sWFi?Wz`Q7mpO!ICV+(#B|(VGIMtvMk5)tYECjO03K(#;UBw>a1a`$y$tM z?GV;sU0YR;_2a`Eupt|<@o4j!uqm6dxv>RXvK3n!+psO$vAwYaJF*iyhp-E~2E1CHoX^8Va#CiYLf3et=Am9rgHG@9Pq<hB~wx*ktJ4$ zf{{oTq=ZVKt?}hk8AYqKtdvTsgo?|eR7^!xL{?aZR8R$E`IS$3l}8q-+{&d0S-5h_ zNwOTuE()@2YN-}#E^DTyYNE!nMrx=AsxPajx~ikvvRKtpP1TT9S2a~t6!qIRq3*J7>Z&g4EbF9>>Y(Jqt&uix}}@C5r4yN+|C`eo!rIU+(X;TecaCjw1d2^Yq~1CqRYCZi?RzkuXBp0 z)mfd!50qE4)X|)@)+$nPw*s9(N6OW&+=p1IiBYWJ(oSxQ$5jR*&{vF z1KpS1(_P)sZTXY9#K9L5^8)Q6+vdH*%k*F2)$qt`yiWUspYk*MTtd&8`{2v;m+Vjd zq4#>Hc!Isv8@-m7(>eD!zX;!CU-Bz{&2MPm@;iRd8?>9e#oJ8hEUio9QoB^nQaZm2 zbtzm(awc<)qbj)a=E}LUF5qI!m2uIov@2z?8xY8zu+ zEmzakFjw7Gb5&gxbCq2sSJ4eTjr>u!2DtvNUm(=q*Y&YccX*d}kN5e24{4A1m{0hW z-ZMVu3;y7B^4ht!obINDG_k2}iks{vIh*JvxbbcrQ~t=Gyr7>M7je>l;jjFSFB$ZT muldHy@-|{x@b7%b_iz5kqW=O&|Ki}A5C7=x|HnU0v%dkz!kLo* literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.pal b/graphics/battle_anims/backgrounds/new/grassy_terrain.pal new file mode 100644 index 0000000000..4ad8369ab5 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/grassy_terrain.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 24 32 +230 255 238 +172 255 205 +222 255 230 +205 255 222 +180 255 205 +172 255 197 +213 255 230 +197 255 213 +164 255 197 +189 255 213 +213 255 222 +156 246 189 +148 246 180 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.png b/graphics/battle_anims/backgrounds/new/grassy_terrain.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdc534afc4cf08b0221d17bf7237da79754098a GIT binary patch literal 3912 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 W37sAV<>cM~0000*%1023f)#P|?i z=$m-$)jWbbWp#B`cUAXASGz%6>Xc9;WSv;3eQW1zw4N>;Ht#v0bL zPVDu+{Svo)0~^^ywQi=7CYr@cHb}$tmG9Eu7)3aE|j_ASYbp5|?QeTD&V@NRM|&~`e6P6BRoN4U#9y7KhyOYsA`d6?i4kHvmMPq)~;JaujF8D-CT@&6%{ vR8y7Hm-Nw(4DgCU20VF9pEt-G002k?0{{R3gZAU`0000mP)t-s0002R z|No2L_H)($YR&&*#s6Bg_DZDgL7eU}l;$am<|%X4AcNi@V$C30#VJa(skcN40008w zNklMN6{;~q+ zO!^7CC*?*xU@=3)u({PJ@b?Uz1Ij(Mz_IUVs71gxPZ;}#3B3>PETC$XBH+6x3wa$v zX8~(y?k#`Mr^SAB8=r^>|jLH5O{h1(C|p3;Gjip2CuOe?n|yIzr^Z(0eb!KPa=n`dzLSmVGm-SsCVpVcSL&xq$f)Nn7^zAKI*VkJ>W?T zg|aA5#fc35N0951t}R`A+p(~{Vc5B}2W8aiGWwrP#i?y6+-bVBb!FijuXn*hhwvEn zze60jzr}1dwA*Yx!_9$n{@*RpT^w!!EL|K?6h;GkF^4#e1`fZ}Xy7o87LJz>XDB0e z2h=Yx=oJVhX_D0MF)F%9^D5&aslqg0t81mpx^NeV<`oO|1XU;5fvWC86_vaa+3|EC z7}yu9roO5Ac57TxwM{7N7B~$qwYn*1CV}YQsK%<+i3)&_RkjwTT3bc#^bA)h2y{!m z8Suku6)+S_Q9!rmX4&B(4x@l3Dz9CHLQz2F$B`dUCcu#Enk^B9k1|nY1525JYHO5Q h2%K>npTPec_y?2488icX2^P zO^lDm7ypRKRsX;cHAaoWd!O_lka?M$e94(P=Xixz1SLuaT}e0)$)qp{4J{QXX-bN8 z6^eV^E(YVqBS^=~5Hd^^QbuKMCPT>*3}ZMW$S!51Dpp1$HVU60htcGMhdlCCk&>0~ z{em$RFqVLWag1kz3Md(m#0t?VVxnLYL5i7dD!-*`QYGxDKk~Bk{=w?DJNV( zh00dae%*||z!&?5+n`cqS%|IX>s3?}t+6RnmgzH*waj8Rb5xE6bfskIbD4*n&jJ=w zm-Nn5c}hmLMbxv{!4j6Ttopn1TWrv^oE5AjWfiMg(^f2$?6(d7KLa3`@>@@Py|Y4J zoBU=S>%(mL@hRd|A+Ngu5n&^n*ovfV=yNvd2K@tPfio$O*a zd&2B3_-K8}XwHtJ?PEU&EJT`yILINIIgIZJM^%B9U91IhjN_c(B+;0iTU?9Nia13Z zr#VCPtX)+{<2l+99h~O^7x7&pv#-fofvZjzmq~DiPDWqln%36WZAJg~y5I&kxy9`; zcjO=2y(MuMagX~v;31_A`cEt8mc%2v1dn;bQ=Wb9ZB&K75?OSoC7yfe;f2k#27IaX d@-i*)ir4+Wt8jnq{8!filx3S+Q?iyR{sJutMDG9q literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/hydro_cannon.pal b/graphics/battle_anims/backgrounds/new/hydro_cannon.pal new file mode 100644 index 0000000000..a543926c3d --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/hydro_cannon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +197 230 255 +139 205 246 +82 172 238 +57 131 205 +32 82 164 +16 41 123 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/hydro_cannon.png b/graphics/battle_anims/backgrounds/new/hydro_cannon.png new file mode 100644 index 0000000000000000000000000000000000000000..b2012c0a8acecbc8871f91a932659e6855bfe909 GIT binary patch literal 1089 zcmV-H1it%;P)002k?0{{R3gZAU`0000mP)t-s00030 z|Nq72|BKD`QmpPdgUujPq!1~4000000000000000000000000000000{9_OX000Bb zNklAR1%xPU$|&0(rWHrb551ClkqA&rW7$ z_0xI00}^@VZ5v%>>Y7Rq6s)|~B3)&w9}Wbrie!g_ zH&|+GB1=WO%2X%#2vmv$q(jy8V?CKw%N!#V2 zN9apsz8_dusR5f0Rpz@!o#zGbhQ5SQQtCSyJOiSil?t{bw zCCNMa#KgOHd7b9}fA{^n{{5H#$&k!?rt}%df;{-mgE53MI(!Ic`2*f&@S?+OKz1$g z4&ZH__gi^e-FlxQ3vU2lO>poIls9<6;N1b(TnoGd&Edl~UaDIiUIFGPFOg`+!Q}=o zfK%sS1?IFdcst4uXSS`?R}QZV31HifF&(_;;01B$$d^hHqEk631~_hm^@%cujuRTf95)5^tpO;!#%-l$hW>H7~Jcl;E8zuD1E|dC%L}Qv_ytyr7($6mR26 z@~)zJ_uQg%?%>@9ZyPVEab@|usCjW5uk*I?l47&WEbg0>Gor9}@;-?HL2K4`JzFNf zLxb_PTh`K&q~bS>qG|Bz2cV_WfRF^@gZ(ITUUP1#6a-D4{tctddCj?{QV^tgAX(>} z?$T^V(&rDgUUi03(QH1Xr_v zM?ZJAtZ)r9eljW}*y*tiyx9K=c)m6AQ>h(?Fi-Hp`uo8RuR8%{MZh z$B)nb)@6+Jo3yQ4QQo%Y@k6MVlQcVl{nzro?ECokzL)z>dy*^8E3nY7c!Bhu&M(41n6%Ypm z>**ha2k?^wpuhoi2n1SmXybssbAKI7tBusw8886glFuQI*)!2n94^d!o8y#ozQ=se zbI$W2MqxyWln>3veL6&dRvcsnDtI~wdZRX6U4iis(_o>Le+7;=B=#v%2OQu>4*i&r z^+QAo?&piTaSUBTWOIo3&%s{}GIod_t!3v4Tlz;`9Ds^a)T(D~hMjro5j2!e3T+xq zg;`qhOLchmvyrCEL8D|KLySJMGw<0^PGcm9iou6ifE#6wDyS%O zR8rZ?qKc|sk&>q%l}=Ujs_Nl2uX{s{P*W|n)d_XgQ(uEzxe06NP4SjS-qu(&@s6gN ziRM~psg<18+9a&4cSAevbyfaY;zPZBq_^m!uYUTA0R|dm zu*@Nb%1hX=@Uc$}HzIs$q|b~Bqm41v=NZNsZ$iRiqDdzELQFB$G+&CZOgFCuj}}{EX*$U*v)l^tla*FkEq=DfTITa7o9%Yk8FtxikG)}^{SG*o>rlcDJ0gB{)NhW7<4!o~ckzcmopM^vndDYF zb=JA?m%p8NAzXCHWmm#g*Iaia%T50z?3TFgj=S!O`yTk$L-C(S9(yA5sb`)iOvL{k Clbi4W literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/inferno_overdrive.pal b/graphics/battle_anims/backgrounds/new/inferno_overdrive.pal new file mode 100644 index 0000000000..032fe053c0 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/inferno_overdrive.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 255 230 +255 255 172 +255 255 139 +255 255 106 +255 238 82 +255 230 65 +255 197 32 +255 172 16 +255 148 8 +238 115 0 +222 82 0 +197 49 0 +156 24 0 +98 8 0 +57 0 0 diff --git a/graphics/battle_anims/backgrounds/new/inferno_overdrive.png b/graphics/battle_anims/backgrounds/new/inferno_overdrive.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4c57fcde4f0ee0034992ab5a5bc1439ee6bd31 GIT binary patch literal 5090 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 Ef~(lKssI20 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.bin b/graphics/battle_anims/backgrounds/new/leaf_storm.bin new file mode 100644 index 0000000000000000000000000000000000000000..02a43683a67dcfbd4f907d696bd64d30a05bcf67 GIT binary patch literal 924 zcmWO41w)kw0EOZ65sJxG!Pf6R0%D6D7?@zAf*sg}iVAjIuw&D8cXv;hx->Rj>N<3t z#!@%ke15|diN;C+F~kyw;weXY5>N#yQi;l_3ROuYf~rxS8YH1)YEp~Z#MPlL^`hzZ zQ3Dzh0y2$AAr+<3m~@(;rZl5DEl^8Z(V7g@hPJe$J&_J{EC@T%8Fis6nRG+l=|NAj zP%nDZhrXyE{mCW=4PYRH7>tH6l$_LI1i1`n1S1tHk9e^ zD$~$(W-yakL}oKb;aujSLgur8g{X){EM^HRri7&|L(5sgN>-uOtYIzdP?S>2SdTWa zkxgtyTiD7rwxbDlf`*?|$c?G@7YrM{W zA_q8F5FX+U^d^Tn!dvKV-r-%|L+^8xV|;)<}dr>iDw9Y<9Ghx&#V;v#owIe9QucUInM?3 z-^B=lW2{)mIo{<=d1r(PuHcGtC0BM8SH+16Bd+G^at$Xr*)`=_uI)OmE7x;Zs}HXYiGEP+sf_S-W}Xg?&Qwy;;wS0yScl2#JH!k z+)H6^xsUt0pZg~`+c^rd(+0=`J;;MSL>}s4&h>D4ghx8h`SK`__85y&C@+Yp6OYh?K$#X&vT*Y%L}~FMP4K?_7WGnL|*D;UhWn0O0V*2uaVb! Zoue+5%e>wjyiwld&EDdz@-}a`{s$53-NXO@ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.pal b/graphics/battle_anims/backgrounds/new/leaf_storm.pal new file mode 100644 index 0000000000..06e048750c --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/leaf_storm.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +238 246 230 +205 238 180 +213 238 189 +197 230 180 +197 230 172 +172 222 148 +189 222 164 +164 213 139 +156 205 131 +131 197 106 +139 197 115 +123 189 98 +98 180 65 +65 172 32 diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.png b/graphics/battle_anims/backgrounds/new/leaf_storm.png new file mode 100644 index 0000000000000000000000000000000000000000..6438ea6dcab9af1cc163d9603d2b26d928ad187f GIT binary patch literal 3338 zcmV+l4fXPgP)005u_0{{R3dEt5<0000mP)t-s00030 z|Nrjx=FRT3)$YB;=CsA;tgPOYz22mx)r*|XgM-Cti^X$$y<%dtK|!n_X8iD7000b? zNkl)}aC0%A9x-a&I>vlE+-yHkJAA3$X|@zMX;X2Kt;1D4O78r}S4*k`dKku^)lVE^|UZpqI1D@tzV z;C_|yQT<*U#OoR@MWYzY4=UGtu!<1q#1~!2YR3?rBU$Zw7t_8?*uQTP93QDXoY$sX9bq0GTDai0>k@*Hf#8PtHeH>~!HGkNEoo zdX@}1uHV%u`;yvIeUWuv#5Q2@K_XdAiBf65s;|vAU~Qtyk~B~zLBqlwERTR ztc^cc2b-N=QhHRN6RF+<9{%nbp&DXg5fstn`FoY{rPnDsvY@&>?!mKoBZ@?OrKmT>hnpt0LbpDQ7H z>TU*&rR>B}Oo#T$fj>Hq7^COJ>j|l^a!$!kwjA3axdbLT5>YN>cqU>^0VrHFnRFU6nBJEN!{0 zK>Tah-)-13!;HSM=XfySsr2P<{Mm3VnK$ z^D`Sc>MS?B20bVLwAv_ZGNjuP{&O3`i019_@}v@P3*q~l32)q=&F7CF-Q2_|GlW)^ zaEX*I%j?DbVZ0>KLY6*wJU{)kU4bffgrjxmcKh-t<^|~MQf8#W1>J?M*44-V3ynx& zLc)gPLIGzAL*^!kt5FFcEM~2@W+%txE8_bh^%T19a1m|mY`CO6&21vDJh0vopTr?I z$`ZouarwXYYw^uzCk)@Nycj zr(6v`bmOABbk0YVXY~UNHV%|Je$oRKSdTiW!@A3T6HTJqo+1L!19B3V`&{;EZ zJl}O)@5fOTc)o|jb;;2{nu}NmAw>kNyVW`in!fM)K4o-#$&HZap%e*G5HY@T3f<|O zAYu&kAIT1K!9gaUsXZ>k7d}cuiib4Uo^bB6hM5Lp38b6=>JFNkA97>I7r1^6Heq9J z1J)I?0!q3P&GL5rv+%7ZEG%5_ITNmjF0B;cO2R@$tOr*FAkZnKFs(7qcM98rVXtA< zJn1Ej2%#m<(@MkP2!qc|I~ud$_8k1;t7}U3e|^C!fq_^RKFewO6c_b*yk3K7Q`~txAZ? zX_$AShRNfa8!A=eMxrp^Zn@#${V9)>+`KlSDYY!xm0`;T1ElEj_~MvofC8TDq`m&_ zYbe0=s)Y5cA{~3eNH}3sP0($7N>|K5);?YPBo{k7A zr|9rJqax|Ct;6}6cy9 zOnuV+%vfmU7lW`JR^H$3V5@vLXJ1QRk=o|%JXEYg5gmJ5STm!Ss|<^0S=$bVSqqV2 zhA4W6%|f%jRxCwiEfq)uIwGqe$gpbCLY@rfl_1t0=}-BXx?QYB7Ar07Of}{0goOlE zaiPdB)v$wLX)~SFo=s{Cfo)qhEay#&Kbx?i!{<)84a)2{#>38bgbr_F=zV?6#=Iqj z=~WErpH~UnmeAUwG_zY!13kiC6FaPEMz`+W(rZdz#1>Sjg@#sx|Ju4G`kmcZ(2~5! zdOR-{Lq1On=;gjvW>nICbu}IE5-hQz94B|m)t|dX1tVp2q{W)8TkZ$pCAyX<#rk&i zVaa>f9vX3z8cynV0-IYZ@ixy4(}Jz8*!(Ryf_|yAq9EuO$YiI#)E~$qgqM4#I4uTxintM&Q!b(QL%bDf7nSYFstaX ztcs_yhm%pG7z6t()@k;p)s9q+q9F2#5%#~RTn@7@RS^uZ-p_a99Ce3Fdhdcx<;vjK zR8S;E^0r(WX(PQy$6;)5D4gnBX_6R4SIc$A+bk5V7s(n$!jj5PNyN0+Y>lHI)d|t6 zl>U~bGnR5}9p+?qCsT1`3kjFZ1IrFRH7GPyuC9K$bZcoDl)d9+i#AH`&*rBmAFs?= z+dDReTl*DN7$4#%B3NGLQW=O?%b7v%6ioy86(p?Sz2Q)%# UkCcX0{Qv*}07*qoM6N<$g6zO?&Hw-a literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/magic_room.pal b/graphics/battle_anims/backgrounds/new/magic_room.pal new file mode 100644 index 0000000000..2613d5ee1a --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/magic_room.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +164 156 24 +156 148 24 +197 189 32 +172 164 32 +115 106 16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.bin b/graphics/battle_anims/backgrounds/new/malicious_moonsault.bin new file mode 100644 index 0000000000000000000000000000000000000000..37874dd0bfe49071e27547deb84976adcb9b6a3f GIT binary patch literal 544 zcmWmCX;(~f9KiA4zcJNVGSndJcW#rVEL|D9y4EC7wq(5_WF1R(`ZJd7QX=bQ-y-`? z*?Zs|FQIe1f&0u;;|+Wte9qUaU1BO66^e_&<@j{O-3B+Y#0l|uXiGbxJsn7(qk)(7 zPIM+SQAol^7rF}FNTxeIgr4-GH+^CNKZaFgNFap(sq_{4(VqdN3F!=E5QBvwWMDEh zflP*3;ZX3mB5WrH8P14|V(tFpC`T1|Ml#CrMcgu)F^pv#l0`Nayeg;2^$ zR6Y^7!Tsn*RkoD*s}&jsp)i(KL| zSG1+Ba*YV}!gX$NlUs0G|GmRq?g{sKz(X2ZZ8NHt_lU#cSaW lZ+XXi;R7G}L{l`|%xAvvRrtnte(*Dk79ISrAAO=+{s92=kXrx% literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.pal b/graphics/battle_anims/backgrounds/new/malicious_moonsault.pal new file mode 100644 index 0000000000..57fe14de30 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/malicious_moonsault.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +255 74 74 +238 24 24 +222 65 65 +164 41 41 +164 16 16 +106 32 32 +106 8 8 +65 16 16 +32 24 222 +98 65 222 +24 16 131 +0 0 65 +32 8 8 +8 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.png b/graphics/battle_anims/backgrounds/new/malicious_moonsault.png new file mode 100644 index 0000000000000000000000000000000000000000..34bc5ecc82c5b04ec87dc19e29378e7edaf68350 GIT binary patch literal 1839 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%0AlpZ0R&xU4vJV%{ z7F<92qNSbIar)O$4M_cp2Z8Rg=h|Ix4#ZvTiGV@P06#je38BdtP-8sCM?P4>G(*+r+k6AasPP>ku1ipyIWySJ7R3jrQ(_uN6%6%OG3y z@fsO#?fuqdnmcPM1&B#NJ|C)kDoVjdLSov6Lnm{WyiXBT8p=)6Hh1dfhgI)8pkek5 z7TSy(bzU4B_H1CS&z-z?#`j?LKv-a%1Ijr}1dK^aKfkf|cUoEi`rgVI*z@|kR=_$2 z>hq}Z?CyyhrnNUC0BW}=)D-u=n|IChfwY?ybO;3;w=#Kc)5i;@Hvl@rOpjsi?u9(j z`iJO2Xr$AeVR;siZqiMro`)m!TY&DMMl5W#I8&=p7TDt*eDb4I{J(&bT(ydgI15%j zm0m8c0(G{|zDuCn1eKna02pw5ZjBDRyt_KhS&vZMCn$nEstZiXub4yy$ z8k^9DwzQ*tva~L0bf6=hFgnwPu5=?sy3>Q6^g?>mhrYxh{pimC1|owP%n*iR9>#D+ z*uqC5c48UDXe?tGD+%Kmk7WWAC210qkts}N8q+amFq2u#7Q>jsT;?&~Hc}R_kT@10 zivr@P7T}32W(iAKhQyP=auSghtYj6dku|Jk9qWnQV0dq2lPzg8#um1+jqPH{4tBDO z-N+vHvXA}90S+oJ;)_DWn>a TTY~*HKm*k)j|Mry(}2i-F5t-B literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/neverending_nightmare.pal b/graphics/battle_anims/backgrounds/new/neverending_nightmare.pal new file mode 100644 index 0000000000..0edeeac58a --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/neverending_nightmare.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +0 41 98 +0 41 90 +0 32 82 +0 32 74 +0 24 74 +0 24 65 +0 24 57 +0 16 57 +0 16 49 +0 8 41 +0 8 32 +0 0 24 +0 0 16 +0 0 8 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/neverending_nightmare.png b/graphics/battle_anims/backgrounds/new/neverending_nightmare.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2ae414b609cb09d8c8fc5152f3f767894847d5 GIT binary patch literal 3739 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 FV1gwr$c+F1 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/nightmare.bin b/graphics/battle_anims/backgrounds/new/nightmare.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4b8b45a7c22538e8b445fdbc73ac41ada5fa8e6 GIT binary patch literal 756 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 YNK#mz_#BVE@Re_g`rl8fU>{-j9a=N1jsO4v literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/rock_wrecker.pal b/graphics/battle_anims/backgrounds/new/rock_wrecker.pal new file mode 100644 index 0000000000..f17343c316 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/rock_wrecker.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 246 0 +255 238 0 +255 222 0 +255 205 0 +255 189 0 +255 172 0 +255 156 8 +255 139 8 +255 123 8 +255 106 8 +255 90 8 +255 74 8 +255 49 8 +255 41 8 +246 24 0 diff --git a/graphics/battle_anims/backgrounds/new/rock_wrecker.png b/graphics/battle_anims/backgrounds/new/rock_wrecker.png new file mode 100644 index 0000000000000000000000000000000000000000..97cf4b73af4c1d66ced0caa1cf28a539f506a897 GIT binary patch literal 1511 zcmV003wN0{{R3gj(ju0000mP)t-s00030 z_5lCx0RP?q|IGmZy#W8L0RNl_|BDF!dkFt(2>)6L|4In|F$n)D2=*8NZ#0u{000GY zNklvbAO6vw9poC<_ofmykL07?M@lmdXo-yJ{=@NxmbCg0713a}TYfe57m z2~}XB26C*-d*;q#cUk$I z>EGB?sE5_S2C~{r(`#P%u;Y59j|cKK>AnHni)uRXeld`m{+Z!?6DU-8gk9EA3yT7E zNTOUd`4Pa|c*z~VTrLqY`O&U_;JtZ#&SBwJ6QTofF!l7;k}0~wPcG=KAnc$BaCT<_ z@8>M~x>xo)rmaT^L+|Xte-H-jjB&i%X8|?HcC&S`$r~}R2E&=Ck!B&5FHDKPwrjl` zP;wv33AGUoBz(#vS|06EwCdD9K;VOVDZ3SUOvA|U7fWdE6gDo3*HIit%Q$jZp@t-D*aI&xx8_aeUFxgW6%LzM z0<~ob&-6&l6s96T*yA+>zCy~+NFUCA*zMy4uGd^lpr$^g5Nevb)W2Eq;B1LD!z>~V zY|^wyp#y2g1o+zxvdx#kVgj?XIV3>h$ilpFLkFG@anUP*1K^g401kW_9^XbfFo(=G zX<#1%ka;L{zdsh(Z&a9qRtm7|lx0G<*{s!RoOj_1md(Q~V3w5CY`M9nYYScIivg7w zkmYp;kWbffejs%!%dt%g1j(WGiEb}$KX+tFE+Cf!cm?uI9swZns_~w-+HroG6WCDe zOd*w}PS22vSbO84HPXmxj{|>|o2Ab#U^7f@P8T;Z5L=OCDNp-P%$^{QT2hu&)(0dy+p(Uo`^v%lqtw)P6(*$^yzi*^M79eJ{Ukxn$c zSAjr%<8x8Y(y6x<3Di7XeV4|9-&<8F?M=CYeBY}es#4SHAis2~?haf|P)V2e>Vt4Z z{2O_G|2x?8Cm)@_x2*vLD!uK=#r)y~_vQTzYztSU5ckk_u@9)#J)yQ6E<7mgzylAQz@F!#TRdWL0`~nX#$;XpY#VZyQeCn0mz%#fQb>5Xqfg@e$Vh8YXyX-_d zqBkpzu_d7Ij#C{ZjLrn|F6UMz&>f!r@-D^ioYtZblHq9tyjJ1UL=3Rws6A`og} zLvC@a^V!u+kBo}dOy+yFHZ4klp4aDX4hlFqN%ztb94;?v;3W0i;FK^oYw~Df71taKrgSfM$h6(8(2Y5mAcz$>4S__A2;jTL?&v z(SagM%x-ptfHYjM^~u9^vnvK97W#hECL%7XzmKUiQBL{tF^ewGqXX^Gg5# N002ovPDHLkV1iC@&gTFC literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/shattered_psyche.bin b/graphics/battle_anims/backgrounds/new/shattered_psyche.bin new file mode 100644 index 0000000000000000000000000000000000000000..225d8e95f306009a6aab40fd1a56d2f9e74400f8 GIT binary patch literal 808 zcmWO4iDS-n9Ki9<_xJ4Ceslh2#%zxFXOA)S#2n>ne$VV#5*0pi3H@uvXN5o*^Aq>Y$I3@y{V5FEL6ctkpDNYGW;vi9! zBAU`j3}q-wEKWJ%#KdEe@>HNAm1qTNN@^qtxSg|PO z^CoZcHetPahdz?umyCYm_Gdt*J5UP6&maaf1Q|*W?=lSMJ%*c%_sPYC7{N$J8DIEl z@)#q-95WWiW#$I?fbkwaWC9aSx?|)cCNY^Q$W%UN8q@L4;1gzQk546EK4TWM`5gNT zGW;opUoyvLF7w39=PO|WU-J#$hD_7%SjhJ*N@B5@^@CZkgry;Qu#DxbVC8s|vx?Q~ zT_f(=5biwIF*s?xO+FjU*g9-XW|N67Fh@3!7(+*krSNc6sL(g z!&$4-Km2QD#h&AQsF8E&0vCl#T;>W_g=<{r1~-LU+~y8004jl0{{R3eocQU0000mP)t-s0002q zr2p=V|J95Cy^H_VbN|I!|Gjhetd#DwTIQ@;)trOXlv2%mi^YRlv~zo`1befv000Q_ zNkl`e&b@$Zy`f_h#N3l5!SV{1zP`e=UFXotZboA>}ACZ33+*7G=5G zL3`Bg3$+8ZeZ|fEqw;N@ zE{lj?o&~F1gQAqG`z-rCQ!PpGjmoAsqB1%H{%-z5gVV17*KMHr!iU(j->wBXB`}<= zuSp311aOq5qR$pI1yweTtscW!QU}57_xoNPwt!CrZuS*Va+0)whHL}9NFWcD&4;1_ zKOh*VPE0Zfu2e(;<{F%bbAl1aYEp`lS0$JIlbsZi5W0L0V2)yLhT;u_MjWe2kszde zaLY-qB)efou;;+)fw2`J_qm=BsNGSJ+lM@M&5fc5O9mf4i}^VQ#-jB-I0?bpSgOVT z9GH1<6^Iy8dPl)=4GbevNW}hv4lD524z#9(R}9u7N|5)qNN55yq5>D~psh&f9U`$) zVvSP8W8*jKoR~LxY3F}jdn5Hu2yQleSM)O~c?j;3cRDY+-L3}x;MTy6SkLE>@O-B8 zk@&I>7K?=zBY$-jV3N%8^ZZu@b}%7N7l8}xG@|DBZFG>w6%QtIsyHGoqA`Jf5JiiW zCqP4n^!-xU6&JzbFA=q&nNBX)Qv}-avVfo7RyDya} zzM1QPe-y{B11xee`?%)mc45SO`p4`jUXocui9rSd$(bJac}c;u161=E8+##&4fX&OOe#JO%>Xh zb#^{Gr+vq-!k&R6_DtT%?Ntr@TX}c|HJ1s$Xav~v;4S5y)IcTjA#`T0vPtg26O0Gm zX~g;5{aye*R)31A!S>D^EfPxE!OhmDBhbZj;7WqKKT*6d%NrretMtVE1dmWdL$TPBRUr&0s<26E!Ci9J&(E=$pea ztR=)cTB$L-y5%8E9N5=jOP9s729dA<9K7alj^tKhOTEh_$>7S(@of>5A7UolXvC`} zl6wV$T#!Ww^5|V^F}A%Wkw7mVOUMEcPZWjEea z_3})@D+88p(}HyFKJUIMAVhRRuN&99yjbFM)vfa2&bF$9@BvoJ_hq2gd)L=&7sq<}n58%=|%f&M2uS`gn`XPJp8EDiq zH}~4JATD1Z8$A9EvczRr)!JHt*V!06n+R`wMkySjMm;Xj zz8~c5mn;}WE7|T268B1cagyW&ni4lvPbL3Sftd6zOlL>Xu8p+MFPaNJfZmb@fSBEdDuu4eX^jU=%qn@m%)5EsgH#)#s9{aMB-EB zTzHw-2=AT&-vwYEc(%7UjUbF9-AugVsTfnjd9`NHMtt)|1iY!LMN^k?juStNHsX{5 z&KU&Jaa0`y!g*wShdYb{MMX21yDsM;28}#>e6SSsh%3<7nFY^-G32H;C>M}G;TiDk zL@W^mG0aASa|zpxwF{glU;3F3#p)e-b15mhE5g{}9}NYY;vt`j+1R Y09)n$7PcOrxc~qF07*qoM6N<$f?~&hIRF3v literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/sky_afternoon.pal b/graphics/battle_anims/backgrounds/new/sky_afternoon.pal new file mode 100644 index 0000000000..c7c5805fa7 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/sky_afternoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 230 180 +255 222 139 +255 230 123 +255 222 106 +255 213 98 +255 197 57 +255 180 32 +255 172 8 +255 156 8 +230 131 8 +222 123 8 +205 106 8 +205 90 8 +197 74 8 +189 57 8 diff --git a/graphics/battle_anims/backgrounds/new/sky_day.bin b/graphics/battle_anims/backgrounds/new/sky_day.bin new file mode 100644 index 0000000000000000000000000000000000000000..8b34d893cd186d70a199787426bd4194f3c8abd5 GIT binary patch literal 1052 zcmWmBg<}o~0LI~WrY1i*?e}Un-Q8_^Y}oK&820Iynr^1MnU3kcbLF~RcZa*<%Jm)Y z`4^r*TDTNO7Q)GjvXPw}7L6l?5aZDVCNhc1XbMxA#&k4;RAw>@&1MdBNkj9P&jJ>rMJ#3sOVKixvx1dq z6{}f8I$Fy**0TX^WD}d&g0`}a?d(81*~M=55Vn_n?B{^ObdU@VaTp!pD91RCPH>V_ zoJN_P;VkFSc`k5~OXxCJxXLwjof|yH!UMeadHi&KKxQzT#`XLEmzR@Aw}5z+LX~Bl?M- z`GsH6eSYJ2{y=~77k~2)`j`KB@Tgs3&f;)qwX!+8b2z6J;atw`JXT)kbAAV`0xsx6 zE^HNXQAfI%Roo?9(xt4@F5|Msvdg)=D_9j>$(3Ejs_JTvaY1Kp&GsD6b(%HL^S!_etwmn!C0=SR^K!57N^6x@dyUhrwO;4--e7I?CU5o@ zYpb_;yLVVSz0143$J*!Z1k6R~v(x-gd%JdnZ^*QUjFZiM_ xS(kmqSAEU8?i-c@=zpo9xKLzB_mgiYXC|d5DJ2*aj82RS>P~z_;;n>?*oPEd4TAsx literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/sky_day.pal b/graphics/battle_anims/backgrounds/new/sky_day.pal new file mode 100644 index 0000000000..c0ea00a0ae --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/sky_day.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +211 216 222 +198 208 221 +184 199 218 +170 191 215 +156 181 212 +142 172 207 +128 162 203 +117 154 198 +104 147 199 +101 141 189 +89 137 194 +82 127 179 +77 128 190 +63 117 184 +52 106 169 diff --git a/graphics/battle_anims/backgrounds/new/sky_day.png b/graphics/battle_anims/backgrounds/new/sky_day.png new file mode 100644 index 0000000000000000000000000000000000000000..c03ce283bbeb982978b3c751f4cae35af3389e06 GIT binary patch literal 7508 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 F=^@Y~?;-#I literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/snuggle_forever.pal b/graphics/battle_anims/backgrounds/new/snuggle_forever.pal new file mode 100644 index 0000000000..21a4f95fea --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/snuggle_forever.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +41 57 16 +115 106 74 +41 74 24 +24 24 24 +32 49 16 +57 57 16 +156 156 123 +74 74 32 +57 98 32 +139 131 98 +123 123 82 +74 115 41 +90 90 49 +90 131 41 +24 32 8 diff --git a/graphics/battle_anims/backgrounds/new/snuggle_forever.png b/graphics/battle_anims/backgrounds/new/snuggle_forever.png new file mode 100644 index 0000000000000000000000000000000000000000..364ee1e06781361ff608f49bc9903e12496f4378 GIT binary patch literal 6425 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal b/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal new file mode 100644 index 0000000000..8d44d7916b --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +57 197 172 +49 180 164 +49 180 156 +41 180 148 +41 164 148 +41 164 139 +32 164 131 +41 156 139 +24 156 106 +32 148 131 +32 139 131 +24 131 98 +32 123 115 +24 115 98 +24 98 90 diff --git a/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.png b/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.png new file mode 100644 index 0000000000000000000000000000000000000000..709860ae00602e9eef7700bcf5322c212faf2283 GIT binary patch literal 2600 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/spacial_rend_opponent.pal b/graphics/battle_anims/backgrounds/new/spacial_rend_opponent.pal new file mode 100644 index 0000000000..7f1f61789b --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/spacial_rend_opponent.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +222 156 230 +222 180 246 +213 123 205 +213 189 246 +205 115 205 +213 164 230 +213 131 213 +222 197 255 +222 189 255 +213 139 222 +213 172 238 +213 106 197 +222 131 213 +213 115 205 +205 106 197 diff --git a/graphics/battle_anims/backgrounds/new/spacial_rend_opponent.png b/graphics/battle_anims/backgrounds/new/spacial_rend_opponent.png new file mode 100644 index 0000000000000000000000000000000000000000..637b9cf5a93f05f59639b81ff9a52ca6009dc9a0 GIT binary patch literal 5861 zcmVb^P)005u_0{{R3dEt5<0000mP)t-s{{R5q zoaWxN_SJjM)xGx3bIsMH=GBAM-o^jkz5msV-qoz`)oR7wgVoh@&CP1X^35>w000(n zNkl4<5C>HrC7bfAnmW<@>cokpv z(B;Ln|2#9^>H8FS`y`1=`OC?a zRq^Er@!wYTa_t}Szin6BGwHmRP?S)%6)>%Y4MQr(rLS*p-Tbvri}|0iulbvNOvhLZ z4Dn;RJY?pS@Y{Cv>r6VV#g$wv-U^uE!!90)vhz)dKR6?bsX=y^zsYLaJ!PU@Q6|jw zA@*NDzNIc4QUZ54tsuV>+WY&%Nk48(tCu7e>e z6ILaz(9}Mdm3^&%nRH*Ek`z;Ahy7pE7~i(lA&33hyAzfSV_5#Va?W9leWfV z*vP-xQ`rHS$-IBK8nMbl%>1xvv)(XWr*Q{A%?5kE%_%CaX; zpwhn$ar|xOuH*MFnv7@sukm9x@Oy8aVP1jSpL5}-jLo+z{n+9;B^;Nex6hlxaQSv@ z>D_^|fA_J8AviL_-$&EmtVl-{C6|8dYRFKwKkakI9DHXW0p!NLkMXeTZCVgTxc|wF zxYTp$>_7Y!0kQ}_G9O)AUXi4%qNFEeXTJUBHpI;5v~=cL*BmUOKDGCM=eYJInowGJ zs1Cs5S9<^BZ)i^J1^rp;8GIoHePJbYU&da{|9(5-aXi^wlW&KxZjCV(PO6b4Oj{8O zYE@sFHwVA?TMqc|^k?1~d{KPxby0c0O;%mTzHC99@LRGh-_eZl%;qvr`mN+B%v{i( zMk8hBxaM&V_|vm&ow=BLOdh?f1XGp^K=Zt@9Wj#)UY?oK61n5@sm6kgYuf0XG9mb` z)#g>lF`0%RI_#$(Ga2tpHMKmP2*>ny_+!?RiS+ip$&5>y7B`FsJ>SkX?o1Zva$!Ng zHqX|%g+68G5c}$v_8Gi0hn9YJCUGt%j%v?n2P!_SPs=C~gbX7esLda0+<~(wLgiY` zF$wU$KVxRu{pyGI!VrzsIebx?L?=_Xy@jTOzZ^%CIbUxA)EX+GN}~ z`&_)-091Iuqj+c30hQlWD>~+OS5fl%7{&3hAzi)yt$58DWG)+IrrdK%>9mr8_VAI> zVSIDmJS~2b*+L9wPaL_0f&YvHBCh?is^V)18)3~?#NUJ@wf*mE#TumLQyue++@+k; zMe$HLHd>f=Om$vPZ8YspVPL98h3v3}|_H zvoOxP%4hh}^7R~lQogHCo|-?YC1SQ36b#OTFWZ z`BOt!$2y|eQ7iAr?{5rNi8;Sk6fHRw&z% z5?My>?~f{BaH}Q-b>9|+=AV+^+L!L;yg+qhutdxU=E!SWE*wa%Bva8Z{=gjbRKSk3 z=OH_=3^|(bM7zNy3}_?K#L0;F?nafEAuJx_hWk=|nEtfpI5Qp+jFPbcb#r7Fb>BV^=1S*}&#hgV#CC0bz+@etDifO_IWt}qMJ=TC1*&xK zMrz2eE+lw>$_8rDQq^TbL_BLUb8xvU)EeVqSmKn}F_-I`mglx04Gb+D>?u9IN$e@B zPheEEfU#(45JMA^!!-t)yYLb2Wm+%rPH_%Dmuu(i=0t%XbDMlP$et6qPR`7LZqE7Q zQtVcZf{CCVuCW(SO}C@?@b(Ts0)Uz2N6IzxVm-?92~HLu_~w5>)7CWbbD*M${y_>R zg7&Vxe%o~jNs*~y;}l8d26&-EciiXT;7GVP|-hM$H%Zq2pm~0P=nDp=9|JF-?mq-OC!ldIBP)M8~3|H z#z;jA`NyOO)zX4QG6H@Np&5Wnd%7TkPVE1q|7&!0z^Er428SnguS2*&tuMzUh_#& zbWGXOb+O|fyi2=fGxo(?x^+P~ zBb9<6rE+`(*FEfp0~^1@MNHlCyLA)aZopOh+X&Uz&rj4P^It8M~jiv{rxw?1>d z0&#aPWr@vugtbIUs0y>#67XmaxfVceRiAqrk$D_0$}8?QtS zdqCtF^N$v%xkOue2fCBnzCei#;?1miZyDx@KjhB=@v`t`Aq+Oo{dZapdL z91wE??LCY#Zu)vAdl}iBYzY}<(qC4q72lllmX`Z*m9G*jmAZ}^S||rVEKSPNt%^8U zQXRHVFL6skRLg2c-{BfPe?4N+q$iQc3PdTB;*9Q#=fZ7W(r0!RO3buv`A`l~q%S1J zL@{7l7|#T8&&~HZmABs#>WE)FD$Nq@W+_33xT9R4b{`QpC2QjD(E0eAxm3!Ih5?2_dI^ z92W$NsX{3!;Un^CWGrBE_qM^Q9v&34ECO`k24E&eUv;!`|?;OJkZU7zEC`I(tJx&>E$FG5%bMUr zBq}1_r4U4R)i&F%@vx^X@xa(sSOwUO=dW3;S(SqMCBcVC1S`N}rB3tqG4E$aD_3q_ zX}+S!KW9g-B4GqqXxK93s$!2%f*7t)?!+xNKZRVcKa-!C5{rly&9Lbv#IPSh z!CIt*aigkJ94;)Csuu0(ny|pdJV}kqE-Q5>H6xb}2UFzo?$_W;#oM&>mfj)6!jj|i z?7W0v7B_O)Hu7Bef-DPTRCcAv5d>qbp9UagyrlW50K{YwpY*4>1l$_0=L!KzY@ot* z-zYu|`kzr$6h&-`MA?gS;?ANwdXEG^KLK(A21nfHf+ql*t%${tH(C!d6E46aL?6)s z05$Hp7diwGj+BL6iK)fz#uz37i?+vM@{C5q&mZAobiTvLkoSaXi86JUA2*a7m0SFa z@LcnPKygV#Mkk8Nj!ol`#1u^#p+@6?h88GOEL-dH5fnD91Dh7QSzm!L1)kJmuWPam zAx?XIFW2X{bTDoYMQdBN%J#}{7Xr-gqO`Yi2(qDAl!DiIAmwIwB4p6m2rO1#p6-PX zBiAo<9m1n%RbdFah?KyFiCX2TtXGbdB8bS8j2cErk~-UZ@jGrfn?W-J4JY^V<#D0; z45MF=5${5@sv}kvL=pw*gV+3va#BB11!br!2xvTy^HX@+E56>*e^5*kVuq0Hf=zB;S>Wm!JyW?B*Z`63uRAHZvY_8kfV+7ID`Mh8^O z68+YK-v^(ENP(0wDAa=S#opEtHoRwZ5d?`FHUKq0Xsu*NqiRL3Bt>WspIu|6NQFko z1FBRw>Ff&Fd=oI(ky9CFPi`$6aoMt9qd(# z%&JufthqL)O(GyoBsXDfc}g<~Q0H!C%3Zuxg%M(}oq1>?hyY(aWFYpGRnVnNMnGbY zE=(Wat9YM7kX9_YhkR9-fVI@TK*05iBDI~Q$S{99PLY=)i3Alws*Tvlvg&iDN|#D9 z23DUv0nZLz_5cmg*(z7HNitvn76SandZox+hy&{7=qlnb0HMk}K*z;`CVgIQBr6r6 zeE5_p7V+K|=iq)Ne4?Q9H8oc%-uA+xke@_XN!Nm8Jv`ANRcdizr0{)PsxiJPoFw|w zjg&TBkmVk}1a3s9$~VahxO7={-3=_7m2B*?gPf7Zs~Nodte020(Ki8dMB;P_G7)r! z^p4m0f+MN&5Jg8m_XCa_l~vLciDyNqb$MnKs}&)AH|bTEf0S zjZ5L`xNflf8^2&jJa^{7(Ag}y{R^t}q;4pQGOIKO1d z%D%EAvkQH^WK;GPMwv`A!BMZ9M%V~RyM?3uWnKTSvQB6O&D{d#{=ze}tMC*K816S( z!~I_JS=d2H;=u^Xte*Dvx<%j%-UxkAWcx{$y^`y7 zFS$NQk|ea?HK+g8*7W}%XlSEuT$t1#2n~b zOm(k(uLNtC-{j`>9e_nwYB+% z)cKM&lF(Y1CE-oQ+2$f!Q=>}?ij79sE*HKow3d!31EcbBa~ZI?6*ud(;&xy)T5&>a zaU1^5GxcqS%2#L>3a#b$8t|wD-&{)N!Em#kxwA#u+|CqQ8w5mm#KFzQ-h(z=$zX*& z+Z&;+_6FOdO-xs7t61>w(SSMB+<@7&kxkdmX0|}>N8UzK_Gu%DO>Lyw-fbjm$qUpV z<&7@r-EEC71oz0;QHn}hJf=e%@7L&Zc%zFPOQ066*NVHdqZJqNT5*Y2X~hZDWZrBR zhPF2g&)1uUQp^|I(JYLKyEY32+M4gJotg297&pGJhHD*g?;{4Atzu()t5}0*f`I2A z1yhyL`;O^0TF1hEhak3^*~YeJHo-|mQ^8TCF97X()?9Bix3?$Y5Cu~+(+57rv0FR7 z1@P4lnlv96F!+H1*|%NJz2Z@r-HtSD0e*+WI=daZr~~eGoJiXDIMHs$LcB7|D;{`~ z>Ia^7JGde=AN4!%k*#<4KC&fj9!6Zb-gIL4C5Otay$_WMbd1Bl#Jc>^Z%35}@&+B} z5MJk^gC?^#GyGwbbA#Env5IDEFOtD6iK8q{BM?=qYI=+FnUa zICN;|^#HpOI%3viDLDO8t1|aHI#%>rfOOyqL^Wn)+umHVFaDSgKD`zoKk6r4p+kQF vbRUphQp*g@dHO5200000NkvXXu0mjfv_DB9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/spacial_rend_player.bin b/graphics/battle_anims/backgrounds/new/spacial_rend_player.bin new file mode 100644 index 0000000000000000000000000000000000000000..cae5112e003a1b2d5924c329d59bd2231481a186 GIT binary patch literal 996 zcmWO41!ENi7>3bz$>>XO+v?$fOooC@X43W@LoYBP~)RB~+U_)TJJ(PXii~K#gcj6PluC zG^YjGD2JA`qBUwmTiO94+C|%F6KWl;qGjZSOnW*IC`m^;(V6rvbfudLyQ3cTq!+zW zA9CqS9?GYHe)J0!M1JH&-%xJ!iQds44PYRJ3_^n$LJ>pJForXNkt9YjT5F0aL8Xjg zEaT94CNLq!hsMR&7!#$Tk|>UeOhRQ$W(rf$G^R6ynIvX0Ticp52hF9Nc~qeJR8mDX zTEK#+j;c^)%#Vtg7b=g1EaEV9I7e_KN1>xRhGRJn9nT4z$VupA7PEw zRk1QwgqFv$SQ<-0i{lhda4R=uFPyY|bJ5T+ZYClwlX3wXEYp)}xEqz(zKq zO|daH#KmZRT*A6o8@iOsxST7{m0ZQuT!XIVIx}OJlkcZI2Ji? zJ9fph>KU7^dTSdG5gSd_Q$^X z1bxb9e9jl>OTOZ3zCqve9pCc<`jMabnP1Sa{KoJ6f&SzGfAKf^hkvQzAUedMI2bh{ zImM|?vkpYMGn{GFa+Yhmj#bz7T;C0x)zAqy+TO^G0058#0{{R3eVcu=0000mP)t-s{{R5h zoaWxN_SJjM)xGxBgVoJ*&DEsl-o^jbi{9S7|JAJS)oR7nbIsnI=FMuw#EaV9000`V zNklp4ba0m_Z2Bhjwibd>{eomRrTt;`|dsW-1|zBBpi&fOl26KEaAb&vGn*E_VMjw ze`OzckABNOU%zH^{w;32lZ(e5(=cYV>&whNjDE+ftfuQ{OsWGKOT%={@Jy!Jok(Ju z-RNEUj(xnkwaPxfeaEqiS8%hdsQG?JqasH8LIdF~?)a=L>{US4J|-qHQ%~9TvzZv1 zT;1wq*B{1;?4PC=ox)Ar``A(fIT|zA4n@AmKv0Z34Z1^QezQ>WRD?(9t3 zcoM|9#%;^tw6;4PO+0oLfM=Qpt_Z-0SZsO{W0y01j487-zhgeHoi;2V zXLncQ)Aupp26y<^^iW{kG!u1%$pOy4ZWx$miKqY+0XEF}EA0Bs%s`rb);I94tiNEl zF<_+c7F`Cs1zUba1{R0S)|+*VMVnhs>)#*TH`W}h+h?w@e<=q3$bN9_ zr;OXY?QU*U+<(Tog)ig2?&0?GeHUYV%8i%sW_Q|@Jrd2qA2z*82Tfo^%v6vu@7S}` z>~2o^n*E){PqQx0m+x94ev>}V-^b4{bF+H+{rZ!w0Vy*8qqh&>F`4K+?a54~+12S8 z@Z0j`*j;Y_D*q@fn3~e)!8_bh>WN~cDSxEO@~e1>C6k$pZH5wzVd^do!Ny8Y8$SLXyI~j8H*6Yp zEPk6@d6hek)h3=>NfY0tAK@8^g{;SXaGG5$#=72Pzb$tCioHYG@QnYGUGuG`ulZ=y zQiawz-VgWwQam?zlTrRiudH?(1ZQ)%J;xp+wwmux?DJgLAK7&qfNwje*m$5D$w5fE zAp4wc)iZhAyDWZ6im;p!uWlOqa+J+?iW}ED$Cd`#Cb{Ax@7aH0<1+xB^POVGR4*nV zAB~AMkHFL4FloAuXUwcFo9TUcg>`Xe1g7SJKou;uR%8lLH@yB#jU_uW|VIucW*Ld%eZa0 zjkx_CNb(TgiuEETc93WIH+ub3L-@%U zRg~M!pp5rheVa>LpYGv-|FI5t&HV+f>pcSwdQ5qi#-ni4F(_mPaar1kxCUm*+HATB zc$F9WfUt+h3tGMKTwz~9sJ~{v<$N`5%oISDRsg2J>T%SS*2f+*Lj+1~%?bv(fb-n) z_5})U_4s_oEo8XM(C^rFUhwhzH{kL#TP#4bGdh%Xfhrol2R(^VCU_}$R0q5YK*ero z4$1`BRcE}CrZU9eGoCrc`|O4SuZ%<9$Z_;9aa(>s6<~a+E~*0XYIn2hOyY6J{$-Ot zLgiij{?num2+o`jWp#Y&Cg}li=vkUzQ=e%gz`4S7c4@u7+z~28dsV`{0*i%$Op%ho zmn1b<ℑ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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/twinkle_tackle.pal b/graphics/battle_anims/backgrounds/new/twinkle_tackle.pal new file mode 100644 index 0000000000..9d86dfc8cc --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/twinkle_tackle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 139 255 +197 106 255 +197 131 255 +164 98 255 +148 90 255 +172 123 255 +131 82 255 +123 90 255 +115 90 255 +106 82 255 +98 82 255 +90 82 255 +90 90 255 +82 115 255 +82 139 255 diff --git a/graphics/battle_anims/backgrounds/new/twinkle_tackle.png b/graphics/battle_anims/backgrounds/new/twinkle_tackle.png new file mode 100644 index 0000000000000000000000000000000000000000..c689f9009605362d887a4e9d21f1eb6c413bc058 GIT binary patch literal 2243 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 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/water_pulse.pal b/graphics/battle_anims/backgrounds/new/water_pulse.pal new file mode 100644 index 0000000000..f27e22541f --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/water_pulse.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +49 57 131 +41 49 115 +32 41 106 +24 32 90 +24 24 82 +32 32 74 +32 24 65 +49 49 74 +49 49 65 +41 41 57 +41 41 49 +41 41 41 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/water_pulse.png b/graphics/battle_anims/backgrounds/new/water_pulse.png new file mode 100644 index 0000000000000000000000000000000000000000..0237efc2866ab3b04d2a8e651172f838a03559e9 GIT binary patch literal 2106 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 fqM`p6{yW0opawBu&&AE literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.bin b/graphics/battle_anims/backgrounds/new/zmove_mountain.bin new file mode 100644 index 0000000000000000000000000000000000000000..74f6bdbae5098967cea09a85266fde638285afcd GIT binary patch literal 760 zcmWO4g?|)u9LM3$?{>HCw!vAd-T?(E}vJ0F-Vp zXhf+IN@IY95`uIcNUEUw7oOJ>2t`N^4-t3?`f!m%5sm!B5K9~?LQ&!gpahDMNO6=z z2}+WTH-%D^mMeqGQjYR~j8rO+hSI4>B`V`Gs6r-La^7qnpsM`UP<3ihlLt`_wWv)U zRF`_xrvWaPhiFJpPK{_x6PlujX~rWo$NMOc@p#ZZfm+a#RTxYuA)RkxGMjm>W=jcuk)RSI3&kML0d5M>KC0Ms0>{|PK(}!14UtXgh{m}ph zGKj$>zs`_w<_R~HH^iH~#oG)MA%-)8kzy318N*l)`HW+HUd;*O9VRk~$@y|qcvo&J z?}_*MfDf4_2Bb}A1|Nx!naM0>i#g0?9`j>Zz(U&l8)vRGH>+r4T3pP;y%R<_(*vKZi&1ef-DPS9s+u6a+VD1#(*YFMPcCnj1 z9`>@2{kQ|-Am8#G--{nO#9@AfpF+7m^9#R*m~ez6X}|G%Do2@djN@u}Lj1u=PVr|9 zr#T~cR%g$}ah?m|VPVHbaf!=Z;i?F8jqCgsa_Kj?$t`Y+JKW`O{uxn_^Dp7$RbwM;^j|h6TlLbSj-ZwxGc#^SV@ag wMzWCvSiuzKccR{%m4rY literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.pal b/graphics/battle_anims/backgrounds/new/zmove_mountain.pal new file mode 100644 index 0000000000..d351f72e76 --- /dev/null +++ b/graphics/battle_anims/backgrounds/new/zmove_mountain.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +74 24 0 +65 24 0 +65 32 8 +57 24 0 +57 24 8 +49 24 8 +49 24 0 +49 16 0 +41 16 0 +41 8 0 +32 8 0 +24 0 0 +16 0 0 +8 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.png b/graphics/battle_anims/backgrounds/new/zmove_mountain.png new file mode 100644 index 0000000000000000000000000000000000000000..83a9f22ff5513f00bd27f8ff14c058005b7ce3ec GIT binary patch literal 2174 zcmV-^2!Z#BP)004jl0{{R3eocQU0000mP)t-s{{R3= z7yv;S06`!KIT!#r7zi;K2r(D{F%SSL5CAC%03Zke7ytke000O800000^yNw}000OH zNkl$!$BW8u6NK=I0)zy7civPXyyH7Jw<2)I2=mR*^n+X;NYwX7DzJ{2D<4^ z3HpNo{~q4{A|Ah%|-{Jn0TaMVad zAq&Nb`0!Hq{{wwD%W`n=7-dQ!&!CBmH+%%ocw4--&WK3BL|1@(e z0NNT9p@Yp@OtVh&=lV~jz)&s;4j>9bUW2`RuZ{R28b*sqc7r;$h6%l>lVMocg{DE+4aDG(43k#erXBcbz3gk#H(s3)o;HaH<0NbPpq+U79C88Svwpss z4P?rjb3HQ?$n6am4cZ&7w~Se7MmkhL$OYxQPVPhqX?A@iJ;ypluZ{Ix5H~F=xpSJrHT!cg?uyB1R*)<4p+v|tDBTzOPM_GNO&6MiE=1I`>{dZi==q{Sh zlgvCbF&!NsAO3-pK*4w#L+g~FCSIKOWQ+28PXpK z_d$Hofu%t1OE5h7O@kLU>E#Ac`2QBD>HZx z1CK;%68E{MaWU`}y=k#uZ=={1s0u*cWK7tVT(|70e^;T?L z9Jt~$=?h%+ArPo+(g%pwkR5CU2<&p;*GdODPw&L?CiGx;?Ac>$Uyn)qIiY zJQZ#YnC8IvuR>ra9CNSb?xP{e>f@ECA|yh6f6WeU;7+~XfW68B<{?%EHx`_W$;lxJ zrv+nOs2LHJEQ*&egd&y$XT#QEvk+K&Kjx>CWI>n10^r6Ivt;<8{;~kL%Wm^+$^d3d z%vJ%n0+`JHWRhs{4pez)?4l=7xvUZ<2@hU&Q(ZsV7mHBryWeU#_`yUZfXD_3FhhAtuRd&_vZw- z-yMUxf^wbPvwG)hYAiS&$s%y&{W(b(K<_oW<2kflnZuz#E?3Pw`TxcQrWm=# z5v(od;~cb1GY2T%cAZ~Xz*J3#DruaHECi~cR)E>SZ6VNdKdJn+C94#;QAZ@gQ~udL z61dGGztZw8=V`zDtg8X--#X~Gj`NO*!;)C^m#37Wqnzjfnh#39cL2?xXf;NmU0{Q|MZPTtm&b`Jy^P0ZoG{V67`68&^qTLV)>KOBV(Y zL|PTASG2hhG!+!@sqBB?_nV5&(*b4v{8xeh06?We>5$o$s{jB107*qoM6N<$f;6Q1 A^8f$< literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/ability_pop_up.png b/graphics/battle_anims/sprites/new/ability_pop_up.png new file mode 100644 index 0000000000000000000000000000000000000000..12b976a49e3d4a098f0779deaafcc6a9ffdd704e GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipSH_Le)y2(0UQw2Yj+z{f zK*sa;Uw{7n50u9WHr|(73zV4W>EaktF()}8K_KW5d&4I+y&nwBi#sPO*c~|VM5IgH zfMd2$z=B0y9*r+f1T>g0XmngVsZHKs#gxbFi@6fGE^%rEm?;ZfVfn;s@c6;miUn)T zIT#LEcHIzFuzAuG%c@kVWzC%s+%V-(s0fD!hndO(g%h0(O$QR!FznPhu!_O5F)6fR z&JlM}f#nN&0s_>f6N4W(X*^e$&KhBSPJw|Tm}5Dk)xBpbATM~j`njxgN@xNAFV|SY literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/acupressure_finger.png b/graphics/battle_anims/sprites/new/acupressure_finger.png new file mode 100644 index 0000000000000000000000000000000000000000..50b1d92801fce5d4ed0056d19755d23e25bc8e9f GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*XpYbd)FNO|NsB9XV1QU z`*!c%v#g*b4ln>J!31o~*OvfAw|crbhE&X%I>DRoumX?E&7Ulm&io7=%mzW%0=sv( z**os5D^%$84F8%p@7Uplj!6HeWJXI%Shm$RvT(O3n*>^DZq)>O8t(PQvA^ z)N1Fn?E%-@TXWg}#ujaySe<9h+Ho=btuwPc!_}1BE!GdNIxmtmZz(q%Q~loCIEZJaCiU! literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/alpha_stone.png b/graphics/battle_anims/sprites/new/alpha_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..334aed60622a167697f496399de549b96a6e2811 GIT binary patch literal 933 zcmV;W16urvP)-#PGKNo;%zww?bA&+5!Eu}f<2n@h)LT;~Vde45F2OuSZ4F(XR=ehUN3M4^5 zP6FIx5}En!Oa#yx22%9Fzd2bZ`0rn5KJ=>GQI3`(ygBDenI%<7foU1e0i=rnb9mL1&q%A!mdaFxE{DI{M(}di7ha0 zeFb3c+Za`RPXPFpN()B-Hfq(!s3KzNPs7i^8gJ`PV)>0w@RhNSfYE`0`Z*Bc(_`u4 z<7w0ZwWKa3*7ZzEC16|&@Z9dK0^hWfT6Y0h);-a#r4AUK)&g*pe@adHS!HO(6L0@h z?d;vU4o3bLTnU=aDFMdy5&-8xXZ0QX-wn-Z7l6OET07Y|O0mB=(3dQnVy7CvM(5N7 z%k#SCODCs2)E<;$ij65vFkW@X0`E&>7yVIt026$?Aa33^8kZWJJ0?wV?C&YU?@r%uh! z&-e55v$C?1l#~R@V+FE*x84LwEcJA845^s2_M#)#VFdx!3pYF1rBvB399g?yo4Chj zz9SF5TAOXu+M)SH|48KnoqY`9K}~k|{_y0j3eVZpuTb-7*_6%wWq%kW_{HYrHlAcW zA(m0JdhG$RrnRlT4kx+%JS^hg_8n(&|DVDTxIp(nfTUG`*n&?wA4Cmr@aQP$h0I*8 zl^US*r0Dq`%~e4gci6SN*Pgv~NA~mO>{EZ%%>5kvI_=D-zmv@C{H+b1`^HCseB$Zq K=d#Wzp$Py{Bx+>< literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/apple.png b/graphics/battle_anims/sprites/new/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3e78230ffd2cfa6c192fb99eacd1516bf68210 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*O@n8{hv1Xe_ZB&8ST5` zs#}ER<_L(_ne&xuFokgPg{W`>6(WQAwHN(>{6tR|$B>FS$q5n>2O9MPTJ0g&9bG&i&Q}qznRlLR|l^I|*bmxG+oslFbZW zUS5WVh73y>-T{?Q(PRi^VAukZhl7W6<}(60oCO|{#S9EWB_ParFHODzC}`{H;uvDl zo1DPF#K^{xP|{-Lvdy7IVsE)~i%Z%2Hjd6W-_*Jpukx7-dnk)f@2MdTaC7?Z9)E>y7*mwmOR*Kl8Lg;QU@U(aY75;{O{&@9|C(IOo~l zupxH(<$b>Ad|n*8P}Qqoe)nI_iiO;Fj(*;8m+_1!Lwx?uR419)=?)+td%F6$taD0e F0sv{JaRrM1`0?Y!j~_FB{K)w6!{Wye4j?-5gJZ@Ij*K517C$&RfG7i~ zY!r-!!0-zJk*s~jKwohdctjR6Fz_7)VaDV6D^h@h$30yfLoEDTCoyt08wjvCYi{}V zpZ$B;H=jP2%L}9SN-j!>dT3)Q*{{W;EC1z#P*YhwSR5D?JyCqipQ%$oVT*#g%{tEmXw$=&%S zd}Ge7Efc=q`&PJ>g|oQx&uqujKWv(LcASblC=^_hZT}@o=wbYfFK0oq=jrO_vd$@? F2>|#Hjtu|+ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/avalanche_rocks.pal b/graphics/battle_anims/sprites/new/avalanche_rocks.pal new file mode 100644 index 0000000000..246940cc27 --- /dev/null +++ b/graphics/battle_anims/sprites/new/avalanche_rocks.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 189 230 +106 180 180 +106 180 180 +115 213 213 +131 230 230 +131 230 230 +139 238 238 +148 246 246 +164 246 246 +189 255 255 +205 255 255 +222 255 255 +238 255 255 +238 255 255 +255 255 255 +255 255 255 diff --git a/graphics/battle_anims/sprites/new/baton_pass_ball.png b/graphics/battle_anims/sprites/new/baton_pass_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..e32e595296bd6927321c12e505555ba51d596e3e GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUoq6-s#LoF!MZ*jX3@)6w z@u8#RgM&t3V9d*xFM&!hLE=MwKcHxsr;B4q#hl~>2c~1k0<3g+&m{5j`g$8P7@cwG zNfA&sD!;Y?xsJip)z4*}Q$iB}r64?% literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/bee.png b/graphics/battle_anims/sprites/new/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..448935c10a426b59ab5eb9439ca6751329a9c767 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^0zf>0g&9bG&i&Q}qznRlLR@EDSn%wu-j4aIKYsk! zxN&1vR+f#84Nwvnux309GW3L}i(^Q|oVOEf`3@QIv~CWWn|R`!6Mq0ZU&6vQQ!lM3 z?wYbrbjjDRmCxLD?le?&%(Jupwz=0aWTWx<7q_|NCR%P#nz(WYgUU+_*D`_Kd-Pd0 z%1xdtvC>NWm5-^)>^DtvCCs0Wv9Rr$rx;Uzxx@DIOkEWPd)ki_Af#iq_$SsGalG;$I^UygYL9z;$6EI t=$!FmKRTxZ@m z{lL%HrlErQ6>raGrHB9A1q3HPdUyNZX>Z34`-uy0@|kZd5Ad;Q=wsz-V4uZ4J)zYl z$4?n^14pv|%y5bC*`6tETdoqBtfmyzePYV=KYO1m6$RPKi0xb4*&%Pq Y$nGe8Fz?yl9FU7WUHx3vIVCg!0QF5zy8r+H literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/berry_normal.png b/graphics/battle_anims/sprites/new/berry_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..53ed3361dc7b8a931bdf4e924b5aa7250d957653 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+B#_RQAuTUEdhLq%?R^ zhG#>JgMonoP!bo|;HR4fl-uIz;uumf=k6q1zQYPUZpIrYFSO2^!fdkB(ZfHWbeYMc zf9@-O8k>b)=ll50wl<>Sp245u5Dug28J2PdRwP=~J`$BKacMFU{tY_~IL?qyJ_*2X=T2euxW;gA$gS46LORpt)Rn0007F zNklp-A5fe0OKTV05Ih55Ci}|dXrYWHm?N$E?fm`Jb(*;$rWaRlv0%?3ZRk< z#0rSUp71>fpdsK>6hO3gm;sa*Hd;WMmcbv7fS;2GEZPik7NiXlx~CHK%K&hIi5_}9 zSn~M*P>!2eSC~wCz{~*^D%c~AHym+%0F3K`M=+ilh<*NwCA`hPN6J!+he*_$O2}w4 z116i`M%@ajwH7qz@j5b70-})#V1@BK{>%aALUUlOK>sf;|Jwo05}+M`{4kQjZ4uZ! zQ@FT2mwE7A@Fi2&hz!6nTs&~D{kBdeLXF|5vG2e6UA+hl8sGZfzk0N%ga`EJSb~R6 zvG)Sa1n6ZzPHpH|!N0;+hzhbTfn#{dAu6;&EGS$sDJ0;$pdi{dx@=$Aq~^nj9?Z!D zmEcg6-tVPyz;`cT>v)JdMDGYwT;3KHCO~xz9Px}_U5~?1XMhwQqIlu*v^<@o3^X3- zmZ*JLST>5L*p zx`{DTUXHsMx9Pyi8U8Q-U4CDJ;Ga6rPUPhj0OF&bz6)Ghm>=F(?E{Jk!Gj8^mKL%2 zGZYpbGDFivWfsUxM8%GQS&$+|j^>fU2R9V9%@Lb;=SPw-^xP4+avIy*m`2iA4-iwC ziEJL6SxUtrun|%y0@1hNn1q#heF+W@!rA@v(`YC;P5{psTEg6aHWjIm1dNN>7^PFm zprngX%r@7F(wd@o)?K7sgGvTa4(nKLCZK10+YrhX6};Vot{s5SJ)P|Y;AdE22iG@z z0BX0>&^f>x*y5`8zai}4YY*F*H!z74sE?XR-}hrZu3z;sp=vyxNyY#G002ovPDHLk FV1i=gt*`(9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/blue_flare.pal b/graphics/battle_anims/sprites/new/blue_flare.pal new file mode 100644 index 0000000000..3b224c3459 --- /dev/null +++ b/graphics/battle_anims/sprites/new/blue_flare.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 0 0 +248 248 248 +205 248 255 +139 180 255 +106 230 255 +57 238 255 +24 238 255 +24 172 255 +57 156 255 +16 96 255 +8 48 255 +0 0 255 +0 0 156 +238 238 238 +189 189 189 +156 164 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/new/branch.png b/graphics/battle_anims/sprites/new/branch.png new file mode 100644 index 0000000000000000000000000000000000000000..edd1a50e89aefecb5b824e66623623a5480c7877 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Ax4npIuVCr8{U!v1P$Z zo#rTos1D^~M+Vzi3F|0v1xH5}b3Sn;PDUo61`u#_+xZqqb$hxvhE&W+PLN=Ez+)Bv zfq`rO@(8w2#(t$3Mt%?D^B*O4+$oe6NbE6qxP$M)k)+_31BtVZ(|dZm&&xQh&AjfrO&+ZG#SS2Q*AW+zN*JW!Mx{8%bQeEO`m=~{|^4hDya6hAvt*kas2 xy^T4wGUtKTwAIa_%9g@6Z8k`C@@;+|<-Z-G%K2I0N5RcB} z1c|H!wOt2vOzhIHvxG3}C7U$9e8{%KYFb;^BCaWIZVRLWrJ@>>ID)Hph;}hN@9J~S zcsHXn?XAWFb_rkk#SHQwvO(#9rLZoi;o7KHr9&&_q`HK5&RO+>$=f;bGP4ImsB2cn y3RbT_=QZ@*eHAWSSxxz1og>1-0@okH!XRTGm$_+v_y?fN7(8A5T-G@yGywoh6krPg literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/cacoon.png b/graphics/battle_anims/sprites/new/cacoon.png new file mode 100644 index 0000000000000000000000000000000000000000..55b17ce8ae85b60992d0c239453eb4b00e139b62 GIT binary patch literal 10874 zcmV-=DuvaFP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3>vwjH^yod4%2JcMLV4u|bpo`Hw&FTi~osmj;y zd0DzD>Fg$xB!EB!fV|KCU;pzw|ASvGxc7;v)ZB7@`4wAizVnaz-e31`_eT4#{feKr z`1z05pYJz3F9rS%_s6_HpYOb$e!fsXUvT5k*Pk*!*QuWix$g_xub?~Y-=ELb&xL}& zue;CBPy2kY$6wp|{PFX1+0VuQ{y7#7V*4!0{*M*8pF98YMyx)( zzkmHYyK`1OXW!lRm^rEZd^Yv975f(-99$~c*D}8ge-i&L_Pg=Bvc-wT7SUXD+C$HipDfBb&_?Zy9>-`^KHN3QGKTffhWb$R(T%aG;tUp|FF-1(eovh%gy z&o94ue;GDl!DPo=*1m)%>u zFV1m}75j8n?nCqg3%Hd0a?imwA!LkGz3$C-inGu9N~xulUPFyF)m%%hwbkBy3qV+Exs|8Y z)>`k}v~%gsw>zKcefSYZ9BJfHMjdVRiTlhr)6BEXI@|2audoRJl~;LIU2XO4Hmu$RreC>o2PdfROQ%^hn+iD-H{%JM$m*xJm)!fHwvRJgwl^?6|aw%VzaDtO0 zn_)2@9TqRL01oYCv$wh!y(}l2z0DI8$zwH_WSr$>F)SFj^Xa&6+x=MXKicg{@xNs^ z|9`UFBh&r=u-qfleJuA+yZwvRR=122%s`4lo#`76z_xPtwfk{!-$RhvPxZg@cR!m| z=5yHS)5aN#Tjv~31)}CIi`$Og*L!9dJC=5c_TAE8qvh<>c3>BKEI%DTrQt$uPwI<+ zE%D5L%9`xsb&c2yu1vm|`nylx_2h9PcOm1qH&f#30e{q{xpTf3F=R|gY&v^Gd zZIpfH$ukFMYZ-mDl-6jwgtXVj4D|YV zj8gJCt(??H*olwlo@Xj-FP$)QnWxTNM#?d|%t2+gdK~A^{yVE>#j`(W`^7!-iMFUisQ_Qwx{$|7JMDrQ?u*DnUA`1+zrQD@r*VH>AII1 zdc#b~Z$Om*(|yA392M9Zo_w%IF8CK7fWtei9n+k^VqJipR>k)l;0)>q7D5C>;gUa- z1;Me72a_HSpLi@~6Kok*D^p+rGbXa%K-v@QW3{b@J-4KUwdPavo6d)RkEy z2<7J>zXFE%Rc3ja02mS0lt#Sko}1{XggzKL`2@B}`2G=Q`z?2amDm;bwA*6j*p@Cw zG!exu*UIY?RJma|;Fo%T+WVZ*iDa8I{6*%#Mi)SuWx3^6484LrypJ@{5uSG@ErH+` zK$S$&>ZHK-U`k?)kREeb`kCPq)5N+LnsDkYWGh;U`w`fx1rV8y)hQo1cKLAbMLx$3 z4G52}6J(I+u{c))!gXGSC6JCWJ*U-|F6Cv?3OaRHA9C#J1LOhi<*~X+#)I}NQ`Mty zkvPY|=C=6(QVv7P4uYkz9Cvg3!5WAFZGW5^0_o(W?J~P2(#u$>!zhS$P6udlqz~kF{rtON`;{srV&;b}p?|GOEIr z451{pwf`+FJ-Fl1md#U$e!RMOuwr7aJ|luA2?vfaU=iDUh>S#~o;tyj>W7c86(nzn&lZp|11u8AT3!&@^gc4gB5Avn1)0^`XPIT zZ9YY1J$W><|_m)DLXcyp_bABRjdw44jeSQ z-9lfMhmAf$zV4I)s;QaL}Dey)rAQ+zm16k8_h#y8!VkM9_MujG!bQC8;Pd{B6_m8%hzz!47nbv)WD z-o*b17T67N27+5MtPzO^Q9qBxqsSqV3-5uzgo>3WAN~T;3zyDB1!Ss`b^U>6 z!SPD9ph1fX3bP0+{78ySc(a9k3%$@IYI6h7Tw0`7HHd8MhRjo-SWs9}^@(3N|TgM8nGVO2L`k zstGnW;E`emAIOp}up@>+^^f=YEqU=M9T;dWc>@Nk5CD9f#HhGl2>0Pw-3869UG(Jh zJDc}|)dj%}s0AA#f{^`QoDoEf^-h|MMx*0A!M92b-)rL%f2uzL832CAABTabC%t|!tW>groc=DRdq*az)%vo z1@)pk$t^{d4Q(FqO?&$!#A;E>#qDD)w~HirjtDzML~w99Q73M-cRUTkcpf6wBcrS& z@a09(t@n!Zr09c3zv8uc=#jEwcSJ48gNw5N+$x#qIaW3yLRjK(;OWsHcJu2rlzh+) z#X*nt?S{xbPBoVS7xOifAD*d0i|{OSN`c#56^HB;mbeUuFd}F|RwN*#W3|R9kl{7J zwLvQ$F++XIjIL6F049;Kj`H}>GKw${z1fa{aR~9=>YSjEq~k5+zK;q9k^z;J1h3NK z=dx9G)v#1EAtY5j3IesP<6%v^BDPuA^1P}2fbwMdrn5(xe*U0WIUU*IL%}THoZOsfd{aFE!cdrcV0ZUWM%v|W2=$VLSkJq{enuTJiH6v z{b(Y`uK!W2_-Cy`Tp)`WPqV0^u|8yDblnvHp6&8mbb~4x9d}xl)$7}Z%#(k}D10JY z`vCYwnzQVOt8-VfHN0i2=75E&>!z-9Jl}5{{*HSDrY9~L4p2c$osWVLu`0~i4FD;I+%fi83?Lwt{&BQgIX!s&$fj}MGOsad{w}}Cl0*tme`2SXu7Q!8#J47 z0L4_4q7@5lRWDL}P9kwN4h8aukGD>4Sfq1!9AZ*cGgL8PZ(?5DK{(n{_)GqT$5%M) z4{Q|+ePU?|WP1S{su%~pfhr(aK=6Jq@gXe8QdJ|LTaMhn$`fGC$w8%K>3~gk$ST3e zT3v!-tm|z%Sz$BiJX?SAH&rsTl1{ih-}PwEsLq*4jS8M(ixMow0T%?)T(`^_4hf&! z4`>D}XdynZ8YnBzF>(irIyd4pyQ09VwrfOHc|sLxpbl1L(enr+j6(o1_~ejJ;u*fR zNP5jC)mr-!qkfT1&@7)AZ@omTJBILZs$)0{aaHM{y6Ac0gVZRMHm$-Txun{RbS-WS z;`jQ3x)C(Mxd?{zSlvJ{9M#MyR=b0FOQC@!Lv=faGrW|g;zILJ0M?hv7K^_GUUpi7{I;Czck!fjAGKMEO5%TYR3AOOy~Am0DZYHBm6`0c{> z;3<|$0su2Uv4ivgPKGcY+$XOoZ*q*p^BsDqrFp3aag>%BLDi8=u-L zi8pdAIIa2@+pQrPEIP{aMbdMAR3r-lwhV(vWM(i!!3951KtgQMF15oh;KL%HP6QHC zdwN}}7iL1f03a~`E3u9#EVQpGL`WCF4!$^*>gzGdeTm>f6(_RU&oyD)`0^7)FK>a3 zAQ!w_-tW?k;0B%}C#pa+MhzUvRx%b9Rc)=S$E_~ddenju=w-|CyammuopZgVB>Xa2 z2(etg@?Cy`2zk->Ic{=+XmJwb8y<6215)&kw~2t9E%@3OOG}~}B5}B`8_7x!;IN{< z2{;|fUKlJsDe3wJV-4!9r6NaE&sH5&j%IZXi}Ros7NIrQ13ewAPyHj}T7(NWpxTbX zx(fHm2u?Ojk8;87VAb82fk~1#1fUk-r-qQa894R<2vs~e#_w*_A=JgL_AP=G6`!rr zL{1^t@hjXC&>W;}6K}kY8^C@!$E|$0RaUCEdlbA zGa|^kQNw5p8M()L#4N)lmQIIhKxO)lAR}@}s*1nmo-r;#;>Kb;i40)%tF3@&uSI}F zKF*3>Cwtm?U(y=-=PF#}`MwGmTu2$LRMiS-$plh9S8aCLQIe_>1r2gk(w^gHxYt;% zbmfSO7lP5~Xj8Ghz7~|c(WE|K#gBxBKGJSA{_7)FPg>6w!L~Qn+)h+(DWyg@mshI2 zl7?Nvta`M-9A9OU^ltkmNh&<|X4a}OVbS|;RZWbX-9g%NN{vJ8UsPm zJw@42ty^u~EtU_WgJT?NoPgmI{tOCrmTsykZ ztA0kT3*g1EKzUZd<;B;Q)QR4-0xnBPEjFdbrc6^m0Qjna;Gr0|^!y2gqRRC!!Vlps zpN2VHr*V+uk~bx5l$%_Gs2wx*@eGya?86dRiLKx%-}N-5jO28*S^0!3C)In`rR}#E zXM8R_N#d+>@C5HhjZ~-y0N7n5g{#luRGo~z!TiXRxAEWOZTs&RbX9RAhiBiud8$6E zv0~Ii0Y=tF*$4ioHmj9Egx2Aw1mdj(k}#SYA&<8GBmOXemy#igp5Mi>5}OxU%;?6T z{BJOV`)UScAyPOak)=F8ZF3!=b^DuI5E#IS;PodW-CJ>LoL`{oayP#HeDyEmRB`Id zFUZ-qjbP|^`Zet*kIAs_^-y&??h+m|Bh>CFGa~rhbw|>jB&oW2=ys4moL^<2gMbXU zBKOMeF`39J~3(C1WbmXZ%=;23M8>E5pH@v4imk zJHVQxS&ZkOyYDnpfr6@PAh*gl(A3Aejhv!Ng8aMU;5LSLM`18M;SIZ(P(Pv+_#x3W z_QXYWLYO>Q;YxfG{-jDH3t?d+c(qT1G$6-|nDQ_wGOg-%AbR^M3t7ok~#l_ZpB`JhS?DqY-4%Bxn!)Sy#o*43O9buA`-D{^YFq-PkZwIcpib3^J$ zG{jPBwz7*H4M|TZht;B`Hg;k4N=t2E-qT%s)kYODoNGzGsH);_v+L8mP<7kC*G^fI zNc|7k&y+3Jl8K+cz_c|#)6eO{9HmvsRIC^`nQz@cROTmigO#DHKvG49Pv?RNu(-WL zT{>o=`WUz4FX9-)@Yxu63XEp4g6B6autMFB;*YUuj8!#f96>Efp&0RZtBRGCofJk? z5K7dbn3X3{~-*4GpNMuJpRe zW&msfE;*nJ_w{G|D}!iDbhOEfkQh&zU>FCyxQFuN{GOJ|XaEg(z?wYV8CW`414C`0 zllqRTlyHp*&4oh(E4VVUwsaLJa;igs5iWz@Tb*X;a=L9kRbB9O_?2onz>}ng+Q3hU zfF^VW(ksKLWO!wYwt@=r`Nle|Drrcg<29iw1>>?m5^z3#RDI}AdVnm&RJQ_P!2dcV zOd}uq+L{=d zmJ=mj4q1GuN3NoS%5pXmCm7$TU|E1QznU}w{5?0i7#v`Oq$4>o@4>23M?ya$9KM{% z2JtLsEQ};_^G{G;m=<5_pf);L5-8`nR&vI}&BBlU>7`YSq+;4ISsJ7TR-Cswyn5 zOcrxpkhICHs`k_-@RIaU2N}@Oa1s#y(`Nf=vUPyXs+3uMsoMuvv5f;PDWHBx%vXm& zWZAeC4K>tv3&?S+kSGFo9`%K6&_q(em8=PeMRlEW4to+o6@C%=_7AkmWV?At9 z^N`D34)5fR(E8VJ5iDSA#E&fW3s?#vm1;M+xKpfcoCAp)e|QXy>==8$JbctyZ3^WJ z7KNHXL?&xbYv)4iG;yf%o8}=j=qL_pX><_6Ds@0tZ&0lIH*pbf!Gc^Usw}5kAJ!?F zFxx7!Xy}3u!F*wPMUwtlBTj*y`^KQds{D!2fRXhb=0zvJzs8sbTK7>lk`P@wO%-n9 z22Q?Id34_$Sz>Yj?iM-qcDNIf4>rxGsDkoULB!_n9k;Qq4&c)KY_j{`s&orJ9jVs7 z)P5#(?9_!vgpilxsWc+)ljTxDhdW+wX*uJgx z()X)RerhTB9LNJv>+!J)yiF}Ft9WZ9U<>S;kx!fb%0v234I2k?Y=k*)bHe`On5rE6 zK?H0BgT}zoi%S`mAlVx5ut6BID1HM6!#JNeVHBI-CVN^h_f&O$AF}V58aVxGS{jpG zB+1uWHo-bE5lp~~SgwW~R2tOvRCz>fL-!OS+Yy0Vy(xkttA(?|yEo~3fsRGRU1c*> zo|2WYZ;wwcP7L4Gbp>Gd9Y9e4Xf@enu|@);QkM`X7~-5dtVy|M*v)TLkVY%#nO5Ht z3_ZW6us0rVP)SQ8!$D(|_1A0mQk-|d0KoBL+!i?d08sv7l+>%nDw>+G z1%w3k!0&EVh3Xb&B|1Q zFa*-YFby)Q7p<8Q%P{g375Mj0)!=F5uJwC5G~9`|;K<$NN5sJ*+9gsX5K3Er}v2La~y$ZO%U-hIY5U+PQPJV}QGeo3ANE^~k*Q zduC%qf222!NVdXZJ2gezG5@@xz=R%}dP-|Z*s%^bUR-R6rGFh8G-_*plD(bsB)KQh zQmt!-j#K$^N`z|`*hp@&iF~+3P`AL!ADS&)(6ORgPIyaFkwrMJXCK@hleGH7lrRkr zi8c|8O(mFgi*c$A+#c$STP(7=iWogS8Zh3;hScJW0%j%qTTldE;uQdc8{sT#5MiPc zN3+O1+^#*Ffz`sRrO`P;r^%|f0mgOrwl$iZL4jEOns8`^1EwScfGh0G{ya zV!ajs?0aut;i?+D?2UsI%ESUhLr?hwKSFSnV%ibDMxd$whY#L1KPOUUGBv+%!9DaD zu&@RwFoEWkSuf_8CfC_-BBSSK?e*U*`h`p6&-7-B8iQ{*kGM^+Q4?H6-6T@W^DiXH&}k z7d2J9eC&yeAZfhI2CGEtG*BruM+%6_Nd$G!*w9FN@nMLfmF+uBCl>M|2H+R=6b$6VQO)Hx`kP-$R*H+R;V}gnaeSz z2~ANi=qf&8n$!H4fAnNPQ2j=OmA^&3t;+C{5X$Me)JkYpuej%6oAr5s$7Nk@{JSfO4e&<>oSHE& zw~_;S3M;Hf6JF}7S!*=8r6=uX%-%OW8l^{uzx$tOQ6zPV0c5TVzyD zR1cL9>b@yhj{2vUyqvFL>pL^rFSB#LTYs7;2jVztbAuyn$QDLKe*PMO$EUt4SaG!H zp9+Z02cK_C<$Nm_7Mfo@KA~dM(EVoOGHi6G z+3{lS_vqg^)ksb(d0YLa=&3@rximLnFtLt}g@`MCrs~BrG2cn!^LWOt=MF-nlr-9r zL~{OA=S|;9#(WLy;Y4Ib&X3u_vwe4cfIhD0k!|zQ#p4c zf0(jR*3jVOqbz0fs!IF>d}vl~`-sT;V^Pfx<87OFs*MWS(_Uzb)8ll|ng$CSs^zF8 z95rvg@bXZ(pr!@7o(l9DC+;Y9e^jOlY{05t%^rW~6+Zvy!KSE^;+Vgt6PG@!?#}pb zD>co{lBSXAra^4D7@qwm%}Or?Kt>COg%gwNVnf41&Gu1^^Z+y2?F9!W!2*x{&dLsIDB_do=J z`3N-k50RRr@hHWp>1ho-D2NFj4NY*CD(6T$#p+yrl^n#laG&%1$pw4y_z$6@hndhC z_>55-C^Inuf2h(0@Fy9>s%k|K^O5ZClTfOtr6x&W%0dtJsjmqJkK1#UN*DvjMqY}q zs>WK3L*9pI-}5B(Dg}y)=wc62TjB0LETaRn2VrjmN`vm*o@3EO@5RD#pJRD2Jj`X_ z>Mpu+8;12=HfENUp1pq^pdBcOTxJON8C;IsAS{{QA9u>9?cbW}9-Qu0|u ze^WE_c7cPP)si-VIu$V`J(;S<$BdXFmB~S%-y4WfJn3Sk)oYJUbEY@zdp!w_NAPtb6_s7}f8D?-jf2RqMU9z&yxz`B z{-!LjMx~YxGHHrPeb-A*O*|BP5GA+x92`eIwqun8)!o$&qP$GW-layFxw=a@`3=Gd(?C05a}d{bxRLzsX7+q#oBkj zr?|L~{@*2#6!R6|2N}Kglni}NcM@`)Gt~b}gZiUhXs?G*!J->@2~F?c|7y@`_+_={ ze*+OlGO0c`*1`Y)05DKYR7C*)0LRe9^!M}p{rl|i>f`9)+v3~Q+tJO{#kIk-)!x;t zw5$LC0000000000000t-10nzb010qNS#tmYE+YT{E+YYWr9XB6000McNliru;{g#9 zCkZsT%`N}{1p`S$K~zY`eN{bk+eQ#&QgNILAEbtP9$iXlSYx{8I3wolo+LQWY5^+Doy@h4zz4p9}X(a-n+MZcW>WTD!0Ds@jLSH zXutBc@8}Im$%-dmK~#^0A8=T=jYmiKuD@}B(gc0e4&WY+>Sahtmyeih4g&t@F5(Xa zo3ywBYPGl={(5`;I3}`yIPh6;y2`@gZ?`C_#azfPiCrIgP6~2<^7!WZJ5N#Bg_i3B zi*U?T@z>1){MCTUof050M&!7C_WDZ#VLzWx`An!Hwor{D!kqNW90xF;)TrDAu$yzz z8M{QfyW+ac<7i`E)Tn3+u)8M&07M_{&S#41tnbWoo5EV2Y-Jb7ebx<$wRsJ|u|FSa z2H&P}(qNp6CSnw(pK`n+mOmTSX&TLWoNNOnc7Poxh8I@^Ql9#=Vuhx`4C3Ls1+v3r z&h6o&t0N%V(X42TET}=d4(C8ZnK_W8Pd*a-jrc5@*;1CvRMS*HS*4Ar6pICIs^G+++B zO=g13SnWBslJYqYOj0r|++adUuz+|6yC8hB?WJK{0*)y|40{(|P^Xelg;VRqKmmL< z<~#Z>t4;y>br+2-_Y6`Nn^`T@(!dd~QKb5u5BBsA;(5bPSA<}#IUNr82v`?Q9oGym zjk-sWtTg7Mo=}X|gSucNBmp*?$kr;A%lh0Q2;0VD7ORYKhYoWbYR-O$eO#+lnO)N_ z$DG>9B1y|~2a_CiM1%T>tCgxUYr0707mWpsbe!c{E1_O12}%Z%nVydGqBVggDXGf@ zB|ziwN39iAka4-uv2*~-ogpa!I9Mn2hsrm4FOHWRjpfD?uq45#HQ9MxIfTNyihlwq zl|#wpZ&UV+4rR$9gLQ_qpZ;pc7_5QPQz3LklWfL4v~*s%r&4j znVMph5FvUy7w4Uk&er==zZHVk4=+>H<1^XPk`Uf(x)7PZv`8!NAb?#mLajRA$S!Cz zOBrWp&WYPZiDg^7+`=|?S*H|L@w7{Ag%k|$f&yErp;Ar7s&I(X7hu#pTPcNtY!uT} zj0In6n%JHdu=1cMb+FPzA;^u{hS^Ej!)03~C~dU#sj+83EL=snPz!HCDfwp!;E*-R zkaU(+h6UAC(r8Z_3Au8Iw@-1EI7F6340w?w0);aj4=3!ZwO?s_m8|3HB8&-d36W?A znp&!zT)D?VV385Cn7+)oM%p8oNDl2Y=6>>@>N=-g^gtp8x-o3(Ne1z`a*EzZ zoiQUNTh!H8<(}ZRNq)=cq)&3DDZGJN8^}5W-T3+1Bdbmyauj?_kgf=rs~ANm`O@m& zwMp5|N=tiJ${}s`k^FSS=({QHgsE;o^hb1!!U}(UV^&o60%@WZ>4SpJ!BlN>YnHqU zh@-vNW=I@G=1Kd-ooP4VeLpv3nL}=G-koRPQJF?o-9*Mtq4~=_6Y(%@v-;pUVZ?U* z`=)MHqU|&z$>eJA{{ET$ucs{7MEw2eD^tCCq&>_F{%7u2j*i}c_;4rsA0yU=2?GR+ QX8-^I07*qoM6N<$f_BpCGynhq literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/chain_link.png b/graphics/battle_anims/sprites/new/chain_link.png new file mode 100644 index 0000000000000000000000000000000000000000..bf54b11cf22924a92985249c2348cc0ccc85f1ba GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DT4r?5Z4p?pC3JXbk3YPQ>RYN z&(HVs^Ru$Dl9ZGL%3}qxf4ANQO0;;oIEGZrshwagbU=Z_MKkwuWOSv^f=4$5TaMh{ zaklu;u0+NN7mf+5I5-yc!uwziP}Y>K~s}xGZ-||GC%W3+G`8RjD(8d3o d+N*9K<~IKk8I*fv@ive{Jzf1=);T3K0RTeKT&@5B literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/chop.png b/graphics/battle_anims/sprites/new/chop.png new file mode 100644 index 0000000000000000000000000000000000000000..2afff2b3f21509c7a060d49af77d5e9c151ab5a5 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Ry+{6;C1xd{&J2Guu!DyQwdAXH+Td^k(Q=#WwFTaKL#dm2Me z9ls>KLh_v8?#vq#|Hkog%{-8MGycLOxnKT#`>XW6^sr@r0y)Lg)z4*}Q$iB}y;@GR literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/confide.png b/graphics/battle_anims/sprites/new/confide.png new file mode 100644 index 0000000000000000000000000000000000000000..adb65b8052d425c555c87d6676526822ce91dcea GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5LX~wUtj<1-n+eP&i?=Z ze@gY5vq$eOnX(rsjunK;+43?lFtK>LIEGZrxjXf2-faV(hpR^-lB(# z9$jB_>zIoB9k&M^H{61kl{4=2$T+NF{pNv$pJo5`f)kTx3mmbmNz;xKYFKfPG3Z)= zo@qzx{Yj60&g_cIJ^tLw(Q#?oX@SC|L>UcElN+&~kLGJj2zYjE=5)BVIdpIDw?<1-6xc zBpq4w!gn?u{C59=!#t6n|06z{GIrcwT=F6^2jewo3jJdudG@c%~Uv}qdayx$8ry8jbOa)t6^*37e@_dP|yW>}qxQKCjC_~~2 zHHTa8TrWBDbN>2PgR7nBZal z-u8jd5x!>4CzIa_C>ImdKI;Vst05ne&j{pDw literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/crafty_shield.png b/graphics/battle_anims/sprites/new/crafty_shield.png new file mode 100644 index 0000000000000000000000000000000000000000..091047fd101de9096246516029ae18abaa630f25 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!VDzu-cxxDqznRlLR^9L|EW9v=g$Q)hyn4@ z$;v==rk*a2Ar*6y69hz35)wj!gc1aTf`VMs4+tfw3LM~gV#uYLq@m^{JA-@L0XCM# e21ibg3r84F%wtdZ6JaF!_2A;{3*o-U3d6?1AQ`SP_W@VFT^?yXm@e#|?EdB+RUXKZcS zXTGxQ$Y01>COtVk<8Pcn+6&&U7Y56IizIZuVB>piQn9vHcH)5@d@EQ^^!)BhGI+a` zfvKzUdib>UQoC5TUSs{5eD|OHk^a8;hP}6ZYaZ=mxGuPyu_l7y#|%yW#(rJ~yL+M= zdV~+W*8ULKcE~+4x`tuO5B~>T<=yicZ*|On>p7v{g7*e{=mEQqQv%;EHmt0alDx9K zaO(B&8}8gqQK#)@$v^(luh72xsQ-a$X2+K=;|~C8Sj4aG@Wn9LTIJUbmKn2_Gs-V# uh>P#Edvf80^EzKU7LSkf9e9^N{?D-Axp1k}AIC^g_;|YdxvX8G zSGx{Wm*wf=7*a83>!gdk2NXD5E^=-Wj`$|ONoi_av0B~9{-VkSMO_suxZ1MTYJ9!o zq_|ymN{#saC9C%yaFOLqP_k_3oAH6MO^0QTgsF~*NYL-C625&LC2#&M`+faWLq>~9 j%C^RyB<-6yjqg7&FcouqyU*x73v!*OtDnm{r-UW|k_SX< literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/dreepy_missile.png b/graphics/battle_anims/sprites/new/dreepy_missile.png new file mode 100644 index 0000000000000000000000000000000000000000..73fe2d2f2144eb891d34487d77043a35dc87dad1 GIT binary patch literal 281 zcmV+!0p|XRP)#gw{{R18UaEAt zvNN(CZtVZ^Q0vOha<~8k!?(<|)X;K-Mf@|<(&Fd;M=1CnHZAi5vUk3Jn~Ee2(!!sQ f9wz8PLT>;7{1!wDh(5nQ00000NkvXXu0mjfGSY{1 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/drill.png b/graphics/battle_anims/sprites/new/drill.png new file mode 100644 index 0000000000000000000000000000000000000000..a97eeaaf50c98bdf85d1adb6e3685ddec80d7a09 GIT binary patch literal 1151 zcmV-_1c3XAP)s=?@DBiW< z5`JX8<3trgN<3qy5|@VTY$|a9vL2TUmn7>{2#G_JDDANl&5C~jm08;4IIK`C-xoL_rYdo%Ir5-C zV3}%5Ijb))d|+96;A(RyU__if{01CgZqw{^N zYL(f2zXxbiW)mwLydp(NmC>*_ zzjCnx=c!GCpHm8p73J|cU_VuG6g5d(x~Ix+DSLj&A88h1B_n%-`|C!5VN1Vzt_pwU z5N>z{j--r2so^1Pe$riu=f7kSwNYc2m^rfP;VQ+8pFZybj#tx&GPk_xZ7nr+H)@RH z{M=C&@bK4Ekup{<*%(y|4r6vD`{lDPU~e1dsKe@5PsBCE8@36T54(V!zZIEK$HnGU zB!_BsiWT{{wKM;fjK3n~EP_o%6y+Qu*0<8Ezxc-~aQR(-=T?*lZc!3NDZ|4XzP9Fn z^TR3NM*L?#M}c@P8vv=(Q$Cs zKg7y7=x9t{+VdZQv6JLp0$~2=*uz;tY$=pNjicjr06ypde}a&_w%24E`I#8kbh^y; z4tEp*ywd@G7eaEO(d6Z+C=klUs>7OINfAQtb%2#9kc}@mzypQ&MI7e+Xeb~&+W{~H z6NuD;9)g`0^xzVl1Q50TVS~Bj4Uw{1ra{X6QJptQy@&(R(pqz5T}~wgi&U#%sOnt;C|Y!cee1Q0wTni z5yf~)mo$E56QVe6@J&+cR4T>4SiDF<6~ocslNXEcAS2tErUFy^Sb$O@Dg-ML3dg13 zK^Dpv zYL(kmb(o9=|2VM;sHr(L)FYQq%lwdMN_dT@mehKEF1`$3MM1MG6B0;~7sE$B+p3w=)jrF&PRtf8P*fw)_A8{Ws<@GR~ao z5gH!zNciab%M)%e?$T}DrB^@Uh1K~u(E&1c`y=p^d=Dx)YFSdsXT(8_x%U-B% z5P7)l>#xuZx0lTge;!`CRG%?TW6S0eF7@ z`F^|UukHHacBVQ@ZGAQ$XKUX?scQ9$;lJ0ED<^)Qd27MU2~YpceAO_6G3wyzsA+%r zo0ykf{cU>Sz1)qb)BEe{e@Qh;x>U#286OO{H~cO@L}o+o(u28TV^%-YiK534a_Zacq-GK&6My| zmqBn%-4A^(#u(;sNk*kp`VzM?Z*Jso;wZQJ=(#5CU*PR;49@xLo}V^#9s?y}Pgg&e IbxsLQ0Go0NhX4Qo literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/energy_ball.png b/graphics/battle_anims/sprites/new/energy_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..361d7ff71a9720940196fe5322897b6127fb9318 GIT binary patch literal 409 zcmV;K0cQS*P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMWm991Zo5X(gXyu1O$o%{Qmq5`UC&~chHgk z0Bt+~Zj}IacL7l-0BsBbZU6yw0DS{qcK`qY32;bRa{vGi!vFvd!vV){sAK>D0P;yh zK~yNub&)}C!yphv2Z*|^V;_KEsq2Y9^|}#}Z$Q^o+;aaTbRdMfayuKucKhTt#VW*=Tsy7@*_0L!BN<5vF_SLeV_=PH>sh0D1QfG^P%XF!xe`JA}o0m}EO|3K+! zz;doF6p3gK*V;mn7$?=5EKRiZYYe+V?MJyEb}OQ9no2meApg1X00000NkvXXu0mjf D0#u|d literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/fairy_lock_chains.png b/graphics/battle_anims/sprites/new/fairy_lock_chains.png new file mode 100644 index 0000000000000000000000000000000000000000..8db2c26694e1c97796aa7ef16914db194b87f0d1 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQU(D&A+9I(KRXJy-m_Kx>hZT<1a? z{<_}KsNieDrL|{f=GXta=XF6hd!F0YzvnxCuV_E~@F4fQl%U2q)9hT3lRRDhT-G@y GGywoUK~v}e literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/fishies.png b/graphics/battle_anims/sprites/new/fishies.png new file mode 100644 index 0000000000000000000000000000000000000000..4abdbb90075346ee668cbfd36c088954f2fb811f GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0zf>0g&9bG&i&Q}qznRlLR@EEUZmjl4aj3?zNets z4PxL0@>lLO0~Jj1ba4!^=zTlkBJW`X4i{asf|m@s-5s@WCzQk)*)S0^ix*%D-(EtE-^N-HaKz56Auyamz|Pg~GXn#ozo(01 zNX4AD(+&zXEAY6OI{f%=pC`mp=q0q^^6cAkw^shXljHWba8K3O@TY#!??h%@GE!!C z;9sy_yJgN{htHZXz9=6k>6&xtgn#oANrz`26X!G@pK&sup^1IM=lN^)@|e_Z++5aG z!KAde>k)H;fI!~=N}&Z^c6WKU{NZ<4uXj{#fntL61r9BSpR*XRo;T%C(qvg8${@Sw z7ptSPO6viJILR0PDsqDu1?Jo{*tSi|;chcSQ)<3#R>K3e2Z|5Avz$^2d~osg0j~oE z)(5wG6t{Hh&QQLgYN2dkQ)N0!_0-;=2&*k zgu%n*yb;^EJIse{1iPPHDwgbssNL(UuJKy)UDYak&xP;vT26HM)pV3JvdF$pyvWRy zZD>2)^{(upWl^O^3T&AsJhK<5W*0P@J^#*|$u eMSSVi_rKVtd+5FVmnazu3Q|v3KbLh*2~7Y*8>bfl literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/golden_apple.png b/graphics/battle_anims/sprites/new/golden_apple.png new file mode 100644 index 0000000000000000000000000000000000000000..dc030788686cac19eb3ceaac2dbb5ed11be0dbe6 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5Z9SEU;Y38?A!k-@7@Ky zJL`CFiNKa5@hwRLr5a2joO~fFoIr(e@c+MKR8hDVkiXN@#WAE}&f6&$c@G)zxa@Wc zd%+cXQ2P#7T%%}S>zWCgo=gh`!b=5e6s`noU!69&zxuh}>6QDhtJ>R%7V;{t5lqPz z2xW3vVmHNOS;~9Mug#Af*K(ZDnp?W`z6$IA+#L(1ciEqsYaT6eYWGsdg-vKRii_CCqvMERMG7fjgvV<#_< sDL1T$S>|B*BrRZ9j(URsg?eqi@TfDhQ{x2=M}a)$>FVdQ&MBb@0Jt4@_W%F@ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/green_drake.pal b/graphics/battle_anims/sprites/new/green_drake.pal new file mode 100644 index 0000000000..697da896bc --- /dev/null +++ b/graphics/battle_anims/sprites/new/green_drake.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +0 205 0 +0 180 0 +0 156 0 +0 123 16 +0 106 16 +0 82 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/new/green_star.png b/graphics/battle_anims/sprites/new/green_star.png new file mode 100644 index 0000000000000000000000000000000000000000..21218ceb6dce9ad5fa122f921948ee8cada620dd GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^9L|NsBb{=YZp|K6$OE(@k+bDUa?QYVZ23Z#ohr8^C4JR928IzhPC|&97 za^hLRvqL1t(8v0aLzg2{&q9W!H(3-)CM}Q%Q3(v-J(SR*nbwr4q;BHDlEW9!rhLa% hDS*wJsVyssk>RKTZ_oLsPuW2(_H^}gS?83{1ORw4Pe1?w literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/heart_stamp.png b/graphics/battle_anims/sprites/new/heart_stamp.png new file mode 100644 index 0000000000000000000000000000000000000000..4938e7e9ee0d8cc60ca97393823428fca728a429 GIT binary patch literal 327 zcmV-N0l5B&P)y zK``4hDcL0>*A*Mp3KrA=5vu?Wo&XMy01bTr3~~SrYyb>n01R3H3r+wFEWROi0002e zNkl6)Sy`m4Z|A{UxP2oz}Qcrgm$)y!0& zk36*+SW9a?p=s?HMO>L0g>$o3yq!ZaeF_g0-p}vC&HG=%Uj+=REX#|4K>@&7z(8W% z0g&9bG&i&Q}qznRlLR|l^I|*bmxG+oslFbZW zUS5WVh73y>-T{?Q(PRi^VAukZhl7W6<})%dFuHoWIEGZrxq4~sxkCmLZ4bZkm?@}u zXg&Afowg)xrktFkf1+b@n&-3$Q7Tf$PkyxXzul`ppMiVkj`H4rIV*#HEW8f^hQTPK8e*}wkxzqkL>{NoQR4;6Oq zd9kB6GdVx{?Ckk*>U$sjI2E7cCY^k(=T)7#Yu9ZnH`hy7&rWdR@jSgZ=2H%vQ-j6= z2`9rVK4Cw9{a)k5AtSfzT}wo4GRGVVriWUL90I&An3xIz1(=!+czkXv`1$bt<}de( zcjVu;O{(ls+>p-kV=>DCXOjhAISx2Fa&RyypMCxJVf+5`ccM-|-1h!_$4|4i12Yv9 zwhJ+EUu?Li#30S8sKC)t0w1F8YuJ3SCcEKbLh*2~7akps^+Z literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/hoopa_hand.png b/graphics/battle_anims/sprites/new/hoopa_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..02aaccf13cf69936bf9d931f6434eff01234f27d GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU-TF*6B&oD+-um@tZ+yCv z^?r@!;v|Xi@Ni>eW1tdDkY|-71r&|*ba4!+n3J4vfQyCIF-59*!N!d$%*`{nCzzSd zKQQ4D+oIFjl0lPtdqvaz*o}FnnpmY9Em6~yJ~!v$$pZ$aKAw{sg-^_owDR2BSj==` o&dfOux&j7^YnY~(7BiW3GfM6io6LEvM;~Orr>mdKI;Vst08F?*G5`Po literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/hoopa_ring.png b/graphics/battle_anims/sprites/new/hoopa_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..bc49e1ce316d72662e55589831bcabc55d5dbd83 GIT binary patch literal 480 zcmV<60U!Q}P)!aOCC!@8$&!9JT(Ks5-( z-`TZt^;t!TCMH24l{YKO($c#&DT0+S399?Ijs8D_xCM=S#A z0qV%#5r1n&dFPt1-5@ngtZY91MJ{mi zw_V?yZI<^$Xup+rd*|&CmhBo9GU25ye3B2YqVmnl6v*7R0D<)~*P!Wef@L zTHDpc$^61ww_F*M>q1-2N_s7c$ltDjp*wSRymb^_{sCu;piT&xoZ}B$NK>+)rZEQq O0000 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 S6yb6J0000@J;8|HQIjDZZH=F-s6ceaWQLhhlV zq2WM=Y&nn-XMK@D7AO-M`uZY7B-H96gBVC894IB$4rGPz1?tKu4Gk{_G8nJ5mzOt# uOxDfl=-8_y0I^gFVm;IuqwX0>?g0RU;i+*Za&5o>0000lK zX8~>nXg*E>W&>yr5WuW1I?aVSUl zJM6H-swQHa{xkd6>0bnVQ{$Vm>SLgHy*5xG_l35MVQDov$Yj&08sM@rn&-oe=atd; zJYrla&&I&z5xmP0s6IL-3IRS7ic%gp$`J-!mjM8s`Kti@=scXMN}URDW&}h~Z{UnKMTO1G}sO))nSa#F@P=+8vctBKgumg!WcYlq$G@%Ij@0u*GFePP%I@N5bySJ zuwbcR+I#MBwhLK3wM9U*kwJk%=_lUtGuih~V z%>m?;v`37=b;fh_F4AFwzhfm>dX_HB2lT-@APIti0Amale!rtQ@WIcr#_uxtDaIE4 z&vT69T+t^hy4oR6~?W+9ShqQxJi^KPDs`AQS@#O1*hGAmx$TVw&Ph zno3Lo`%$Y5++On#NyMQPbTInR$J=X|0@>79szAI>!H-43384F20Wr^?<(Umd*x1ShnEW66M$=;1y$gBnn+^w96(Y9rj!wu zgrjGwK#zx-D4yZh0P{>GoUAi;WJWb{$X8P0?FR;M(ZAA_q^+zkDH?A?|4E7$zdEx? zqEXf=Ts8i|!s8H%=6-s>su$1});3)MWhD<1RON7#VM-iclnhy52# z?2IR<(`q}wPOJI!i=7ux>a^Mo40c-07?6{8I-G|g@m@0|n6di{pk0xZ+>szFx&8Yl z8g)u*7v}#(td`a;Zw&yg-5SZKHQ7kMwf0ThQ_z1%5T>oyXNwVp+4K5rF@i8T_^E1C`|oX2V&4D&002ovPDHLkV1im?NFe|K literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/impact.pal b/graphics/battle_anims/sprites/new/impact.pal new file mode 100644 index 0000000000..644d27307c --- /dev/null +++ b/graphics/battle_anims/sprites/new/impact.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 0 0 +255 99 0 +255 156 0 +255 197 0 +255 214 99 +255 239 197 +0 0 0 +214 214 214 +99 140 99 +197 197 197 +230 230 230 +132 132 132 +165 165 165 +206 206 206 +247 247 247 diff --git a/graphics/battle_anims/sprites/new/large_spike.png b/graphics/battle_anims/sprites/new/large_spike.png new file mode 100644 index 0000000000000000000000000000000000000000..6af8634c5709a323162e1d81ee4b4278a822d24b GIT binary patch literal 734 zcmV<40wMj0P)nbt%C4^j*_qexIKhc$LP6@O zYMC2fh&>?xldM+Hde(nl>LI`aUd0^?$R!kF5ojbhzDNeHVxYivIbYLV*dkTwkO63d zO$z9+OII~W^&^27`s`U_FYNlWp7ocMh}cRkKn8aKuz;E`q6!J+n*@<$&=Rm=(as21 zv=sr1wkoh;(XPtAVbKO1V3Te_kgS>o=##9guLM5XMwQ_kmvRP+*z`EVnx?}Zjb@B8Gz)Txt!6>i1U$$DX^?NiE`MgUX~K$Z0Z#WK+8bg1a=B@boYS{-3@@dpgDv?w}c#C@4y#=A^|8QlmV(~)eOD`_$lFi z0!4ihbkjM#!ev^Oz!1#8x5_a9Ld-{15VQ$E1en2MyS1^i44QC~weKs`c#8h~!;0=ULUu$L>C@SpC{ zn_)hzcOL_2?5}V<4nQv@*B1_d#9>^7SB?S3ca6_vVBl2ofW*&i@~ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/leaves.png b/graphics/battle_anims/sprites/new/leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..4ced398dae65809db9d5894930767de24043ec85 GIT binary patch literal 503 zcmVy-EW?5S~h~2n$!(?;KhP5;zGdeFwvtR*S?kMTjW{OD*CX2)=-=k0CzE zCc@>sW}W?;Y;I3+i@RgLxtaOqn-74`WF)16))5NCv@H7Vd)=%En2c2vXrB53-w2rM zaII_mxt5e%)SBCCns-fCMtT!)?0-|-Te6t3ifS4eaSlP(WEX(fW<{q_++aTr_ zdvoIUvwWCLm(Jk^kIOFLe}9NB#^Cfx8GC(F#-4J*IOvlwW_=RItWSHNwp7CW;rB`G z>QIg02ZVhRD<-6GatFA5s%}R?d0j1@fcNQOIg;N@NJV2WFR}mJF+?#hBz8^L_Mfc# zpFkjH^QsPF;Qf*i^Lix2cm)$;L63x3&?6!Cs~&8emcPA`VBg=sMuOPima#VyME-Wh t_bedtw>3T+DW0M+J{u`&#~I&;{{Ufh+Z#RIMGgP}002ovPDHLkV1k{b*$Dsu literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/leech_seed.png b/graphics/battle_anims/sprites/new/leech_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..a0246870f8f7c5f477106954a81a14e3966f29a9 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioTxZ^V#mUCP(8r*wD8lf7 zAv@4eZKF6t27~Ggi+N=p8#)3Q)-ZTkC||g7gExm)XtK~NkK#Q*y^B3v978JRBqu2F zaY#!yWV%TwI~z0~w@?$&QOT()dB$j<{OrXk27$*PW=<9moVVD0xl@U3uVBNB!#d6< zmTh5SW9u_haf_zopr0OI;*Gynhq literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/lightning_rain.png b/graphics/battle_anims/sprites/new/lightning_rain.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d81405d005997d9bf65e966b85af452997efd8 GIT binary patch literal 356 zcmV-q0h|7bP)lIKuglK3lGo@dsf{42xa&g$V_e0qziQtO2E?;6h?)iUffoc9OUwht#g>8z0Y=_hM0xovHI| zxHCXpnM1~al|-j$g#f;&@m2PC`R(j|&7?TilUbUz3L$B7K8ipo<@TAxABuK&?|E>x zghS~NbKeGlU~?}P2Tri{zt<<0R1>rW8s`ko_NgOAN$GTh12IE!68V4+C(QO(pvPYZ z9X-VsnUtq|#l7p?4Rui6@J>Ift;g4vZ(u9du~}~%pBL5B{m%0M0000k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$jZRL%n;xc;`)Q(2N*DXxWI5>2g8C13<(JW8X6iv^`l@k1crSGBguM`2ddawf`m;2}F z>G+K%Eq6Zs6-~0Q`^XiPSz)*3neg+8-?=Q0N>nz+^mTqd@mHuw>(SjKRol3;>aI=r zR9l>|=Ifrj7mE2eH&h&T3E~Z#ry=3B=%H=Afw+*GOks1ebYru7nQ`?*aGOZ z${!Wdcj5ko^oVJ(E)@VVNzcAw7Fc7Eb&lIThth#fh%N?b9YN?sv$r4!ro=*uMGk~x zf0zSGicJeb*bF?TVM4DhIR)rIt|kY(lunc$C19ih)*|4IDUs(`qxQb;`N;$st6u=` zQ3gQQv>zZW>fSv?Mrlxh%z^LiHC&kG5DW->fe02v0|*Yv7yzA=fV9rxNdtr;Fwy`{ zU5oIw25>?FNT|GrE^;ElB2_loMfOYxkxZ>Jz)sqxsQ^sm!`@)`GTJY4+Q%y3L`9G9 z^u3Rzs|6UlagYamUdHoVsdoqhPemV z+{JRlB4z>H>HxMY)@7?3{TE^uy9ZjEEE6$00000000000000000000Xr7z40006Y zNkl0QIHz^YFZTlZd zNt7}KT?!Nk2P608c#`KG&jbYQzu(otWj`lNcDhhCBIne?6*eM>uO_F-95&?)_YymnQ!r|^WJfU}~k@8fEB50(4wg5<3-xqQ!>e z{vhv-I>lFiwFH&b)^;C^kKe%UHfzJ@J=}iH&S!@>mn-&Dpx*<9*VBf1GYx)3gpX&| zzi7+nTe{vu8_sv$Uv<3}zV8-EOB@c~cr8Q;Ey=>UoOPg#DKK6<&H0%rg;j-T-tf7T zN&ucz5T#%W;9~jT?7+Yj0Ia~ARg9Dk0OY%r_eeCDx)zD>BBewU(YK;yaq4cjlUq~< z5Dp1e>Vw>%7R&WK#}Ea%)}CTl(lG!-sa3s)T74($;R0C$9Aq}f8`hA4;5rAt1E{W} v5-9R{T;eSlI_7;4ZjTWVkz@@bhIaS^?A}5X@kxO(#k7a1sYyf3n2U+A%iDp8 zXGdtm&J#`&OeqpwM-wIdj(?Cbb?UJ)WcTM|Sn9y$c%}451ju$zS3j3^P6Z_l1Rv$VAQ zU(KPZsrjFQ0|@3YaAYxX02NM2`UWH+z-`N;g+Nxjr;B4q#hliOdwCfYIovceJC!XO z!}`*l9^W|rbNzkQbdjfwT@Ew*4jy4Q>^;rrm6vTbMeEb0*MXNA{w~?KyTB)Teamv! z+N~Kf8)f2yC(C-AT4Thxa>o+KXW2&_=bY7b7L`8zkU8RvVB>@Dd==mPc!Ju`-@V_? ozopr06r>TuK)l5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/omega_stone.png b/graphics/battle_anims/sprites/new/omega_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..d9aa568beedb3e624035f2012595388a530c01dd GIT binary patch literal 917 zcmV;G18V$m?0000000000000000000000000RcoRC0009Z zNkl*Fh~Qmgk910-&m_HRp(V2TCJgDb5iG0A*^YpCdYe8ow)+ zH6ZaxhbFWJD#Uar1)#3Hu4-4QoF+Mpx-o`AF&y(c<9rh)2orGeV=q zT$S`K!EsE}^oE`@A->tcVrToFbVyy?7>z|&DgbDJ4jb05qxqjwNRZfCSe}>d=qc1KL_HL23p}9UQ0#0%{Lf zBN@=4qaYd3iUGGw=vT^NxZkKounY(h$*^dNr+m#40o{}yz;GqgD=jRk2mqWb69A0J za0+LIfUeP?m;!|m0U!ss$H}fHz}f-42XT8G>LWfRQ(!~DrKn}8(BV+_RvED!fhKc+ zh)QzU9nmNjivfsLMQ;rBR0CF!#r_imedTcks25nPh`lLA@*zC1E@=-VupwZ`@#Alx z)zJeP0U`ju3J=GsH!UOaC1ZcE>5U5!AV+bM9t+rP~PysUB`w#f5Gyb=_hQx2Ht z2?8QUmCouH*5BzUa2XKz3Gs?nJRhd4cRPB?{3+Jv*cxZo9&vd-=X~kZv^~N>Ij7t> zOGlhu`@#nAiG*f6YFh+WN!iQqxpfBEF@W)~W+1W>{|Yu}v5QlHb3~NAeP)2yCQR;w zjtG+Wc`y*-ZRaQU(D&A+A|dy02EBz1Mv8S@*qn zQ=WaB^X~tWZ$L?0;Ke$><3Kr6PZ!6KiaE&%3ET+@2_B`XKt?HNf(LJDVJb(VS&&+r qL6DG0QbL$eNJ4^v5YwzfYYqUd@8&)}jX8Ta$Z$_rKbLh*2~7YV0WXLE literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/poison_column.png b/graphics/battle_anims/sprites/new/poison_column.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe0bb27ec875ed69d5b36cff3a8d82d7f8327f4 GIT binary patch literal 904 zcmV;319$w1P)cVfVC^Fw0dDanjGch5biae z*XxNVp7@`G=FRs8D*HzRE+`6MBW9Sxo_OMkKNpjVfi7%5iD(~yHUpGesZM(|d(Z%d zcXd*#m3coe#P3=F?J!R~@x%`T@@nrBfC*}f28m3GKj%J0fN1+XM06_?zm|IGT3076 za*nE`ew?GIbF}TLcPOB#nUIlbcObC`p7tn}j9qM1OzGT%n|<)(A5VNYFg}DqHEQ#VCB-C~n*6?NH5A)8soMG2-pQwj1B@4_7b?736>~sf8L#if*9_)3RKt)3k6`DtV!_vs%xK zKUKqmJW{>n0$Nj4DzQ{^xd>BLF32>|Z7$?o*$YxnwZCEpsXL^0apfNvI>tRv&;c5D zB9}d+?7(YKBmNnnYaK+m1JunxhJFi%8Hm(h_h6J|07#Myon!~PkTJ>h3h=zpw4j$I z1%SG3)c}m!M+CM6po7VREqHfO695W8yDX*zT>!~(2wDoOeGD^b8QRq`9*h(QfLaQx z&bkBb_A3%lr&70|CCJ>%1waPoKO!ywoPD|l4T*sG77UF=;OBwk`}6hNfum)Sp)0>I zfG}F+H1tSFQF>nHUlHUOk^%!M4(1#uZnNG|M zRIT=9)>4!B6%Y+ZKoTI^dkAbb*qx>I5nv~B5~0+0o!FI<52a67~NL~Cj22GCf}=!V3A*7?Zx)btoI z9+X>1D8TQgQ)LDY$gD;jg1%kVlE;DGDpUkuEUetWaJE&@W$C~u+&u#A_F+1D4}L-W zSub_8l9U6!2cvcR+=DMO2tZ3A*_@_kaOn;lfRVz_JvgMUx^Dxz8SHw__F${KUL`ot e7DWy475E2H*lQ^xG(*Dx00002qRd3Jp=74DW~bv>&m;MQJPZu} W8~7IgR$ki%vd+`h&t;ucLK6Vw&^gcm literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/power_gem.png b/graphics/battle_anims/sprites/new/power_gem.png new file mode 100644 index 0000000000000000000000000000000000000000..5523bb8a7570bab7fbfdd46f16dcfb29fa32194a GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU{h!V7{{8!B&z|8YuU)&g zb?esR;$rtl!P|g(?L1u^LpWw8Cmdk=k=Ro&zkn(KzB8-dz26Li0+U#||L#`N;1GIL xUmY0m@m=+X4uJ@kg>37%6Z!6>w8SPbFz{Q-b)VaPzz}E>gQu&X%Q~loCIFK{P)z^; literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/power_trick.png b/graphics/battle_anims/sprites/new/power_trick.png new file mode 100644 index 0000000000000000000000000000000000000000..53f99276349f904ff50b85e5929745a15dde35da GIT binary patch literal 540 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Evc#Z>pYrS@$L7UXRKq zpE>VRzFgb$WnK(W9xEuV6U<{^U|jC$;uumf=WM8BQL_QhlLPEW8s`MI*)3?YHvYza z<_F`K2i1N*>%y0LzHJNHxpmf&1sN2*{PKi`t8 zE{2P>QKJ3LUET&h@B4uYMm&|Z<_fzvio8nU3t`TP;a;e4u-5C}^c z*7Vz}_FACm;gbwsUDSCC4%!EXFALf{;dF^&nrq^^nHowhf5c*~o;{qh+~i*JmK7l< z8vU0@yCpa9oifz@?#0F%z#x#aC;SS_3`L(w+kC78(^j2Ln)!5_SfB>(^b literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/punishment.png b/graphics/battle_anims/sprites/new/punishment.png new file mode 100644 index 0000000000000000000000000000000000000000..9215b6ec07019d39cf52c78ec4efb33f40749251 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR^zI|7SZT@9kOJlUxiG zBM8>me#vHFU`+IMaSW-LvvgYEq!tApRzW=lV|4+4hI{|>w69(B`V}a=e470&7N$zI zmIcb+4bR;_Zs}GsCFq;*U6rYQt0sL_`>4dsv39c6J6*Mp3r~6pGb@R|RGZD%tB^GN z^zkM)f!GN#0z1|=r76#Ch+w?*s!_G#LH?7RxzocLtwcAaCtvSE}@?d=wF$`ugP8_nTIq z3EJ@ce~#(|uMhuy>iJWqMFVdQ&MBb@07pf*{r~^~ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/purple_drake.png b/graphics/battle_anims/sprites/new/purple_drake.png new file mode 100644 index 0000000000000000000000000000000000000000..372f9a378964fb0ad8da55b3fc1bd12e45c66d72 GIT binary patch literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipSBC!#@6Wz}e(>knwa<@E z{h4h!H<+;)D2WRQOHZ|7U|{0&ba4!+nDch(!ELh@1ln$@K)6Lfar@ApOA7kDncU^(ItfBCZ5g;|{opB64PWB9ORnO~e| zlc;bkpF-Bklq*^uyByCj3h7=D_^|G(G~<^Angq+pF10WW`_EdYkF6==StiSEoT6N9eMq=}K$7KiRHA`%goXMW2EBb04lXwYR zj*ZR!@ak literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/quick_guard.png b/graphics/battle_anims/sprites/new/quick_guard.png new file mode 100644 index 0000000000000000000000000000000000000000..71d343eeb5a8f93b0a50cd832de74728bb9c2b6e GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jYiepLC@4rsNC*fB zluka#CnN!s#07E|XG#I(B0OCjLn`KMz39l*V8G*YF{fyMj+%MKyZRQbgA&V{xPFz_ zE@>5-=%Z-c+FttM0|Un|9u5vD literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/razor_shell.png b/graphics/battle_anims/sprites/new/razor_shell.png new file mode 100644 index 0000000000000000000000000000000000000000..fa39b37fa6122c11134d2f02cf7289bdc3345ce0 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*JnZ3{{LV5{a*F6bIIqH zTCMFdtj<;hO5y^}FQ;_?<&Jo|IEH9UoI7!^;9&)x)|D?@^_V5pI#MGJq_Y|9yHfUM z!+#FPCYCu$u5m|yzx#5bU!Y!V)2itwqO@O>PFm^k=H#MmqbD5}Yjr(1orMMGPpRx@ zJ;^N2B>ZdZ4@H3u%2rD3_L?e*^FQb0=@e{wl6CFS-FHtzcccp#E$~v8yPsgqtiQyn z@eB6~t}3YvW)8LHa}`;#4{m9$-R<45XN&JmzDZ}+#6-63HRO1|)@{z@a54Mpe#d5` nZ9AQPKJ)jUpZ=@%w0srgAA9@ys7tjoKz{Xf^>bP0l+XkKc_Vfx literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/rock_small.png b/graphics/battle_anims/sprites/new/rock_small.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec3be87a48b8665dca7f41fd6ae075f0b1743ba GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<6!VDx?zobtBQU(D&A+9ri`~WhAgoI?}7&X)x zjm@~Nt=T+0I0Az?5>nZ+^VrKOc;*=MRhG|Q7I7lAs@}S8^_gw~)awtfZxlsdt*y=B&^Rg%e&1%Cb3Y7hLgj h?D(3K8S+J#q3NmiYyAy3?*ZMw;OXk;vd$@?2>{{dPHX@G literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/rocks.png b/graphics/battle_anims/sprites/new/rocks.png new file mode 100644 index 0000000000000000000000000000000000000000..4393817a771ae502b8dd8bdbaba4fa7c136da947 GIT binary patch literal 1361 zcmV-X1+MyuP)_*2X=T2euxW;gA$gS46LORpt)Rn000Es zNkld3S9uqHSK2 zpiu2*-%X5CO4@xBL3?PEylDizSUXL@Qxlzd$f<-3;;o|W!G9n=&->2L-R2+)`rMum z-{(8;JkR^SGntGEJChEZPn&jMl$th^{-W=@eMf;8q?A6!R!}w*K4?BaJlyL9nWq)Nk^q?f2+-7B6ko!-^n)qqs1UyY2woqa3jjQR zf)4B{K-$3sfXeQ{Jb-VpW6u*(Cv3~#1kk6z1R;bmXyTrlR|m+LDrYm=0YN{ZOex}F zj@KER76|~dQ}2D8+5+vsWJx&;>l91rZE#!~PXN9ngt$Roj|@D|Lvkq~=4lN;(*cyk z9Dtl5SRy16@BrXy2JU;_w)YS!J|M(?5`Y|Qc%#WV)|d}kfQ0LQe^-Okt=1pjjtil{ zID%GdB>?Z+1Ic5)vH}XGTaCc` zqS=7y>0xvL^JjP)h=(j3j;R{p?c89|ps=mpHh()Ftv%r0-{z_9&<r&y}}rP)e?e+&VkG^R6N7$4LmOp&X@+A&jr940dSo2dITH*CpfQZa8WC)c3=Rg zjUmYAonZteUMo#h(4m+g1n?B+Lv(Ts3-Ss;$sDC+ctQYjqZH$u6P6ens64NlmQ$dN z6?xSUOG)w=gGylxjSkVW0zp@;V!q%ca)@pvx3X!FoMd-OuZ#x=vzdQ8jP|^zVx+cE zPt~1u@5K-9;T%uUMkK281q3ZO&{#053$FX1)%sOCSTL*lYz%S^T-&pEH(D`(`CnLA z_$&a1gMh8C#b6Y`vXo!P3WwM6Lk1>#F3#BdGf7}MV+?`(sP(&ESqI2zus+Lzm4bqy zhwHu@07n71X0kCDm8%O;N8q_-y1eeX-(*7IIFv#jwhU@ui!8V|qn73ngqAA0dMIVH zsp%TWj;F`}A4S^+F)U&kBMESf@GITL1et+Rl?zU^nGGp{yctQ1lM2)#&@1IF0G||x z0|0{C0Iq}{22B1uNN90Hx9C|M;}qp^GPTJ`Z&|Jh(V$ej8h5-OCEiq&7M!dG-nP1^ z=((Z-UIfZ%aGe(QN}dbAwMp%vBxp(s;o3nmtv;0rP-!#-A#Y?OFf%_l2Oxa?J07l{ zkZ9Tl=CVfO7FzJavND`W5KBmwKK;hk|Hc03jPx>dS=ccNlq(FL;ZZl>o^y(LxK|T` zS0I-%8-tPpH$&1@coo1|DX&HzX8@cBiO!8&0e%F}-iEUsoOC#nT>qth6?jtG6k=Yk zd#c88ij=}6n-X@8+75*w1;nRb2u35|Wz{MQ^qnLCkBQd;@I&yFB0*_?_1oF`JPuC2zvAOzQ~SD}KG)Q*Xp+BJpOSYkUEObRQtJ*?h;^6mHw6P=Q_ T;~TwX00000NkvXXu0mjf+uvYg literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/shell_left.png b/graphics/battle_anims/sprites/new/shell_left.png new file mode 100644 index 0000000000000000000000000000000000000000..fda9142ad03a0a33cdf129d4077cffe4171b3af2 GIT binary patch literal 381 zcmV-@0fPRCP)CGGy)(rf^p z5fNb4Db>~e8^FNoo(*l5L!(|3S%3W;u~=kEjUW0&66-zyv}axzldCJEmdAZTfsNVF zNDk;5V!;hFHD=>+U?kQ$qODi%I8kh5edE05j%2&9kb)DgA;#2o#+T)s%3!QG#W!Q5 z&eX}q(z+C3TMF2N8|Ct6(njLKJiU5eOdyv5#|ulp4}Q4%xp00D7RV#v@Uy?$i#s@u bL?Ru(gS(ZItGi-N00000NkvXXu0mjfO~;>k literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/shell_right.png b/graphics/battle_anims/sprites/new/shell_right.png new file mode 100644 index 0000000000000000000000000000000000000000..70f5235a7738b724097be5a9f0ab6bbca995dcf9 GIT binary patch literal 380 zcmV-?0fYXDP)ItMhymDKbg^G!A<}t^tp)B9@o_ zp8Z&)oHIk86L)prr|fwV6R)>KMu#5OES%>6GZ(b`1BawMKl%BXh3l%+6LL-Xr7pOD z^rxTxlDlG$!m)J)McMLzjN9|wj@6szRb{TEYPkUf^?dp{)A(n0-)%BFANB`3x^fnY aL;}BJxs}~{;=PXm0000Hhj~_n{ zY$#YTAz;apCC$yvj*gBeP8?`xXaFjJgYE3MsM!`8;N!OCw&AP)~iq%F^>=Q@1tAR|3p L{an^LB{Ts5J=-{h literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/spirit_shackle_arrow.png b/graphics/battle_anims/sprites/new/spirit_shackle_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..ff86f33d21cd4f83c7f7419eeb578c540ef8a41c GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?j_fMTuTHW&hB;S%c zhW``Y{@1JT_XSF02fy~`%?8Spd%8G=RLn_ESimu5>NGBe&o{lixtS-hI(d5^T%~}0000mP)t-sI@TeC zb1_Of8Dm-@85tSQwPR9BAt4zErIbnl004VyIx#5_2nYysV<}@&DLOG3jtgKo0003N zNklNX7F!G5B8S8#raX%)&Q_~^0gC}!n;>Z|2CM5Nh@C}9 z;YkD!S&PF;Ft4y+VPTbPtSl0DcAIN%n*U=MX2x+=s@b!-fw(aEKs=^&8QPZ15@dvc zF_sXXS;Ep?!f2oE#2WAE5#xs%VLIZqL0$8hhQm+ErCHrb`DTxW&B9qzlP{ZFLW~Vg zgm|DFps=k0mI4Xe`oWU$hb30mgxL??EHzH6M{K_}ylU2V23^-KY1ljK+up36^!=|r z=1s=y{wbbpx=KwA?v*;A3_#gd0FeU1CICc)ONfA95QZ;sKG(S8G00a9pAThjkmqtv p!~Sh1GqbwLvMYPcFQzLm`~z^SVKrewrilOm002ovPDHLkV1k*3o{j(j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/steam_eruption.png b/graphics/battle_anims/sprites/new/steam_eruption.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb8535654da6ea185df770b6f765fcbabe64272 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR^9L%$u)(B#}UwCvO8# zDQAI4WHAE+-w_aIoT|+y4HOLVba4#v=zKfLnvX$&$LTfilYi4o6SUS|^ku)trdY=z zc%IQkEm=YO%8AN^tOTzIhb}0ebK6<^e@(zzd0khDN3~zjiJF5<8I6jj`+29bf!ycm L>gTe~DWM4f(G5CA literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/steamroller.png b/graphics/battle_anims/sprites/new/steamroller.png new file mode 100644 index 0000000000000000000000000000000000000000..8abdef6692ca1696b2d6d95b9728ca798bbf977e GIT binary patch literal 838 zcmV-M1G)T(P)- z=Cn)~$jH#i$jG|6xu~eHtE#AjgM(>kX*?_jIXF2H9V!nG4*&oFz6s0Z0008f zNkl?(0FprErgp5Iog7eYsC3OLb-o!HjRI$yB{%8CB(;d_u6oIxng z0mF37`@HKa=sq{*6P^ITj5Ceeqo(Vw@_qjVU#2FDSOd*=fT4IjEIRd_k^ub}*F z#1GvxBn*VfV|Eb$-Bs_`f6tKMCyE0_0rUt1k^c<1O-hr#E6*q(NyoYXMh8HXB1-nk z7v&t~rpJ?X*axOEx=G$~M>1iPNMI7_Eg-ctWUl_=jxC1GRS7(Z#cp^S!2-B5G?5l} zreooWv;ZDHjm2*Iz;t&2C71$|`=(oeF5QG%mjFMLFd}3}Rd-L;lhw3xQ^i}+YXDHp zBj;fixw>z5qS5OBFx(^ZKcdmma{x5z!6VAO2pAym0bu-@S)y`hHLs)H&*uR!g2)jx zyzUUr<<@PXd+W{yP}udvoW!`i@z#o%aQYQMeI(8)2|94Vv`YzZNxz^6yQsW{bYO znzP#h%*lq2GD2BxuF($E7gWDZQ3y5{+Uwe@c0l_BxcbuHvXo%svcTVr-|~hDv?g_w Q1^@s607*qoM6N<$f`-V1DF6Tf literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/stone_edge.png b/graphics/battle_anims/sprites/new/stone_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..8e27efb9a2c528fad7817d986e35864703d5cd9f GIT binary patch literal 326 zcmV-M0lEH(P)Or#cy)!AL82muq2R`1#<_0azp)_8C4J} zW1s_1(%ZBtyMYG;fl5ueve3ko>5dHn!t`Mw{L0aRtN@C_ecy?w8dS#4M5E5UV%&eu Y2WF&G=u-g_xc~qF07*qoM6N<$g3EG&EdT%j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/stone_pillar.png b/graphics/battle_anims/sprites/new/stone_pillar.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee5d4a2fa6aa505542d7d4eff8e049fc715e242 GIT binary patch literal 1317 zcmV+=1={+FP)l*O6o3u5ab;#YHU(O5KFLEy>nNa(CxyoXf~J&r1EHl8?RE-KKoq=n zF$r#M&4J}Y+p)!-mo5Uz+@I^C6gW2cWFl=5HHqG0!tdj~yT{}4)5gX-#3L#Hd@yfw znLUsnydb7ETApXl3qsn?(i)8M3gF8C2Dv^Vrai>-n}l?12Y}~?IIvF$WnAu?{jbp) zo4Wu|OLDvaB@Pfmc1b4@wBu+D=#nZrQa-mVv{lvo3E7jp$61Ee=o6C?vnOpLrH2E% zCZUdW$)1f);umw5(6*GK+v~P5;8(g!%#IXHO4`v#jk5~a6Z>sP(mf2Ab)kggR`cvW z#eniVYElVnIY{h76gXq7Cy2=gGcm*fo!AW4NZNx^j!-~L$pxhyuS`=M5P~_B_C~r) zv0iJJa@y-!;!vk)iY~KllRe?shozJV@Hpvq0FZ(YQ(+A-z~(M_lDL*Wqa6g;P9y+d zq%PCHQEY^5A*D-cDjjVzK12X_-X<^cO3wMH4m`5W9smcaH?x_80bTOM-8U^SOIS}X z0R&@gkV$Ac0&I3^NA44LkO|h~NUJxyZ3|wz_CaQ|o`V65S+Yyp0}b0kB2Tjd=5v5H zI2iC5{9oA2^0dH#ZO$AHqhzpeBo1(4G3I1twgiAz#;Phv58h1_fC<0=GuM&mrkw*$ zre}6f%4`|nX$?;z(;5R3VR@<6XB7rW4JdgvveqsDNs0h7E}V*}+62o)0Li(NrE`G8 zGHO5~s-2crR^^=(2eR24V6+6#rI1y_B=)f2&LKPrIS&kYEV-xkBJZJq)~QY)3ny5HZI}v3 zMCLsN9>a3l1?X>gwl$`d!ZE)JBYo~p0 zPD>BKX%8`#4!7Ays*$~?gMG(Z7jIzpUhx)au0n;FuC|E_N!}vxAb)cw#OJ=2i z1%a9(fC69|D=USe6tHz*8k`idQYs2!6~uWB*nphMjT=3uko<=hFIQK(wYt*lc=z~x z)f4zMqPflao4>{+e}ID6I*J>Hit0z;{b*WCnl~A#YBEyQWTdLeNL7=O8cjxOylODg>!ZoTMtbcZUA#5Y0?`BCzq~cl zZ~aLPXpQ}!K(%(%B^c>72AujQS6qZ~6#w!2*pKR~2>nS6ZV>v%N`({T?JA=1C@!L@ zAFJ09<`1A4;2lO0<;F+h59?UR|0dQ(`HqpVdIJA8-q+6;BX0owCe=b+%(#1vy4K4( zzPEhvAYUq4`TV}{Y9U(K7 zQrh}?E?UvK*)PyuFGTB`U}E=Ak5Pc^C_+O2r$uyH_X_|*|ELHjk@AaZe1ZUB1Ofh`Zj>spRj4S^@JN-~ bsQbg;u~EwqX!wfH00000NkvXXu0mjfDd|)j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/straight_beam.png b/graphics/battle_anims/sprites/new/straight_beam.png new file mode 100644 index 0000000000000000000000000000000000000000..c13ae95d0bf60f8a63243da50fee7c6d065937f2 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT!Hle|NpNxf4e&6+r2H{ zf{y-Ay86HP8BnbG|NlAv|8D^*KnCj$uUQ1-D|@;)hE&W+4k#00VG>ksb3DYM&0=^Y kn4NoZv0{g!Y4QXE2D?_zz?X7&AA_`ey85}Sb4q9e03!u6$^ZZW literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/substitute_back.png b/graphics/battle_anims/sprites/new/substitute_back.png new file mode 100644 index 0000000000000000000000000000000000000000..fd31e1063caf280c84d463508e0c1ee028eb5938 GIT binary patch literal 488 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*S9h%6&(>C9u5n3GyugW zEXc?x2>9{i$B73kG73C^B52@Euk1>o5NCl$WHAGSPzeY#-b<6OU|?X3^K@|x@#uUz z*)Z?00go%MqxgaxaoOa^7kS1vSI@9@NZe9AEpFlS7rolIJ$*Whn6_m9JLUdq@}jOs z3-^1zeaDbnuU`3Lo43zNu8*a{9~74fZm<4P6wlM~d#%taMsHoVrcY)jH~7SF>MZ1) z*1_IT*nA<^{5az)hbJ~Y3lCIxgu5T8U3TPlVhmTvlhb$1+VVP?EtpDXYTDaB&}rHr z#CU)+Oft|h@^qtHh{Oex>m>%8TKOZd*Ib{HBzUAz!Eo8PHs&<-Web$`13D`no;}N# z=pQe$VDSfm%90z))wZNIFjnps)6Hj0X3BV@G_UcnFdGDVb26|s3A`;~0?KiGo z@XTyMWqWnQ#;|#N){gA(x7-Z9)eEflN zLzHw3gD~U8X<`a;!Fvr7>V&&=Mf&Ck3-8+=u|#>-KCz`Q#Vzo7sC literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/substitute_front.png b/graphics/battle_anims/sprites/new/substitute_front.png new file mode 100644 index 0000000000000000000000000000000000000000..5d563900c0683c2066d33b91a3b91e9ecaf7beec GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*S9h%6&(>C9u5n3GyugW zEXc?x2>9{i$B73kG73C^B52@Euk1>o5NCl$WHAGSPzeY#-b<6OU|?XB@^oU=pfk2BWuYSP;pP;4<>RSq~`FJG-?_gas)5cxu>x!Mn&q+@9Tdrh!`l_ufnvJL4`}iZU$Y)F@{NbT|_CNjvF5M6$YQ&8GXj;Zv-#{Eipv zmajRmsyTo$z=rYR0?EMWgoz9{vJ@vSSXVC{m6&Q~Uz`27!7TcS&GAOH5|?hxBQ4Pm z?`L1=;$(|{pU<;kOX80Y_Y&GIxRzhI_glVBhnw>N`!`mH>-qc#LYNk0r!-W!uvYRs zxc={1^@HwHjHf&p&XlPno$(XszVP9dThy_ey95=!rD_!j`}PZS6Q6I)leot{-Z{f};X$JO_@w!Rd<``s%+&@1>VC^S7?{an^LB{Ts5EJUSX literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/surf_new.pal b/graphics/battle_anims/sprites/new/surf_new.pal new file mode 100644 index 0000000000..c81c2ec9e8 --- /dev/null +++ b/graphics/battle_anims/sprites/new/surf_new.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +104 144 136 +65 164 213 +74 172 238 +82 180 255 +98 197 255 +123 189 230 +131 213 255 +156 230 255 +248 248 248 +65 164 213 +74 172 238 +131 205 246 +222 255 255 +248 248 248 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/new/sword.png b/graphics/battle_anims/sprites/new/sword.png new file mode 100644 index 0000000000000000000000000000000000000000..9d037b9a940d2ca7b4dcdf1875d68dd65ac441cf GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+B4W$;!yc2sh7_s_7ML zTO`!ESh#bpLPa-F9xFKce8McC#B5I&$B>FSZzpf$VlotP(XW3XlabY&AUpdC`?|lP zyZ0v8IehqUxbn=JucA%2-zJx@GQYg#A;TW_gyRZU4LAQj2;yL|@%tkD=<77jH?CrA z%e0%d%9+@=ex3iZT9VN=`2*t%$!2GZZ#|U^`kBRY4k5v(QvQ zI@;RWDk>^CI5>dvSb@_=*2@eGj4_@rjv*Cu-cH$=*K8orw)t+&Rwm;`D>f@~7SDdh z*)dg8(eSaw#l3asRU{_QP%3>jAwEIp{`1}Uk8OzB`^DdN&HYCTf*WV^3r99&uJ)T`Opl;22UBoI-O4f>5DJRl()BL&zNBq!Qk*cIo~y@@rm0H(|3GF z);-(yFsEo1)32AN%)G(AeSvnq8#%u4xil}z6Ymf~`TEX{#JU6W`{m zGiPh^Rj!(HWUZD^Xy@Me!%US`dl+XgX1#QZ*}?6{zo~L1o=bl2kyyFPM|EqoMnd=O zSIs>98G1Qfi+oOA+u7oAa?&Z$NQHNAguN!+-^%{vyn`K6TCG)ig8R<%<@Z}Zr`oRx zUVpO0p=Q<3t!3XzZlAu87}3_b`+%qVjxNCpuIOyO1(FXQg>B@m)A;hz%xk{W0oJ=V uvh57EVR0-9JU!nnWF#3qAW5cn=*IH=X#p_ zTEX$-+>}oZA9I$znVu8QXnOm#!|H1<>KRY|Ov-)#^8U8B$(xrQHh!?Rr8-0}r+>|S z#?_ZUCghtZd^y*f_4%Bylk0@MIUEiA3;`;g6C1-;d`;z9@c0t@EW6@(jgvEZ_fG%H zIboNN!*0PY71kvS7CvRaTdf|*$RX+eLS(^S;W_Jcb3UsyE?339QMdy$@>c zp7?({!+YikzaL^g3}L=!jU$(Nsw~)lX_}d&#Xi4hk{kMr7wl*H=jghRF=YOZhF{JL zJpC7}v);$5!)M2Ee&g@9lJ)1`uU0kVY2|(Jea$NiKat?}^Y)BM?mL=j!;B57&jq z#|>jUSb|6Wejc;@#CBeXIFkbu@rE|Y2;TG2Nx;Q}-L#u!R^fjqm zT;m_&?W7Mf_U=2$V|6%$9LC{kLcRg&_C0pT3Y$O#@e_+BA7bMFD*(#O;zH!e-(FFy z8xs*_=dqEq%5Ix3ib-ZGofENcKW%E>+s(3Ag*!ngus*Z^LG0v9QF|7b%QDQ#)?^1b zG5KbtL+sgR;)UhCZVZif5snjrvb=aMYw7?oA;NuXIC=Bl10r^(267kxvOSv}2)5M& z{O)Z-c}vyT4&e6Uz5eXO2xwws&^XAO01(U%VJMEP3fVSzKxoQoKG8BJz()1pl5A0f zlRN<*V2Rc_hCy7QDk5@DN767_@QLJ7185U`n_UI)q1|#Q$t)*t0+i_4v6y`HyQ@b7 zu}^7pl4esNE*|+I(xiiagM-A#Uc_mc20A#CNDd1?@#2%mIG7`0_Yt3+tSZFB!(N(- zJRh2VWKGPa+-WwfJYXkc-u;W5E7wD^^j^BBI5#E^ccoVo@of!SGS@-ikzZY;F;tFu zd{f}QctBo$vB25;j~f2p0IdUyVdP>v7V=tCw=_sTx11TmJhP}*rjZ{Lhvmir#?!O$ zztZHHhm8A{Wd2r&$d-rP+<5+R>aigg^LYLemr^@cn>O-JPMcKQg%rE-c%UdaPQ|4# z$~Pfv2ORtdwZjY+NRUoxk4!E2d~~}7ADXz~2Uwm-&XuO!E2^_7oG(F^9wwEjStsiE z!jtHTQmoqE8BuDrwj8OMQqo#LqP4M{36ippE|kWURIUqzZlSg5kvLw3Go5Jw#B4q7 zW8J}51hhnpYd--ZMXI`)tSRd0&!T|qegU9vflSWYr<26X0A$LWTzi_XFx&w8mHAsK z)xstS`1|HXySwR}_`yCkd`{V1>D=lH@z6GFbLEN*qRupN2)H5f_(gHRsr_zc|2d&( zVRK&+ZUnMW+HiO%cy%2@?RJ;|76)B%q=r6^!lgnuE}STUx_T9t@wu@GjgV{9swxNN z7%ej&R1|u?0KjFNvhdN-fx9Gm7VT4*$R*Ky_7NyPi6a(Q%`YbiGiPmv-&2sTv20$! zqa49?gQin~&rGT6kQ`sjUF2E35L`44nnP)*f-D-S#eGl|ZIT)DYpGlF=OP>BX0JvB>%i^M~S zBM>4rPB0hPPSW8t>N=wZXqIN}`g{+h`E3<78UR^KBSj5}Y_w&z9OO_D-E9yKy8u#s z4K0r-^4+L{@Uy}p+Ls@S6JK$CGLKDNx&a<9nGxOn)$)c7)wEZSWV;l~vi`cab{?*5`y-D_^9+`{yA7{SB zsg*Mv_DbO#;E?pP-;z>ZU%IAFVq~GNVU#<&)knN3R6mISo@I|7J5jFBJlFKNYEC-4 zk*sQ&HJJ5fw-Sbh0%!hHR<2C!k|Y-$!e@Y&C|)Sc^KsDbQhX?f@&cgmjUmCRp$ECb z1Xwl;$)AAxve`0QKs_0YA$k0Ap-%iTkru?tN!jG8wblS^!>x&tk%jPPL-y*;OR=+j zzR^K>_4f9`W>!x~Wng-~1viK<#DUY|OY4W%CmI=ZLi_;>FUt+w!z+0J0000=lW literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/water_gun.png b/graphics/battle_anims/sprites/new/water_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..4f30b2133dcca00deb0874af741c321f3ec21d59 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT>mQ?N^ae1cqPk_P= zZc)xy?vy3WFAFAku!R^lM`UMId~}`AXl`Y7fURjwfQZAk5)lDbhP)CbyHbT!Z9vNy NJYD@<);T3K0RXhmR=@xN literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/wood.png b/graphics/battle_anims/sprites/new/wood.png new file mode 100644 index 0000000000000000000000000000000000000000..1b64a647f5ce0f878de260bac06bcdf5ecc0cbc1 GIT binary patch literal 881 zcmV-%1CIQOP)BjU5Xax(!5TH#F}O<)gj#GtAz6|skSxs>!D|aqhYU@JO!4v(L?9`o zmdVo179HbBn+3)#ZigBKEz#0I3H>%bIkI&3LMa3~r1S`Z_v7B(y?g(AvJhxSh$c!i zLa@LlB!qV2+DGpS(06_$aIFepsQ5|)9gs7d0v{5$rAQ1PQV9eM6j(C~4CPoeNA(DR z#B(MDbYshN?4z>OevCmm0GTjwY^72MZi|3{58g{SB!wVgr6Q2hVWoofIJmMnz)~el zN`RGF(qn~mEUk8IA^-!9bZH^|&J>Mx^^0kmmjrw=o6~)>1cCWrWRAX`l$E``oPKYV zO~v~Tf`G2?Xw{%dQd!UbpKdo6q%zDhAM8#V3vjWS^|iiK%Uvo_v@QmngVFY3?y?mP z@xU$f+3v{#L{GbMd$go-un|S83eueevj}q0@3cLD!vd^!A)#&F%68DER`4EB?o4)` zrzuss+Rb_HB&0j^d*VAX2d0L(1F(tWJF@AZ8Z^2-ST0eiagOp~InH&(y^ncSVld`{ z6NZGAqHlo+-zYNpbHW~ryIK%v>*gLKfvh(RwV+kaSIyBr0jE-$wFv=drs+=E>HIO9 z+IiPmLyRu=(56z)Zj!zQs6dN74#L1TbD-LC_JK#mw$i5IsLxsqWI3a)#Af+|9`Uc>C`&3H_LfV>+R-vwJZ$E&_{im;`*4o|F{n4#S{MO$ z_-}v1D*9TVxV53S)}D{8NCWgancMOjcMvPuMBaL{{!#k{k;_KLriUb&00000NkvXX Hu0mjfT=bMR literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/new/z_move_symbol.png b/graphics/battle_anims/sprites/new/z_move_symbol.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb30987545a447675c602c667ec73c368675444 GIT binary patch literal 381 zcmV-@0fPRCP)b;z6o$Q-f#oe>_W%d*zy&Ngfl=2Wg{&A*ETBV|s=YyFse2_Z(7_C> zRdc95M|2{87^-gh2FuF(_5FSkqNnFSk?T7FH@YJr>Q*?SP6Z1(6*5nO3@02lz!FJU zkRl1n3M-PJ6rw^3=_vE*;&U3cB{ph&{VbPi(jri$m%d@`D|M^bu-;RaXL)*pzg0B# zZmHC`S;Dt3@}ig({*%K{abR+Rfv*s@TJPV{ybd9}>1hZxC^#`&ec-dbBn3Y7^aKN< zj&Wy>F-A}!#P_E$vtvBNErvT|%=`=rn8Az#<`K@tvn{M$*e599X|X8m14;~Df59a^ bJ%8i}U7b&4q@t4C00000NkvXXu0mjfYT=yd literal 0 HcmV?d00001 diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index c80d90b1ef..0883fafe93 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -296,6 +296,7 @@ #define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286) #define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287) #define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288) +//new particles #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) @@ -326,6 +327,71 @@ #define ANIM_TAG_PUNISHMENT_BLADES (ANIM_SPRITES_START + 316) #define ANIM_TAG_QUICK_GUARD_HAND (ANIM_SPRITES_START + 317) +#define ANIM_TAG_SHELL_RIGHT (ANIM_SPRITES_START + 318) +#define ANIM_TAG_SHELL_LEFT (ANIM_SPRITES_START + 319) +#define ANIM_TAG_RAZOR_SHELL (ANIM_SPRITES_START + 320) +#define ANIM_TAG_HYDRO_PUMP (ANIM_SPRITES_START + 321) +#define ANIM_TAG_BRINE (ANIM_SPRITES_START + 322) +#define ANIM_TAG_GEAR (ANIM_SPRITES_START + 323) +#define ANIM_TAG_ASSURANCE_HAND (ANIM_SPRITES_START + 324) +#define ANIM_TAG_ACUPRESSURE_FINGER (ANIM_SPRITES_START + 325) +#define ANIM_TAG_WISHIWASHI_FISH (ANIM_SPRITES_START + 326) +#define ANIM_TAG_ZYGARDE_HEXES (ANIM_SPRITES_START + 327) +#define ANIM_TAG_AURA_SPHERE (ANIM_SPRITES_START + 328) +#define ANIM_TAG_OMEGA_STONE (ANIM_SPRITES_START + 329) +#define ANIM_TAG_ALPHA_STONE (ANIM_SPRITES_START + 330) +#define ANIM_TAG_BERRY_NORMAL (ANIM_SPRITES_START + 331) +#define ANIM_TAG_BERRY_EATEN (ANIM_SPRITES_START + 332) +#define ANIM_TAG_DRAGON_ASCENT (ANIM_SPRITES_START + 333) +#define ANIM_TAG_PINK_DIAMOND (ANIM_SPRITES_START + 334) +#define ANIM_TAG_STEAM_ERUPTION (ANIM_SPRITES_START + 335) +#define ANIM_TAG_CONFIDE (ANIM_SPRITES_START + 336) +#define ANIM_TAG_VERTICAL_HEX (ANIM_SPRITES_START + 337) +#define ANIM_TAG_UNAVAILABLE_1 (ANIM_SPRITES_START + 338) //0x2862.. supposedly used elsewhere? +#define ANIM_TAG_UNAVAILABLE_2 (ANIM_SPRITES_START + 339) +#define ANIM_TAG_POWER_TRICK (ANIM_SPRITES_START + 340) +#define ANIM_TAG_CHAIN_LINK (ANIM_SPRITES_START + 341) +#define ANIM_TAG_ANCHOR (ANIM_SPRITES_START + 342) +#define ANIM_TAG_HORSESHOE_SIDE_FIST (ANIM_SPRITES_START + 343) +#define ANIM_TAG_DRAGON_ASCENT_FOE (ANIM_SPRITES_START + 344) +#define ANIM_TAG_CRAFTY_SHIELD (ANIM_SPRITES_START + 345) +#define ANIM_TAG_BLACEPHALON_HEAD (ANIM_SPRITES_START + 346) +#define ANIM_TAG_FAIRY_LOCK_CHAINS (ANIM_SPRITES_START + 347) +#define ANIM_TAG_IONS (ANIM_SPRITES_START + 348) +#define ANIM_TAG_CHOP (ANIM_SPRITES_START + 349) +#define ANIM_TAG_HEART_STAMP (ANIM_SPRITES_START + 350) +#define ANIM_TAG_HORN_LEECH (ANIM_SPRITES_START + 351) +#define ANIM_TAG_STEAMROLLER (ANIM_SPRITES_START + 352) +#define ANIM_TAG_HOOPA_HAND (ANIM_SPRITES_START + 353) +#define ANIM_TAG_HOOPA_RING (ANIM_SPRITES_START + 354) +#define ANIM_TAG_METAL_BITS (ANIM_SPRITES_START + 355) +#define ANIM_TAG_SMALL_ROCK (ANIM_SPRITES_START + 356) +#define ANIM_TAG_SPIRIT_ARROW (ANIM_SPRITES_START + 357) +#define ANIM_TAG_ULTRA_BURST_SYMBOL (ANIM_SPRITES_START + 358) +#define ANIM_TAG_Z_MOVE_SYMBOL (ANIM_SPRITES_START + 359) +#define ANIM_TAG_REALLY_BIG_ROCK (ANIM_SPRITES_START + 360) +#define ANIM_TAG_COCOON (ANIM_SPRITES_START + 361) +#define ANIM_TAG_CORKSCREW (ANIM_SPRITES_START + 362) +#define ANIM_TAG_HAVOC_SPEAR (ANIM_SPRITES_START + 363) +#define ANIM_TAG_PURPLE_DRAKE (ANIM_SPRITES_START + 364) +#define ANIM_TAG_MUD_BOMB (ANIM_SPRITES_START + 365) +#define ANIM_TAG_BRANCH (ANIM_SPRITES_START + 366) +#define ANIM_TAG_APPLE (ANIM_SPRITES_START + 367) +#define ANIM_TAG_OBSTRUCT_CROSS (ANIM_SPRITES_START + 368) +#define ANIM_TAG_POISON_COLUMN (ANIM_SPRITES_START + 369) +#define ANIM_TAG_GARBAGE_COLUMN (ANIM_SPRITES_START + 370) +#define ANIM_TAG_LARGE_SPIKE (ANIM_SPRITES_START + 371) +#define ANIM_TAG_DRAGON_PULSE_RING (ANIM_SPRITES_START + 372) +#define ANIM_TAG_STONE_PILLAR (ANIM_SPRITES_START + 373) +#define ANIM_TAG_MUSHROOM (ANIM_SPRITES_START + 374) +#define ANIM_TAG_GOLDEN_APPLE (ANIM_SPRITES_START + 375) +#define ANIM_TAG_ICE_ROCK (ANIM_SPRITES_START + 376) +#define ANIM_TAG_TORNADO (ANIM_SPRITES_START + 377) +#define ANIM_TAG_STRAIGHT_BEAM (ANIM_SPRITES_START + 378) +#define ANIM_TAG_DREEPY (ANIM_SPRITES_START + 379) +#define ANIM_TAG_ICE_ROCK_SINGLE (ANIM_SPRITES_START + 380) +#define ANIM_TAG_STONE_PILLAR_MULTI (ANIM_SPRITES_START + 381) + // battlers #define ANIM_ATTACKER 0 #define ANIM_TARGET 1 @@ -384,6 +450,49 @@ #define BG_SPACIAL_REND_ON_PLAYER 34 #define BG_DARK_VOID 35 +#define BG_WATER 36 +#define BG_NIGHTMARE 37 +#define BG_LEAF_STORM 38 +#define BG_FIRE 39 +#define BG_FIRE_2 40 +#define BG_WATER_2 41 +#define BG_POISON 42 +#define BG_AEROBLAST 43 +#define BG_HIGH_SPEED 44 //hurricane, close combat +#define BG_ELECTRIC_TERRAIN 45 +#define BG_GRASSY_TERRAIN 46 +#define BG_MISTY_TERRAIN 47 +#define BG_PSYCHIC_TERRAIN 48 +#define BG_FOCUS_BLAST 49 +#define BG_GUNK_SHOT 50 +#define BG_HYDRO_CANNON 51 +#define BG_WONDER_ROOM 52 +#define BG_MAGIC_ROOM 53 +#define BG_HYPERSPACE_FURY 54 +#define BG_BOLT_STRIKE 55 +#define BG_ZMOVE_ACTIVATE 56 +#define BG_TECTONIC_RAGE 57 +#define BG_BLUE_SKY_DAY 58 +#define BG_BLUE_SKY_AFTERNOON 59 +#define BG_BLUE_SKY_NIGHT 60 +#define BG_ZMOVE_MOUNTAIN 61 +#define BG_NEVERENDING_NIGHTMARE 62 +#define BG_WATER_PULSE 63 +#define BG_INFERNO_OVERDRIVE 64 +#define BG_BLOOM_DOOM 65 +#define BG_SHATTERED_PSYCHE 66 +#define BG_TWINKLE_TACKLE 67 +#define BG_BLACKHOLE_ECLIPSE 68 +#define BG_SOULSTEALING_7STAR_STRIKE 69 +#define BG_MALICIOUS_MOONSAULT 70 +#define BG_CLANGOROUS_SOULBLAZE 71 +#define BG_SNUGGLE_FOREVER 72 +#define BG_MAX_LIGHTNING 73 +#define BG_GARBAGE_FALLS 74 +#define BG_HYPER_BEAM 75 +#define BG_DYNAMAX_CANNON 76 +#define BG_AURA_SPHERE 77 + // table ids for general animations #define B_ANIM_CASTFORM_CHANGE 0x0 #define B_ANIM_STATS_CHANGE 0x1 diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 8e68db99d2..8472c3531f 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -88,4 +88,21 @@ #define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. #define B_SLEEP_TURNS GEN_6 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. +// Animation Settings +#define NEW_SWORD_PARTICLE // update swords dance particle +#define NEW_LEECH_SEED_PARTICLE //update leech seed's animation particle +#define NEW_HORN_ATTACK_PARTICLE //update horn attack's horn +#define NEW_LEAF_PARTICLE // update leaf particle +#define NEW_EMBER_PARTICLES //updates ember fire particle +#define NEW_MEAN_LOOK_PARTICLE //update mean look eye +#define NEW_TEETH_PARTICLE //update bite/crunch teeth particle +#define NEW_HANDS_FEET_PARTICLE //update chop/kick/punch particles +#define NEW_SPIKES_PARTICLE //update spikes particle +#define NEW_FLY_BUBBLE_PARTICLE //update fly 'bubble' particle +#define NEW_CURSE_NAIL_PARTICLE //updates curse nail +#define NEW_BATON_PASS_BALL_PARTICLE //update baton pass pokeball sprite +#define NEW_MORNING_SUN_STAR_PARTICLE //updates morning sun star particles +#define NEW_IMPACT_PALETTE //updates the basic 'hit' particle +#define NEW_SURF_PARTICLE_PALETTE //updates the surf wave palette + #endif // GUARD_CONSTANTS_BATTLE_CONFIG_H diff --git a/include/graphics.h b/include/graphics.h index cf83e88c94..89f496a595 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4763,6 +4763,184 @@ extern const u32 gBattleAnimSpritePal_Punishment[]; extern const u32 gBattleAnimSpriteGfx_QuickGuard[]; extern const u32 gBattleAnimSpritePal_QuickGuard[]; +// New Battle Anim Particles +extern const u32 gBattleAnimSpriteGfx_AcupressureFinger[]; +extern const u32 gBattleAnimSpritePal_AcupressureFinger[]; +extern const u32 gBattleAnimSpriteGfx_AlphaStone[]; +extern const u32 gBattleAnimSpritePal_AlphaStone[]; +extern const u32 gBattleAnimSpriteGfx_Anchor[]; +extern const u32 gBattleAnimSpriteGfx_Apple[]; +extern const u32 gBattleAnimSpritePal_Apple[]; +extern const u32 gBattleAnimSpriteGfx_Arrows[]; +extern const u32 gBattleAnimSpriteGfx_AssuranceHand[]; +extern const u32 gBattleAnimSpritePal_AssuranceHand[]; +extern const u32 gBattleAnimSpriteGfx_AuraSphere[]; +extern const u32 gBattleAnimSpritePal_AuraSphere[]; +extern const u32 gBattleAnimSpritePal_AvalancheRocks[]; +extern const u32 gBattleAnimSpriteGfx_NewPokeball[]; +extern const u32 gBattleAnimSpritePal_NewPokeball[]; +//extern const u32 gBattleAnimSpriteGfx_Bee[]; +//extern const u32 gBattleAnimSpritePal_Bee[]; +extern const u32 gBattleAnimSpriteGfx_BerryEaten[]; +extern const u32 gBattleAnimSpritePal_BerryEaten[]; +extern const u32 gBattleAnimSpriteGfx_BerryNormal[]; +extern const u32 gBattleAnimSpritePal_BerryNormal[]; +extern const u32 gBattleAnimSpriteGfx_BigRock[]; +extern const u32 gBattleAnimSpritePal_BigRock[]; +extern const u32 gBattleAnimSpriteGfx_BlacephalonHead[]; +extern const u32 gBattleAnimSpritePal_BlacephalonHead[]; +extern const u32 gBattleAnimSpritePal_BlueFlare[]; +extern const u32 gBattleAnimSpriteGfx_Branch[]; +extern const u32 gBattleAnimSpritePal_Branch[]; +extern const u32 gBattleAnimSpriteGfx_Brine[]; +extern const u32 gBattleAnimSpritePal_Brine[]; +extern const u32 gBattleAnimSpriteGfx_ChainLink[]; +extern const u32 gBattleAnimSpritePal_ChainLink[]; +extern const u32 gBattleAnimSpriteGfx_Chop[]; +extern const u32 gBattleAnimSpritePal_Chop[]; +extern const u32 gBattleAnimSpriteGfx_Cacoon[]; +extern const u32 gBattleAnimSpritePal_Cacoon[]; +extern const u32 gBattleAnimSpriteGfx_Confide[]; +extern const u32 gBattleAnimSpritePal_Confide[]; +extern const u32 gBattleAnimSpriteGfx_CraftyShield[]; +extern const u32 gBattleAnimSpritePal_CraftyShield[]; +extern const u32 gBattleAnimSpriteGfx_NewNail[]; +extern const u32 gBattleAnimSpritePal_NewNail[]; +extern const u32 gBattleAnimSpritePal_DracoMeteor[]; +extern const u32 gBattleAnimSpriteGfx_DragonPulseRing[]; +extern const u32 gBattleAnimSpritePal_DragonPulseRing[]; +extern const u32 gBattleAnimSpriteGfx_DreepyMissile[]; +extern const u32 gBattleAnimSpritePal_DreepyMissile[]; +extern const u32 gBattleAnimSpriteGfx_Drill[]; +extern const u32 gBattleAnimSpritePal_Drill[]; +extern const u32 gBattleAnimSpriteGfx_NewEmbers[]; +extern const u32 gBattleAnimSpritePal_NewEmbers[]; +//extern const u32 gBattleAnimSpriteGfx_EnergyBall[]; +//extern const u32 gBattleAnimSpritePal_EnergyBall[]; +extern const u32 gBattleAnimSpriteGfx_FairyLockChains[]; +extern const u32 gBattleAnimSpriteGfx_Fishies[]; +extern const u32 gBattleAnimSpritePal_Fishies[]; +//extern const u32 gBattleAnimSpriteGfx_FlashCannonBall[]; +//extern const u32 gBattleAnimSpritePal_FlashCannonBall[]; +extern const u32 gBattleAnimSpriteGfx_NewFly[]; +extern const u32 gBattleAnimSpritePal_NewFly[]; +extern const u32 gBattleAnimSpritePal_FusionFlare[]; +extern const u32 gBattleAnimSpritePal_GarbagePoisonPillar[]; +extern const u32 gBattleAnimSpriteGfx_Gear[]; +extern const u32 gBattleAnimSpritePal_Gear[]; +extern const u32 gBattleAnimSpriteGfx_GigavoltHavocSpear[]; +extern const u32 gBattleAnimSpritePal_GigavoltHavocSpear[]; +extern const u32 gBattleAnimSpriteGfx_GoldenApple[]; +extern const u32 gBattleAnimSpritePal_GoldenApple[]; +extern const u32 gBattleAnimSpritePal_GreenDrake[]; +extern const u32 gBattleAnimSpriteGfx_NewGreenStar[]; +extern const u32 gBattleAnimSpritePal_NewGreenStar[]; +extern const u32 gBattleAnimSpriteGfx_HeartStamp[]; +extern const u32 gBattleAnimSpritePal_HeartStamp[]; +extern const u32 gBattleAnimSpriteGfx_ZygardeHexes[]; +extern const u32 gBattleAnimSpritePal_ZygardeHexes[]; +extern const u32 gBattleAnimSpriteGfx_HoopaHand[]; +extern const u32 gBattleAnimSpritePal_HoopaHand[]; +extern const u32 gBattleAnimSpriteGfx_HoopaRing[]; +extern const u32 gBattleAnimSpritePal_HoopaRing[]; +extern const u32 gBattleAnimSpriteGfx_NewHornHit[]; +extern const u32 gBattleAnimSpritePal_NewHornHit[]; +extern const u32 gBattleAnimSpriteGfx_HornLeech[]; +extern const u32 gBattleAnimSpritePal_HornLeech[]; +extern const u32 gBattleAnimSpriteGfx_HorseshoeFist[]; +extern const u32 gBattleAnimSpritePal_HorseshoeFist[]; +extern const u32 gBattleAnimSpriteGfx_HydroPump[]; +extern const u32 gBattleAnimSpritePal_HydroPump[]; +extern const u32 gBattleAnimSpriteGfx_IceRock[]; +extern const u32 gBattleAnimSpritePal_IceRock[]; +extern const u32 gBattleAnimSpriteGfx_LargeSpike[]; +extern const u32 gBattleAnimSpritePal_LargeSpike[]; +extern const u32 gBattleAnimSpriteGfx_NewLeaf[]; +extern const u32 gBattleAnimSpritePal_NewLeaf[]; +extern const u32 gBattleAnimSpriteGfx_NewLeechSeed[]; +extern const u32 gBattleAnimSpritePal_NewLeechSeed[]; +extern const u32 gBattleAnimSpriteGfx_LightningRain[]; +extern const u32 gBattleAnimSpritePal_LightningRain[]; +extern const u32 gBattleAnimSpriteGfx_NewEye[]; +extern const u32 gBattleAnimSpritePal_NewEye[]; +//extern const u32 gBattleAnimSpriteGfx_MegaRainbow[]; +//extern const u32 gBattleAnimSpritePal_MegaRainbow[]; +//extern const u32 gBattleAnimSpriteGfx_MegaSymbol[]; +//extern const u32 gBattleAnimSpritePal_MegaSymbol[]; +//extern const u32 gBattleAnimSpriteGfx_MegaStone[]; +//extern const u32 gBattleAnimSpritePal_MegaStone[]; +extern const u32 gBattleAnimSpriteGfx_MetalBits[]; +extern const u32 gBattleAnimSpriteGfx_MudBomb[]; +extern const u32 gBattleAnimSpritePal_MudBomb[]; +extern const u32 gBattleAnimSpriteGfx_Mushroom[]; +extern const u32 gBattleAnimSpritePal_Mushroom[]; +extern const u32 gBattleAnimSpritePal_NaturalGiftRing[]; +extern const u32 gBattleAnimSpriteGfx_NecrozmaStar[]; +extern const u32 gBattleAnimSpritePal_NecrozmaStar[]; +extern const u32 gBattleAnimSpritePal_NewImpact[]; +extern const u32 gBattleAnimSpriteGfx_Obstruct[]; +extern const u32 gBattleAnimSpritePal_Obstruct[]; +extern const u32 gBattleAnimSpriteGfx_OmegaStone[]; +extern const u32 gBattleAnimSpritePal_OmegaStone[]; +extern const u32 gBattleAnimSpriteGfx_PinkDiamond[]; +extern const u32 gBattleAnimSpritePal_PinkDiamond[]; +extern const u32 gBattleAnimSpriteGfx_PoisonColumn[]; +extern const u32 gBattleAnimSpritePal_PoisonColumn[]; +//extern const u32 gBattleAnimSpriteGfx_PoisonJab[]; +//extern const u32 gBattleAnimSpritePal_PoisonJab[]; +//extern const u32 gBattleAnimSpriteGfx_PowerGem[]; +//extern const u32 gBattleAnimSpritePal_PowerGem[]; +extern const u32 gBattleAnimSpriteGfx_PowerTrick[]; +extern const u32 gBattleAnimSpritePal_PowerTrick[]; +//extern const u32 gBattleAnimSpriteGfx_Punishment[]; +//extern const u32 gBattleAnimSpritePal_Punishment[]; +extern const u32 gBattleAnimSpriteGfx_PurpleDrake[]; +extern const u32 gBattleAnimSpritePal_PurpleDrake[]; +extern const u32 gBattleAnimSpriteGfx_QuickGuard[]; +extern const u32 gBattleAnimSpritePal_QuickGuard[]; +extern const u32 gBattleAnimSpriteGfx_RazorShell[]; +extern const u32 gBattleAnimSpritePal_RazorShell[]; +extern const u32 gBattleAnimSpriteGfx_RocksSmall[]; +extern const u32 gBattleAnimSpriteGfx_NewRocks[]; +extern const u32 gBattleAnimSpritePal_NewRocks[]; +extern const u32 gBattleAnimSpriteGfx_ShellLeft[]; +extern const u32 gBattleAnimSpritePal_ShellLeft[]; +extern const u32 gBattleAnimSpriteGfx_ShellRight[]; +extern const u32 gBattleAnimSpritePal_SpacialRendSlices[]; +extern const u32 gBattleAnimSpriteGfx_NewSpikes[]; +extern const u32 gBattleAnimSpritePal_NewSpikes[]; +extern const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[]; +extern const u32 gBattleAnimSpritePal_SpiritShackleArrow[]; +//extern const u32 gBattleAnimSpriteGfx_StealthRock[]; +//extern const u32 gBattleAnimSpritePal_StealthRock[]; +extern const u32 gBattleAnimSpriteGfx_SteamEruption[]; +extern const u32 gBattleAnimSpritePal_SteamEruption[]; +extern const u32 gBattleAnimSpriteGfx_Steamroller[]; +extern const u32 gBattleAnimSpritePal_Steamroller[]; +//extern const u32 gBattleAnimSpriteGfx_StoneEdge[]; +extern const u32 gBattleAnimSpriteGfx_StonePillar[]; +extern const u32 gBattleAnimSpritePal_StonePillar[]; +extern const u32 gBattleAnimSpriteGfx_StraightBeam[]; +extern const u32 gBattleAnimSpritePal_StraightBeam[]; +extern const u32 gBattleAnimSpriteGfx_SubstituteBack[]; +extern const u32 gBattleAnimSpriteGfx_SubstituteFront[]; +extern const u32 gBattleAnimSpritePal_SubstituteFront[]; +extern const u32 gBattleAnimSpritePal_NewSurf[]; +extern const u32 gBattleAnimSpriteGfx_NewSword[]; +extern const u32 gBattleAnimSpritePal_NewSword[]; +extern const u32 gBattleAnimSpriteGfx_NewTeeth[]; +extern const u32 gBattleAnimSpritePal_NewTeeth[]; +extern const u32 gBattleAnimSpriteGfx_NewHandsAndFeet[]; +extern const u32 gBattleAnimSpritePal_NewHandsAndFeet[]; +extern const u32 gBattleAnimSpriteGfx_Tornado[]; +extern const u32 gBattleAnimSpritePal_Tornado[]; +//extern const u32 gBattleAnimSpriteGfx_WaterGun[]; +//extern const u32 gBattleAnimSpritePal_WaterGun[]; +//extern const u32 gBattleAnimSpriteGfx_Wood[]; +//extern const u32 gBattleAnimSpritePal_Wood[]; +extern const u32 gBattleAnimSpriteGfx_ZMoveSymbol[]; +extern const u32 gBattleAnimSpritePal_ZMoveSymbol[]; + extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; extern const u32 gBattleAnimBgImage_Psychic[]; @@ -4831,6 +5009,108 @@ extern const u32 gBattleAnimBgTilemap_Cosmic[]; extern const u32 gBattleAnimBgTilemap_InAir[]; extern const u32 gBattleAnimBgTilemap_Aurora[]; extern const u32 gBattleAnimBgTilemap_Fissure[]; +extern const u32 gBattleAnimBgPalette_SludgeWave[]; +extern const u32 gBattleAnimBgImage_Aeroblast[]; +extern const u32 gBattleAnimBgPalette_Aeroblast[]; +extern const u32 gBattleAnimBgTilemap_Aeroblast[]; +extern const u32 gBattleAnimBgPalette_AuraSphere[]; +extern const u32 gBattleAnimBgImage_BlackholeEclipse[]; +extern const u32 gBattleAnimBgPalette_BlackholeEclipse[]; +extern const u32 gBattleAnimBgTilemap_BlackholeEclipse[]; +extern const u32 gBattleAnimBgImage_BloomDoom[]; +extern const u32 gBattleAnimBgPalette_BloomDoom[]; +extern const u32 gBattleAnimBgTilemap_BloomDoom[]; +extern const u32 gBattleAnimBgImage_BoltStrike[]; +extern const u32 gBattleAnimBgPalette_BoltStrike[]; +extern const u32 gBattleAnimBgTilemap_BoltStrike[]; +extern const u32 gBattleAnimBgImage_ClangorousSoulblaze[]; +extern const u32 gBattleAnimBgPalette_ClangorousSoulblaze[]; +extern const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[]; +extern const u32 gBattleAnimBgPalette_DynamaxCannon[]; +extern const u32 gBattleAnimBgImage_ElectricTerrain[]; +extern const u32 gBattleAnimBgPalette_ElectricTerrain[]; +extern const u32 gBattleAnimBgTilemap_ElectricTerrain[]; +extern const u32 gBattleAnimBgImage_Fire1[]; +extern const u32 gBattleAnimBgPalette_Fire1[]; +extern const u32 gBattleAnimBgTilemap_Fire1[]; +extern const u32 gBattleAnimBgPalette_Fire2[]; +extern const u32 gBattleAnimBgImage_FocusBlast[]; +extern const u32 gBattleAnimBgPalette_FocusBlast[]; +extern const u32 gBattleAnimBgTilemap_FocusBlast[]; +extern const u32 gBattleAnimBgPalette_GarbageFalls[]; +extern const u32 gBattleAnimBgImage_GrassyTerrain[]; +extern const u32 gBattleAnimBgPalette_GrassyTerrain[]; +extern const u32 gBattleAnimBgTilemap_GrassyTerrain[]; +extern const u32 gBattleAnimBgPalette_GunkShot[]; +extern const u32 gBattleAnimBgImage_HighSpeed[]; +extern const u32 gBattleAnimBgPalette_HighSpeed[]; +extern const u32 gBattleAnimBgTilemap_HighSpeed[]; +extern const u32 gBattleAnimBgImage_HydroCannon[]; +extern const u32 gBattleAnimBgPalette_HydroCannon[]; +extern const u32 gBattleAnimBgTilemap_HydroCannon[]; +extern const u32 gBattleAnimBgImage_HydroPump[]; +extern const u32 gBattleAnimBgPalette_HydroPump[]; +extern const u32 gBattleAnimBgTilemap_HydroPump[]; +extern const u32 gBattleAnimBgPalette_HyperBeam[]; +extern const u32 gBattleAnimBgPalette_HyperspaceFury[]; +extern const u32 gBattleAnimBgImage_InfernoOverdrive[]; +extern const u32 gBattleAnimBgPalette_InfernoOverdrive[]; +extern const u32 gBattleAnimBgTilemap_InfernoOverdrive[]; +extern const u32 gBattleAnimBgImage_LeafStorm[]; +extern const u32 gBattleAnimBgPalette_LeafStorm[]; +extern const u32 gBattleAnimBgTilemap_LeafStorm[]; +extern const u32 gBattleAnimBgPalette_MagicRoom[]; +extern const u32 gBattleAnimBgImage_MaliciousMoonsault[]; +extern const u32 gBattleAnimBgPalette_MaliciousMoonsault[]; +extern const u32 gBattleAnimBgTilemap_MaliciousMoonsault[]; +extern const u32 gBattleAnimBgImage_MaxLightning[]; +extern const u32 gBattleAnimBgPalette_MaxLightning[]; +extern const u32 gBattleAnimBgTilemap_MaxLightning[]; +extern const u32 gBattleAnimBgImage_MistyTerrain[]; +extern const u32 gBattleAnimBgPalette_MistyTerrain[]; +extern const u32 gBattleAnimBgTilemap_MistyTerrain[]; +extern const u32 gBattleAnimBgImage_NeverendingNightmare[]; +extern const u32 gBattleAnimBgPalette_NeverendingNightmare[]; +extern const u32 gBattleAnimBgTilemap_NeverendingNightmare[]; +extern const u32 gBattleAnimBgImage_Nightmare[]; +extern const u32 gBattleAnimBgPalette_Nightmare[]; +extern const u32 gBattleAnimBgTilemap_Nightmare[]; +extern const u32 gBattleAnimBgPalette_PoisonFalls[]; +extern const u32 gBattleAnimBgPalette_PsychicNew[]; +extern const u32 gBattleAnimBgImage_PsychicTerrain[]; +extern const u32 gBattleAnimBgPalette_PsychicTerrain[]; +extern const u32 gBattleAnimBgTilemap_PsychicTerrain[]; +extern const u32 gBattleAnimBgImage_ShatteredPsyche[]; +extern const u32 gBattleAnimBgPalette_ShatteredPsyche[]; +extern const u32 gBattleAnimBgTilemap_ShatteredPsyche[]; +extern const u32 gBattleAnimBgImage_SkyDay[]; +extern const u32 gBattleAnimBgPalette_SkyDay[]; +extern const u32 gBattleAnimBgTilemap_SkyDay[]; +extern const u32 gBattleAnimBgPalette_SkyAfternoon[]; +extern const u32 gBattleAnimBgPalette_SkyNight[]; +extern const u32 gBattleAnimBgImage_SnuggleForever[]; +extern const u32 gBattleAnimBgPalette_SnuggleForever[]; +extern const u32 gBattleAnimBgTilemap_SnuggleForever[]; +extern const u32 gBattleAnimBgImage_SoulStealing7StarStrike[]; +extern const u32 gBattleAnimBgPalette_SoulStealing7StarStrike[]; +extern const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[]; +extern const u32 gBattleAnimBgPalette_TectonicRage[]; +extern const u32 gBattleAnimBgImage_TwinkleTackle[]; +extern const u32 gBattleAnimBgPalette_TwinkleTackle[]; +extern const u32 gBattleAnimBgTilemap_TwinkleTackle[]; +extern const u32 gBattleAnimBgImage_WaterPulse[]; +extern const u32 gBattleAnimBgPalette_WaterPulse[]; +extern const u32 gBattleAnimBgTilemap_WaterPulse[]; +extern const u32 gBattleAnimBgImage_Waterfall[]; +extern const u32 gBattleAnimBgPalette_Waterfall[]; +extern const u32 gBattleAnimBgTilemap_Waterfall[]; +extern const u32 gBattleAnimBgPalette_WonderRoom[]; +extern const u32 gBattleAnimBgImage_ZMoveActivate[]; +extern const u32 gBattleAnimBgPalette_ZMoveActivate[]; +extern const u32 gBattleAnimBgTilemap_ZMoveActivate[]; +extern const u32 gBattleAnimBgImage_ZMoveMountain[]; +extern const u32 gBattleAnimBgPalette_ZMoveMountain[]; +extern const u32 gBattleAnimBgTilemap_ZMoveMountain[]; extern const u32 gMetalShineGfx[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index b763b9980c..6dee835bee 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1130,8 +1130,16 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, + #ifdef NEW_SWORD_PARTICLE + {gBattleAnimSpriteGfx_NewSword, 0x0400, ANIM_TAG_SWORD}, + #else {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, + #endif + #ifdef NEW_LEECH_SEED_PARTICLE + {gBattleAnimSpriteGfx_NewLeechSeed, 0x0180, ANIM_TAG_SEED}, + #else {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, + #endif {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, @@ -1154,7 +1162,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, + #ifdef NEW_EMBER_PARTICLES + {gBattleAnimSpriteGfx_NewEmbers, 0x0A00, ANIM_TAG_SMALL_EMBER}, + #else {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, + #endif {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, @@ -1183,12 +1195,20 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, + #ifdef NEW_ROCKS_PARTICLE + {gBattleAnimSpriteGfx_NewRocks, 0x0C00, ANIM_TAG_ROCKS}, + #else {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, + #endif {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, + #ifdef NEW_LEAF_PARTICLE + {gBattleAnimSpriteGfx_NewLeaf, 0x0480, ANIM_TAG_LEAF}, + #else {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, + #endif {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, @@ -1252,7 +1272,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, + #ifdef NEW_SUBSTITUTE_PARTICLE + {gBattleAnimSpriteGfx_NewSubstituteFront, 0x0200, ANIM_TAG_MONSTER_DOLL}, + #else {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, + #endif {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, @@ -1264,11 +1288,19 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, + #ifdef NEW_TEETH_PARTICLE + {gBattleAnimSpriteGfx_NewTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + #else {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + #endif {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, + #ifdef NEW_HANDS_FEET_PARTICLE + {gBattleAnimSpriteGfx_NewHandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + #else {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + #endif {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, @@ -1277,11 +1309,19 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, + #ifdef NEW_SPIKES_PARTICLE + {gBattleAnimSpriteGfx_NewSpikes, 0x0080, ANIM_TAG_SPIKES}, + #else {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, + #endif {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, + #ifdef NEW_FLY_BUBBLE_PARTICLE + {gBattleAnimSpriteGfx_NewFly, 0x0800, ANIM_TAG_ROUND_SHADOW}, + #else {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, + #endif {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, @@ -1312,7 +1352,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, + #ifdef NEW_MEAN_LOOK_PARTICLE + {gBattleAnimSpriteGfx_NewEye, 0x0800, ANIM_TAG_EYE}, + #else {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, + #endif {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, @@ -1324,7 +1368,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, + #ifdef NEW_CURSE_NAIL_PARTICLE + {gBattleAnimSpriteGfx_NewNail, 0x0400, ANIM_TAG_NAIL}, + #else {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, + #endif {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, @@ -1351,7 +1399,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, + #ifdef NEW_BATON_PASS_BALL_PARTICLE + {gBattleAnimSpriteGfx_NewPokeball, 0x0080, ANIM_TAG_POKEBALL}, + #else {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, + #endif {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, @@ -1366,7 +1418,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + #ifdef NEW_MORNING_SUN_STAR_PARTICLE + {gBattleAnimSpriteGfx_NewGreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + #else + {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + #endif {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, @@ -1443,6 +1499,71 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_WaterGun, 0x180, ANIM_TAG_WATER_GUN}, {gBattleAnimSpriteGfx_Punishment, 0xa00, ANIM_TAG_PUNISHMENT_BLADES}, {gBattleAnimSpriteGfx_QuickGuard, 0x200, ANIM_TAG_QUICK_GUARD_HAND}, + + {gBattleAnimSpriteGfx_ShellRight, 0x800, ANIM_TAG_SHELL_RIGHT}, + {gBattleAnimSpriteGfx_ShellLeft, 0x800, ANIM_TAG_SHELL_LEFT}, + {gBattleAnimSpriteGfx_RazorShell, 0x200, ANIM_TAG_RAZOR_SHELL}, + {gBattleAnimSpriteGfx_HydroPump, 0x200, ANIM_TAG_HYDRO_PUMP}, + {gBattleAnimSpriteGfx_Brine, 0xc00, ANIM_TAG_BRINE}, + {gBattleAnimSpriteGfx_Gear, 0x200, ANIM_TAG_GEAR}, + {gBattleAnimSpriteGfx_AssuranceHand, 0x200, ANIM_TAG_ASSURANCE_HAND}, + {gBattleAnimSpriteGfx_AcupressureFinger, 0x200, ANIM_TAG_ACUPRESSURE_FINGER}, + {gBattleAnimSpriteGfx_Fishies, 0x480, ANIM_TAG_WISHIWASHI_FISH}, + {gBattleAnimSpriteGfx_ZygardeHexes, 0x480, ANIM_TAG_ZYGARDE_HEXES}, + {gBattleAnimSpriteGfx_AuraSphere, 0x200, ANIM_TAG_AURA_SPHERE}, + {gBattleAnimSpriteGfx_OmegaStone, 0x800, ANIM_TAG_OMEGA_STONE}, + {gBattleAnimSpriteGfx_AlphaStone, 0x800, ANIM_TAG_ALPHA_STONE}, + {gBattleAnimSpriteGfx_BerryNormal, 0x400, ANIM_TAG_BERRY_NORMAL}, + {gBattleAnimSpriteGfx_BerryEaten, 0x200, ANIM_TAG_BERRY_EATEN}, + {gBattleAnimSpriteGfx_PurpleDrake, 0x800, ANIM_TAG_DRAGON_ASCENT}, + {gBattleAnimSpriteGfx_PinkDiamond, 0x40, ANIM_TAG_PINK_DIAMOND}, + {gBattleAnimSpriteGfx_SteamEruption, 0xa00, ANIM_TAG_STEAM_ERUPTION}, + {gBattleAnimSpriteGfx_Confide, 0x800, ANIM_TAG_CONFIDE}, + {gBattleAnimSpriteGfx_Arrows, 0x480, ANIM_TAG_VERTICAL_HEX}, + {NULL, 0x0, ANIM_TAG_UNAVAILABLE_1}, + {NULL, 0x0, ANIM_TAG_UNAVAILABLE_2}, + {gBattleAnimSpriteGfx_PowerTrick, 0x800, ANIM_TAG_POWER_TRICK}, + {gBattleAnimSpriteGfx_ChainLink, 0x200, ANIM_TAG_CHAIN_LINK}, + {gBattleAnimSpriteGfx_Anchor, 0x200, ANIM_TAG_ANCHOR}, + {gBattleAnimSpriteGfx_HorseshoeFist, 0x800, ANIM_TAG_HORSESHOE_SIDE_FIST}, + {gBattleAnimSpriteGfx_PurpleDrake, 0x800, ANIM_TAG_DRAGON_ASCENT_FOE}, + {gBattleAnimSpriteGfx_CraftyShield, 0x80, ANIM_TAG_CRAFTY_SHIELD}, + {gBattleAnimSpriteGfx_BlacephalonHead, 0x200, ANIM_TAG_BLACEPHALON_HEAD}, + {gBattleAnimSpriteGfx_FairyLockChains, 0x400, ANIM_TAG_FAIRY_LOCK_CHAINS}, + {gBattleAnimSpriteGfx_LightningRain, 0x700, ANIM_TAG_IONS}, + {gBattleAnimSpriteGfx_Chop, 0x200, ANIM_TAG_CHOP}, + {gBattleAnimSpriteGfx_HeartStamp, 0x400, ANIM_TAG_HEART_STAMP}, + {gBattleAnimSpriteGfx_HornLeech, 0x200, ANIM_TAG_HORN_LEECH}, + {gBattleAnimSpriteGfx_Steamroller, 0x800, ANIM_TAG_STEAMROLLER}, + {gBattleAnimSpriteGfx_HoopaHand, 0x80, ANIM_TAG_HOOPA_HAND}, + {gBattleAnimSpriteGfx_HoopaRing, 0x200, ANIM_TAG_HOOPA_RING}, + {gBattleAnimSpriteGfx_MetalBits, 0x140, ANIM_TAG_METAL_BITS}, + {gBattleAnimSpriteGfx_RocksSmall, 0x140, ANIM_TAG_SMALL_ROCK}, + {gBattleAnimSpriteGfx_SpiritShackleArrow, 0x200, ANIM_TAG_SPIRIT_ARROW}, + {gBattleAnimSpriteGfx_NecrozmaStar, 0x200, ANIM_TAG_ULTRA_BURST_SYMBOL}, + {gBattleAnimSpriteGfx_ZMoveSymbol, 0x800, ANIM_TAG_Z_MOVE_SYMBOL}, + {gBattleAnimSpriteGfx_BigRock, 0x800, ANIM_TAG_REALLY_BIG_ROCK}, + {gBattleAnimSpriteGfx_Cacoon, 0x800, ANIM_TAG_COCOON}, + {gBattleAnimSpriteGfx_Drill, 0x800, ANIM_TAG_CORKSCREW}, + {gBattleAnimSpriteGfx_GigavoltHavocSpear, 0x800, ANIM_TAG_HAVOC_SPEAR}, + {gBattleAnimSpriteGfx_PurpleDrake, 0x800, ANIM_TAG_PURPLE_DRAKE}, + {gBattleAnimSpriteGfx_MudBomb, 0x800, ANIM_TAG_MUD_BOMB}, + {gBattleAnimSpriteGfx_Branch, 0x200, ANIM_TAG_BRANCH}, + {gBattleAnimSpriteGfx_Apple, 0x200, ANIM_TAG_APPLE}, + {gBattleAnimSpriteGfx_Obstruct, 0x200, ANIM_TAG_OBSTRUCT_CROSS}, + {gBattleAnimSpriteGfx_PoisonColumn, 0x2000, ANIM_TAG_POISON_COLUMN}, + {gBattleAnimSpriteGfx_PoisonColumn, 0x2000, ANIM_TAG_GARBAGE_COLUMN}, + {gBattleAnimSpriteGfx_LargeSpike, 0x1000, ANIM_TAG_LARGE_SPIKE}, + {gBattleAnimSpriteGfx_DragonPulseRing, 0x200, ANIM_TAG_DRAGON_PULSE_RING}, + {gBattleAnimSpriteGfx_StonePillar, 0x2000, ANIM_TAG_STONE_PILLAR}, + {gBattleAnimSpriteGfx_Mushroom, 0x800, ANIM_TAG_MUSHROOM}, + {gBattleAnimSpriteGfx_GoldenApple, 0x800, ANIM_TAG_GOLDEN_APPLE}, + {gBattleAnimSpriteGfx_IceRock, 0x2800, ANIM_TAG_ICE_ROCK}, + {gBattleAnimSpriteGfx_Tornado, 0x1800, ANIM_TAG_TORNADO}, + {gBattleAnimSpriteGfx_StraightBeam, 0x180, ANIM_TAG_STRAIGHT_BEAM}, + {gBattleAnimSpriteGfx_DreepyMissile, 0x200, ANIM_TAG_DREEPY}, + {gBattleAnimSpriteGfx_IceRock, 0x1800, ANIM_TAG_ICE_ROCK_SINGLE}, + {gBattleAnimSpriteGfx_StonePillar, 0x1800, ANIM_TAG_STONE_PILLAR_MULTI}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = @@ -1452,8 +1573,16 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, + #ifdef NEW_SWORD_PARTICLE + {gBattleAnimSpritePal_NewSword, ANIM_TAG_SWORD}, + #else {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, + #endif + #ifdef NEW_LEECH_SEED_PARTICLE + {gBattleAnimSpritePal_NewLeechSeed, ANIM_TAG_SEED}, + #else {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, + #endif {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, @@ -1467,7 +1596,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, + #ifdef NEW_HORN_ATTACK_PARTICLE + {gBattleAnimSpritePal_NewHornHit, ANIM_TAG_HORN_HIT}, + #else {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, + #endif {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, @@ -1476,7 +1609,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, + #ifdef NEW_EMBER_PARTICLES + {gBattleAnimSpritePal_NewEmbers, ANIM_TAG_SMALL_EMBER}, + #else {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, + #endif {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, @@ -1505,12 +1642,20 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, + #ifdef NEW_ROCKS_PARTICLE + {gBattleAnimSpritePal_NewRocks, ANIM_TAG_ROCKS}, + #else {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, + #endif {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, + #ifdef NEW_LEAF_PARTICLE + {gBattleAnimSpritePal_NewLeaf, ANIM_TAG_LEAF}, + #else {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, + #endif {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, @@ -1574,7 +1719,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, + #ifdef NEW_SUBSTITUTE_PARTICLE + {gBattleAnimSpritePal_NewSubstituteFront, ANIM_TAG_MONSTER_DOLL}, + #else {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, + #endif {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, @@ -1582,15 +1731,27 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, + #ifdef NEW_IMPACT_PALETTE + {gBattleAnimSpritePal_NewImpact, ANIM_TAG_IMPACT}, + #else {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, + #endif {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, + #ifdef NEW_TEETH_PARTICLE + {gBattleAnimSpritePal_NewTeeth, ANIM_TAG_SHARP_TEETH}, + #else {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, + #endif {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, + #ifdef NEW_HANDS_FEET_PARTICLE + {gBattleAnimSpritePal_NewHandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + #else {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + #endif {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, @@ -1599,11 +1760,19 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, + #ifdef NEW_SPIKES_PARTICLE + {gBattleAnimSpritePal_NewSpikes, ANIM_TAG_SPIKES}, + #else {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, + #endif {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, + #ifdef NEW_FLY_BUBBLE_PARTICLE + {gBattleAnimSpritePal_NewFly, ANIM_TAG_ROUND_SHADOW}, + #else {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, + #endif {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, @@ -1634,7 +1803,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, + #ifdef NEW_MEAN_LOOK_PARTICLE + {gBattleAnimSpritePal_NewEye, ANIM_TAG_EYE}, + #else {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, + #endif {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, @@ -1673,7 +1846,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, + #ifdef NEW_BATON_PASS_BALL_PARTICLE + {gBattleAnimSpritePal_NewPokeball, ANIM_TAG_POKEBALL}, + #else {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, + #endif {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, @@ -1688,7 +1865,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, + #ifdef NEW_MORNING_SUN_STAR_PARTICLE + {gBattleAnimSpritePal_NewGreenStar, ANIM_TAG_GREEN_STAR}, + #else {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, + #endif {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, @@ -1765,6 +1946,72 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_WaterGun, ANIM_TAG_WATER_GUN}, {gBattleAnimSpritePal_Punishment, ANIM_TAG_PUNISHMENT_BLADES}, {gBattleAnimSpritePal_QuickGuard, ANIM_TAG_QUICK_GUARD_HAND}, + + {gBattleAnimSpritePal_ShellLeft, ANIM_TAG_SHELL_RIGHT}, + {gBattleAnimSpritePal_ShellLeft, ANIM_TAG_SHELL_LEFT}, + {gBattleAnimSpritePal_RazorShell, ANIM_TAG_RAZOR_SHELL}, + {gBattleAnimSpritePal_HydroPump, ANIM_TAG_HYDRO_PUMP}, + {gBattleAnimSpritePal_Brine, ANIM_TAG_BRINE}, + {gBattleAnimSpritePal_Gear, ANIM_TAG_GEAR}, + {gBattleAnimSpritePal_AssuranceHand, ANIM_TAG_ASSURANCE_HAND}, + {gBattleAnimSpritePal_AcupressureFinger, ANIM_TAG_ACUPRESSURE_FINGER}, + {gBattleAnimSpritePal_Fishies, ANIM_TAG_WISHIWASHI_FISH}, + {gBattleAnimSpritePal_ZygardeHexes, ANIM_TAG_ZYGARDE_HEXES}, + {gBattleAnimSpritePal_AuraSphere, ANIM_TAG_AURA_SPHERE}, + {gBattleAnimSpritePal_OmegaStone, ANIM_TAG_OMEGA_STONE}, + {gBattleAnimSpritePal_AlphaStone, ANIM_TAG_ALPHA_STONE}, + {gBattleAnimSpritePal_BerryNormal, ANIM_TAG_BERRY_NORMAL}, + {gBattleAnimSpritePal_SpacialRendSlices, ANIM_TAG_BERRY_EATEN}, + {gBattleAnimSpritePal_GreenDrake, ANIM_TAG_DRAGON_ASCENT}, + {gBattleAnimSpritePal_PinkDiamond, ANIM_TAG_PINK_DIAMOND}, + {gBattleAnimSpritePal_SteamEruption, ANIM_TAG_STEAM_ERUPTION}, + {gBattleAnimSpritePal_Confide, ANIM_TAG_CONFIDE}, + {gBattleAnimSpritePal_FusionFlare, ANIM_TAG_VERTICAL_HEX}, + {NULL, ANIM_TAG_UNAVAILABLE_1}, + {NULL, ANIM_TAG_UNAVAILABLE_2}, + {gBattleAnimSpritePal_PowerTrick, ANIM_TAG_POWER_TRICK}, + {gBattleAnimSpritePal_ChainLink, ANIM_TAG_CHAIN_LINK}, + {gBattleAnimSpritePal_NaturalGiftRing, ANIM_TAG_ANCHOR}, + {gBattleAnimSpritePal_HorseshoeFist, ANIM_TAG_HORSESHOE_SIDE_FIST}, + {gBattleAnimSpritePal_AvalancheRocks, ANIM_TAG_DRAGON_ASCENT_FOE}, + {gBattleAnimSpritePal_CraftyShield, ANIM_TAG_CRAFTY_SHIELD}, + {gBattleAnimSpritePal_QuickGuard, ANIM_TAG_QUICK_GUARD_HAND}, + {gBattleAnimSpritePal_BlacephalonHead, ANIM_TAG_BLACEPHALON_HEAD}, + {gBattleAnimSpritePal_DracoMeteor, ANIM_TAG_FAIRY_LOCK_CHAINS}, + {gBattleAnimSpritePal_LightningRain, ANIM_TAG_IONS}, + {gBattleAnimSpritePal_Chop, ANIM_TAG_CHOP}, + {gBattleAnimSpritePal_HeartStamp, ANIM_TAG_HEART_STAMP}, + {gBattleAnimSpritePal_HornLeech, ANIM_TAG_HORN_LEECH}, + {gBattleAnimSpritePal_Steamroller, ANIM_TAG_STEAMROLLER}, + {gBattleAnimSpritePal_HoopaHand, ANIM_TAG_HOOPA_HAND}, + {gBattleAnimSpritePal_HoopaRing, ANIM_TAG_HOOPA_RING}, + {gBattleAnimSpritePal_BlueFlare, ANIM_TAG_METAL_BITS}, + {gBattleAnimSpritePal_NewRocks, ANIM_TAG_SMALL_ROCK}, + {gBattleAnimSpritePal_SpiritShackleArrow, ANIM_TAG_SPIRIT_ARROW}, + {gBattleAnimSpritePal_NecrozmaStar, ANIM_TAG_ULTRA_BURST_SYMBOL}, + {gBattleAnimSpritePal_ZMoveSymbol, ANIM_TAG_Z_MOVE_SYMBOL}, + {gBattleAnimSpritePal_BigRock, ANIM_TAG_REALLY_BIG_ROCK}, + {gBattleAnimSpritePal_Cacoon, ANIM_TAG_COCOON}, + {gBattleAnimSpritePal_Drill, ANIM_TAG_CORKSCREW}, + {gBattleAnimSpritePal_GigavoltHavocSpear, ANIM_TAG_HAVOC_SPEAR}, + {gBattleAnimSpritePal_PurpleDrake, ANIM_TAG_PURPLE_DRAKE}, + {gBattleAnimSpritePal_MudBomb, ANIM_TAG_MUD_BOMB}, + {gBattleAnimSpritePal_Branch, ANIM_TAG_BRANCH}, + {gBattleAnimSpritePal_Apple, ANIM_TAG_APPLE}, + {gBattleAnimSpritePal_Obstruct, ANIM_TAG_OBSTRUCT_CROSS}, + {gBattleAnimSpritePal_PoisonColumn, ANIM_TAG_POISON_COLUMN}, + {gBattleAnimSpritePal_GarbagePoisonPillar, ANIM_TAG_GARBAGE_COLUMN}, + {gBattleAnimSpritePal_LargeSpike, ANIM_TAG_LARGE_SPIKE}, + {gBattleAnimSpritePal_DragonPulseRing, ANIM_TAG_DRAGON_PULSE_RING}, + {gBattleAnimSpritePal_StonePillar, ANIM_TAG_STONE_PILLAR}, + {gBattleAnimSpritePal_Mushroom, ANIM_TAG_MUSHROOM}, + {gBattleAnimSpritePal_GoldenApple, ANIM_TAG_GOLDEN_APPLE}, + {gBattleAnimSpritePal_IceRock, ANIM_TAG_ICE_ROCK}, + {gBattleAnimSpritePal_Tornado, ANIM_TAG_TORNADO}, + {gBattleAnimSpritePal_StraightBeam, ANIM_TAG_STRAIGHT_BEAM}, + {gBattleAnimSpritePal_DreepyMissile, ANIM_TAG_DREEPY}, + {gBattleAnimSpritePal_IceRock, ANIM_TAG_ICE_ROCK_SINGLE}, + {gBattleAnimSpritePal_StonePillar, ANIM_TAG_STONE_PILLAR_MULTI}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = @@ -1796,6 +2043,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_SOLARBEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactOpponent}, [BG_SOLARBEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactPlayer}, [BG_SOLARBEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactContests}, + //new bgs [BG_MAGMA_STORM] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_MagmaStorm, gBattleAnimBgTilemap_InAir}, [BG_GIGA_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_ImpactOpponent}, [BG_GIGA_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_ImpactPlayer}, @@ -1805,6 +2053,48 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_SPACIAL_REND_ON_OPPONENT] = {gBattleAnimBgImage_SpacialRendOpponent, gBattleAnimBgPalette_SpacialRendOpponent, gBattleAnimBgTilemap_SpacialRendOpponent}, [BG_SPACIAL_REND_ON_PLAYER] = {gBattleAnimBgImage_SpacialRendPlayer, gBattleAnimBgPalette_SpacialRendPlayer, gBattleAnimBgTilemap_SpacialRendPlayer}, [BG_DARK_VOID] = {gBattleAnimBgImage_DarkVoid, gBattleAnimBgPalette_DarkVoid, gBattleAnimBgTilemap_DarkVoid}, + [BG_WATER] = {gBattleAnimBgImage_HydroPump, gBattleAnimBgPalette_HydroPump, gBattleAnimBgTilemap_HydroPump}, + [BG_NIGHTMARE] = {gBattleAnimBgImage_Nightmare, gBattleAnimBgPalette_Nightmare, gBattleAnimBgTilemap_Nightmare}, + [BG_LEAF_STORM] = {gBattleAnimBgImage_LeafStorm, gBattleAnimBgPalette_LeafStorm, gBattleAnimBgTilemap_LeafStorm}, + [BG_FIRE] = {gBattleAnimBgImage_Fire1, gBattleAnimBgPalette_Fire1, gBattleAnimBgTilemap_Fire1}, + [BG_FIRE_2] = {gBattleAnimBgImage_Fire1, gBattleAnimBgPalette_Fire2, gBattleAnimBgTilemap_Fire1}, + [BG_WATER_2] = {gBattleAnimBgImage_Waterfall, gBattleAnimBgPalette_Waterfall, gBattleAnimBgTilemap_Waterfall}, + [BG_POISON] = {gBattleAnimBgImage_Waterfall, gBattleAnimBgPalette_PoisonFalls, gBattleAnimBgTilemap_Waterfall}, + [BG_AEROBLAST] = {gBattleAnimBgImage_Aeroblast, gBattleAnimBgPalette_Aeroblast, gBattleAnimBgTilemap_Aeroblast}, + [BG_HIGH_SPEED] = {gBattleAnimBgImage_HighSpeed, gBattleAnimBgPalette_HighSpeed, gBattleAnimBgTilemap_HighSpeed}, + [BG_ELECTRIC_TERRAIN] = {gBattleAnimBgImage_ElectricTerrain, gBattleAnimBgPalette_ElectricTerrain, gBattleAnimBgTilemap_ElectricTerrain}, + [BG_GRASSY_TERRAIN] = {gBattleAnimBgImage_GrassyTerrain, gBattleAnimBgPalette_GrassyTerrain, gBattleAnimBgTilemap_GrassyTerrain}, + [BG_MISTY_TERRAIN] = {gBattleAnimBgImage_MistyTerrain, gBattleAnimBgPalette_MistyTerrain, gBattleAnimBgTilemap_MistyTerrain}, + [BG_PSYCHIC_TERRAIN] = {gBattleAnimBgImage_PsychicTerrain, gBattleAnimBgPalette_PsychicTerrain, gBattleAnimBgTilemap_PsychicTerrain}, + [BG_FOCUS_BLAST] = {gBattleAnimBgImage_FocusBlast, gBattleAnimBgPalette_FocusBlast, gBattleAnimBgTilemap_FocusBlast}, + [BG_GUNK_SHOT] = {gBattleAnimBgImage_FocusBlast, gBattleAnimBgPalette_GunkShot, gBattleAnimBgTilemap_FocusBlast}, + [BG_HYDRO_CANNON] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_HydroCannon, gBattleAnimBgTilemap_HydroCannon}, + [BG_WONDER_ROOM] = {gBattleAnimBgImage_TrickRoom, gBattleAnimBgPalette_WonderRoom, gBattleAnimBgTilemap_TrickRoom}, + [BG_MAGIC_ROOM] = {gBattleAnimBgImage_TrickRoom, gBattleAnimBgPalette_MagicRoom, gBattleAnimBgTilemap_TrickRoom}, + [BG_HYPERSPACE_FURY] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_HyperspaceFury, gBattleAnimBgTilemap_Psychic}, + [BG_BOLT_STRIKE] = {gBattleAnimBgImage_BoltStrike, gBattleAnimBgPalette_BoltStrike, gBattleAnimBgTilemap_BoltStrike}, + [BG_ZMOVE_ACTIVATE] = {gBattleAnimBgImage_ZMoveActivate, gBattleAnimBgPalette_ZMoveActivate, gBattleAnimBgTilemap_ZMoveActivate}, + [BG_TECTONIC_RAGE] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_TectonicRage, gBattleAnimBgTilemap_InAir}, + [BG_BLUE_SKY_DAY] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyDay, gBattleAnimBgTilemap_SkyDay}, + [BG_BLUE_SKY_AFTERNOON] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyAfternoon, gBattleAnimBgTilemap_SkyDay}, + [BG_BLUE_SKY_NIGHT] = {gBattleAnimBgImage_SkyDay, gBattleAnimBgPalette_SkyNight, gBattleAnimBgTilemap_SkyDay}, + [BG_ZMOVE_MOUNTAIN] = {gBattleAnimBgImage_ZMoveMountain, gBattleAnimBgPalette_ZMoveMountain, gBattleAnimBgTilemap_ZMoveMountain}, + [BG_NEVERENDING_NIGHTMARE] = {gBattleAnimBgImage_NeverendingNightmare, gBattleAnimBgPalette_NeverendingNightmare, gBattleAnimBgTilemap_NeverendingNightmare}, + [BG_WATER_PULSE] = {gBattleAnimBgImage_WaterPulse, gBattleAnimBgPalette_WaterPulse, gBattleAnimBgTilemap_WaterPulse}, + [BG_INFERNO_OVERDRIVE] = {gBattleAnimBgImage_InfernoOverdrive, gBattleAnimBgPalette_InfernoOverdrive, gBattleAnimBgTilemap_InfernoOverdrive}, + [BG_BLOOM_DOOM] = {gBattleAnimBgImage_BloomDoom, gBattleAnimBgPalette_BloomDoom, gBattleAnimBgTilemap_BloomDoom}, + [BG_SHATTERED_PSYCHE] = {gBattleAnimBgImage_ShatteredPsyche, gBattleAnimBgPalette_ShatteredPsyche, gBattleAnimBgTilemap_ShatteredPsyche}, + [BG_TWINKLE_TACKLE] = {gBattleAnimBgImage_TwinkleTackle, gBattleAnimBgPalette_TwinkleTackle, gBattleAnimBgTilemap_TwinkleTackle}, + [BG_BLACKHOLE_ECLIPSE] = {gBattleAnimBgImage_BlackholeEclipse, gBattleAnimBgPalette_BlackholeEclipse, gBattleAnimBgTilemap_BlackholeEclipse}, + [BG_SOULSTEALING_7STAR_STRIKE] = {gBattleAnimBgImage_SoulStealing7StarStrike, gBattleAnimBgPalette_SoulStealing7StarStrike, gBattleAnimBgTilemap_SoulStealing7StarStrike}, + [BG_MALICIOUS_MOONSAULT] = {gBattleAnimBgImage_MaliciousMoonsault, gBattleAnimBgPalette_MaliciousMoonsault, gBattleAnimBgTilemap_MaliciousMoonsault}, + [BG_CLANGOROUS_SOULBLAZE] = {gBattleAnimBgImage_ClangorousSoulblaze, gBattleAnimBgPalette_ClangorousSoulblaze, gBattleAnimBgTilemap_ClangorousSoulblaze}, + [BG_SNUGGLE_FOREVER] = {gBattleAnimBgImage_SnuggleForever, gBattleAnimBgPalette_SnuggleForever, gBattleAnimBgTilemap_SnuggleForever}, + [BG_MAX_LIGHTNING] = {gBattleAnimBgImage_MaxLightning, gBattleAnimBgPalette_MaxLightning, gBattleAnimBgTilemap_MaxLightning}, + [BG_GARBAGE_FALLS] = {gBattleAnimBgImage_Waterfall, gBattleAnimBgPalette_GarbageFalls, gBattleAnimBgTilemap_Waterfall}, + [BG_HYPER_BEAM] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_HyperBeam, gBattleAnimBgTilemap_HydroCannon}, + [BG_DYNAMAX_CANNON] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_DynamaxCannon, gBattleAnimBgTilemap_HydroCannon}, + [BG_AURA_SPHERE] = {gBattleAnimBgImage_FocusBlast, gBattleAnimBgPalette_AuraSphere, gBattleAnimBgTilemap_FocusBlast}, }; static void (* const sScriptCmdTable[])(void) = diff --git a/src/graphics.c b/src/graphics.c index 97250b963d..f1eb1b8c6e 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -53,6 +53,279 @@ const u32 gBattleAnimSpritePal_Punishment[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimSpriteGfx_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.4bpp.lz"); const u32 gBattleAnimSpritePal_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/new/acupressure_finger.4bpp.lz"); +const u32 gBattleAnimSpritePal_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/new/acupressure_finger.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/alpha_stone.4bpp.lz"); +const u32 gBattleAnimSpritePal_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/alpha_stone.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Anchor[] = INCBIN_U32("graphics/battle_anims/sprites/new/anchor.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/new/apple.4bpp.lz"); +const u32 gBattleAnimSpritePal_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/new/apple.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Arrows[] = INCBIN_U32("graphics/battle_anims/sprites/new/arrows.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/assurance_hand.4bpp.lz"); +const u32 gBattleAnimSpritePal_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/assurance_hand.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/new/aura_sphere.4bpp.lz"); +const u32 gBattleAnimSpritePal_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/new/aura_sphere.gbapal.lz"); + +const u32 gBattleAnimSpritePal_AvalancheRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/avalanche_rocks.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_Bee[] = INCBIN_U32("graphics/battle_anims/sprites/new/bee.4bpp.lz"); +//const u32 gBattleAnimSpritePal_Bee[] = INCBIN_U32("graphics/battle_anims/sprites/new/bee.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.4bpp.lz"); +const u32 gBattleAnimSpritePal_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_normal.4bpp.lz"); +const u32 gBattleAnimSpritePal_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_normal.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/big_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/big_rock.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/new/blacephalon_head.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/new/blacephalon_head.gbapal.lz"); + +const u32 gBattleAnimSpritePal_BlueFlare[] = INCBIN_U32("graphics/battle_anims/sprites/new/blue_flare.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/new/branch.4bpp.lz"); +const u32 gBattleAnimSpritePal_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/new/branch.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/new/brine.4bpp.lz"); +const u32 gBattleAnimSpritePal_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/new/brine.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/new/chain_link.4bpp.lz"); +const u32 gBattleAnimSpritePal_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/new/chain_link.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/new/chop.4bpp.lz"); +const u32 gBattleAnimSpritePal_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/new/chop.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/new/cacoon.4bpp.lz"); +const u32 gBattleAnimSpritePal_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/new/cacoon.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/new/confide.4bpp.lz"); +const u32 gBattleAnimSpritePal_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/new/confide.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/new/crafty_shield.4bpp.lz"); +const u32 gBattleAnimSpritePal_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/new/crafty_shield.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/new/curse_nail.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/new/curse_nail.gbapal.lz"); + +const u32 gBattleAnimSpritePal_DracoMeteor[] = INCBIN_U32("graphics/battle_anims/sprites/new/draco_meteor.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/dragon_pulse_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/dragon_pulse_ring.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/new/dreepy_missile.4bpp.lz"); +const u32 gBattleAnimSpritePal_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/new/dreepy_missile.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/new/drill.4bpp.lz"); +const u32 gBattleAnimSpritePal_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/new/drill.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_EnergyBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/energy_ball.4bpp.lz"); +//const u32 gBattleAnimSpritePal_EnergyBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/energy_ball.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_FairyLockChains[] = INCBIN_U32("graphics/battle_anims/sprites/new/fairy_lock_chains.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.4bpp.lz"); +const u32 gBattleAnimSpritePal_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/flash_cannon_ball.4bpp.lz"); +//const u32 gBattleAnimSpritePal_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/flash_cannon_ball.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.gbapal.lz"); + +const u32 gBattleAnimSpritePal_FusionFlare[] = INCBIN_U32("graphics/battle_anims/sprites/new/fusion_flare.gbapal.lz"); + +const u32 gBattleAnimSpritePal_GarbagePoisonPillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/garbage_poison_column.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gear.4bpp.lz"); +const u32 gBattleAnimSpritePal_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gear.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gigavolt_havoc_spear.4bpp.lz"); +const u32 gBattleAnimSpritePal_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gigavolt_havoc_spear.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/new/golden_apple.4bpp.lz"); +const u32 gBattleAnimSpritePal_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/new/golden_apple.gbapal.lz"); + +const u32 gBattleAnimSpritePal_GreenDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_drake.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_star.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/new/heart_stamp.4bpp.lz"); +const u32 gBattleAnimSpritePal_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/new/heart_stamp.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/new/hexes.4bpp.lz"); +const u32 gBattleAnimSpritePal_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/new/hexes.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_hand.4bpp.lz"); +const u32 gBattleAnimSpritePal_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_hand.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_ring.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn_leech.4bpp.lz"); +const u32 gBattleAnimSpritePal_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn_leech.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/new/horseshoe_fist.4bpp.lz"); +const u32 gBattleAnimSpritePal_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/new/horseshoe_fist.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/new/hydro_pump.4bpp.lz"); +const u32 gBattleAnimSpritePal_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/new/hydro_pump.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/ice_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/ice_rock.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/new/large_spike.4bpp.lz"); +const u32 gBattleAnimSpritePal_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/new/large_spike.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/new/leaves.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/new/leaves.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/new/leech_seed.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/new/leech_seed.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/new/lightning_rain.4bpp.lz"); +const u32 gBattleAnimSpritePal_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/new/lightning_rain.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_MegaRainbow[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_rainbow.4bpp.lz"); +//const u32 gBattleAnimSpritePal_MegaRainbow[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_rainbow.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_symbol.4bpp.lz"); +//const u32 gBattleAnimSpritePal_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_symbol.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_MegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_stone.4bpp.lz"); +//const u32 gBattleAnimSpritePal_MegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_stone.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_MetalBits[] = INCBIN_U32("graphics/battle_anims/sprites/new/metal_bits.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/new/mud_bomb.4bpp.lz"); +const u32 gBattleAnimSpritePal_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/new/mud_bomb.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/new/mushroom.4bpp.lz"); +const u32 gBattleAnimSpritePal_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/new/mushroom.gbapal.lz"); + +const u32 gBattleAnimSpritePal_NaturalGiftRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/natural_gift_ring.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/necrozma_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/necrozma_star.gbapal.lz"); + +const u32 gBattleAnimSpritePal_NewImpact[] = INCBIN_U32("graphics/battle_anims/sprites/new/impact.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/new/obstruct.4bpp.lz"); +const u32 gBattleAnimSpritePal_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/new/obstruct.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/omega_stone.4bpp.lz"); +const u32 gBattleAnimSpritePal_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/omega_stone.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/new/pink_diamond.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/new/pink_diamond.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.4bpp.lz"); +const u32 gBattleAnimSpritePal_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_PoisonJab[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_jab.4bpp.lz"); +//const u32 gBattleAnimSpritePal_PoisonJab[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_jab.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_PowerGem[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_gem.4bpp.lz"); +//const u32 gBattleAnimSpritePal_PowerGem[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_gem.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.4bpp.lz"); +const u32 gBattleAnimSpritePal_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/new/punishment.4bpp.lz"); +//const u32 gBattleAnimSpritePal_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/new/punishment.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/new/quick_guard.4bpp.lz"); +//const u32 gBattleAnimSpritePal_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/new/quick_guard.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.4bpp.lz"); +const u32 gBattleAnimSpritePal_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_RocksSmall[] = INCBIN_U32("graphics/battle_anims/sprites/new/rock_small.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/rocks.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/rocks.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_left.4bpp.lz"); +const u32 gBattleAnimSpritePal_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_left.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ShellRight[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_right.4bpp.lz"); + +const u32 gBattleAnimSpritePal_SpacialRendSlices[] = INCBIN_U32("graphics/battle_anims/sprites/new/spacial_rend_slices.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/new/spikes.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/new/spikes.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.4bpp.lz"); +const u32 gBattleAnimSpritePal_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_StealthRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/stealth_rock.4bpp.lz"); +//const u32 gBattleAnimSpritePal_StealthRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/stealth_rock.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.4bpp.lz"); +const u32 gBattleAnimSpritePal_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.4bpp.lz"); +const u32 gBattleAnimSpritePal_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_StoneEdge[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_edge.4bpp.lz"); + +const u32 gBattleAnimSpriteGfx_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.4bpp.lz"); +const u32 gBattleAnimSpritePal_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/straight_beam.4bpp.lz"); +const u32 gBattleAnimSpritePal_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/straight_beam.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_SubstituteBack[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_back.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_front.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_front.gbapal.lz"); + +const u32 gBattleAnimSpritePal_NewSurf[] = INCBIN_U32("graphics/battle_anims/sprites/new/surf_new.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/new/sword.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/new/sword.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/new/teeth.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/new/teeth.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/new/thrash.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/new/thrash.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.4bpp.lz"); +const u32 gBattleAnimSpritePal_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/new/water_gun.4bpp.lz"); +//const u32 gBattleAnimSpritePal_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/new/water_gun.gbapal.lz"); + +//const u32 gBattleAnimSpriteGfx_Wood[] = INCBIN_U32("graphics/battle_anims/sprites/new/wood.4bpp.lz"); +//const u32 gBattleAnimSpritePal_Wood[] = INCBIN_U32("graphics/battle_anims/sprites/new/wood.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.4bpp.lz"); +const u32 gBattleAnimSpritePal_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.gbapal.lz"); + + // Battle anims const u32 gBattleAnimSpriteGfx_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz"); const u32 gBattleAnimSpriteGfx_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz"); @@ -1153,11 +1426,12 @@ const u32 gBattleAnimBgPalette_Solarbeam[] = INCBIN_U32("graphics/battle_anims/b const u32 gBattleAnimBgPalette_MagmaStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/magma_storm.gbapal.lz"); +//new battle bgs const u32 gBattleAnimBgPalette_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact.gbapal.lz"); -const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.4bpp.lz"); -const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.gbapal.lz"); -const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room_map.bin.lz"); +//const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.4bpp.lz"); +//const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.gbapal.lz"); +//const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room_map.bin.lz"); const u32 gBattleAnimBgImage_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.4bpp.lz"); const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.gbapal.lz"); @@ -1175,6 +1449,182 @@ const u32 gBattleAnimBgImage_DarkVoid[] = INCBIN_U32("graphics/battle_anims/back const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.gbapal.lz"); const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.bin"); + +const u32 gBattleAnimBgPalette_SludgeWave[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sludge_wave.gbapal.lz"); + +const u32 gBattleAnimBgImage_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_tiles.4bpp.lz"); +const u32 gBattleAnimBgPalette_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_map.bin"); + +const u32 gBattleAnimBgPalette_AuraSphere[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aura_sphere.gbapal.lz"); + +const u32 gBattleAnimBgImage_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.4bpp.lz"); +const u32 gBattleAnimBgPalette_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin"); + +const u32 gBattleAnimBgImage_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.4bpp.lz"); +const u32 gBattleAnimBgPalette_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.bin"); + +const u32 gBattleAnimBgImage_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.4bpp.lz"); +const u32 gBattleAnimBgPalette_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.bin"); + +const u32 gBattleAnimBgImage_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.4bpp.lz"); +const u32 gBattleAnimBgPalette_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin"); + +//const u32 gBattleAnimBgImage_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.4bpp.lz"); +//const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.gbapal.lz"); +//const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.bin"); + +const u32 gBattleAnimBgPalette_DynamaxCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dynamax_cannon.gbapal.lz"); + +const u32 gBattleAnimBgImage_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.bin"); + +const u32 gBattleAnimBgImage_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.4bpp.lz"); +const u32 gBattleAnimBgPalette_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.bin"); + +const u32 gBattleAnimBgPalette_Fire2[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire2.gbapal.lz"); + +const u32 gBattleAnimBgImage_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.4bpp.lz"); +const u32 gBattleAnimBgPalette_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.gbapal.lz"); +const u32 gBattleAnimBgTilemap_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.bin"); + +const u32 gBattleAnimBgPalette_GarbageFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/garbage_falls.gbapal.lz"); + +const u32 gBattleAnimBgImage_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.4bpp.lz"); +const u32 gBattleAnimBgPalette_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.gbapal.lz"); +const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin"); + +const u32 gBattleAnimBgImage_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.4bpp.lz"); +const u32 gBattleAnimBgPalette_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.gbapal.lz"); +const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.bin"); + +const u32 gBattleAnimBgImage_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.bin"); + +const u32 gBattleAnimBgPalette_GunkShot[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/gunk_shot.gbapal.lz"); + +const u32 gBattleAnimBgImage_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.4bpp.lz"); +const u32 gBattleAnimBgPalette_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.bin"); + +const u32 gBattleAnimBgImage_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.4bpp.lz"); +const u32 gBattleAnimBgPalette_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.bin"); + +const u32 gBattleAnimBgImage_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.4bpp.lz"); +const u32 gBattleAnimBgPalette_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.bin"); + +const u32 gBattleAnimBgPalette_HyperBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hyper_beam.gbapal.lz"); + +const u32 gBattleAnimBgPalette_HyperspaceFury[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hyperspace_fury.gbapal.lz"); + +const u32 gBattleAnimBgImage_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.4bpp.lz"); +const u32 gBattleAnimBgPalette_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.gbapal.lz"); +const u32 gBattleAnimBgTilemap_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.bin"); + +const u32 gBattleAnimBgImage_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.4bpp.lz"); +const u32 gBattleAnimBgPalette_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.gbapal.lz"); +const u32 gBattleAnimBgTilemap_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.bin"); + +const u32 gBattleAnimBgPalette_MagicRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/magic_room.gbapal.lz"); + +const u32 gBattleAnimBgImage_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.4bpp.lz"); +const u32 gBattleAnimBgPalette_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.bin"); + +const u32 gBattleAnimBgImage_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.4bpp.lz"); +const u32 gBattleAnimBgPalette_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.bin"); + +const u32 gBattleAnimBgImage_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.bin"); + +const u32 gBattleAnimBgImage_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.4bpp.lz"); +const u32 gBattleAnimBgPalette_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.gbapal.lz"); +const u32 gBattleAnimBgTilemap_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.bin"); + +const u32 gBattleAnimBgImage_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.4bpp.lz"); +const u32 gBattleAnimBgPalette_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.bin"); + +const u32 gBattleAnimBgPalette_PoisonFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/poison_falls.gbapal.lz"); + +const u32 gBattleAnimBgPalette_PsychicNew[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic.gbapal.lz"); + +const u32 gBattleAnimBgImage_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.bin"); + +//const u32 gBattleAnimBgImage_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.4bpp.lz"); +//const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.gbapal.lz"); +//const u32 gBattleAnimBgTilemap_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.bin"); + +const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.4bpp.lz"); +const u32 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.bin"); + +const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.4bpp.lz"); +const u32 gBattleAnimBgPalette_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.bin"); + +const u32 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_afternoon.gbapal.lz"); + +const u32 gBattleAnimBgPalette_SkyNight[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_night.gbapal.lz"); + +const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.4bpp.lz"); +const u32 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.bin"); + +const u32 gBattleAnimBgImage_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.4bpp.lz"); +const u32 gBattleAnimBgPalette_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin"); + +//const u32 gBattleAnimBgImage_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.4bpp.lz"); +//const u32 gBattleAnimBgPalette_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.gbapal.lz"); +//const u32 gBattleAnimBgTilemap_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.bin"); +//const u32 gBattleAnimBgImage_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.4bpp.lz"); +//const u32 gBattleAnimBgPalette_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.gbapal.lz"); +//const u32 gBattleAnimBgTilemap_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.bin"); + +const u32 gBattleAnimBgPalette_TectonicRage[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/tectonic_rage.gbapal.lz"); + +const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.4bpp.lz"); +const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.gbapal.lz"); +const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.bin"); + +const u32 gBattleAnimBgImage_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.4bpp.lz"); +const u32 gBattleAnimBgPalette_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.gbapal.lz"); +const u32 gBattleAnimBgTilemap_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.bin"); + +const u32 gBattleAnimBgImage_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.4bpp.lz"); +const u32 gBattleAnimBgPalette_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.gbapal.lz"); +const u32 gBattleAnimBgTilemap_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.bin"); + +const u32 gBattleAnimBgImage_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.4bpp.lz"); +const u32 gBattleAnimBgPalette_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.bin"); + +const u32 gBattleAnimBgPalette_WonderRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/wonder_room.gbapal.lz"); + +const u32 gBattleAnimBgImage_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.4bpp.lz"); +const u32 gBattleAnimBgPalette_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.bin"); + +const u32 gBattleAnimBgImage_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.4bpp.lz"); +const u32 gBattleAnimBgPalette_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.bin"); + + +// misc const u32 gUnknown_E6BC04[] = INCBIN_U32("graphics/unknown/unknown_E6BC04.bin.lz"); const u32 sBlenderCenterGfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz"); From c30c394082888ff5efbe7d76ecdfc29f5abc5fac Mon Sep 17 00:00:00 2001 From: Evan Date: Sun, 24 May 2020 08:40:37 -0600 Subject: [PATCH 3/7] remove commented out particles --- include/graphics.h | 25 ------------------------- src/graphics.c | 41 ----------------------------------------- 2 files changed, 66 deletions(-) diff --git a/include/graphics.h b/include/graphics.h index 89f496a595..68701934cc 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4779,8 +4779,6 @@ extern const u32 gBattleAnimSpritePal_AuraSphere[]; extern const u32 gBattleAnimSpritePal_AvalancheRocks[]; extern const u32 gBattleAnimSpriteGfx_NewPokeball[]; extern const u32 gBattleAnimSpritePal_NewPokeball[]; -//extern const u32 gBattleAnimSpriteGfx_Bee[]; -//extern const u32 gBattleAnimSpritePal_Bee[]; extern const u32 gBattleAnimSpriteGfx_BerryEaten[]; extern const u32 gBattleAnimSpritePal_BerryEaten[]; extern const u32 gBattleAnimSpriteGfx_BerryNormal[]; @@ -4815,13 +4813,9 @@ extern const u32 gBattleAnimSpriteGfx_Drill[]; extern const u32 gBattleAnimSpritePal_Drill[]; extern const u32 gBattleAnimSpriteGfx_NewEmbers[]; extern const u32 gBattleAnimSpritePal_NewEmbers[]; -//extern const u32 gBattleAnimSpriteGfx_EnergyBall[]; -//extern const u32 gBattleAnimSpritePal_EnergyBall[]; extern const u32 gBattleAnimSpriteGfx_FairyLockChains[]; extern const u32 gBattleAnimSpriteGfx_Fishies[]; extern const u32 gBattleAnimSpritePal_Fishies[]; -//extern const u32 gBattleAnimSpriteGfx_FlashCannonBall[]; -//extern const u32 gBattleAnimSpritePal_FlashCannonBall[]; extern const u32 gBattleAnimSpriteGfx_NewFly[]; extern const u32 gBattleAnimSpritePal_NewFly[]; extern const u32 gBattleAnimSpritePal_FusionFlare[]; @@ -4863,12 +4857,6 @@ extern const u32 gBattleAnimSpriteGfx_LightningRain[]; extern const u32 gBattleAnimSpritePal_LightningRain[]; extern const u32 gBattleAnimSpriteGfx_NewEye[]; extern const u32 gBattleAnimSpritePal_NewEye[]; -//extern const u32 gBattleAnimSpriteGfx_MegaRainbow[]; -//extern const u32 gBattleAnimSpritePal_MegaRainbow[]; -//extern const u32 gBattleAnimSpriteGfx_MegaSymbol[]; -//extern const u32 gBattleAnimSpritePal_MegaSymbol[]; -//extern const u32 gBattleAnimSpriteGfx_MegaStone[]; -//extern const u32 gBattleAnimSpritePal_MegaStone[]; extern const u32 gBattleAnimSpriteGfx_MetalBits[]; extern const u32 gBattleAnimSpriteGfx_MudBomb[]; extern const u32 gBattleAnimSpritePal_MudBomb[]; @@ -4886,14 +4874,8 @@ extern const u32 gBattleAnimSpriteGfx_PinkDiamond[]; extern const u32 gBattleAnimSpritePal_PinkDiamond[]; extern const u32 gBattleAnimSpriteGfx_PoisonColumn[]; extern const u32 gBattleAnimSpritePal_PoisonColumn[]; -//extern const u32 gBattleAnimSpriteGfx_PoisonJab[]; -//extern const u32 gBattleAnimSpritePal_PoisonJab[]; -//extern const u32 gBattleAnimSpriteGfx_PowerGem[]; -//extern const u32 gBattleAnimSpritePal_PowerGem[]; extern const u32 gBattleAnimSpriteGfx_PowerTrick[]; extern const u32 gBattleAnimSpritePal_PowerTrick[]; -//extern const u32 gBattleAnimSpriteGfx_Punishment[]; -//extern const u32 gBattleAnimSpritePal_Punishment[]; extern const u32 gBattleAnimSpriteGfx_PurpleDrake[]; extern const u32 gBattleAnimSpritePal_PurpleDrake[]; extern const u32 gBattleAnimSpriteGfx_QuickGuard[]; @@ -4911,13 +4893,10 @@ extern const u32 gBattleAnimSpriteGfx_NewSpikes[]; extern const u32 gBattleAnimSpritePal_NewSpikes[]; extern const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[]; extern const u32 gBattleAnimSpritePal_SpiritShackleArrow[]; -//extern const u32 gBattleAnimSpriteGfx_StealthRock[]; -//extern const u32 gBattleAnimSpritePal_StealthRock[]; extern const u32 gBattleAnimSpriteGfx_SteamEruption[]; extern const u32 gBattleAnimSpritePal_SteamEruption[]; extern const u32 gBattleAnimSpriteGfx_Steamroller[]; extern const u32 gBattleAnimSpritePal_Steamroller[]; -//extern const u32 gBattleAnimSpriteGfx_StoneEdge[]; extern const u32 gBattleAnimSpriteGfx_StonePillar[]; extern const u32 gBattleAnimSpritePal_StonePillar[]; extern const u32 gBattleAnimSpriteGfx_StraightBeam[]; @@ -4934,10 +4913,6 @@ extern const u32 gBattleAnimSpriteGfx_NewHandsAndFeet[]; extern const u32 gBattleAnimSpritePal_NewHandsAndFeet[]; extern const u32 gBattleAnimSpriteGfx_Tornado[]; extern const u32 gBattleAnimSpritePal_Tornado[]; -//extern const u32 gBattleAnimSpriteGfx_WaterGun[]; -//extern const u32 gBattleAnimSpritePal_WaterGun[]; -//extern const u32 gBattleAnimSpriteGfx_Wood[]; -//extern const u32 gBattleAnimSpritePal_Wood[]; extern const u32 gBattleAnimSpriteGfx_ZMoveSymbol[]; extern const u32 gBattleAnimSpritePal_ZMoveSymbol[]; diff --git a/src/graphics.c b/src/graphics.c index f1eb1b8c6e..2fe076cdcd 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -77,9 +77,6 @@ const u32 gBattleAnimSpritePal_AvalancheRocks[] = INCBIN_U32("graphics/battle_an const u32 gBattleAnimSpriteGfx_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.4bpp.lz"); const u32 gBattleAnimSpritePal_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_Bee[] = INCBIN_U32("graphics/battle_anims/sprites/new/bee.4bpp.lz"); -//const u32 gBattleAnimSpritePal_Bee[] = INCBIN_U32("graphics/battle_anims/sprites/new/bee.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.4bpp.lz"); const u32 gBattleAnimSpritePal_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.gbapal.lz"); @@ -132,17 +129,11 @@ const u32 gBattleAnimSpritePal_Drill[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpriteGfx_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.4bpp.lz"); const u32 gBattleAnimSpritePal_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_EnergyBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/energy_ball.4bpp.lz"); -//const u32 gBattleAnimSpritePal_EnergyBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/energy_ball.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_FairyLockChains[] = INCBIN_U32("graphics/battle_anims/sprites/new/fairy_lock_chains.4bpp.lz"); const u32 gBattleAnimSpriteGfx_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.4bpp.lz"); const u32 gBattleAnimSpritePal_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/flash_cannon_ball.4bpp.lz"); -//const u32 gBattleAnimSpritePal_FlashCannonBall[] = INCBIN_U32("graphics/battle_anims/sprites/new/flash_cannon_ball.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.4bpp.lz"); const u32 gBattleAnimSpritePal_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.gbapal.lz"); @@ -206,15 +197,6 @@ const u32 gBattleAnimSpritePal_LightningRain[] = INCBIN_U32("graphics/battle_ani const u32 gBattleAnimSpriteGfx_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.4bpp.lz"); const u32 gBattleAnimSpritePal_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_MegaRainbow[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_rainbow.4bpp.lz"); -//const u32 gBattleAnimSpritePal_MegaRainbow[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_rainbow.gbapal.lz"); - -//const u32 gBattleAnimSpriteGfx_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_symbol.4bpp.lz"); -//const u32 gBattleAnimSpritePal_MegaSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_evolution_symbol.gbapal.lz"); - -//const u32 gBattleAnimSpriteGfx_MegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_stone.4bpp.lz"); -//const u32 gBattleAnimSpritePal_MegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/mega_stone.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_MetalBits[] = INCBIN_U32("graphics/battle_anims/sprites/new/metal_bits.4bpp.lz"); const u32 gBattleAnimSpriteGfx_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/new/mud_bomb.4bpp.lz"); @@ -242,24 +224,12 @@ const u32 gBattleAnimSpritePal_PinkDiamond[] = INCBIN_U32("graphics/battle_anims const u32 gBattleAnimSpriteGfx_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.4bpp.lz"); const u32 gBattleAnimSpritePal_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_PoisonJab[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_jab.4bpp.lz"); -//const u32 gBattleAnimSpritePal_PoisonJab[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_jab.gbapal.lz"); - -//const u32 gBattleAnimSpriteGfx_PowerGem[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_gem.4bpp.lz"); -//const u32 gBattleAnimSpritePal_PowerGem[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_gem.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.4bpp.lz"); const u32 gBattleAnimSpritePal_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/new/punishment.4bpp.lz"); -//const u32 gBattleAnimSpritePal_Punishment[] = INCBIN_U32("graphics/battle_anims/sprites/new/punishment.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.4bpp.lz"); const u32 gBattleAnimSpritePal_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/new/quick_guard.4bpp.lz"); -//const u32 gBattleAnimSpritePal_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/new/quick_guard.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.4bpp.lz"); const u32 gBattleAnimSpritePal_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.gbapal.lz"); @@ -281,17 +251,12 @@ const u32 gBattleAnimSpritePal_NewSpikes[] = INCBIN_U32("graphics/battle_anims/s const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.4bpp.lz"); const u32 gBattleAnimSpritePal_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_StealthRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/stealth_rock.4bpp.lz"); -//const u32 gBattleAnimSpritePal_StealthRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/stealth_rock.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.4bpp.lz"); const u32 gBattleAnimSpritePal_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.gbapal.lz"); const u32 gBattleAnimSpriteGfx_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.4bpp.lz"); const u32 gBattleAnimSpritePal_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_StoneEdge[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_edge.4bpp.lz"); - const u32 gBattleAnimSpriteGfx_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.4bpp.lz"); const u32 gBattleAnimSpritePal_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.gbapal.lz"); @@ -316,12 +281,6 @@ const u32 gBattleAnimSpritePal_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_a const u32 gBattleAnimSpriteGfx_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.4bpp.lz"); const u32 gBattleAnimSpritePal_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.gbapal.lz"); -//const u32 gBattleAnimSpriteGfx_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/new/water_gun.4bpp.lz"); -//const u32 gBattleAnimSpritePal_WaterGun[] = INCBIN_U32("graphics/battle_anims/sprites/new/water_gun.gbapal.lz"); - -//const u32 gBattleAnimSpriteGfx_Wood[] = INCBIN_U32("graphics/battle_anims/sprites/new/wood.4bpp.lz"); -//const u32 gBattleAnimSpritePal_Wood[] = INCBIN_U32("graphics/battle_anims/sprites/new/wood.gbapal.lz"); - const u32 gBattleAnimSpriteGfx_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.4bpp.lz"); const u32 gBattleAnimSpritePal_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.gbapal.lz"); From 6c20a49dc602592319bb836061fd1ca4d7980320 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 25 May 2020 00:37:32 -0600 Subject: [PATCH 4/7] animations for all moves --- asm/macros/battle_anim_script.inc | 40 + data/battle_anim_scripts.s | 8378 ++++++++++++++++++++++++++++- include/battle_anim.h | 179 + include/constants/battle_anim.h | 28 + include/constants/moves.h | 41 +- ld_script.txt | 2 + src/battle_anim.c | 8 +- src/battle_anim_bug.c | 12 +- src/battle_anim_dark.c | 17 +- src/battle_anim_dragon.c | 32 +- src/battle_anim_effects_1.c | 70 +- src/battle_anim_effects_2.c | 18 +- src/battle_anim_effects_3.c | 12 +- src/battle_anim_electric.c | 85 +- src/battle_anim_fight.c | 56 +- src/battle_anim_fire.c | 10 +- src/battle_anim_flying.c | 20 +- src/battle_anim_ghost.c | 37 +- src/battle_anim_ground.c | 13 +- src/battle_anim_ice.c | 42 +- src/battle_anim_new.c | 5058 +++++++++++++++++ src/battle_anim_normal.c | 34 +- src/battle_anim_poison.c | 19 +- src/battle_anim_psychic.c | 7 +- src/battle_anim_rock.c | 29 +- src/battle_anim_water.c | 34 +- src/battle_gfx_sfx_util.c | 2 +- 27 files changed, 13829 insertions(+), 454 deletions(-) create mode 100644 src/battle_anim_new.c diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 994e84ccd6..c54845e005 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -288,3 +288,43 @@ createvisualtask AnimTask_IsDoubleBattle, 0 jumprettrue \ptr .endm + +@ keep CFRU macros cause I'm lazy. todo: update to createsprite and createvisualtask, respectively +.macro launchtemplate launchtemplatePtr launchtemplatePriority launchtemplateArgsNo launchtemplatearg0 launchtemplatearg1 launchtemplatearg2 launchtemplatearg3 launchtemplatearg4 launchtemplatearg5 launchtemplatearg6 launchtemplatearg7 launchtemplatearg8 + .byte 0x2 + .word \launchtemplatePtr + .byte \launchtemplatePriority + .byte \launchtemplateArgsNo + .hword \launchtemplatearg0 + .hword \launchtemplatearg1 + .hword \launchtemplatearg2 + .hword \launchtemplatearg3 + .hword \launchtemplatearg4 + .hword \launchtemplatearg5 + .hword \launchtemplatearg6 + .hword \launchtemplatearg7 + .hword \launchtemplatearg8 + .endm + +.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8 + .byte 0x3 + .word \launchtaskPtr + .byte \launchtaskPriority + .byte \launchtaskArgsNo + .hword \launchtaskarg0 + .hword \launchtaskarg1 + .hword \launchtaskarg2 + .hword \launchtaskarg3 + .hword \launchtaskarg4 + .hword \launchtaskarg5 + .hword \launchtaskarg6 + .hword \launchtaskarg7 + .hword \launchtaskarg8 + .endm + +.macro setblends setblends_value +.byte 0xC +.hword \setblends_value +.endm + + diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 9c591e95c2..56e7bf0db1 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -637,6 +637,98 @@ gBattleAnims_Moves:: .4byte Move_PRECIPICE_BLADES .4byte Move_DRAGON_ASCENT .4byte Move_HYPERSPACE_FURY +@@@@@@@@@@@@ GEN 7 @@@@@@@@@@@@ + .4byte Move_SHORE_UP + .4byte Move_FIRST_IMPRESSION + .4byte Move_BANEFUL_BUNKER + .4byte Move_SPIRIT_SHACKLE + .4byte Move_DARKEST_LARIAT + .4byte Move_SPARKLING_ARIA + .4byte Move_ICE_HAMMER + .4byte Move_FLORAL_HEALING + .4byte Move_HIGH_HORSEPOWER + .4byte Move_STRENGTH_SAP + .4byte Move_SOLAR_BLADE + .4byte Move_LEAFAGE + .4byte Move_SPOTLIGHT + .4byte Move_TOXIC_THREAD + .4byte Move_LASER_FOCUS + .4byte Move_GEAR_UP + .4byte Move_THROAT_CHOP + .4byte Move_POLLEN_PUFF + .4byte Move_ANCHOR_SHOT + .4byte Move_PSYCHIC_TERRAIN + .4byte Move_LUNGE + .4byte Move_FIRE_LASH + .4byte Move_POWER_TRIP + .4byte Move_BURN_UP + .4byte Move_SPEED_SWAP + .4byte Move_SMART_STRIKE + .4byte Move_PURIFY + .4byte Move_REVELATION_DANCE + .4byte Move_CORE_ENFORCER + .4byte Move_TROP_KICK + .4byte Move_INSTRUCT + .4byte Move_BEAK_BLAST + .4byte Move_CLANGING_SCALES + .4byte Move_DRAGON_HAMMER + .4byte Move_BRUTAL_SWING + .4byte Move_AURORA_VEIL + .4byte Move_SHELL_TRAP + .4byte Move_FLEUR_CANNON + .4byte Move_PSYCHIC_FANGS + .4byte Move_STOMPING_TANTRUM + .4byte Move_SHADOW_BONE + .4byte Move_ACCELEROCK + .4byte Move_LIQUIDATION + .4byte Move_PRISMATIC_LASER + .4byte Move_SPECTRAL_THIEF + .4byte Move_SUNSTEEL_STRIKE + .4byte Move_MOONGEIST_BEAM + .4byte Move_TEARFUL_LOOK + .4byte Move_ZING_ZAP + .4byte Move_NATURES_MADNESS + .4byte Move_MULTI_ATTACK + .4byte Move_MIND_BLOWN + .4byte Move_PLASMA_FISTS + .4byte Move_PHOTON_GEYSER + .4byte Move_DOUBLE_IRON_BASH +@@@@@@@@@@@@ GEN 8 @@@@@@@@@@@@ + .4byte Move_DYNAMAX_CANNON + .4byte Move_SNIPE_SHOT + .4byte Move_JAW_LOCK + .4byte Move_STUFF_CHEEKS + .4byte Move_NO_RETREAT + .4byte Move_TAR_SHOT + .4byte Move_MAGIC_POWDER + .4byte Move_DRAGON_DARTS + .4byte Move_TEA_TIME + .4byte Move_OCTOLOCK + .4byte Move_BOLT_BEAK + .4byte Move_FISHIOUS_REND + .4byte Move_COURT_CHANGE + .4byte Move_CLANGOROUS_SOUL + .4byte Move_BODY_PRESS + .4byte Move_DECORATE + .4byte Move_DRUM_BEATING + .4byte Move_SNAP_TRAP + .4byte Move_PYRO_BALL + .4byte Move_BEHEMOTH_BLADE + .4byte Move_BEHEMOTH_BASH + .4byte Move_AURA_WHEEL + .4byte Move_BREAKING_SWIPE + .4byte Move_BRANCH_POKE + .4byte Move_OVERDRIVE + .4byte Move_APPLE_ACID + .4byte Move_GRAV_APPLE + .4byte Move_SPIRIT_BREAK + .4byte Move_STRANGE_STEAM + .4byte Move_LIFE_DEW + .4byte Move_OBSTRUCT + .4byte Move_FALSE_SURRENDER + .4byte Move_METEOR_ASSAULT + .4byte Move_ETERNA_BEAM + .4byte Move_STEEL_BEAM .4byte Move_COUNT @ cannot be reached, because last move is Psycho Boost .align 2 @@ -2845,27 +2937,27 @@ Move_FLASH_CANNON: monbg ANIM_ATTACKER setalpha 13, 8 createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 60, 2, 12 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 30 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 30 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER createsprite gFlashCannonGrayChargeTemplate, ANIM_ATTACKER, 2, 0 delay 25 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 20 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 15 - playsewithpan 0xce, SOUND_PAN_ATTACKER + playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 10 delay 6 - loopsewithpan 0xce, SOUND_PAN_ATTACKER, 6, 5 + loopsewithpan SE_W268, SOUND_PAN_ATTACKER, 6, 5 waitforvisualfinish - playsewithpan 0xA7, SOUND_PAN_ATTACKER + playsewithpan SE_W006, SOUND_PAN_ATTACKER createsprite gFlashCannonBallMovementTemplate, ANIM_TARGET, 2, 0, 0, 0x15 clearmonbg ANIM_ATTACKER waitforvisualfinish - playsewithpan 0xB9, SOUND_PAN_ATTACKER + playsewithpan SE_W043, SOUND_PAN_ATTACKER createvisualtask AnimTask_Flash, 2 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 16, 0, 0x1f createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 @@ -2927,17 +3019,20 @@ Move_DEFOG: blendoff end -Move_TRICK_ROOM: - fadetobg BG_TRICK_ROOM - waitbgfadein - call GrowthEffect - waitforvisualfinish - delay 32 - blendoff - clearmonbg ANIM_DEF_PARTNER - restorebg - waitbgfadein +Move_TRICK_ROOM:: + call InitRoomAnimation + fadetobg BG_TRICK_ROOM + waitbgfadein + delay 0x40 + restorebg + waitbgfadein + blendoff end +InitRoomAnimation: + setalpha 8, 8 + playsewithpan SE_W048, SOUND_PAN_TARGET + launchtask AnimTask_ScaleMonAndRestore 5 5 0xfffa 0xfffa 15, 1 1 + return Move_DRACO_METEOR: loadspritegfx ANIM_TAG_WARM_ROCK @@ -3524,7 +3619,7 @@ Move_JUDGMENT: waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 83, 1 createsprite gJudgmentBlackChargeTemplate, ANIM_TARGET, 1, 1, ANIM_TARGET - playsewithpan 0xb1, SOUND_PAN_TARGET + playsewithpan SE_W048, SOUND_PAN_TARGET call JudgmentInwardSpikes delay 5 call JudgmentInwardSpikes2 @@ -3572,7 +3667,7 @@ JudgmentOutwardSpikes: createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFB0, 0x43, 16 @lower left createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF60, 0, 16 @left createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFAA, 0xFF94, 16 @upper left - playsewithpan 0xA1, SOUND_PAN_ATTACKER + playsewithpan SE_W054, SOUND_PAN_ATTACKER return JudgmentOutwardSpikes2: createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0x2D, 0xFF9D, 16 @between up and upper right @@ -3583,7 +3678,7 @@ JudgmentOutwardSpikes2: createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF60, 0x43, 16 @between left and lower left createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFF2A, 0xFFAA, 16 @between left and upper left createsprite gJudgmentGrayOutwardSpikesTemplate, ANIM_TARGET, 2, 1, 1, 0xFFDA, 0xFF94, 16 @between up and upper left - playsewithpan 0xA1, SOUND_PAN_ATTACKER + playsewithpan SE_W054, SOUND_PAN_ATTACKER return JudgmentInwardSpikes: createsprite gJudgmentGrayInwardOrbsTemplate, ANIM_TARGET, 2, 1, 0, 0, 0xFF90, 16 @up @@ -3981,7 +4076,7 @@ Move_SPECIAL_REND: waitforvisualfinish fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT waitbgfadein - loopsewithpan 0x81, SOUND_PAN_TARGET, 3, 5 + loopsewithpan SE_W013, SOUND_PAN_TARGET, 3, 5 createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xb0, 0x28 createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff40, 0xf0, 0x28 createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, SOUND_PAN_ATTACKER, 0xff60, 0x28 @@ -4049,16 +4144,16 @@ Move_CRUSH_GRIP: createvisualtask AnimTask_CompressTargetHorizontally, 2 createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0, 0, 1, 1 delay 3 - playsewithpan 0xab, SOUND_PAN_ATTACKER + playsewithpan SE_W153, SOUND_PAN_ATTACKER createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0x18, 0xffe8, 1, 1 delay 3 - playsewithpan 0xab, SOUND_PAN_ATTACKER + playsewithpan SE_W153, SOUND_PAN_ATTACKER createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0xfff0, 16, 1, 1 delay 3 - playsewithpan 0xab, SOUND_PAN_ATTACKER + playsewithpan SE_W153, SOUND_PAN_ATTACKER createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 0xffe8, -12, 1, 1 delay 3 - playsewithpan 0xab, SOUND_PAN_ATTACKER + playsewithpan SE_W153, SOUND_PAN_ATTACKER createsprite gCrushGripExplosionTemplate, ANIM_TARGET, 0, 16, 16, 1, 1 waitforvisualfinish blendoff @@ -4099,7 +4194,7 @@ Move_DARK_VOID: createvisualtask AnimTask_StartSlidingBg, 5, 0, 0xFFA0, 1, 0xffff waitbgfadein createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 0x30 - loopsewithpan 0xBD, SOUND_PAN_ATTACKER, 5, 2 + loopsewithpan SE_W109, SOUND_PAN_ATTACKER, 5, 2 delay 0x30 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0xfd00, 0x15, 0, 0x70 @Last is speed createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0xfd00, 0x15, 0, 0x70 @Last is speed @@ -4175,21 +4270,21 @@ Move_SEED_FLARE: createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 delay 2 - playsewithpan 0x81, SOUND_PAN_TARGET + playsewithpan SE_W013, SOUND_PAN_TARGET createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x5a, 0x800, 0x60, 1 delay 8 createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x32, 0xa00, 0x60, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 delay 2 - playsewithpan 0x81, SOUND_PAN_TARGET + playsewithpan SE_W013, SOUND_PAN_TARGET createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 20, 0x900, 0x60, 1 delay 8 createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0x46, 0x7c0, 0x60, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 0x16, -20, 1 delay 2 - playsewithpan 0x81, SOUND_PAN_TARGET + playsewithpan SE_W013, SOUND_PAN_TARGET delay 8 createsprite gSeedFlareGreenWavesTemplate, ANIM_ATTACKER, 0x28, 0, 0xb00, 0x60, 1 delay 10 @@ -4334,17 +4429,119 @@ HoneClawsAnim: delay 10 return + Move_WIDE_GUARD: + loadspritegfx ANIM_TAG_ICE_SPIKES @motion from icy wind + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + loadspritegfx ANIM_TAG_ROCKS @brown color + loadspritegfx ANIM_TAG_CONVERSION @conversion + loadspritegfx ANIM_TAG_WATER_ORB @blue color + monbg ANIM_ATTACKER + setalpha 12, 8 + createvisualtask AnimTask_RockMonBackAndForth, 0x5, 0x0, 0x3, 0x0 + waitplaysewithpan SE_W060B, SOUND_PAN_ATTACKER, 0x10 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xffe8, 0xffe8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xfff8, 0xffe8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x8, 0xffe8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x18, 0xffe8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xffe8, 0xfff8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xfff8, 0xfff8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x8, 0xfff8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x18, 0xfff8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xffe8, 0x8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xfff8, 0x8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x8, 0x8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x18, 0x8 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xffe8, 0x18 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0xfff8, 0x18 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x8, 0x18 + delay 3 + createsprite gWideGuardBlueConversionTemplate, ANIM_ATTACKER, 0x2, 0x18, 0x18 + delay 0x14 + playsewithpan SE_W202, SOUND_PAN_TARGET + createvisualtask AnimTask_ConversionAlphaBlend, 5 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff end + -Move_GUARD_SPLIT: +Move_GUARD_SPLIT:: + loadspritegfx ANIM_TAG_BLUEGREEN_ORB + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 + loopsewithpan SE_W199, SOUND_PAN_ATTACKER, 0x18, 0x3 + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + call GuardSplitLaunch + waitforvisualfinish + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 + waitforvisualfinish end - -Move_POWER_SPLIT: +GuardSplitLaunch: + createsprite gGuardSwapOrbs1Template, ANIM_TARGET, 2, 0xfff4, 0x0 + createsprite gGuardSwapOrbs2Template, ANIM_TARGET, 0, 0x0, 0x0, 0x0, 0x0, 0x1E, 0x0 + delay 0x5 + return + + +Move_POWER_SPLIT:: + loadspritegfx ANIM_TAG_RED_HEART + loadspritegfx ANIM_TAG_BLUEGREEN_ORB + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 + loopsewithpan SE_W199, SOUND_PAN_ATTACKER, 0x18, 0x3 + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + call PowerSplitLaunch + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 + waitforvisualfinish end - -Move_WONDER_ROOM: +PowerSplitLaunch: + createsprite gPowerSplitOrbs1Template, ANIM_TARGET, 2, 0xfff4, 0x0 + createsprite gPowerSplitOrbs2Template, ANIM_TARGET, 0, 0x0, 0x0, 0x0, 0x0, 0x1E, 0x0 + delay 5 + return + + +Move_WONDER_ROOM:: + call InitRoomAnimation + fadetobg BG_WONDER_ROOM + waitbgfadein + delay 0x40 + restorebg + waitbgfadein + blendoff end + Move_PSYSHOCK: monbg ANIM_TARGET @@ -4388,20 +4585,100 @@ Move_VENOSHOCK: delay 15 end + Move_AUTOTOMIZE: + loadspritegfx ANIM_TAG_METAL_BITS @Metal Bits + setalpha 12, 8 + monbg SIDE_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 0x2, 0x0, 0x18, 0x6, 0x4, 0x4 + createvisualtask AnimTask_TraceMonBlended 0x2, 0x0, 0x4, 0x7, 0xa + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x0 + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x1 + delay 0xc + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x2 + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x3 + delay 0xc + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x0 + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x1 + delay 0xc + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x2 + createsprite gAutotomizeMetalShardsTemplate, ANIM_ATTACKER, 0x2, 0x0, 0x3 + delay 0x18 + waitforvisualfinish + stopsound + clearmonbg SIDE_ATTACKER + blendoff end - -Move_RAGE_POWDER: + + +Move_RAGE_POWDER:: + loadspritegfx ANIM_TAG_SPORE @Powder + loadspritegfx ANIM_TAG_HEART_STAMP @Red Colour + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W077, SOUND_PAN_TARGET, 0x12, 0xa + call RagePowderSprinkle + call RagePowderSprinkle + call RagePowderSprinkle + createvisualtask AnimTask_BlendColorCycle, ANIM_ATTACKER, 0x2, PAL_ATK, 0x2, 0x2, 0x0, 0xb, 0x1f + waitforvisualfinish + clearmonbg SIDE_TARGET end - -Move_TELEKINESIS: +RagePowderSprinkle: + createsprite gRagePowderRedPowderTemplate, ANIM_ATTACKER, 0x2, 0x0, 0xffec, 0x55, 0x50, 0x0 + delay 0xc + createsprite gRagePowderRedPowderTemplate, ANIM_ATTACKER, 0x2, 0x0, 0xfff6, 0xaa, 0x50, 0x0 + delay 0xc + createsprite gRagePowderRedPowderTemplate, ANIM_ATTACKER, 0x2, 0x0, 0xfff1, 0x0, 0x50, 0x0 + delay 0xc + return + + +Move_TELEKINESIS:: + loadspritegfx ANIM_TAG_SPARKLE_4 @detect + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0x9, 0x0 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 0x1, 0x0, 0x9, 0x7fff + delay 0x12 + playsewithpan SE_W197, SOUND_PAN_ATTACKER + createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 0xd, 0x14, 0xffec + waitforvisualfinish + loopsewithpan SE_W048, SOUND_PAN_TARGET, 0xa, 0x3 + createvisualtask AnimTask_SwayMon, 0x5, 0x1, 0x18, 0xD0, 0x1, ANIM_TARGET + waitforvisualfinish + delay 0xA + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x9, 0x0, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 0x2, 0x9, 0x0, 0x7fff + waitforvisualfinish end - -Move_MAGIC_ROOM: - end - -Move_SMACK_DOWN: + + +Move_MAGIC_ROOM:: + call InitRoomAnimation + fadetobg BG_MAGIC_ROOM + waitbgfadein + delay 0x40 + restorebg + waitbgfadein + blendoff end + + +Move_SMACK_DOWN:: + loadspritegfx ANIM_TAG_BLACK_BALL + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ROCKS + playsewithpan SE_W104, SOUND_PAN_ATTACKER + createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 0x14, 0x0, 0x0, 0x0, 0x15, 0xffe7 + waitforvisualfinish + createvisualtask AnimTask_SmokescreenImpact, 0x8, 0x400, 0x1902 + fadetobg BG_IN_AIR + waitbgfadeout + createvisualtask AnimTask_StartSlidingBg, 5, 0x0, 0x0, 0x0, 0xffff + createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 + goto SeismicTossWeak + Move_STORM_THROW: call StormThorwAnim @@ -4456,7 +4733,11 @@ Move_FLAME_BURST: end Move_SLUDGE_WAVE: + panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + createvisualtask AnimTask_CreateSurfWave, 0x2, SURF_PALETTE_SLUDGE_WAVE + waitforvisualfinish end + Move_QUIVER_DANCE: loadspritegfx ANIM_TAG_HOLLOW_ORB @@ -4512,10 +4793,73 @@ Move_HEAVY_SLAM: end Move_SYCHRONOISE: + loadspritegfx ANIM_TAG_THIN_RING @hypervoice ring + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_POISON_BUBBLE @violet color + loadspritegfx ANIM_TAG_SMALL_EMBER @flame wheel particle + loadspritegfx ANIM_TAG_AIR_WAVE_2 @aero particles + monbg SIDE_TARGET + monbgprio_2A 0x1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 @Darken + waitforvisualfinish + panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + createsprite gSynchronoiseVioletRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + delay 0x1 + createsprite gSynchronoiseBlueRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + delay 0x1 + createsprite gSynchronoiseYellowRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + delay 0x25 + panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + createsprite gSynchronoiseBlueRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + delay 0x1 + createsprite gSynchronoiseVioletRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + delay 0x1 + createsprite gSynchronoiseYellowRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 + waitforvisualfinish + loopsewithpan SE_W013, SOUND_PAN_TARGET, 0x3, 0x5 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, SOUND_PAN_ATTACKER, 0xb0, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0xff40, 0xf0, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, SOUND_PAN_ATTACKER, 0xff60, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0xff40, 0xff90, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0xa0, 0x30, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0xff20, 0xffe0, 0x28 + createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0x70, 0xff80, 0x28 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 @Darken + waitforvisualfinish + clearmonbg SIDE_TARGET end + Move_ELECTRO_BALL: + loadspritegfx ANIM_TAG_SPARK_2 @yelow + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge + monbg 0x0 + setalpha 12, 8 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gGrowingChargeOrbSpriteTemplate 0x2 0x1 0x0 + delay 0x19 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x14 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0xF + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0xA + delay 0x6 + loopsewithpan SE_W268, 0xC, 0x6, 0x5 + waitforvisualfinish + loadspritegfx ANIM_TAG_FLASH_CANNON_BALL @ball + launchtemplate gElectroBallCannonBallTemplate, ANIM_TARGET, 2, 0x10, 0x10, 0x8 + waitforvisualfinish + playsewithpan SE_W028, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 0x2, 0x1, 0x4, 0x0, 0x8, 0x1 + call ElectricityEffect + waitforvisualfinish + clearmonbg 0x0 + blendoff end + Move_SOAK: loadspritegfx ANIM_TAG_SMALL_BUBBLES @@ -4553,10 +4897,58 @@ Move_SOAK: end Move_FLAME_CHARGE: + loadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 0x20, 0x6 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 0x2, 0x0, 0xc, 0x6, 0x6, 0x3 + call FlameChargeSwirl + delay 0x9 + call FlameChargeSwirl + delay 0x9 + call FlameChargeSwirl + delay 0x9 + call FlameChargeSwirl + delay 0x9 + call FlameChargeSwirl + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x18 0x0 0x0 0x5 + delay 0x3 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gBasicHitSplatSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x0 + createvisualtask AnimTask_ShakeMon, 0x2, 0x1, 0x6, 0x0, 0x8, 0x1 + call FireSpreadEffect + playsewithpan SE_W007, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x8 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x7 + waitforvisualfinish + clearmonbg ANIM_TARGET end +FlameChargeSwirl: + launchtemplate gFlameChargeEmberTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + return + Move_COIL: + loadspritegfx ANIM_TAG_TENDRILS + loopsewithpan SE_W010, SOUND_PAN_TARGET, 0x6, 0x4 + launchtemplate gConstrictBindingSpriteTemplate 0x84, 0x4, 0x0 0x10 0x0 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0x0 0x0 0x2 + launchtemplate gConstrictBindingSpriteTemplate 0x82, 0x4, 0x0 0x8 0x1 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0xfff8 0x1 0x2 + delay 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + delay 0x14 + launchtask AnimTask_ShakeMon2 0x83 0x5 0x1 0x4 0x0 0x5 0x1 + launchtask AnimTask_StretchTargetUp 0x3 0x0 + playsewithpan SE_W020, SOUND_PAN_TARGET + setarg 0x7 0xffff + waitforvisualfinish end + Move_LOW_SWEEP: loadspritegfx ANIM_TAG_HANDS_AND_FEET @@ -4597,17 +4989,108 @@ Move_ACID_SPRAY: end Move_FOUL_PLAY: + loadspritegfx ANIM_TAG_POISON_BUBBLE + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_HANDS_AND_FEET @Black colour + monbg ANIM_TARGET + setalpha 12, 8 + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 + delay 0x6 + launchtemplate gFoulPlayImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + playsewithpan SE_W233 SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (PAL_BG | PAL_ALL_BANKS), 0x3, 0xa, 0x0, 0x0 + launchtemplate gFoulPlayRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 + delay 0x8 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (PAL_BG | PAL_ALL_BANKS), 0x3, 0xa, 0x0, 0x0 + launchtemplate gFoulPlayRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end + Move_SIMPLE_BEAM: + loadspritegfx ANIM_TAG_GOLD_RING @psybeam + loadspritegfx ANIM_TAG_ROCKS @brown color + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_THIN_RING @ring + setalpha 8, 8 + monbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W062, SOUND_PAN_ATTACKER + call SimpleBeamsRegular + call SimpleBeamsRegular + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7FFF + launchtask AnimTask_SwayMon 0x5 0x5 0x0 0x6 0x800 0x4 ANIM_TARGET + call SimpleBeamWithRings + call SimpleBeamWithRings + call SimpleBeamWithRings + call SimpleBeamWithRings + call SimpleBeamWithRings + launchtemplate gSimpleBeamBrownRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1F 0x8 + delay 0x2 + launchtemplate gSimpleBeamPinkRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1F 0x8 + delay 0x2 + stopsound + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end +SimpleBeamsRegular: + launchtemplate gSimpleBeamBrownTemplate 0x82 0x6 0x10 0x0 0x0 0x0 0xd 0x0 + delay 0x2 + launchtemplate gSimpleBeamPinkTemplate 0x82 0x6 0x10 0x0 0x0 0x0 0xd 0x0 + delay 0x2 + return +SimpleBeamWithRings: + launchtemplate gSimpleBeamBrownTemplate 0x82 0x6 0x10 0x0 0x0 0x0 0xd 0x0 + launchtemplate gSimpleBeamBrownRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1F 0x8 + delay 0x2 + launchtemplate gSimpleBeamPinkTemplate 0x82 0x6 0x10 0x0 0x0 0x0 0xd 0x0 + launchtemplate gSimpleBeamPinkRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1F 0x8 + delay 0x2 + return + Move_ENTRAINMENT: + createvisualtask AnimTask_TeeterDanceMovement, 5 + playsewithpan SE_W298, SOUND_PAN_ATTACKER + delay 0x18 + playsewithpan SE_W298, SOUND_PAN_ATTACKER + delay 0x18 + playsewithpan SE_W298, SOUND_PAN_ATTACKER + delay 0x18 + playsewithpan SE_W298, SOUND_PAN_ATTACKER + delay 0x18 + playsewithpan SE_W298, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x1f 0x1 + waitforvisualfinish end + Move_AFTER_YOU: + loadspritegfx ANIM_TAG_ANGER @rage + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @green color + launchtask AnimTask_SwayMon 0x5 0x5 0x1 0xF 0x600 0x2 ANIM_ATTACKER + delay 0x1 + launchtemplate gAfterYouGreenRageTemplate 0x2 0x3 0x0 0xffec 0xffe0 + launchtemplate gAfterYouGreenRageTemplate 0x2 0x3 0x0 0xfffb 0xffe5 + playsewithpan SE_W207B, SOUND_PAN_ATTACKER + delay 0x14 + launchtemplate gAfterYouGreenRageTemplate 0x2 0x3 0x0 0x14 0xffe0 + launchtemplate gAfterYouGreenRageTemplate 0x2 0x3 0x0 0x23 0xffe5 + playsewithpan SE_W207B, SOUND_PAN_ATTACKER + waitforvisualfinish end + Move_ROUND: loadspritegfx ANIM_TAG_MUSIC_NOTES createvisualtask AnimTask_MusicNotesRainbowBlend, 2 @@ -4631,9 +5114,41 @@ Move_ROUND: end Move_ECHOED_VOICE: + loadspritegfx ANIM_TAG_METAL_SOUND_WAVES + monbg SIDE_TARGET + monbgprio_2A 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x2 0x0 0x8 0x1 + call MetalSoundPlayNote + call MetalSoundPlayNote + call MetalSoundPlayNote + call MetalSoundPlayNote + waitforvisualfinish + clearmonbg SIDE_TARGET + delay 0x0 + waitforvisualfinish end +MetalSoundPlayNote: + panse_1B SE_W253, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 + launchtemplate gMetalSoundSpriteTemplate 0x82 0x6 0x10 0x0 0x0 0x0 0x1e 0x0 + delay 0x2 + return Move_CHIP_AWAY: + loadspritegfx ANIM_TAG_IMPACT + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x7FFF + waitforvisualfinish + monbg SIDE_ATTACKER + setalpha 12, 8 + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x18 0x6 0x1 0x5 + delay 0x4 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x6 0x1 + launchtemplate gBasicHitSplatSpriteTemplate 0x84, 0x4, 0x0 0x0 0x1 0x1 + playsewithpan SE_W233B SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg SIDE_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x7FFF + waitforvisualfinish + blendoff end Move_CLEAR_SMOG: @@ -4695,10 +5210,39 @@ Move_STORED_POWER: end Move_QUICK_GUARD: + loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @hand + loadspritegfx ANIM_TAG_SPARKLE_4 @sparkles + setalpha 12, 8 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0xa 0x7FFF + delay 0x10 + monbg ANIM_ATTACKER + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xE 0x0 0x8 0x0 0x0 + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xfff2 0x0 0x8 0x0 0x0 + delay 0x1 + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xE 0x0 0x8 0x0 0x0 + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xfff2 0x0 0x8 0x0 0x0 + delay 0x1 + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xE 0x0 0x8 0x0 0x0 + launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xfff2 0x0 0x8 0x0 0x0 + waitforvisualfinish + playsewithpan SE_W197, SOUND_PAN_ATTACKER + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0x0 0xffe3 @up + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0x16 0xffec @upper right + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0x1D 0x0 @right + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0xffe9 0xffec @upper left + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0xffe2 0x0 @left + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0x0 0x1c @down + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0x16 0x13 @lower left + launchtemplate gSpinningSparkleSpriteTemplate 0xd 0x2 0xffea 0x13 @lower right + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER end + Move_ALLY_SWITCH: end + Move_SCALD: loadspritegfx ANIM_TAG_WATER_ORB @@ -4781,16 +5325,97 @@ Move_HEAL_PULSE: end Move_HEX: + loadspritegfx ANIM_TAG_PURPLE_FLAME + loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x4C4A @;Deep purple + waitforvisualfinish + monbg ANIM_TARGET + monbgprio_29 + playsewithpan SE_W060, SOUND_PAN_ATTACKER + waitbgfadein + launchtask AnimTask_PurpleFlamesOnTarget 0x3 0x0 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x2 0x0 0x25 0x1 + playsewithpan SE_W171, SOUND_PAN_TARGET + delay 0x20 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xc 0x4C4A @;Deep purple + launchtemplate gCurseGhostSpriteTemplate 0x84, 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x10 0x0 0x4C4A @;Deep purple + waitforvisualfinish end Move_SKY_DROP: + loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_IMPACT + choosetwoturnanim SkyDropSetup SkyDropUnleash + end +SkyDropSetup: + invisible ANIM_ATTACKER + loadspritegfx ANIM_TAG_SMALL_BUBBLES @mist ball + loadspritegfx ANIM_TAG_WHITE_FEATHER + loadspritegfx ANIM_TAG_ROUND_SHADOW @fly + delay 0x0 + playsewithpan SE_W081, SOUND_PAN_ATTACKER + launchtemplate gSkyDropFlyBallTemplate 0x80 0x6 0x0 0x0 0x0 0x0 0x1e 0x0 + waitforvisualfinish + invisible ANIM_TARGET + playsewithpan SE_W019, SOUND_PAN_ATTACKER + launchtemplate gSkyDropTargetFlyingTemplate 0x2 0x4 0x0 0x0 0xd 0x150 + end +SkyDropUnleash: + visible ANIM_TARGET + monbg SIDE_TARGET + setalpha 12, 8 + playsewithpan SE_W207, SOUND_PAN_TARGET + launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 + delay 0x7 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gBasicHitSplatSpriteTemplate 0x82, 0x4, 0x0 0x0 0x1 0x0 + launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x5 0xb 0x1 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff end Move_SHIFT_GEAR: + loadspritegfx ANIM_TAG_GEAR @Gear + monbg ANIM_ATTACKER + playsewithpan SE_ESUKA, SOUND_PAN_ATTACKER + launchtemplate gShiftGearGearsTemplate 0x2 0x5 ANIM_ATTACKER 0xFFF3 0x8 0x65 0xa + launchtemplate gShiftGearGearsTemplate 0x2 0x5 ANIM_ATTACKER 0xE 0xFFF8 0x65 0xa + waitforvisualfinish + clearmonbg ANIM_ATTACKER end + Move_CIRCLE_THROW: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_ICE_CHUNK + monbg SIDE_TARGET + setalpha 12, 8 + playsewithpan SE_W233, SOUND_PAN_ATTACKER + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0xc 0x4 0x1 0x2 + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x14 0x0 0x0 0x4 + delay 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + launchtemplate gCircleThrowRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 + playsewithpan SE_W233B, SOUND_PAN_TARGET + delay 0x1 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET 0xffe8 0x0 0x0 0x4 + launchtemplate gCircleThrowRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 + waitforvisualfinish + delay 0x3 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x7 + delay 0xb + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0xa + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff end + Move_INCINERATE: loadspritegfx ANIM_TAG_SMALL_EMBER @@ -4833,6 +5458,20 @@ Move_INCINERATE: end Move_QUASH: + loadspritegfx ANIM_TAG_ASSURANCE_HAND @hand + fadetobg BG_DARK + waitbgfadein + setalpha 12, 8 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gQuashArmHitTemplate 0x83, 0x3 0x0 0xffe0 0xf + delay 0x13 + playsewithpan SE_W107, SOUND_PAN_ATTACKER + launchtask AnimTask_SquishTarget 0x2 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + restorebg + waitbgfadein end Move_ACROBATICS: @@ -4855,17 +5494,105 @@ Move_ACROBATICS: end Move_REFLECT_TYPE: + loadspritegfx ANIM_TAG_GUARD_RING @ring around user + loadspritegfx ANIM_TAG_ICE_CHUNK @blue green color + loadspritegfx ANIM_TAG_PURPLE_FLAME @violet color + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + monbg ANIM_TARGET + setalpha 8, 8 + playsewithpan SE_W081B, SOUND_PAN_TARGET + launchtemplate gReflectTypeBlueStringTemplate 0x82 0x2 0x0 0xa + delay 0x4 + launchtemplate gReflectTypeVioletStringTemplate 0x82 0x2 0x0 0xfffe + delay 0x4 + launchtemplate gReflectTypeWhiteStringTemplate 0x82 0x2 0x0 0x16 + waitforvisualfinish + clearmonbg ANIM_TARGET + delay 0x1F + monbg ANIM_ATTACKER + playsewithpan SE_W208, SOUND_PAN_ATTACKER + launchtemplate gReflectTypeWhiteRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypePinkRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypeVioletRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypeBlueRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypeWhiteRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypePinkRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypeVioletRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gReflectTypeBlueRingTemplate 0x2 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff end + Move_RETALITATE: + loadspritegfx ANIM_TAG_CUT @Cut + monbg SIDE_TARGET + setalpha 9, 8 + launchtask AnimTask_AttackerPunchWithTrace 0x2 0x2 0x7128 0xa + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + waitforvisualfinish + playsewithpan SE_W015, SOUND_PAN_TARGET + launchtemplate gGuillotineSpriteTemplate 0x2 0x1 0x0 + launchtemplate gGuillotineSpriteTemplate 0x2 0x1 0x1 + delay 0x38 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x10 0x43D + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x043D + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff end + Move_FINAL_GAMBIT: + loadspritegfx ANIM_TAG_PINK_CLOUD @yawn animation + loadspritegfx ANIM_TAG_WATER_IMPACT @blue colour + loadspritegfx ANIM_TAG_EXPLOSION @explosion animation + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 @Darken + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0xa 0x1 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0x8 0x7fff + waitforvisualfinish + playsewithpan SE_W028, SOUND_PAN_ATTACKER + launchtemplate gFinalGambitBlueYawnTemplate 0x2 0x3 0x0 0x0 0x25 + delay 0x4 + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0xf 0x1 + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffc 0xfffc 0xf 0x1 0x1 + waitforvisualfinish + monbg ANIM_TARGET + delay 0x1 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gFinalGambitExplosionTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + waitforvisualfinish + clearmonbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish end + Move_BESTOW: + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + panse_1B SE_W118, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtask AnimTask_CreateBestowItem 0x2 0x6 0x14 0x0 0x0 0x0 0x28 0xffe7 + waitforvisualfinish + unloadspritegfx ANIM_TAG_ITEM_BAG @;The generated item sprite uses this tag + clearmonbg ANIM_TARGET end + Move_INFERNO: loadspritegfx ANIM_TAG_SMALL_EMBER call SetImpactBackground @@ -5272,16 +5999,108 @@ VoltSwitchAgainstPartner: goto VoltSwitchContinue Move_STRUGGLE_BUG: + loadspritegfx ANIM_TAG_MOVEMENT_WAVES + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x0a1f + waitforvisualfinish + launchtask AnimTask_FlailMovement 0x2 0x1 0x0 + launchtemplate gMovementWavesSpriteTemplate 0x2 0x3 0x0 0x0 0x2 + launchtemplate gMovementWavesSpriteTemplate 0x2 0x3 0x0 0x1 0x2 + loopsewithpan SE_W029, SOUND_PAN_ATTACKER, 0x8, 0x2 + waitforvisualfinish + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + launchtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg 0x2 0x5 0x0 0x1 0x1e 0x1 0x0 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x0a1f + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end + Move_BULLDOZE: - end + launchtask AnimTask_Splash 0x2 0x2 0x0 0x3 + delay 0x8 + goto Move_EARTHQUAKE + Move_FROST_BREATH: + loadspritegfx ANIM_TAG_ICE_CHUNK + loadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_FIRE_PLUME + fadetobg BG_ICE + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x300 0x0 0x0 0xffff + waitbgfadein + playsewithpan SE_W082, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x5 0x5 0x0 0x0 0x2 0x28 0x1 + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 0x82 0x5 0x0 0xf 0x0 0x0 0x4 + waitforvisualfinish + launchtemplate gFrostBreathBlueBreathTemplate 0x82 0x5 0x1e 0xf 0x0 0xa 0xa + waitforvisualfinish + loopsewithpan SE_W196, SOUND_PAN_TARGET, 0xb, 0x3 + launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x3 0x19 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0xc2 0x3 0x1 0x5 0x0 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0xc2 0x3 0x1 0xfff6 0xfff1 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0x82, 0x3, 0x1 0x0 0x19 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0xc2 0x3 0x1 0xf 0x5 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0xc2 0x3 0x1 0xffe7 0x0 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0x82, 0x3, 0x1 0x1e 0x1e + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0x82, 0x3, 0x1 0xffe5 0x19 + delay 0x1 + launchtemplate gFrostBreathBlueRageTemplate 0xc2 0x3 0x1 0x0 0x8 + waitforvisualfinish + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0xc2 0x3 0x0 0x0 0x4 + waitforvisualfinish + call UnsetPsychicBg end + Move_DRAGON_TAIL: + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_SLAM_HIT + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + createvisualtask AnimTask_BlendParticle, 0x5, ANIM_TAG_SLAM_HIT, 0x2, 0xD, 0xD, 0x5CAE + waitforvisualfinish + setalpha 12, 8 + playsewithpan SE_W004, SOUND_PAN_ATTACKER + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x14 0x3 0x0 0x4 + delay 0x1 + launchtemplate gSlamHitSpriteTemplate 0x2 0x2 0x0 0x0 + delay 0x3 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gBasicHitSplatSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET 0xfff4 0xa 0x0 0x3 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 + call TailWhackDown + delay 0x3 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x0 0x3 0x6 0x1 + waitforvisualfinish + delay 0x5 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x6 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end +TailWhackDown: + launchtemplate gBasicHitSplatSpriteTemplate 0x83 4 0xfff6 0xfff8 1 1 + playsewithpan SE_W070, SOUND_PAN_TARGET + launchtemplate gRockScatterSpriteTemplate, 0x82, 4, -12, 0x1b, 2, 3 + launchtemplate gRockScatterSpriteTemplate, 0x82, 4, 8, 28, 3, 4 + launchtemplate gRockScatterSpriteTemplate, 0x82, 4, -4, 30, 2, 3 + launchtemplate gRockScatterSpriteTemplate, 0x82, 4, 12, 25, 4, 4 + return + Move_WORK_UP: loadspritegfx ANIM_TAG_FOCUS_ENERGY @@ -5344,31 +6163,249 @@ Move_ELECTROWEB_Wait: end Move_WILD_CHARGE: + loadspritegfx ANIM_TAG_SPARK_2 + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gGrowingShockWaveOrbSpriteTemplate 0x2 0x0 @electric circle + delay 0x1e + waitforvisualfinish + loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 0x1c, 0x2 + call ScreenFlash + waitforvisualfinish + call ScreenFlash + waitforvisualfinish + playsewithpan SE_W036, SOUND_PAN_ATTACKER + launchtemplate gVerticalDipSpriteTemplate 0x2 0x3 0x6 0x1 0x0 + waitforvisualfinish + delay 0xb + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 + delay 0x6 + launchtemplate gBasicHitSplatSpriteTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x10 0x1 + playsewithpan SE_W025B, SOUND_PAN_TARGET + call ElectricityEffect + waitforvisualfinish + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end +ScreenFlash: + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x07FE + return Move_DRILL_RUN: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_HORN_HIT + setalpha 12, 8 + fadetobg BG_FISSURE + waitbgfadeout + launchtask AnimTask_PositionFissureBgOnBattler 0x5 0x3 0x1 0x5 0xffff + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x0 + playsewithpan SE_W029, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x2 + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x1 + launchtemplate gHealingBlueStarSpriteTemplate 0x84 0x3 0x0 0x0 0xc + waitforvisualfinish + playse 0x14 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x0 0x2 0x0 0x28 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0xa 0x0 0x28 0x1 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x2 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0xfffc 0x3 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0xfff8 0xfffb 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x4 0xfff4 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x10 0x0 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x5 0x12 0x1 0x3 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0xffef 0xc 0x1 0x2 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0xffeb 0xfff1 0x1 0x2 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x8 0xffe5 0x1 0x2 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x20 0x0 0x1 0x2 + playsewithpan SE_W030, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x2 + waitforvisualfinish + call UnsetPsychicBg end + Move_DUAL_CHOP: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @hand + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_POISON_BUBBLE @purple + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W026, SOUND_PAN_ATTACKER + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 + delay 0x6 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x5 0x0 0x6 0x1 + launchtemplate gKarateChopSpriteTemplate 0x2 0x8 0xffe0 0x0 0x0 0x0 0xa 0x1 0x3 0x0 @left + launchtemplate gKarateChopSpriteTemplate 0x2 0x8 0x0515 0x0 0x0 0x0 0xa 0x1 0x3 0x0 @right + waitforvisualfinish + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gDualChopImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x4 0x0 0x6 0x1 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff end + Move_HEART_STAMP: + loadspritegfx ANIM_TAG_HEART_STAMP + monbg ANIM_TARGET + loopsewithpan SE_W204, SOUND_PAN_ATTACKER, 0xc, 0x3 + launchtemplate gHeartStampSpinningHeartTemplate, 0x80, 0x4 0x0 0x0 0x1 0x1e + delay 0x1E + clearmonbg ANIM_TARGET + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon2 0x83 0x5 0x1 0x4 0x0 0x5 0x1 + launchtask AnimTask_StretchTargetUp 0x3 0x0 + waitforvisualfinish end + Move_HORN_LEECH: + loadspritegfx ANIM_TAG_HORN_LEECH @Horn + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_ORBS + loadspritegfx ANIM_TAG_BLUE_STAR + playsewithpan SE_W029, SOUND_PAN_ATTACKER + launchtemplate gHornLeechHornTemplate 0x82, 0x3, 0x0 0x0 0x25 + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x6 0x1 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + playsewithpan SE_W030, SOUND_PAN_TARGET + call GigaDrainAbsorbEffect + waitforvisualfinish + call HealingEffect + waitforvisualfinish end + Move_SACRED_SWORD: + loadspritegfx ANIM_TAG_CUT @Cut + loadspritegfx ANIM_TAG_SWORD @Sword + loadspritegfx ANIM_TAG_HYDRO_PUMP @Blue Colour + loadspritegfx ANIM_TAG_PUNISHMENT_BLADES @Punishment Blade + monbg ANIM_ATTACKER + setalpha 12, 8 + playsewithpan SE_W014, SOUND_PAN_ATTACKER + launchtemplate gSwordsDanceBladeSpriteTemplate 0x2 0x2 0x0 0x0 + delay 0x16 + launchtask AnimTask_FlashAnimTagWithColor 0x2 0x7 0x2715 0x2 0x2 0x7ff2 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + monbg ANIM_TARGET + playsewithpan SE_W013, SOUND_PAN_TARGET + launchtemplate gSacredSwordBladesTemplate 0x81 0x5 0x0 0xa 0x0 0xFF00 0xA + launchtemplate gSacredSwordCutTemplate 0x2 0x3 0x28 0xffe0 0x0 + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x0 0x3 0xa 0x1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish end + Move_RAZOR_SHELL: + loadspritegfx ANIM_TAG_RAZOR_SHELL + loadspritegfx ANIM_TAG_CUT + monbg ANIM_TARGET + launchtemplate gRazorShellTemplate 0x2 0x5 ANIM_TARGET 0x0 0x0 25 0 + playsewithpan SE_W015, SOUND_PAN_TARGET + launchtemplate gCuttingSliceSpriteTemplate 0x1 0x3 0x28 0xffe0 0x0 + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xa 0x1 + waitforvisualfinish + clearmonbg ANIM_TARGET + waitforvisualfinish end + Move_HEAT_CRASH: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_WARM_ROCK + loadspritegfx ANIM_TAG_ROCKS + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_SEIKAI, SOUND_PAN_TARGET + launchtemplate gHeatCrashEruptionRockTemplate 0x3 0x3 0x0 0xffe0 0xf + delay 0x13 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0xfff8 0x1 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x4 0x9 0x1 + playsewithpan SE_W025B, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xa 0xfff8 0x1 0x1 + playsewithpan SE_W088, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x5 0x1 + launchtemplate gRockScatterSpriteTemplate 0x82, 0x4, 0xfff4 0x20 0x3 0x4 + launchtemplate gRockScatterSpriteTemplate 0x82, 0x4, 0x8 0x1f 0x2 0x2 + launchtemplate gRockScatterSpriteTemplate 0x82, 0x4, 0xfffc 0x1c 0x2 0x3 + launchtemplate gRockScatterSpriteTemplate 0x82, 0x4, 0xc 0x1e 0x4 0x3 + clearmonbg ANIM_TARGET + blendoff end + Move_LEAF_TORNADO: + loadspritegfx ANIM_TAG_GUST @Gust + loadspritegfx ANIM_TAG_LEAF @Leaves + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + playsewithpan SE_W016, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x2 0x2f 0x1 + launchtemplate gEllipticalGustSpriteTemplate 0x2 0x2 0x0 0xfff0 + launchtask AnimTask_AnimateGustTornadoPalette 0x5 0x2 0x1 0x46 + call LeafTornadoVortex + call LeafTornadoVortex + call LeafTornadoVortex + waitforvisualfinish + stopsound + clearmonbg ANIM_TARGET end +LeafTornadoVortex: + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x1 + delay 0x2 + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x20 0x1e0 0x14 0x10 0xffd2 0x1 + delay 0x2 + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x21 0x240 0x14 0x8 0x2a 0x1 + delay 0x2 + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x1f 0x190 0x19 0xb 0xffd6 0x1 + delay 0x2 + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x1c 0x200 0x19 0x10 0x2e 0x1 + delay 0x2 + launchtemplate gLeafTornadoVortexTemplate 0x82 0x7 0x0 0x21 0x1d0 0x1e 0xf 0xffce 0x1 + delay 0x2 + return + Move_STEAMROLLER: loadspritegfx ANIM_TAG_IMPACT @@ -5397,10 +6434,74 @@ Move_STEAMROLLER: end Move_COTTON_GUARD: + loadspritegfx ANIM_TAG_SPORE + monbg SIDE_ATTACKER + setalpha 12, 8 + loopsewithpan SE_W077, SOUND_PAN_TARGET 0x12 0x6 + call CreateCottonSpores + call CottonSporesSpiralInward + call CottonSporesSpiralInward + call CottonSporesSpiralInward + waitforvisualfinish + clearmonbg SIDE_ATTACKER + blendoff end +CottonSporesSpiralInward: + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0x28 0xfff6 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0xffdd 0xfff6 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0xf 0xffd8 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0xfff6 0xffe0 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0x19 0xffec 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0xffd8 0xffec 0xd + delay 0x3 + launchtemplate gCottonGuardSporeTemplate 0x2 0x3 0x5 0xffd8 0xd + delay 0x3 + return + Move_NIGHT_DAZE: + loadspritegfx ANIM_TAG_THIN_RING @uproar + loadspritegfx ANIM_TAG_PURPLE_FLAME @dark violet color + loadspritegfx ANIM_TAG_RED_ORB @circles + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_TAMA, SOUND_PAN_ATTACKER + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0x0 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0x20 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0x40 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0x60 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0x80 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0xa0 + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 SOUND_PAN_ATTACKER + launchtemplate gNightDazeVioletCirclesTemplate 0x82 0x1 0xe0 + delay 0x1 + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0x1 + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0xF + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0x1 + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0x1 + launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x1f 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0x9 0x2002 + delay 0x6 + playsewithpan SE_W048, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x9 0x0 0x2002 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish end + Move_PSYSTRIKE: monbg ANIM_TARGET @@ -5420,73 +6521,1448 @@ Move_PSYSTRIKE: end Move_TAIL_SLAP: + loadspritegfx ANIM_TAG_IMPACT @Hit + loadspritegfx ANIM_TAG_AIR_WAVE_2 @Aeroblast + loadspritegfx ANIM_TAG_PUNISHMENT_BLADES @Punishment Blades + monbg ANIM_TARGET + setalpha 12, 8 + choosetwoturnanim TailSlapRight TailSlapLeft +TailSlapContinue: + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + playsewithpan SE_W003, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end +TailSlapRight: + launchtemplate gTailSlapTemplate 0x2 0x4 0xfff8 0x0 0x1 0x0 + goto TailSlapContinue +TailSlapLeft: + launchtemplate gTailSlapTemplate 0x2 0x4 0x8 0x0 0x1 0x0 + goto TailSlapContinue + Move_HURRICANE: + loadspritegfx ANIM_TAG_GUST + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + fadetobg BG_HIGH_SPEED + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x1000 0x0 0x1 0xffff + waitbgfadein + playsewithpan SE_W016, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x40 0x1 + call HurricaneGust + delay 0xA + call HurricaneGust + delay 0xA + call HurricaneGust + delay 0xA + call HurricaneGust + delay 0xA + call HurricaneGust + delay 0xA + call HurricaneGust + waitforvisualfinish + stopsound + clearmonbg SIDE_TARGET + blendoff + call UnsetPsychicBg end +HurricaneGust: + launchtemplate gPoisonBubbleSpriteTemplate 0x82, 2 0 0xfff0 + launchtask AnimTask_AnimateGustTornadoPalette 5 2 1 0x46 + return + Move_HEAD_CHARGE: + loadspritegfx ANIM_TAG_IMPACT + fadetobgfromset BG_GIGA_IMPACT_OPPONENT, BG_GIGA_IMPACT_PLAYER, BG_GIGA_IMPACT_OPPONENT + waitbgfadein + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x0 + playsewithpan SE_W029, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x2 + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x1 + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 0x0 0x2 0x0 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x6 0x1 + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x2 + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + playsewithpan SE_W233B, SOUND_PAN_TARGET + waitforvisualfinish + restorebg + waitbgfadeout end + Move_GEAR_GRIND: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_GEAR @Gear + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_ESUKA, SOUND_PAN_ATTACKER + launchtemplate gGearGrindTemplate 0x2 0x6 0xffe0 0xffe0 0x0 0x333 0x333 0xa + launchtemplate gGearGrindTemplate 0x2 0x6 0x20 0x20 0x0 0xfccd 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0x5 0x2 + waitforvisualfinish + launchtemplate gGearGrindTemplate 0x2 0x6 0x20 0xffe0 0x0 0xfccd 0x333 0xa + launchtemplate gGearGrindTemplate 0x2 0x6 0xffe0 0x20 0x0 0x333 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x8 0x4 0x2 + waitforvisualfinish + stopsound + clearmonbg ANIM_TARGET + blendoff end + Move_SEARING_SHOT: + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red color + loadspritegfx ANIM_TAG_ELECTRIC_ORBS @charge + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge + loadspritegfx ANIM_TAG_WARM_ROCK @eruption + createvisualtask AnimTask_BlendParticle, 0x5, ANIM_TAG_ELECTRIC_ORBS, 0x0, 0xC, 0xC, 0x0E3E @Orange + createvisualtask AnimTask_BlendParticle, 0x5, ANIM_TAG_WARM_ROCK, 0x0, 0xB, 0xB, 0x01BE @Orange + monbg ANIM_ATTACKER + setalpha 8, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + waitforvisualfinish + launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x3c 0x2 0xc + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x1F + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x1e + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x1e + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gSearingShotRedChargeTemplate 0x2 0x1 0x0 + delay 0x19 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x14 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0xf + playsewithpan SE_W268, SOUND_PAN_ATTACKER + waitforvisualfinish + playsewithpan SE_W172B, SOUND_PAN_ATTACKER + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x0 0x1e 0x19 0xffec + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x20 0x1e 0x19 0xffec + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x40 0x1e 0x19 0xffec + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x60 0x1e 0x19 0xffec + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x80 0x1e 0x19 0xffec + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0xffec + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 SOUND_PAN_ATTACKER 0x1e 0x19 0xffec + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xe0 0x1e 0x19 0xffec + delay 0xF + playsewithpan SE_W172B, SOUND_PAN_ATTACKER + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x0 0x1e 0x19 0x0 + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x20 0x1e 0x19 0x0 + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x40 0x1e 0x19 0x0 + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x60 0x1e 0x19 0x0 + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x2 0x5 0x1 0x80 0x1e 0x19 0x0 + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xa0 0x1e 0x19 0x0 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 SOUND_PAN_ATTACKER 0x1e 0x19 0x0 + delay 0x2 + launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xe0 0x1e 0x19 0x0 + delay 0x15 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x1F + clearmonbg ANIM_ATTACKER + fadetobg BG_FIRE + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff + waitbgfadein + delay 0x1E + monbg SIDE_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK_PARTNER | PAL_DEF | PAL_DEF_PARTNER 0x2 0x0 0x9 0x1F + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x1B 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x1B 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATK_PARTNER 0x3 0x0 0x1B 0x1 + playsewithpan SE_W007, SOUND_PAN_TARGET + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, -5, -5, 0x1 0x1E ANIM_TARGET + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, 5, 10, 0x1 0x1E ANIM_TARGET + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, -5, -5, 0x1 0x1E ANIM_DEF_PARTNER + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, 5, 10, 0x1 0x1E ANIM_DEF_PARTNER + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, -5, -5, 0x1 0x1E ANIM_ATK_PARTNER + launchtemplate gSearingShotEruptionImpactTemplate 0x83 0x5, 5, 10, 0x1 0x1E ANIM_ATK_PARTNER + delay 0x1E + playsewithpan SE_W153, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK_PARTNER | PAL_DEF | PAL_DEF_PARTNER 0x2 0x9 0x0 0x1F + delay 0x1E + call UnsetPsychicBg + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + clearmonbg SIDE_ATTACKER + blendoff end + Move_TECHNO_BLAST: + launchtask AnimTask_TechnoBlast 0x5 0x0 + jumpargeq 0x0, 10, TechnoBlastFire + jumpargeq 0x0, 11, TechnoBlastWater + jumpargeq 0x0, 13, TechnoBlastElectric + jumpargeq 0x0, 15, TechnoBlastIce +TechnoBlastNormal: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_AIR_WAVE_2 @white/gray color + loadspritegfx ANIM_TAG_BLACK_BALL_2 @blast + loadspritegfx ANIM_TAG_SPARK_2 @blast particles + loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 0xE, 0x8 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0xffec 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x14 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffec 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteChargeTemplate 0x2 0x1 0x0 + call TechnoBlastWhiteCircles + call TechnoBlastWhiteCircles + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0xffec 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x14 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffec 0x10 + delay 0x2 + waitforvisualfinish + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastWhiteBlastTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gTechnoBlastWhiteSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W052, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtemplate gTechnoBlastWhiteSmokeTemplate 0x82, 0x4, 0x8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gTechnoBlastWhiteSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gTechnoBlastWhiteSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gTechnoBlastWhiteSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER end +TechnoBlastWhiteCircles: + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0x14 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffec 0x1e 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x14 0xffe2 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffec 0xffe2 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x14 0x1e 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0x0 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x0 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0x28 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x0 0xffd8 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0xffec 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x14 0x10 + delay 0x2 + launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0xffd8 0xffec 0x10 + delay 0x2 + return + +TechnoBlastElectric: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_BLACK_BALL_2 @blast + loadspritegfx ANIM_TAG_SPARK_2 @blast particles + loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 0xE, 0x8 + launchtemplate gGrowingChargeOrbSpriteTemplate 0x2 0x1 0x0 + call TechnoBlastCharging1 + delay 0xF + call TechnoBlastCharging2 + delay 0xF + call TechnoBlastCharging1 + delay 0xF + call TechnoBlastCharging2 + delay 0xF + call TechnoBlastCharging1 + delay 0xF + call TechnoBlastCharging2 + delay 0xF + call TechnoBlastCharging1 + delay 0xF + call TechnoBlastCharging2 + delay 0xF + waitforvisualfinish + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastYellowBlastTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gTechnoBlastYellowSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W052, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtemplate gTechnoBlastYellowSmokeTemplate 0x82, 0x4, 0x8 0x8 0x1 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1 + delay 0x2 + launchtemplate gTechnoBlastYellowSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 + delay 0x2 + launchtemplate gTechnoBlastYellowSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2 + delay 0x2 + launchtemplate gTechnoBlastYellowSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER + end +TechnoBlastCharging1: + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + return +TechnoBlastCharging2: + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + return + +TechnoBlastWater: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_BLACK_BALL_2 @blast + loadspritegfx ANIM_TAG_SPARK_2 @blast particles + loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal + loadspritegfx ANIM_TAG_BUBBLE @bubbles + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x1 + waitforvisualfinish + launchtemplate gTechnoBlastBlueChargeTemplate 0x2 0x1 0x0 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + waitforvisualfinish + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastBlueBlastTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gTechnoBlastBlueSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W052, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtemplate gTechnoBlastBlueSmokeTemplate 0x82, 0x4, 0x8 0x8 0x1 0x0 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xa 0xa 0x19 0x1 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff1 0x0 0x19 0x1 + delay 0x2 + launchtemplate gTechnoBlastBlueSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x14 0xa 0x19 0x1 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x0 0xfff6 0x19 0x1 + delay 0x2 + launchtemplate gTechnoBlastBlueSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xfff6 0xf 0x19 0x1 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0x19 0x14 0x19 0x1 + delay 0x2 + launchtemplate gTechnoBlastBlueSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x1 + launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER + end + +TechnoBlastFire: + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red color + loadspritegfx ANIM_TAG_SMALL_RED_EYE @another red color + loadspritegfx ANIM_TAG_SMALL_EMBER @fire + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_BLACK_BALL_2 @blast + loadspritegfx ANIM_TAG_SPARK_2 @blast particles + loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + launchtemplate gTechnoBlastRedChargeTemplate 0x2 0x1 0x0 + delay 0x5 + call TechnoBlastFireSpiral + call TechnoBlastFireSpiral + call TechnoBlastFireSpiral + waitforvisualfinish + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastRedBlastTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gTechnoBlastRedSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W052, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtemplate gTechnoBlastRedSmokeTemplate 0x82, 0x4, 0x8 0x8 0x1 0x0 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xb0 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa 0xff40 0xf0 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xff60 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa 0xff40 0xff90 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa 0xa0 0x30 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa 0xff20 0xffe0 0x28 + launchtemplate gFireSpreadSpriteTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 + delay 0x2 + launchtemplate gTechnoBlastRedSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gTechnoBlastRedSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gTechnoBlastRedSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER + end +TechnoBlastFireSpiral: + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x4 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x8 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0xc + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x10 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x14 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x18 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + return + +TechnoBlastIce: + loadspritegfx ANIM_TAG_ICE_CRYSTALS @ice + loadspritegfx ANIM_TAG_ICE_CHUNK @ice color + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_BLACK_BALL_2 @blast + loadspritegfx ANIM_TAG_SPARK_2 @blast particles + loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal + monbg ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + launchtemplate gTechnoBlastIceChargeTemplate 0x2 0x1 0x0 + delay 0x5 + call TechnoBlastIceChargeParticles + call TechnoBlastIceChargeParticles + call TechnoBlastIceChargeParticles + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xfff6 0xfff6 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xa 0x14 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xfffb 0xa 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0x11 0xfff4 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + waitforvisualfinish + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gTechnoBlastIceBlastTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gTechnoBlastIceSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W052, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtemplate gTechnoBlastIceSmokeTemplate 0x82, 0x4, 0x8 0x8 0x1 0x0 + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 + delay 0x2 + launchtemplate gTechnoBlastIceSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0xa 0x14 0x0 + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0xfffb 0xa 0x0 + delay 0x2 + launchtemplate gTechnoBlastIceSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0x11 0xfff4 0x0 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0xfff1 0xf 0x0 + delay 0x2 + launchtemplate gTechnoBlastIceSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0x0 0x0 0x0 + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0x14 0x2 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end +TechnoBlastIceChargeParticles: + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xfff6 0xfff6 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xa 0x14 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xfffb 0xa 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0x11 0xfff4 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0xfff1 0xf 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gTechnoBlastIceCrystalsTemplate 0x2 0x4 0x14 0x2 0x0 0x2 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + return + Move_RELIC_SONG: + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_MUSIC_NOTES + loadspritegfx ANIM_TAG_IMPACT + monbg SIDE_TARGET + launchtask AnimTask_MusicNotesRainbowBlend 0x2 0x0 + waitforvisualfinish + panse_1B 0x1DF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 @ ??? + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x1d 0xfff4 0x0 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xfff4 0xffe3 0x1 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x7 0x0 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x6 0x1 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xc 0xffe3 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe3 0xfff4 0x0 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x1 0x2 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x2 0x3 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x18 0xffe8 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe8 0xffe8 0x0 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x3 0x0 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x2 0x1 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x1d 0xfff4 0x0 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xfff4 0xffe3 0x1 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x5 0x2 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x6 0x3 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xc 0xffe3 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe3 0xfff4 0x0 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x2 0x0 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x2 0x1 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x18 0xffe8 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe8 0xffe8 0x0 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x1 0x2 0xc + delay 0x5 + launchtemplate gWavyMusicNotesSpriteTemplate 0x82, 0x3, 0x5 0x3 0xc + delay 0x5 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x1d 0xfff4 0x0 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xfff4 0xffe3 0x1 + waitforvisualfinish + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x3 0x0 0xc 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x3 0x3 0x0 0xc 0x1 + delay 0x5 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg SIDE_TARGET + launchtask AnimTask_MusicNotesClearRainbowBlend 0x2 0x0 + waitforvisualfinish end + Move_SECRET_SWORD: + loadspritegfx ANIM_TAG_CUT @Cut + loadspritegfx ANIM_TAG_SWORD @Sword + loadspritegfx ANIM_TAG_HYDRO_PUMP @Blue Colour + loadspritegfx ANIM_TAG_PUNISHMENT_BLADES @Punishment Blade + monbg ANIM_ATTACKER + setalpha 12, 8 + playsewithpan SE_W014, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + launchtemplate gSwordsDanceBladeSpriteTemplate 0x2 0x2 0x0 0x0 + delay 0x16 + launchtask AnimTask_FlashAnimTagWithColor 0x2 0x7 0x2715 0x2 0x2 0x7ff2 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + monbg ANIM_TARGET + playsewithpan SE_W013, SOUND_PAN_TARGET + launchtemplate gSecretSwordBladesTemplate 0x81 0x5 0x0 0xa 0x0 0xFF00 0xA + launchtemplate gCuttingSliceSpriteTemplate 0x2 0x3 0x28 0xffe0 0x0 + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x0 0x3 0xa 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish end + Move_GLACIATE: + loadspritegfx ANIM_TAG_ICE_CRYSTALS @ice + loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke + loadspritegfx ANIM_TAG_ICE_CHUNK @White Colour + monbg SIDE_TARGET + setalpha 12, 8 + fadetobg BG_ICE + waitbgfadeout + playsewithpan SE_W028, SOUND_PAN_TARGET + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xfff4 0x68 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xfff4 0x48 0x1 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xfffa 0x38 0x1 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xfffa 0x58 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x0 0x38 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x0 0x58 0x1 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x6 0x48 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x6 0x68 0x1 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xc 0x48 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0xc 0x38 0x1 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x12 0x50 0x0 0x4b + launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x12 0x48 0x1 0x4b + waitforvisualfinish + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (PAL_DEF | PAL_DEF_PARTNER), 0x2, 0x0, 0xA, 0x7FFF + call IceCrystalEffectLong + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (PAL_DEF | PAL_DEF_PARTNER), 0x2, 0xA, 0x0, 0x7FFF + waitforvisualfinish + blendoff + clearmonbg SIDE_TARGET + call UnsetPsychicBg end + -Move_BOLT_STRIKE: +Move_BOLT_STRIKE:: + loadspritegfx ANIM_TAG_SPARK_2 @Electricity + loadspritegfx ANIM_TAG_IMPACT @Hit + loadspritegfx ANIM_TAG_ELECTRIC_ORBS @Electric Balls + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @Electric Circle + monbg ANIM_ATTACKER + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x07FE + launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x40 0x0 0x2 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0xc + launchtemplate gGrowingShockWaveOrbSpriteTemplate 0x2 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + playsewithpan SE_W207, SOUND_PAN_ATTACKER + waitplaysewithpan SE_W207, SOUND_PAN_ATTACKER, 0x8 + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x12 0x6 0x2 0x4 + delay 0xA + fadetobg BG_BOLT_STRIKE + waitbgfadeout + waitforvisualfinish + monbg ANIM_TARGET + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 + delay 0x6 + launchtemplate gBasicHitSplatSpriteTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x07FE + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0x20 0x1 + playsewithpan SE_W161B, SOUND_PAN_TARGET + call ElectricityEffect + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x07FE + playsewithpan SE_W161B, SOUND_PAN_TARGET + call ElectricityEffect + waitforvisualfinish + clearmonbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x07FE + call UnsetPsychicBg + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + blendoff + waitforvisualfinish end + + +Move_BLUE_FLARE:: + loadspritegfx ANIM_TAG_SMALL_EMBER @Fire + loadspritegfx ANIM_TAG_METAL_BITS @Blue Flare Colour + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 0x7, 0x9 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x0 0xffe0 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x16 0xffea 0x10 + delay 0x2 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 0x4 0x1 0x0 0x9 0x1F + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x1e 0x0 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x14 0x14 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x0 0x1c 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0xffed 0x13 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0xffe5 0x0 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0xffee 0xffee 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x0 0xffe7 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x11 0xffef 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x17 0x0 0x10 + delay 0x2 + launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x10 0x10 0x10 + waitforvisualfinish + playsewithpan SE_W221B, SOUND_PAN_TARGET + call BlueFlareFireSpin + call BlueFlareFireSpin + call BlueFlareFireSpin + fadetobg BG_FIRE_2 + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x1000 0x0 0x0 0xFFFF + waitbgfadein + playsewithpan SE_W172, SOUND_PAN_ATTACKER + call BlueFlareFlameSpreadEffect + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 0x4 0x1 0x9 0x0 0x1f + call UnsetPsychicBg + waitforvisualfinish + end +BlueFlareFireSpin: + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x1 + delay 0x2 + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x20 0x1e0 0x14 0x10 0xffd2 0x1 + delay 0x2 + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x21 0x240 0x14 0x8 0x2a 0x1 + delay 0x2 + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x1f 0x190 0x19 0xb 0xffd6 0x1 + delay 0x2 + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x1c 0x200 0x19 0x10 0x2e 0x1 + delay 0x2 + launchtemplate gBlueFlareFlameSwirlTemplate 0x82 0x7 0x0 0x21 0x1d0 0x1e 0xf 0xffce 0x1 + delay 0x2 + return +BlueFlareFlameSpreadEffect: + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xb0 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa 0xff40 0xf0 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xff60 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa 0xff40 0xff90 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa 0xa0 0x30 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa 0xff20 0xffe0 0x28 + launchtemplate gBlueFlareBurnTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 + return + + +Move_FIERY_DANCE:: + loadspritegfx ANIM_TAG_SMALL_EMBER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xc 0x14be + waitforvisualfinish + playsewithpan SE_W221B, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x2 0x40 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x0 0x9 0x1f + call FireSpinEffect + call FireSpinEffect + call FireSpinEffect + playsewithpan SE_W221B, SOUND_PAN_TARGET + call FireSpinEffect + call FireSpinEffect + call FireSpinEffect + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xc 0x0 0x14be + waitforvisualfinish + end + -Move_BLUE_FLARE: +Move_FREEZE_SHOCK:: + loadspritegfx ANIM_TAG_SPARK + loadspritegfx ANIM_TAG_SPARK_2 + loadspritegfx ANIM_TAG_ICE_CHUNK @Ice Ball + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @Electric Circle + choosetwoturnanim FreezeShockCharge FreezeShockAttack +FreezeShockCharge: + launchtask AnimTask_HorizontalShake 0x5 0x3 0x0 0x2 0x10 + playsewithpan SE_W085B, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xf 0x7fff + launchtemplate gFreezeShockCircleTemplate 0x2 0x0 @electric circle + delay 0x14 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0xf 0x0 0x7fff + waitforvisualfinish end +FreezeShockAttack: + loopsewithpan SE_W196, SOUND_PAN_TARGET, 0x5, 0x5 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + monbg ANIM_TARGET + waitforvisualfinish + playsewithpan SE_W086, SOUND_PAN_ATTACKER + launchtemplate gFreezeShockIceBallTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + delay 0xf + waitplaysewithpan SE_W085B, SOUND_PAN_TARGET, 0x13 + call ElectricityEffect + waitforvisualfinish + clearmonbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + waitforvisualfinish + end + + +Move_ICE_BURN:: + loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke + loadspritegfx ANIM_TAG_ICE_CHUNK @white color + loadspritegfx ANIM_TAG_ICE_CRYSTALS @ice + loadspritegfx ANIM_TAG_SMALL_EMBER + choosetwoturnanim IceBurnCharge, IceBurnUnleash + waitforvisualfinish + end +IceBurnCharge: + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + loopsewithpan SE_W196, SOUND_PAN_TARGET, 0x4, 0x3 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x8 0x0 0x0 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x0 0x2 0x10 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xf 0x7fff + delay 0x14 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0xf 0x0 0x7fff + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + end +IceBurnUnleash: + monbg ANIM_TARGET + fadetobg BG_ICE + waitbgfadeout + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7fff + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xfff4 0x68 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xfff4 0x48 0x1 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xfffa 0x38 0x1 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xfffa 0x58 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x0 0x38 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x0 0x58 0x1 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x6 0x48 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x6 0x68 0x1 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xc 0x48 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xc 0x38 0x1 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x12 0x50 0x0 0x4b + launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0x12 0x48 0x1 0x4b + call FireSpreadEffect + playsewithpan SE_W007, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0xa 0x14 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0xfffb 0xa 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0x11 0xfff4 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0xfff1 0xf 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0x0 0x0 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0x14 0x2 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7fff + waitforvisualfinish + restorebg + clearmonbg ANIM_TARGET + end + + +Move_SNARL:: + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_IMPACT + monbg SIDE_TARGET + fadetobg BG_DARK + waitbgfadeout + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + playsewithpan SE_W253, SOUND_PAN_ATTACKER + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x1d 0xfff4 0x0 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xfff4 0xffe3 0x1 + delay 0x10 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + playsewithpan SE_W253, SOUND_PAN_ATTACKER + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xc 0xffe3 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe3 0xfff4 0x0 + delay 0x10 + launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + playsewithpan SE_W253, SOUND_PAN_ATTACKER + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0x18 0xffe8 0x1 + launchtemplate gJaggedMusicNoteSpriteTemplate 0x2 0x4 0x0 0xffe8 0xffe8 0x0 + waitforvisualfinish + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x3 0x0 0xc 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x3 0x3 0x0 0xc 0x1 + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + waitforvisualfinish + call UnsetPsychicBg + clearmonbg SIDE_TARGET + blendoff + end + -Move_FIERY_DANCE: +Move_ICICLE_CRASH:: + loadspritegfx ANIM_TAG_ICICLE_SPEAR @Icicle + fadetobg BG_ICE + waitbgfadein + monbg SIDE_TARGET + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xfffb 0x0 0xfffb 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0x5 0x0 0x6 0x1 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0x13 0x0 0xa 0x01 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xffe9 0x0 0xfff6 0x1 + playsewithpan SE_W196, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x5 0x32 0x1 + delay 0x2 + call LaunchIcicleCrashSpear + call LaunchIcicleCrashSpear + waitforvisualfinish + clearmonbg SIDE_TARGET + restorebg + waitbgfadeout end +LaunchIcicleCrashSpear: + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0x1c 0x0 0xa 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xfff6 0x0 0xfffb 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xa 0x0 0x6 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0x18 0x0 0xa 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xffe0 0x0 0xfff6 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0x1e 0x0 0xa 0x0 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x2 + return + + +Move_V_CREATE:: + loadspritegfx ANIM_TAG_SMALL_EMBER @fire blast flame + loadspritegfx ANIM_TAG_THIN_RING @calm mind animation + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red color + loadspritegfx ANIM_TAG_ECLIPSING_ORB @defense curl animation + monbg SIDE_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 @Darken + launchtemplate gVCreateRedOrbTemplate 0x2 0x4 0x0 0x11 0x0 0x1 + playsewithpan SE_W025, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gVCreateRedRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x1f + playsewithpan SE_W172B, SOUND_PAN_TARGET + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + call VCreateFlames + waitforvisualfinish + unloadspritegfx ANIM_TAG_SMALL_EMBER + unloadspritegfx ANIM_TAG_THIN_RING + unloadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE + unloadspritegfx ANIM_TAG_ECLIPSING_ORB + loadspritegfx ANIM_TAG_EXPLOSION @explosion animation + loadspritegfx ANIM_TAG_CLAW_SLASH @dragon claw animation + clearmonbg SIDE_ATTACKER + fadetobg BG_FIRE @Mr. DS Fire + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff + waitbgfadein + playsewithpan SE_W036, SOUND_PAN_ATTACKER + launchtask AnimTask_WindUpLunge 0x5 0x7 0x0 0xffe8 0x8 0x17 0xa 0x28 0xa + delay 0x23 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x5 0x32 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x1f + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + delay 0x6 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x18 0xffe8 0x1 0x1 + delay 0x6 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0xfff0 0x10 0x1 0x1 + delay 0x6 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0xffe8 0xfff4 0x1 0x1 + delay 0x6 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x10 0x10 0x1 0x1 + waitforvisualfinish + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 + launchtemplate gClawSlashSpriteTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 + launchtemplate gClawSlashSpriteTemplate 0x82, 0x3, 0xa 0xfff6 0x1 + waitforvisualfinish + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x4 0x0 0xc 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x1f + delay 0x2 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 + waitforvisualfinish + clearmonbg SIDE_TARGET + call UnsetPsychicBg + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0xffff + waitforvisualfinish + end +VCreateFlames: + launchtemplate gVCreateFlameTemplate 0x82 0x5 0x0 0x1 0x16 0xFFEA 0x10 @upperright + launchtemplate gVCreateFlameTemplate 0x82 0x5 0x0 0x1 0xFFEE 0xFFEE 0x10 @upperleft + delay 0x3 + return + + + +Move_FUSION_FLARE:: + loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @ball + loadspritegfx ANIM_TAG_VERTICAL_HEX @ball palette + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @flame palette + loadspritegfx ANIM_TAG_SMALL_BUBBLES @particles + loadspritegfx ANIM_TAG_THIN_RING @ring + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0x0, 0xD, 0xD, 0x015B @Reddish Orange + monbg ANIM_TARGET + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W025, SOUND_PAN_ATTACKER + call FusionFlareBuff + delay 0x8 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x1F + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 + launchtemplate gVerticalDipSpriteTemplate 0x2 0x3 0x8 0x1 0x0 + delay 0x8 + playsewithpan SE_W207, SOUND_PAN_ATTACKER + launchtemplate gFusionFlareRedBallUpTemplate 0x2 0x0 + delay 0x20 + launchtemplate gFusionFlareRedBallTemplate 0x3 0x3 0x0 0xffA0 0x2F + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 + delay 0x29 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xb 0x1F + delay 0x5 + launchtemplate gFusionFlareRedRingTemplate 0x3 0x6 0x1 0x1 0x1 0x1 0x1F 0x8 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 + launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x1 0x2 0x10 + delay 0x5 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +FusionFlareBuff: + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfff4 0x0 0x1 + return + -Move_FREEZE_SHOCK: +Move_FUSION_BOLT:: + loadspritegfx ANIM_TAG_SPARK + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_ELECTRICITY + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CIRCLE_OF_LIGHT, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRICITY, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x0, 0x0, 0xE, 0x0 + waitforvisualfinish + launchtemplate gVoltTackleOrbSlideSpriteTemplate 0x1 0x0 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + invisible ANIM_ATTACKER + waitforvisualfinish + delay 0x8 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x0 + playsewithpan SE_W085, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x1 + playsewithpan SE_W085, SOUND_PAN_TARGET + waitforvisualfinish + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x2 + playsewithpan SE_W085, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x3 + playsewithpan SE_W085, SOUND_PAN_TARGET + waitforvisualfinish + launchtemplate gFusionBoltBallTemplate 0x82 0x1 0x10 + playsewithpan SE_W085, SOUND_PAN_ATTACKER + delay 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0xa 0x0 0x12 0x1 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x1 0x10 0x10 + delay 0x2 + launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x1 0xfff0 0xfff0 + delay 0x8 + launchtask AnimTask_VoltTackleAttackerReappear 0x5 0x0 + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x3 0x0 0x9 0x1 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x0 0x10 0x10 + delay 0x2 + launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x0 0xfff0 0xfff0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0xE 0x0 0x0 + waitforvisualfinish end - -Move_ICE_BURN: + + +@@@@@@@@@@@@@@@@@@@@@@@ GEN 6 @@@@@@@@@@@@@@@@@@@@@@@ +Move_FLYING_PRESS:: + loadspritegfx ANIM_TAG_ROUND_SHADOW @fly/bounce + loadspritegfx ANIM_TAG_GRAY_SMOKE @smoke + setblends 0xF + playsewithpan SE_W019, SOUND_PAN_ATTACKER + launchtemplate gFlyBallUpSpriteTemplate 0x2 0x4 0x0 0x0 0xd 0x150 + waitforvisualfinish + delay 0xF + playsewithpan SE_W207, SOUND_PAN_TARGET + launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 + delay 0x2 + launchtask AnimTask_SquishTarget 0x2 0x0 + delay 0x5 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0x8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0xfff8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0x8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 0x4 0xfff8 0x8 0x1 0x0 + waitforvisualfinish + blendoff end - -Move_SNARL: + + +Move_MAT_BLOCK:: + loadspritegfx ANIM_TAG_CONVERSION + loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL @green color + monbg SIDE_ATTACKER + monbgprio_28 ANIM_ATTACKER + setblends 0x10 + delay 0x0 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0xfff8 0x18 + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0x8 0x18 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0xfff8 0x8 + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0x8 0x8 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0xfff8 0xfff8 + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0x8 0xfff8 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0xfff8 0xffe8 + launchtemplate gMatBlockGreenConversionTemplate 0x2 0x2 0x8 0xffe8 + delay 0x14 + launchtask AnimTask_ConversionAlphaBlend 0x5 0x0 + waitforvisualfinish + delay 0x1 + clearmonbg SIDE_ATTACKER + blendoff end - -Move_ICICLE_CRASH: + + +Move_BELCH:: + loadspritegfx ANIM_TAG_BERRY_NORMAL + loadspritegfx ANIM_TAG_EXPLOSION @Explosion + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_SEIKAI, SOUND_PAN_ATTACKER + launchtemplate gBelchBerryTemplate 0x2 0x6 0x14 0xfff8 0xfff8 0xfff8 0x14 0xffe0 + delay 0x13 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0xa 0x0 0x14 0x1 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x18 0xffe8 0x1 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0xfff0 0x10 0x1 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0xffe8 0xfff4 0x1 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x10 0x10 0x1 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate 0x3 0x4 0xffe8 0x18 0x1 0x1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end - -Move_V_CREATE: - end - -Move_FUSION_FLARE: - end - -Move_FUSION_BOLT: - end - -Move_FLYING_PRESS: - end - -Move_MAT_BLOCK: - end - -Move_BELCH: - end - -Move_ROTOTILLER: + + +Move_ROTOTILLER:: + loadspritegfx ANIM_TAG_MUD_SAND + loadspritegfx ANIM_TAG_DIRT_MOUND + loadspritegfx ANIM_TAG_GREEN_SPARKLE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x112C + waitforvisualfinish + launchtemplate gDirtMoundSpriteTemplate 0x1 0x3 0x0 0x0 0xb4 + launchtemplate gDirtMoundSpriteTemplate 0x1 0x3 0x0 0x1 0xb4 + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x6 0x4 0x2 0x4 + call DigThrowDirt + call DigThrowDirt + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x6 0x4 0x2 0x4 + call DigThrowDirt + call DigThrowDirt + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x112C + waitforvisualfinish end + Move_STICKY_WEB: loadspritegfx ANIM_TAG_SPIDER_WEB @@ -5641,16 +8117,141 @@ ParabolicChargeDouble: goto ParabolicChargeHeal; Move_FORESTS_CURSE: + loadspritegfx ANIM_TAG_ROOTS @frenzy plant + loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT @curse + monbg ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + waitforvisualfinish + playsewithpan SE_W010, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x8 0x02E3 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 + waitforvisualfinish + playsewithpan SE_W010, SOUND_PAN_ATTACKER + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 + waitforvisualfinish + playsewithpan SE_W010, SOUND_PAN_ATTACKER + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 + launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 + waitforvisualfinish + launchtemplate gCurseGhostSpriteTemplate 0x82 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x2 0x0 0xe 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x8 0x0 0x02E3 + delay 0x3 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER end - -Move_PETAL_BLIZZARD: + + +Move_PETAL_BLIZZARD:: + loadspritegfx ANIM_TAG_LEAF + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_FLOWER + monbg 0x3 + monbgprio_28 0x1 + playsewithpan SE_W239, SOUND_PAN_TARGET + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 + delay 0x1 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 0x73, 0x37, 0x6, 0x3c, 0x19 + delay 0x1 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 0x73, 0x3c, 0x7, 0x3c, 0x1e + launchtemplate gPetalBlizzardTwister1Template 0x82 0x5 0x73 0x37 0xA 0x3c 0x1e + delay 0x3 + launchtemplate gPetalBlizzardTwister1Template 0x82 0x5 0x64 0x32 0x4 0x32 0x1A + delay 0x1 + launchtemplate gPetalBlizzardTwister1Template 0x82 0x5 0x69 0x19 0x8 0x3c 0x14 + delay 0x1 + launchtemplate gPetalBlizzardTwister1Template 0x82 0x5 0x73 0x28 0xA 0x30 0x1E + delay 0x3 + launchtemplate gPetalBlizzardTwister1Template 0x82 0x5 0x78 0x1E 0x6 0x2d 0x19 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 0x73, 0x23, 0xA, 0x3c, 0x1e + delay 0x3 + launchtemplate gPetalBlizzardTwister2Template 0x82 0x5 0x69 0x14 0x8 0x28 0x0 + delay 0x3 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 0x14, 0xff, 0xf, 0x20, 0x0 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 0x6e, 0xA, 0x8, 0x20, 0x14 + waitforvisualfinish + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 ANIM_TARGET 0x3 0x0 0xC 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0xC 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 ANIM_ATK_PARTNER 0x3 0x0 0xC 0x1 + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 + playsewithpan SE_W004, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg 0x3 + blendoff end - -Move_FREEZE_DRY: + + +Move_FREEZE_DRY:: + monbg SIDE_TARGET + loadspritegfx ANIM_TAG_ICE_CRYSTALS + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7f4c + delay 0x14 + playsewithpan SE_W081, SOUND_PAN_TARGET + launchtemplate gIceCrystalSpiralInwardSmall 0x2 0x1 0x0 + launchtemplate gIceCrystalSpiralInwardSmall 0x2 0x1 0x40 + launchtemplate gIceCrystalSpiralInwardSmall 0x2 0x1 0x80 + launchtemplate gIceCrystalSpiralInwardSmall 0x2 0x1 SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gIceCrystalSpiralInwardLarge 0x2 0x1 0x20 + launchtemplate gIceCrystalSpiralInwardLarge 0x2 0x1 0x60 + launchtemplate gIceCrystalSpiralInwardLarge 0x2 0x1 0xa0 + launchtemplate gIceCrystalSpiralInwardLarge 0x2 0x1 0xe0 + waitforvisualfinish + call IceCrystalEffectShort + delay 0x5 + playsewithpan SE_W172, 0x0 + loadspritegfx ANIM_TAG_ICE_CUBE + monbgprio_28 ANIM_TARGET + launchtask AnimTask_FrozenIceCube 0x2 0x0 + waitplaysewithpan SE_RG_CARD1 SOUND_PAN_TARGET 0x11 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7f4c + clearmonbg SIDE_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x7 0x0 0x0 + waitforvisualfinish + blendoff end - -Move_DISARMING_VOICE: + + +Move_DISARMING_VOICE:: + loadspritegfx ANIM_TAG_NOISE_LINE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + waitforvisualfinish + launchtask SoundTask_PlayDoubleCry 0x2 0x2 0x0 0xff + call RoarEffect + delay 0xA + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x1A 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x1A 0x1 + waitforvisualfinish + launchtask SoundTask_WaitForCry 0x5 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + waitforvisualfinish end + Move_PARTING_SHOT: loadspritegfx ANIM_TAG_NOISE_LINE @@ -5717,26 +8318,305 @@ Move_DRAINING_KISS: waitforvisualfinish end -Move_CRAFTY_SHIELD: +Move_CRAFTY_SHIELD:: + loadspritegfx ANIM_TAG_CRAFTY_SHIELD + monbg SIDE_ATTACKER + monbgprio_28 ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x4DBF + setblends 0x10 + delay 0x0 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xffe8 0xffe8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xfff8 0xffe8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x8 0xffe8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x18 0xffe8 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xffe8 0xfff8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xfff8 0xfff8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x8 0xfff8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x18 0xfff8 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xffe8 0x8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xfff8 0x8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x8 0x8 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x18 0x8 + delay 0x3 + playsewithpan SE_W129, SOUND_PAN_ATTACKER + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xffe8 0x18 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0xfff8 0x18 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x8 0x18 + delay 0x3 + launchtemplate gCraftyShieldPinkConversionTemplate 0x2 0x2 0x18 0x18 + delay 0x14 + playsewithpan SE_W112, SOUND_PAN_ATTACKER + launchtask AnimTask_FlashAnimTagWithColor 0x2 0x7 0x2722 0x1 0x1 0x37ff 0xc 0x0 0x0 + delay 0x6 + launchtask AnimTask_ConversionAlphaBlend 0x5 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x4DBF + waitforvisualfinish + delay 0x1 + clearmonbg SIDE_ATTACKER + blendoff + end + + +Move_FLOWER_SHIELD:: + loadspritegfx ANIM_TAG_FLOWER + loadspritegfx ANIM_TAG_IMPACT + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + waitforvisualfinish + playsewithpan SE_W080, SOUND_PAN_ATTACKER + launchtemplate gPetalDanceBigFlowerSpriteTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x10 0xffe8 0x8 0x64 + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xfff0 0xffe8 0x8 0x64 + delay 0xf + launchtemplate gPetalDanceBigFlowerSpriteTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x20 0xffe8 0x8 0x64 + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xffe0 0xffe8 0x8 0x64 + delay 0xf + launchtemplate gPetalDanceBigFlowerSpriteTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x18 0xffe8 0x8 0x64 + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xffe8 0xffe8 0x8 0x64 + delay 0x1e + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x10 0xffe8 0x0 0x64 + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xfff0 0xffe8 0x0 0x64 + delay 0x1e + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x14 0xfff0 0xe 0x50 + launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xffec 0xfff2 0x10 0x50 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + waitforvisualfinish + blendoff + end + + +Move_GRASSY_TERRAIN:: + loadspritegfx ANIM_TAG_ORBS @Recover Ball + loadspritegfx ANIM_TAG_GREEN_SPARKLE @Green Star + playsewithpan SE_W036, SOUND_PAN_ATTACKER + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0x0 + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0x2a + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0x54 + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0x7e + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0xa8 + launchtemplate gGrassyTerrainOrbsTemplate 0x2 0x2 0x1a 0xd2 + delay 0x34 + setarg 0x7 0xffff + playsewithpan SE_W215, SOUND_PAN_ATTACKER + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfff9 0xfff9 0xb 0x0 0x0 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0x0 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0x20 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0x40 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0x60 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0x80 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0xa0 + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 SOUND_PAN_ATTACKER + launchtemplate gGrassyTerrainStarTemplate 0x82 0x1 0xe0 + waitforvisualfinish + restorebg + waitbgfadein + panse_26 SE_W080, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x1, 0x0 + waitsound end -Move_FLOWER_SHIELD: +Move_MISTY_TERRAIN:: + loadspritegfx ANIM_TAG_ORBS @Recover Ball + loadspritegfx ANIM_TAG_GREEN_SPARKLE @Green Star + loadspritegfx ANIM_TAG_WATER_GUN @Light Blue Colour + playsewithpan SE_W215, SOUND_PAN_ATTACKER + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0x0 + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0x2a + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0x54 + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0x7e + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0xa8 + launchtemplate gMistyTerrainOrbsTemplate 0x2 0x2 0x1a 0xd2 + delay 0x34 + setarg 0x7 0xffff + playsewithpan SE_W213, SOUND_PAN_ATTACKER + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfff9 0xfff9 0xb 0x0 0x0 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0x0 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0x20 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0x40 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0x60 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0x80 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0xa0 + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 SOUND_PAN_ATTACKER + launchtemplate gMistyTerrainStarTemplate 0x82 0x1 0xe0 + waitforvisualfinish + restorebg + waitbgfadein + playsewithpan SE_W322, SOUND_PAN_ATTACKER + delay 0x40 end + + +Move_ELECTRIFY:: + loadspritegfx ANIM_TAG_GUARD_RING @ring around user + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + loadspritegfx ANIM_TAG_SPARK @electric travel + loadspritegfx ANIM_TAG_THIN_RING @ring + monbg ANIM_ATTACKER + loopsewithpan SE_W085B, SOUND_PAN_TARGET 0xa 0x4 + launchtemplate gElectrifyRingTemplate 0x2 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x4 + launchtemplate gElectrifyRingTemplate 0x2 0x0 + delay 0x4 + launchtemplate gElectrifyRingTemplate 0x2 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + waitforvisualfinish + playsewithpan SE_W086, SOUND_PAN_ATTACKER + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + delay 0xA + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0xB 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x3 0x039B + delay 0x4 + clearmonbg ANIM_ATTACKER + delay 0x1 + monbg SIDE_TARGET + playsewithpan SE_W085B, SOUND_PAN_TARGET + launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0 + delay 0x1 + launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + delay 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1 + launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + delay 0x1 + launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + delay 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2 + launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + delay 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 + delay 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1 + delay 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2 + delay 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 + delay 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0xB 0x0 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x3 0x0 0x039B + waitforvisualfinish + clearmonbg SIDE_TARGET + end + -Move_GRASSY_TERRAIN: +Move_PLAY_ROUGH:: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_PINK_HEART + loadspritegfx ANIM_TAG_DUCK + monbg 0x3 + setalpha 12, 8 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + waitplaysewithpan SE_W053, SOUND_PAN_TARGET, 0xa + waitplaysewithpan SE_W152, SOUND_PAN_ATTACKER, 0x14 + waitplaysewithpan SE_W053, SOUND_PAN_TARGET, 0x1e + waitplaysewithpan SE_W152, SOUND_PAN_ATTACKER, 0x28 + waitplaysewithpan SE_W053, SOUND_PAN_TARGET, 0x32 + waitplaysewithpan SE_W152, SOUND_PAN_ATTACKER, 0x3c + waitplaysewithpan SE_W053, SOUND_PAN_TARGET, 0x46 + waitplaysewithpan SE_W152, SOUND_PAN_ATTACKER, 0x50 + waitplaysewithpan SE_W053, SOUND_PAN_TARGET, 0x5a + launchtask AnimTask_TranslateMonElliptical 0x2 0x5 0x0 0xffee 0x6 0x6 0x4 + launchtask AnimTask_TranslateMonElliptical 0x2 0x5 0x1 0x12 0x6 0x6 0x4 + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0xff00 0xffd6 + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0x80 0xfff2 + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0x1a0 0xffda + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0xff80 0xffea + delay 0x0 + call SubmissionHit + playsewithpan SE_W053, SOUND_PAN_TARGET + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xa0 0xffe0 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xff00 0xffd8 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0x80 0xfff0 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0x1a0 0xffda + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xff80 0xffea + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xfe80 0xffe1 + delay 0x0 + call SubmissionHit + playsewithpan SE_W291, SOUND_PAN_TARGET + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0xff00 0xffd6 + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0x80 0xfff2 + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0x1a0 0xffda + launchtemplate gPinkHeartSpriteTemplate 0x83 0x2 0xff80 0xffea + delay 0x0 + playsewithpan SE_W053, SOUND_PAN_TARGET + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xa0 0xffe0 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xff00 0xffd8 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0x80 0xfff0 + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0x1a0 0xffda + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xff80 0xffea + launchtemplate gDizzyPunchDuckSpriteTemplate 0x83 0x4 0x10 0x8 0xfe80 0xffe1 + delay 0x0 + call SubmissionHit + waitforvisualfinish + delay 0xD + stopsound + clearmonbg 0x3 + blendoff + waitforvisualfinish end - -Move_MISTY_TERRAIN: - end - -Move_ELECTRIFY: - end - -Move_PLAY_ROUGH: - end - -Move_FAIRY_WIND: + + +Move_FAIRY_WIND:: + loadspritegfx ANIM_TAG_PINK_CLOUD + monbg SIDE_TARGET + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + waitforvisualfinish + playsewithpan SE_W016, SOUND_PAN_TARGET + launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0x14 0x1 + delay 0x5 + launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0x5 0x16 0xffee 0x1 + delay 0x5 + launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0xfff6 0x16 0xf 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x2 0x0 0x12 0x1 + delay 0x5 + launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0xffec 0x1 + delay 0x5 + launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0xc 0x1 + delay 0x5 + waitforvisualfinish + stopsound + playsewithpan SE_W016B, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff end + Move_MOONBLAST: loadspritegfx ANIM_TAG_SMALL_BUBBLES @@ -5791,78 +8671,857 @@ Move_BOOMBURST: waitforvisualfinish end -Move_FAIRY_LOCK: +Move_FAIRY_LOCK:: + loadspritegfx ANIM_TAG_CHAIN_LINK @Chain Colour + loadspritegfx ANIM_TAG_FAIRY_LOCK_CHAINS @Fairy Lock Chain + setalpha 8, 8 + monbg SIDE_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6B1F + waitforvisualfinish + loopsewithpan SE_W010, SOUND_PAN_TARGET, 0x6, 0x4 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x7 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x33 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x2 + waitforvisualfinish + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x32 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x6 + launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x35 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6B1F + waitforvisualfinish + clearmonbg SIDE_ATTACKER + blendoff end + -Move_KINGS_SHIELD: +Move_KINGS_SHIELD:: + loadspritegfx ANIM_TAG_PROTECT @protect + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_PROTECT, 0x0, 0xC, 0xC, 0x318C @Gray goto Move_PROTECT - -Move_PLAY_NICE: + + +Move_PLAY_NICE:: + loadspritegfx ANIM_TAG_RED_HEART + loopsewithpan SE_W201, SOUND_PAN_ATTACKER, 0xc, 0x3 + launchtask AnimTask_SwayMon 0x5 0x5 0x0 0xc 0x1000 0x4 0x0 + delay 0xF + launchtemplate gRedHeartProjectileSpriteTemplate 0x83 0x2 0x14 0xfff8 end -Move_CONFIDE: +Move_CONFIDE:: + loadspritegfx ANIM_TAG_CONFIDE @Confide Bubble + launchtask AnimTask_Splash 0x2 0x2 ANIM_ATTACKER 0x3 + launchtemplate gConfideBubbleTemplate 0xb 0x2 0x0 0x64 + playsewithpan SE_W118, SOUND_PAN_ATTACKER + waitforvisualfinish + end + + +Move_DIAMOND_STORM:: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ICE_CRYSTALS + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x1888 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ICE_CRYSTALS, 0, 0xD, 0xD, 0x7DDE @Pink + waitforvisualfinish + panse_1B SE_W059, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xfff6 0x0 0xfff6 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xfff1 0x0 0xfff1 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xfffb 0x0 0xfffb 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xfff6 0x0 0xfff6 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xffec 0x0 0xffec 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xfff1 0x0 0xfff1 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x50 0x0 0x0 0x1 + delay 0x3 + launchtemplate gDiamondStormSwirlingIceTemplate 0x28 0x6 0x0 0xffe7 0x0 0xffe7 0x48 0x1 + launchtemplate gDiamondStormBlizzardTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x50 0x0 0x0 0x1 + delay 0x3 + playsewithpan SE_W239, SOUND_PAN_TARGET + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x78 0x46 0x5 0x46 0x1e + delay 0x1 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x73 0x37 0x6 0x3c 0x19 + delay 0x1 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x73 0x3c 0x7 0x3c 0x1e + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x73 0x37 0xa 0x3c 0x1e + delay 0x3 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x64 0x32 0x4 0x32 0x1a + delay 0x1 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x69 0x19 0x8 0x3c 0x14 + delay 0x1 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x73 0x28 0xa 0x30 0x1e + delay 0x3 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x78 0x1e 0x6 0x2d 0x19 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x73 0x23 0xa 0x3c 0x1e + delay 0x3 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x69 0x14 0x8 0x28 0x0 + delay 0x3 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x14 0xff 0xf 0x20 0x0 + launchtemplate gDiamondStormDiamondsTemplate 0x82 0x5 0x6e 0xa 0x8 0x20 0x14 + waitforvisualfinish + @this is the buffet part + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x3 + playsewithpan SE_W196, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x3 0x0 0xc 0x1 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x3 0x3 0x0 0xc 0x1 + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 + playsewithpan SE_W196, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 + playsewithpan SE_W196, SOUND_PAN_TARGET + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x1888 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + end + + +Move_STEAM_ERUPTION:: + loadspritegfx ANIM_TAG_STEAM_ERUPTION @Steam Eruption Particle + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x043D + delay 0x20 + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + call SteamEruptionBreath + call SteamEruptionBreath + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x0 0x9 0x1f + call SteamEruptionBreath + delay 0x2 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x2 0x0 0x15 0x1 + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + call SteamEruptionBreath + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x9 0x0 0x1f + waitforvisualfinish + clearmonbg SIDE_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x043D + waitforvisualfinish + end +SteamEruptionBreath: + launchtemplate gSteamEruptionBreathTemplate 0x82 0x5 0x0 0x5 0x0 0x5 0x14 + delay 0x1 + return + + +Move_HYPERSPACE_HOLE:: + loadspritegfx ANIM_TAG_IMPACT @Hits + loadspritegfx ANIM_TAG_WHITE_SHADOW @Destiny Bond + loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @Black Colour + loadspritegfx ANIM_TAG_POISON_BUBBLE @Poison Colour + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x7FFF + waitforvisualfinish + playsewithpan SE_W185, SOUND_PAN_ATTACKER + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + waitsound + launchtask AnimTask_DestinyBondWhiteShadow 0x5 0x2 0x0 0x30 + delay 0x17 + launchtask AnimTask_IsTargetSameSide 0x2 0x0 + launchtask AnimTask_SnatchOpposingMonMove 0x2 0x0 + delay 0x19 + visible ANIM_ATTACKER + invisible ANIM_ATTACKER + delay 0x5 + launchtemplate gHyperspaceHoleImpactTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 + call HyperspaceHoleMovement + launchtemplate gHyperspaceHoleImpactTemplate 0x82, 0x3, 0xa 0x14 0x0 + call HyperspaceHoleMovement + launchtemplate gHyperspaceHoleImpactTemplate 0x82, 0x3, 0xfffb 0xa 0x0 + call HyperspaceHoleMovement + launchtemplate gHyperspaceHoleImpactTemplate 0x82, 0x3, 0x11 0xfff4 0x0 + call HyperspaceHoleMovement + waitforvisualfinish + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7FFF + waitforvisualfinish + end +HyperspaceHoleMovement: + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x3 0x0 0xf 0x1 + delay 0x4 + return + + +Move_WATER_SHURIKEN:: + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_YELLOW_STAR @swift + loadspritegfx ANIM_TAG_BLUE_RING_2 @rings + loadspritegfx ANIM_TAG_SMALL_BUBBLES @bubbles + loadspritegfx ANIM_TAG_IMPACT @hydro pump hit + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + createsoundtask SoundTask_LoopSEAdjustPanning, 0x7, 0x87, 0xffc0, SOUND_PAN_TARGET, 0x5, 0x5, 0x0, 0x5 + launchtemplate gWaterShurikenStarTemplate 0x82, 0x3, 0x0 0x0 0x27 + delay 0x8 + launchtemplate gWaterShurikenRingTemplate 0x82, 0x4, 0x0 0x0 0x28 0xf + delay 0x5 + launchtemplate gWaterShurikenRingTemplate 0x82, 0x4, 0x0 0x0 0x28 0xf + delay 0x5 + launchtemplate gWaterShurikenRingTemplate 0x82, 0x4, 0x0 0x0 0x28 0xf + delay 0xC + playsewithpan SE_W028, SOUND_PAN_TARGET + launchtemplate gWaterShurikenImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + waitforvisualfinish + clearmonbg SIDE_TARGET end -Move_DIAMOND_STORM: +Move_MYSTICAL_FIRE:: + call SetPsychicBackground + loadspritegfx ANIM_TAG_FIRE + setalpha 8, 8 + playse 0xb1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0xa 0x1 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x2 0x0 0x2 0x0 0x8 0x7fff + waitforvisualfinish + waitsound + blendoff + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0xffff 0x0 + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0x0 0x1 + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0xffff 0xffff + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0x2 0x1 + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0x1 0xffff + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0xffff 0x1 + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0x1 0xfffe + delay 0x1 + launchtemplate gLargeFlameScatterSpriteTemplate 0x82 0x6 0x0 0x0 0x1e 0x1e 0x3 0x1 + playse 0x8c + waitforvisualfinish + call UnsetPsychicBg end - -Move_STEAM_ERUPTION: + + +Move_SPIKY_SHIELD:: + loadspritegfx ANIM_TAG_PROTECT + loadspritegfx ANIM_TAG_GREEN_SPIKE + monbg SIDE_ATTACKER + monbgprio_28 ANIM_ATTACKER + waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 0x10 + launchtemplate gProtectSpriteTemplate 0x2 0x3 0x18 0x0 0x5a + delay 0xF + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x0 0xFFE0 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x16 0xFFEA 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x1E 0x0 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x14 0x14 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x0 0x1C 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0xFFED 0x13 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0xFFE5 0x0 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0xFFEE 0xFFEE 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x0 0xFFE7 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x11 0xFFEF 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x17 0x0 0x10 + delay 0x2 + launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x10 0x10 0x10 + waitforvisualfinish + clearmonbg SIDE_ATTACKER end - -Move_HYPERSPACE_HOLE: + + +Move_AROMATIC_MIST:: + loadspritegfx ANIM_TAG_PINK_PETAL + playsewithpan SE_W230, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6E7D + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x64 + delay 0x19 + setpan 0x0 + call SweetScentEffect + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x2 0x37 0x0 + setpan SOUND_PAN_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, (PAL_DEF | PAL_DEF_PARTNER), 1, 5, 5, 13, 0x56bf + call SweetScentEffect + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6E7D + waitforvisualfinish end - -Move_WATER_SHURIKEN: + + +Move_EERIE_IMPULSE:: + loadspritegfx ANIM_TAG_THIN_RING @hypervoice circle + loadspritegfx ANIM_TAG_SPARK @electric particles + loadspritegfx ANIM_TAG_SPARK_2 @electric particles + loadspritegfx ANIM_TAG_BLUE_STAR @heal particles + loadspritegfx ANIM_TAG_SPARK_H @lighter yellow particle + loadspritegfx ANIM_TAG_GOLD_RING @psybeam ring + monbg SIDE_TARGET + waitplaysewithpan SE_W085B, SOUND_PAN_TARGET 0x13 + delay 0x4 + launchtemplate gEerieImpulseRingTemplate 0x0 0x7 0x2d 0x0 0x0 0x0 0x0 0x0 0x1 + delay 0xB + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x20 0x1e 0x0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x20 0x1e 0x40 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x20 0x1e 0x80 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x20 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x30 0x1e 0x20 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x30 0x1e 0x60 0x28 0x1 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x30 0x1e 0xa0 0x28 0x0 + launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x30 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0x0 0xfffb 0x1 0x0 0x20 0x10 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1 + delay 0x7 + launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xfff1 0xa 0x1 0x0 0x20 0x10 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 + delay 0x7 + launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xfff1 0xfff1 0x1 0x0 0x20 0x10 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2 + delay 0x7 + launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xa 0xfffb 0x1 0x0 0x20 0x10 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 + waitforvisualfinish + clearmonbg SIDE_TARGET end - -Move_MYSTICAL_FIRE: + + +Move_VENOM_DRENCH:: + loadspritegfx ANIM_TAG_POISON_BUBBLE + monbg SIDE_TARGET + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfffb 0x1 0xfffb 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x5 0x0 0x6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x13 0x1 0xa 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe9 0x2 0xfff6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + call AcidDrench + call AcidDrench + waitforvisualfinish + clearmonbg SIDE_TARGET end - -Move_SPIKY_SHIELD: +AcidDrench: + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1c 0x1 0xa 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfff6 0x1 0xfffb 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xa 0x0 0x6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x18 0x1 0xa 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe0 0x2 0xfff6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1e 0x2 0xa 0x0 + playsewithpan SE_W145C, SOUND_PAN_TARGET + delay 0x2 + return + + +Move_POWDER:: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color + loadspritegfx ANIM_TAG_SPORE @powder + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W077, SOUND_PAN_TARGET, 0x12, 0xa + call POWDER_SPORE + call POWDER_SPORE + call POWDER_SPORE + waitforvisualfinish + clearmonbg SIDE_TARGET end - -Move_AROMATIC_MIST: +POWDER_SPORE: + launchtemplate gPowderBlackSporeTemplate 0x2 0x5 0x0 0xffec 0x55 0x50 0x0 + delay 0xc + launchtemplate gPowderBlackSporeTemplate 0x2 0x5 0x0 0xfff6 0xaa 0x50 0x0 + delay 0xc + launchtemplate gPowderBlackSporeTemplate 0x2 0x5 0x0 0xfff1 0x0 0x50 0x0 + delay 0xc + return + + +Move_GEOMANCY:: + loadspritegfx ANIM_TAG_ZYGARDE_HEXES @Hex + loadspritegfx ANIM_TAG_GUARD_RING @safeguard + loadspritegfx ANIM_TAG_PAW_PRINT @yellow color + loadspritegfx ANIM_TAG_WHIP_HIT @green color + loadspritegfx ANIM_TAG_SWEAT_BEAD @blue color + loadspritegfx ANIM_TAG_SMALL_EMBER @dragon claw buff / red color + monbg SIDE_ATTACKER + setalpha 8, 8 + choosetwoturnanim GeomancyChargeUp GeomancyUnleash +GeomancyChargeUp: + loadspritegfx ANIM_TAG_FOCUS_ENERGY @endure buff effect + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W322, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x0 0x2 0x5f 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x1F + call GeomancyRingBuff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x2C0 + call GeomancyRingBuff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x7C60 + call GeomancyRingBuff + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x5 0x0 0x7C60 + waitforvisualfinish + blendoff + clearmonbg SIDE_ATTACKER end - -Move_EERIE_IMPULSE: +GeomancyRingBuff: + launchtemplate gGeomancyRedCellVortexTemplate 0x2 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x0 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyGreenCellVortexTemplate 0x2 0x7 0x0 0x20 0x1e0 0x14 0x10 0xffd2 0x0 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyBlueCellVortexTemplate 0x2 0x7 0x0 0x21 0x240 0x14 0x8 0x2a 0x0 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x2 + launchtemplate gGeomancyRedCellVortexTemplate 0x2 0x7 0x0 0x1f 0x190 0x19 0xb 0xffd6 0x0 + delay 0x2 + launchtemplate gGeomancyGreenCellVortexTemplate 0x2 0x7 0x0 0x1c 0x200 0x19 0x10 0x2e 0x0 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyBlueCellVortexTemplate 0x2 0x7 0x0 0x21 0x1d0 0x1e 0xf 0xffce 0x0 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRedCellVortexTemplate 0x2 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x0 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x2 + launchtemplate gGeomancyGreenCellVortexTemplate 0x2 0x7 0x0 0x20 0x1e0 0x14 0x10 0xffd2 0x0 + delay 0x2 + launchtemplate gGeomancyBlueCellVortexTemplate 0x2 0x7 0x0 0x21 0x240 0x14 0x8 0x2a 0x0 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfff4 0x0 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRedCellVortexTemplate 0x2 0x7 0x0 0x1f 0x190 0x19 0xb 0xffd6 0x0 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyGreenCellVortexTemplate 0x2 0x7 0x0 0x1c 0x200 0x19 0x10 0x2e 0x0 + delay 0x2 + return +GeomancyUnleash: + loadspritegfx ANIM_TAG_FIRE_PLUME @dragon rage + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x24CF + playsewithpan SE_W208, SOUND_PAN_ATTACKER + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + delay 0x1 + launchtemplate gGeomancyRingTemplate 0x2 0x0 + waitforvisualfinish + playsewithpan SE_W082, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x10 0x4D01 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x0 0x2 0x25 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x1F + launchtemplate gGeomancyRedCellRaiseTemplate 0x2 0x5 0x14 0x20 0xffd0 0x32 0x1 + launchtemplate gGeomancyGreenCellRaiseTemplate 0x2 0x5 0x0 0x20 0xffda 0x19 0x1 + launchtemplate gGeomancyBlueCellRaiseTemplate 0x2 0x5 0x20 0x20 0xffe4 0x28 0x1 + launchtemplate gGeomancyRedCellRaiseTemplate 0x2 0x5 0xffec 0x20 0xffd0 0x32 0x1 + launchtemplate gGeomancyGreenCellRaiseTemplate 0x2 0x5 0x14 0x20 0xffe4 0x3c 0x1 + launchtemplate gGeomancyBlueCellRaiseTemplate 0x2 0x5 0x0 0x20 0xffe4 0x1e 0x1 + call GeomancyRageBuff + call GeomancyRageBuff + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x4D01 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x5 0x0 0x1F + waitforvisualfinish + blendoff + clearmonbg SIDE_ATTACKER end - -Move_VENOM_DRENCH: +GeomancyRageBuff: + launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0x5 0x0 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0xfff6 0xfff1 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0x82, 0x3, 0x0 0x0 0x19 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0xf 0x5 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0xffe7 0x0 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0x82, 0x3, 0x0 0x1e 0x1e + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0x82, 0x3, 0x0 0xffe5 0x19 + delay 0x1 + launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0x0 0x8 + delay 0x1 + return + + +Move_MAGNETIC_FLUX:: + loadspritegfx ANIM_TAG_THIN_RING @uproar + loadspritegfx ANIM_TAG_SPARK_2 @ElectricityEffect + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK), 2, 0, 9, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK_PARTNER), 2, 0, 9, 0x243B + loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 0x12, 0x3 + launchtask AnimTask_DefenseCurlDeformMon 0x5 0x0 + call MagneticFluxSparks1 + delay 0xA + call MagneticFluxSparks2 + delay 0xA + call MagneticFluxSparks1 + delay 0xA + launchtemplate gMagneticFluxUproarTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + call MagneticFluxSparks2 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK), 2, 9, 0, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK_PARTNER), 2, 9, 0, 0x243B + waitforvisualfinish end - -Move_POWDER: +MagneticFluxSparks1: + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + return +MagneticFluxSparks2: + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + return + + +Move_HAPPY_HOUR:: + loadspritegfx ANIM_TAG_COIN + monbg ANIM_ATTACKER + loopsewithpan SE_W006, SOUND_PAN_TARGET, 0x8, 10 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xfffb 0x0 0xfffb 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0x5 0x0 0x6 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0x13 0x0 0xa 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xffe9 0x0 0xfff6 0x1 + delay 0x2 + call CoinShower + call CoinShower + waitforvisualfinish + clearmonbg ANIM_ATTACKER end - -Move_GEOMANCY: +CoinShower: + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0x1c 0x0 0xa 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xfff6 0x0 0xfffb 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xa 0x0 0x6 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0x18 0x0 0xa 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xffe0 0x0 0xfff6 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x1 + delay 0x2 + launchtemplate gHappyHourCoinShowerTemplate 0x82, 0x4, 0x1e 0x0 0xa 0x1 + delay 0x2 + return + + +Move_ELECTRIC_TERRAIN:: + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0x0 + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0x2a + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0x54 + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0x7e + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0xa8 + launchtemplate gElectricTerrainOrbsTemplate 0x2 0x2 0x1a 0xd2 + delay 0x34 + setarg 0x7 0xffff + playsewithpan SE_W213, SOUND_PAN_ATTACKER + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfff9 0xfff9 0xb 0x0 0x0 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0x0 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0x20 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0x40 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0x60 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0x80 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0xa0 + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 SOUND_PAN_ATTACKER + launchtemplate gElectricTerrainFlyingBallTemplate 0x82 0x1 0xe0 + waitforvisualfinish + restorebg + waitbgfadein + playsewithpan SE_W085B, SOUND_PAN_TARGET + delay 0x40 + playsewithpan SE_W085B, SOUND_PAN_TARGET + delay 0x40 end - -Move_HAPPY_HOUR: + + +Move_DAZZLING_GLEAM:: + loadspritegfx ANIM_TAG_SPARKLE_2 + loadspritegfx ANIM_TAG_BLUE_STAR + launchtemplate gSimplePaletteBlendSpriteTemplate 0x2 0x5 0x1 0x2 0x0 0xd 0x7fff + playsewithpan SE_W239, SOUND_PAN_ATTACKER + @call 0x081D56B3 -> middle of GrantingStarsEffect + createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 + delay 8 + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x2 0x0 0x3 0x0 0x10 0x7fff + delay 0x4 + playsewithpan SE_W202, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtemplate gSimplePaletteBlendSpriteTemplate 0x2 0x5 0x1 0x0 0xd 0x0 0x7fff + waitforvisualfinish + clearmonbg 0x0 + blendoff end - -Move_ELECTRIC_TERRAIN: + + +Move_CELEBRATE:: + loadspritegfx ANIM_TAG_ITEM_BAG + launchtemplate gCelebrateBagTemplate 0x2 0x1 0x0 + playsewithpan SE_W039, SOUND_PAN_ATTACKER + delay 0x12 + playsewithpan SE_W213, SOUND_PAN_ATTACKER + delay 0x47 + loopsewithpan SE_W039, SOUND_PAN_ATTACKER 0x16 0x3 end - -Move_DAZZLING_GLEAM: + + +Move_HOLD_HANDS:: + loadspritegfx ANIM_TAG_TAG_HAND @hand + loadspritegfx ANIM_TAG_MAGENTA_HEART @charm + loadspritegfx ANIM_TAG_VERTICAL_HEX @red + playsewithpan SE_W080, SOUND_PAN_ATTACKER + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0xc 0x6 0x6 0x3 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + delay 0x8 + launchtemplate gHoldHandsHeartTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + waitforvisualfinish + launchtask AnimTask_HelpingHandAttackerMovement 0x5 0x0 + launchtemplate gHelpingHandClapSpriteTemplate 0x28 0x1 0x0 + launchtemplate gHelpingHandClapSpriteTemplate 0x28 0x1 0x1 + delay 0x13 + playsewithpan SE_W227, 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x2 0x2 0x0 0x5 0x1 + delay 0xe + playsewithpan SE_W227, 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x2 0x2 0x0 0x5 0x1 + delay 0x14 + playsewithpan SE_W227, 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x2 0x3 0x0 0xa 0x1 + launchtask AnimTask_BlendMonInAndOut 0x2 0x5 0x2 0x3ff 0xc 0x1 0x1 end - -Move_CELEBRATE: + + +Move_BABY_DOLL_EYES:: + loadspritegfx ANIM_TAG_LEER + loadspritegfx ANIM_TAG_PINK_CLOUD + loadspritegfx ANIM_TAG_OPENING_EYE @eye + setalpha 8, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0xA 0x7FFF + waitforvisualfinish + launchtemplate gOpeningEyeSpriteTemplate 0x5 0x4 0x0 0x0 0x1 0x0 + delay 0x20 + playsewithpan SE_W043, SOUND_PAN_ATTACKER + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffb 0xfffb 0xa 0x0 0x1 + waitforvisualfinish + delay 0xa + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x9 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x9 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0xA 0x0 0x7FFF + waitforvisualfinish + blendoff end - -Move_HOLD_HANDS: + + +Move_NUZZLE:: + loadspritegfx ANIM_TAG_MAGENTA_HEART + loadspritegfx ANIM_TAG_ITEM_BAG + loadspritegfx ANIM_TAG_SPARK_2 + loadspritegfx ANIM_TAG_IMPACT + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + launchtemplate gMagentaHeartSpriteTemplate 0x3 0x2 0x0 0x14 + playsewithpan SE_W204, SOUND_PAN_ATTACKER + delay 0xf + launchtemplate gMagentaHeartSpriteTemplate 0x3 0x2 0xffec 0x14 + playsewithpan SE_W204, SOUND_PAN_ATTACKER + delay 0xf + launchtemplate gMagentaHeartSpriteTemplate 0x3 0x2 0x14 0x14 + playsewithpan SE_W204, SOUND_PAN_ATTACKER + waitforvisualfinish + playsewithpan SE_W085B, SOUND_PAN_TARGET + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + call ElectricityEffectNoSound + waitforvisualfinish end - -Move_BABY_DOLL_EYES: + + +Move_HOLD_BACK:: + loadspritegfx ANIM_TAG_PAW_PRINT @ yellow/brown + loadspritegfx ANIM_TAG_IMPACT @ hit + loadspritegfx ANIM_TAG_PURPLE_SWIPE @ swipe + loadspritegfx ANIM_TAG_THIN_RING @ ring + loadspritegfx ANIM_TAG_DUCK @ dizzy punch + loadspritegfx ANIM_TAG_PAIN_SPLIT @ pain split + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W207, SOUND_PAN_TARGET + launchtemplate gHoldBackSwipeTemplate 0x82, 0x3, 0x0 0x0 0x1 + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0xa 0x1 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + launchtemplate gHoldBackRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0xa0 0xffe0 + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0xff00 0xffd8 + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0x80 0xfff0 + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0x1a0 0xffda + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0xff80 0xffea + launchtemplate gHoldBackStarsTemplate 0x83 0x4 0xfff0 0xfff8 0xfe80 0xffe1 + playsewithpan SE_W025B, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff end - -Move_NUZZLE: + + +Move_INFESTATION:: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color + loadspritegfx ANIM_TAG_SMALL_BUBBLES @circle particles + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_DEF, 0x2, 0x0, 0x9, 0x7320 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x4f 0x1 + loopsewithpan SE_W268, SOUND_PAN_ATTACKER, 0x0, 0x4F + call InfestationVortex + call InfestationVortex + call InfestationVortex + call InfestationVortex + call InfestationVortex + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x9 0x0 0x7320 + waitforvisualfinish + clearmonbg SIDE_TARGET end - -Move_HOLD_BACK: - end - -Move_INFESTATION: - end - +InfestationVortex: + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x1 + delay 0x1 + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x20 0x1e0 0x14 0x10 0xffd2 0x1 + delay 0x1 + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x21 0x240 0x14 0x8 0x2a 0x1 + delay 0x1 + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x1f 0x190 0x19 0xb 0xffd6 0x1 + delay 0x1 + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x1c 0x200 0x19 0x10 0x2e 0x1 + delay 0x1 + launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x21 0x1d0 0x1e 0xf 0xffce 0x1 + delay 0x1 + return + + Move_POWER_UP_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET @@ -5880,33 +9539,4420 @@ Move_POWER_UP_PUNCH: blendoff end -Move_OBLIVION_WING: +Move_OBLIVION_WING:: + loadspritegfx ANIM_TAG_HYDRO_PUMP + loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_BLUE_STAR + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HYDRO_PUMP, 0x0, 0xC, 0xC, 0x289F @Pinkish Red + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ROUND_SHADOW, 0x0, 0xD, 0xD, 0x289F @Pinkish Red + playsewithpan SE_W019, SOUND_PAN_ATTACKER + launchtemplate gFlyBallUpSpriteTemplate 0x2 0x4 0x0 0x0 0xd 0x150 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 @Black + waitforvisualfinish + createsoundtask SoundTask_LoopSEAdjustPanning, 0x7, 0xf0, 0xffc0, SOUND_PAN_TARGET, 0x1, 0xf, 0x0, 0x5 + call OblivionWingBeam + call OblivionWingBeam + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 40 0x1 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x4 0x0 0xc 0x289F @Pinkish Red + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + call OblivionWingBeam + delay 15 + visible ANIM_ATTACKER + call HealingEffect + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x0 @From black + waitforvisualfinish end - -Move_THOUSAND_ARROWS: +OblivionWingBeam: + launchtemplate gOblivionWingBeamTemplate 0x82, 0x6, 0, -90, 0, 20, 0x15 0x0 + delay 0x2 + launchtemplate gOblivionWingBeamTemplate 0x82, 0x6, 0, -90, 0, 20, 0x15 0x0 + delay 0x2 + return + + +Move_THOUSAND_ARROWS:: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_ELECTRICITY @charge animation + loadspritegfx ANIM_TAG_LEAF @green color + loadspritegfx ANIM_TAG_RAZOR_LEAF @green color 2 + loadspritegfx ANIM_TAG_ZYGARDE_HEXES @hexagon + loadspritegfx ANIM_TAG_VERTICAL_HEX @arrow + loadspritegfx ANIM_TAG_NEEDLE @sting + monbg ANIM_ATTACKER + setblends 0x80e + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + launchtemplate gThousandArrowsGreenChargeTemplate 0x2 0x1 0x0 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x18 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x18 + call ThousandArrowsHexes + call ThousandArrowsHexes + call ThousandArrowsHexes + call ThousandArrowsHexes + call ThousandArrowsHexes + call ThousandArrowsHexes + call ThousandArrowsHexes + launchtemplate gThousandArrowsGreenDischargeTemplate 0x2 0x3 0x0 0x10 0x10 + delay 0x2 + launchtemplate gThousandArrowsGreenDischargeTemplate 0x2 0x3 0x0 0xfff0 0xfff0 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x30 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x5 0xa 0x32 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0xa 0x32 + call ThousandArrowsDown + call ThousandArrowsDown + call ThousandArrowsDown + call ThousandArrowsDown + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0xffff + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff end - -Move_THOUSAND_WAVES: +ThousandArrowsHexes: + launchtemplate gThousandArrowsGreenHexTemplate 0x82, 0x3, 0x0 0xfffc 0xfff0 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenHexTemplate 0x82, 0x3, 0x0 0x100D 0xfff0 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenHexTemplate 0x82, 0x3, 0x0 0x4 0xfff4 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenHexTemplate 0x82, 0x3, 0x0 0xfff0 0xfff0 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + return +ThousandArrowsDown: + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0xdc 0x3c + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x3c 0x64 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x8c 0x37 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0xb4 0x32 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x14 0x5a + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x5a 0x5a + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0xa0 0x3c + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x1e 0x5a + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0x78 0x3c + playsewithpan SE_W091, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gThousandArrowsGreenArrowTemplate 0x82, 0x3, 0x1 0xc8 0x28 + playsewithpan SE_W091, SOUND_PAN_ATTACKER + return + + +Move_THOUSAND_WAVES:: + loadspritegfx ANIM_TAG_ZYGARDE_HEXES @Hex + loadspritegfx ANIM_TAG_FLYING_DIRT @heat wave animation + loadspritegfx ANIM_TAG_LEAF @green color + loadspritegfx ANIM_TAG_IMPACT @pound hits + monbg SIDE_ATTACKER + setalpha 8, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W025, SOUND_PAN_ATTACKER + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0x0 + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0x2b + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0x55 + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0x80 + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0xaa + launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0xd5 + waitforvisualfinish + clearmonbg SIDE_ATTACKER @I placed this one here, because it ruins the teleport animation + loopsewithpan SE_W004, SOUND_PAN_TARGET, 0x3, 0x15 + call ThousandWavesRecover + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0xfff6 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffdd 0x8 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffdd 0xfff6 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0x8 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xf 0xffd8 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xfff6 0xffe0 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x5 0x27 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x19 0xffec 0xd + delay 0x3 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffd8 0xffec 0xd + delay 0x3 + launchtask AnimTask_AttackerStretchAndDisappear 0x2 0x0 + playsewithpan SE_W100, SOUND_PAN_ATTACKER + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x5 0xffd8 0xd + waitforvisualfinish + panse_1B SE_W063B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + delay 0x4 + launchtask AnimTask_MoveHeatWaveTargets 0x5 0x0 + delay 0xc + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0xa 0x900 0x60 0x1 + delay 0x2 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x5a 0x800 0x60 0x1 + delay 0x2 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x32 0xa00 0x60 0x1 + delay 0x2 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x14 0x900 0x60 0x1 + delay 0x2 + call ThousandWavesRotatingImpact + call ThousandWavesRotatingImpact + waitforvisualfinish + launchtask AnimTask_ExtremeSpeedMonReappear 0x2 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0xffff + waitforvisualfinish + blendoff + clearmonbg SIDE_TARGET end - -Move_LANDS_WRATH: +ThousandWavesRecover: + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0x28 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffd8 0xffd8 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x0 0x28 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x0 0xffd8 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0xffec 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0x14 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffd8 0xffec 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffd8 0x14 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffec 0x1e 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x14 0xffe2 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffec 0xffe2 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x14 0x1e 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0xffd8 0x0 0x10 + delay 0x2 + launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0x0 0x10 + delay 0x2 + return +ThousandWavesRotatingImpact: + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x1c 0x180 0x32 0x8 0x32 0x1 @1 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x46 0x7c0 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0x0 0x0 0x3 + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x20 0xf0 0x28 0xb 0xffd2 0x1 @2 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x0 0xb00 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0x5 0xfff4 0x3 + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x21 0x1a0 0x28 0x4 0x2a 0x1 @3 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x3c 0xa00 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0xfffa 0x9 0x3 + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x1f 0x120 0x2d 0x6 0xffd6 0x1 @4 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0xa 0x900 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0xfffa 0xfff4 0x3 + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x1c 0x1c0 0x2d 0xb 0x2e 0x1 @5 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x5a 0x800 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0x5 0x9 0x3 + launchtemplate gThousandWavesRotatingImpactTemplate 0x82 0x7 0x23 0x21 0x1d0 0x32 0xa 0xffce 0x1 @6 + launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0x32 0xa00 0x60 0x1 + delay 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gThousandWavesPoundImpactTemplate 0x82, 0x4, 0x1 0xfffa 0x0 0x3 + return + + +Move_LANDS_WRATH:: + loadspritegfx ANIM_TAG_WATER_ORB @whirl motion + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + monbg ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 + waitforvisualfinish + call LandsWrathVortex + call LandsWrathVortex + call LandsWrathVortex + call LandsWrathVortex + waitforvisualfinish + fadetobg BG_FISSURE + waitbgfadeout + playsewithpan SE_W089, 0x0 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x5 0xa 0x32 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0xa 0x32 + launchtask AnimTask_PositionFissureBgOnBattler 0x5 0x3 0x1 0x5 0xffff + waitbgfadein + waitforvisualfinish + call UnsetPsychicBg + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + clearmonbg ANIM_ATTACKER end - -Move_LIGHT_OF_RUIN: +LandsWrathVortex: + playsewithpan SE_W221B SOUND_PAN_TARGET + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x1c 0x180 0x32 0x8 0x32 0x0 + delay 0x2 + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x20 0xf0 0x28 0xb 0xffd2 0x0 + delay 0x2 + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x21 0x1a0 0x28 0x4 0x2a 0x0 + delay 0x2 + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x1f 0x120 0x2d 0x6 0xffd6 0x0 + delay 0x2 + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x1c 0x1c0 0x2d 0xb 0x2e 0x0 + delay 0x2 + launchtemplate gLandsWrathVortexTemplate 0x82 0x7 0x0 0x21 0x1d0 0x32 0xa 0xffce 0x0 + delay 0x2 + return + + +Move_LIGHT_OF_RUIN:: + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge + loadspritegfx ANIM_TAG_ELECTRIC_ORBS @launchtask particles + loadspritegfx ANIM_TAG_ORBS @beam particles + loadspritegfx ANIM_TAG_ELECTRICITY @discharge + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_EXPLOSION @explosion + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRIC_ORBS, 0, 0xC, 0xC, 0x6DDE @Pink + waitforvisualfinish + launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x14 0x0 0x2 + panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x6B1F + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 0x32 0x1 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, 0x1f, 0x10, 0, 0 + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x32 0x1 + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + call LightOfRuinBeam + delay 0x20 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gLightOfRuinPinkDischargeTemplate 0x2 0x3 0x1 0x10 0x10 + delay 0x2 + launchtemplate gLightOfRuinPinkDischargeTemplate 0x2 0x3 0x1 0xfff0 0xfff0 + delay 0x5 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x5 0xb 0x1 + launchtemplate gLightOfRuinPinkExplosionTemplate 0x3 0x4 0x0 0x0 0x1 0x1 + delay 0x10 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7FFF + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ALL_BANKS 0x1 0x0 0x0 0x0 + waitforvisualfinish end - -Move_ORIGIN_PULSE: - end - -Move_PRECIPICE_BLADES: - end - -Move_DRAGON_ASCENT: - end - -Move_HYPERSPACE_FURY: +LightOfRuinBeam: + launchtemplate gLightOfRuinPinkOrbsTemplate 0x82 0x0 + launchtemplate gLightOfRuinPinkOrbsTemplate 0x82 0x0 + delay 0x1 + return + + +Move_ORIGIN_PULSE:: + loadspritegfx ANIM_TAG_THIN_RING @uproar + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_GREEN_SPIKE @inward + loadspritegfx ANIM_TAG_IMPACT @hits + setalpha 8, 8 + fadetobg BG_WATER + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x400 0x0 0x1 0xffff + waitbgfadein + launchtemplate gOriginPulseRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + playsewithpan SE_W025, SOUND_PAN_ATTACKER + delay 0x10 + launchtemplate gOriginPulseRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0x10 + launchtemplate gOriginPulseRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + playsewithpan SE_OP_BASYU, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0x0 + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0x2b + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0x55 + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0x80 + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0xaa + launchtemplate gOriginPulseOrbTemplate 0x2 0x1 0xd5 + delay 0x35 + launchtemplate gOriginPulseRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + delay 0x10 + launchtemplate gOriginPulseRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + waitforvisualfinish + delay 0x2F + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x0 0xFF90 0x10 @up + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x5F 0xFF9D 0x10 @upper right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x73 0x0 0x10 @right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x4F 0x37 0x10 @lower right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x0 0x53 0x10 @down + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFB0 0x43 0x10 @lower left + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFF60 0x0 0x10 @left + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFAA 0xFF94 0x10 @upper left + delay 0x5 + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x2D 0xFF9D 0x10 @between up and upper right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xDF 0xFF9D 0x10 @between right and upper right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x9F 0x37 0x10 @between right and lower right + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0x1F 0x37 0x10 @between lower right and down + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFE0 0x43 0x10 @between lower left and down + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFF60 0x43 0x10 @between left and lower left + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFF2A 0xFFAA 0x10 @between left and upper left + launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFDA 0xFF94 0x10 @between up and upper left + waitforvisualfinish + monbg SIDE_TARGET + launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffb0 0xfff0 0x1 0x1 + stopsound + playsewithpan SE_W056, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gOriginPulseBlueImpactTemplate 0x83 0x2 0x1 0x1 + delay 0x5 + launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + delay 0x5 + launchtemplate gOriginPulseBlueImpactTemplate 0x83 0x2 0x1 0x1 + delay 0x5 + launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffc0 0x14 0x1 0x1 + delay 0x5 + launchtemplate gOriginPulseBlueImpactTemplate 0x83 0x2 0x1 0x1 + delay 0x5 + launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffe0 0x5 0x1 0x1 + waitsound + call UnsetPsychicBg + clearmonbg SIDE_TARGET + blendoff end + +Move_PRECIPICE_BLADES:: + loadspritegfx ANIM_TAG_LARGE_SPIKE + loadspritegfx ANIM_TAG_FIRE_PLUME + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_LARGE_SPIKE, 0, 10, 10, 0x159F @Blood orange + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + fadetobg 0x15 + waitbgfadeout + launchtask AnimTask_PositionFissureBgOnBattler 0x5 0x3 0x1 0x5 0xffff + launchtask AnimTask_HorizontalShake 0x5 0x3 0x5 0xa 0x5 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0xa 0x5 + playsewithpan SE_W089, 0x0 + launchtask AnimTask_IsTargetPlayerSide 0x2 0x0 + jumpargeq 0x7, ANIM_TARGET, PrecipiceBladesOpponent +PrecipiceBladesPlayer: + launchtemplate gPrecipiceBladesSpikeTemplate 3, 0x5, ANIM_ATTACKER, -45, 5, 145 0x0 + delay 10 + launchtemplate gPrecipiceBladesSpikeTemplate 3, 0x5, ANIM_ATTACKER, 10, 7, 135 0x0 + delay 10 + launchtemplate gPrecipiceBladesSpikeTemplate 4, 0x5, ANIM_ATTACKER, -30, 15, 125 0x0 + delay 5 + launchtemplate gPrecipiceBladesSpikeTemplate 5, 0x5, ANIM_ATTACKER, -10, 17, 120 0x0 +PrecipiceBladesContinue: + delay 0x10 + launchtemplate gPrecipiceBladesPlumeTemplate 0x82, 0x3, -15, 18, ANIM_TARGET + launchtemplate gPrecipiceBladesPlumeTemplate 0x82, 0x3, -15, 18, ANIM_DEF_PARTNER + delay 0x20 + launchtemplate gPrecipiceBladesPlumeTemplate 0x82, 0x3, 15, 18, ANIM_TARGET + launchtemplate gPrecipiceBladesPlumeTemplate 0x82, 0x3, 15, 18, ANIM_DEF_PARTNER + delay 0x20 + stopsound + playsewithpan SE_W070, SOUND_PAN_TARGET + launchtemplate gPrecipiceBladesLargeSpikeTemplate 0x82, 0x5, ANIM_TARGET, 0, -25, 40, 0x0 + launchtemplate gPrecipiceBladesLargeSpikeTemplate 0x82, 0x5, ANIM_DEF_PARTNER, 0, -25, 40, 0x0 + delay 0x6 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x82, 0x5, ANIM_TARGET, -20 0 0x6 0x1 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x82, 0x5, ANIM_DEF_PARTNER, -20 0 0x6 0x1 + delay 0x22 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x82, 0x3 ANIM_TARGET 0x0 0x6 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x82, 0x3 ANIM_DEF_PARTNER 0x0 0x6 + waitforvisualfinish + call UnsetPsychicBg + clearmonbg SIDE_TARGET + blendoff + end +PrecipiceBladesOpponent: + launchtemplate gPrecipiceBladesSpikeTemplate 0x43, 0x5, ANIM_ATTACKER, 35, -5, 145 0x0 + delay 10 + launchtemplate gPrecipiceBladesSpikeTemplate 0x43, 0x5, ANIM_ATTACKER, -20, -7, 135 0x0 + delay 10 + launchtemplate gPrecipiceBladesSpikeTemplate 0x44, 0x5, ANIM_ATTACKER, 20, -15, 125 0x0 + delay 5 + launchtemplate gPrecipiceBladesSpikeTemplate 0x45, 0x5, ANIM_ATTACKER, 0, -17, 120 0x0 + goto PrecipiceBladesContinue + + +Move_DRAGON_ASCENT:: + loadspritegfx ANIM_TAG_DRAGON_ASCENT + loadspritegfx ANIM_TAG_IMPACT + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 11, 11, RGB(16, 31, 16) + fadetobg BG_COSMIC + waitbgfadeout + launchtask AnimTask_StartSlidingBg, 0x2 0x4, 0, 128, 0, -1 + waitbgfadein + playsewithpan SE_W019, SOUND_PAN_ATTACKER + invisible ANIM_ATTACKER + launchtemplate gDragonAscentFlyUpTemplate 0x2 0x7 0x0 0x0 0x400 0x24 0x15 0x1 ANIM_ATTACKER + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 4, 0, 14, RGB(21, 31, 27) + playsewithpan SE_W025, SOUND_PAN_ATTACKER + waitforvisualfinish + playsewithpan SE_W197, SOUND_PAN_ATTACKER + launchtask AnimTask_StartSlidingBg, 0x5 0x4, -7304, -784, 1, -1 + delay 2 + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 0, 14, 0, RGB(21, 31, 27) + waitforvisualfinish + delay 1 + monbg SIDE_TARGET + setalpha 12, 8 + playsewithpan SE_W104, SOUND_PAN_ATTACKER + launchtemplate gDragonAscentDrakeTemplate, 2, 0x1 5 + delay 1 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gBasicHitSplatSpriteTemplate, 0x84, 0x4, -10, 0, 1, 0 + launchtemplate gSlideMonToOffsetSpriteTemplate, 2, 0x5, 0x1, -32, 0, 0, 3 + launchtask AnimTask_ShakeMonInPlace, 0x2 0x5, ANIM_TARGET, 6, 0, 12, 1 + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 2, 16, 0, RGB(26, 31, 0) + waitforvisualfinish + delay 3 + launchtemplate gSlideMonToOriginalPosSpriteTemplate, 2, 0x3, 1, 0, 7 + waitforvisualfinish + blendoff + clearmonbg SIDE_TARGET + call UnsetPsychicBg + end + + +Move_HYPERSPACE_FURY:: + loadspritegfx ANIM_TAG_HOOPA_HAND @Hoopa Hand + loadspritegfx ANIM_TAG_HOOPA_RING @Hoopa Ring + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_POISON_BUBBLE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xA 0x0 + waitforvisualfinish + playsewithpan SE_W171, SOUND_PAN_ATTACKER + launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0x0 + delay 0x5 + launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0x4 + delay 0x5 + launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0x8 + delay 0x5 + launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0xc + delay 0x5 + launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0x10 + delay 0x15 + invisible ANIM_ATTACKER + waitforvisualfinish + fadetobg BG_HYPERSPACE_FURY + waitbgfadeout + launchtask AnimTask_SetPsychicBackground 0x5 0x0 + waitbgfadein + loopsewithpan SE_W003, SOUND_PAN_TARGET, 0x2, 0x10 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x20 0x1 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x0 0xffe0 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x16 0xffea 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x1e 0x0 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtask AnimTask_IsTargetSameSide 0x2 0x0 + launchtask AnimTask_SnatchOpposingMonMove 0x2 0x0 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x14 0x14 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x0 0x1c 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0xffed 0x13 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0xffe5 0x0 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0xffee 0xffee 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x0 0xffe7 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x11 0xffef 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x17 0x0 0x10 + call HyperspaceFuryRandomImpact + delay 0x2 + launchtemplate gHyperspaceFuryHandTemplate 0x82 0x5 0x1 0x0 0x10 0x10 0x10 + call HyperspaceFuryRandomImpact + delay 0x7 + launchtask SoundTask_PlayDoubleCry 0x2 0x2 ANIM_ATTACKER 0xff + visible ANIM_ATTACKER + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x0 0x3 0x20 0x1 + playsewithpan SE_W007, SOUND_PAN_TARGET + invisible ANIM_ATTACKER + call UnsetPsychicBg + waitforvisualfinish + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + delay 0x1 + invisible ANIM_ATTACKER + delay 0x1 + visible ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + end +HyperspaceFuryRandomImpact: + launchtemplate gHyperspaceFuryImpactTemplate 0x83 0x2 0x1 0x1 + return + + +@@@@@@@@@@@@@@@@@@@@@@@ GEN 7 @@@@@@@@@@@@@@@@@@@@@@@ +Move_SHORE_UP:: + loadspritegfx ANIM_TAG_FLYING_DIRT @sandstorm + loadspritegfx ANIM_TAG_BLUE_STAR @heal2 + playsewithpan SE_W201, 0x0 + launchtask AnimTask_LoadSandstormBackground 0x5 0x1 0x0 + delay 0x10 + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0xa 0x900 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x5a 0x800 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x32 0xa00 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x14 0x900 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x46 0x7c0 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x0 0xb00 0x60 0x0 + delay 0xa + launchtemplate gFlyingSandCrescentSpriteTemplate 0x28 0x4 0x3c 0xa00 0x60 0x0 + call HealingEffect + waitforvisualfinish + end + + +Move_FIRST_IMPRESSION:: + loadspritegfx ANIM_TAG_SWEAT_BEAD @astonish + loadspritegfx ANIM_TAG_IMPACT @pound hit + loadspritegfx ANIM_TAG_RAZOR_LEAF @green + launchtemplate gSprayWaterDropletSpriteTemplate 0x85 0x2 0x0 0x1 + playsewithpan SE_W166, SOUND_PAN_TARGET + launchtemplate gSprayWaterDropletSpriteTemplate 0x85 0x2 0x1 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + launchtask AnimTask_StretchTargetUp 0x3 0x0 + waitforvisualfinish + delay 0x19 + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x6 + waitforvisualfinish + monbg ANIM_TARGET @This is placed here on purpose (to not ruin astonishs animation) + delay 0x1 + launchtemplate gFirstImpressionPoundTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 + loopsewithpan SE_W025B, SOUND_PAN_TARGET 0xA 0x2 + delay 0x1 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET 0xffe4 0x0 0x0 0x3 + waitforvisualfinish + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x4 0x0 0xc 0x1 + waitforvisualfinish + delay 0xa + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x6 + delay 0x5 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x6 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_BANEFUL_BUNKER:: + loadspritegfx ANIM_TAG_PROTECT @protect + loadspritegfx ANIM_TAG_POISON_BUBBLE @poison + monbg SIDE_ATTACKER + monbgprio_28 ANIM_ATTACKER + waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER 0x10 + launchtemplate gProtectSpriteTemplate 0x2 0x3 0x18 0x0 0x5a + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + waitforvisualfinish + clearmonbg SIDE_ATTACKER + end + + +Move_SPIRIT_SHACKLE:: + loadspritegfx ANIM_TAG_SPIRIT_ARROW @Arrow + loadspritegfx ANIM_TAG_CHAIN_LINK @Chain + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + waitforvisualfinish + playsewithpan SE_W013B, SOUND_PAN_ATTACKER + launchtemplate gSpiritShackleArrowTemplate 0x82 0x5 0x10 0x0 0x0 0x0 0xf + delay 0x8 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0xa 0x1 + waitforvisualfinish + loopsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER, 0x1c, 0x2 + launchtemplate gSpiritShackleChainTemplate 0x82 0x2 0xfff0 0xfff0 + delay 0x4 + launchtemplate gSpiritShackleChainTemplate 0x82 0x2 0xfff0 0x0 + delay 0x4 + launchtemplate gSpiritShackleChainTemplate 0x82 0x2 0xfff0 0x10 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + end + + +Move_DARKEST_LARIAT:: + fadetobg BG_DARK + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x0 0x0 0x0 0xffff + waitbgfadein + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_POISON_BUBBLE @purple color + monbg SIDE_TARGET + setalpha 12, 8 + playsewithpan SE_W104, SOUND_PAN_ATTACKER + waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0xa + waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 0x14 + waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0x1e + waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 0x28 + waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0x32 + waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 0x3c + waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0x46 + waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 0x50 + waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0x5a + launchtask AnimTask_TranslateMonElliptical 0x2 0x5 0x0 0xffee 0x6 0x6 0x4 + launchtask AnimTask_TranslateMonElliptical 0x2 0x5 0x1 0x12 0x6 0x6 0x4 + call DarkestLariatImpact + call DarkestLariatImpact + call DarkestLariatImpact + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + call UnsetPsychicBg + end +DarkestLariatImpact: + launchtemplate gDarkestLariatImpactTemplate 0x3 0x4 0x0 0xfff4 0x1 0x1 + delay 0x8 + launchtemplate gDarkestLariatImpactTemplate 0x3 0x4 0xfff4 0x8 0x1 0x1 + delay 0x8 + launchtemplate gDarkestLariatImpactTemplate 0x3 0x4 0xc 0x0 0x1 0x1 + delay 0x8 + return + + +Move_SPARKLING_ARIA:: + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_BUBBLE @circles + loadspritegfx ANIM_TAG_HYDRO_PUMP @hydro pump + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 + waitforvisualfinish + launchtemplate gSparklingAriaBlueChargeTemplate 0x2 0x1 0x0 + call SparklingAriaCharge + call SparklingAriaCharge + call SparklingAriaCharge + waitforvisualfinish + delay 0x1E + playsewithpan SE_W056, SOUND_PAN_ATTACKER + call SparklingAriaRain + call SparklingAriaRain + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + end +SparklingAriaRain: + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0xdc 0x3c + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaBubbleRainTemplate 0x82, 0x3, 0x1 0x3c 0x64 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0x8c 0x37 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0xb4 0x32 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0x14 0x5a + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaBubbleRainTemplate 0x82, 0x3, 0x1 0x5a 0x5a + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0xa0 0x3c + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0x1e 0x5a + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaRainTemplate 0x82, 0x3, 0x1 0x78 0x3c + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + launchtemplate gSparklingAriaBubbleRainTemplate 0x82, 0x3, 0x1 0xc8 0x28 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x6 0x1 + delay 0x2 + return +SparklingAriaCharge: + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_ATTACKER + launchtemplate gSparklingAriaBubblesTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + delay 0x4 + return + + +Move_ICE_HAMMER:: + loadspritegfx ANIM_TAG_HORSESHOE_SIDE_FIST @punch + loadspritegfx ANIM_TAG_ICE_CRYSTALS @ice + loadspritegfx ANIM_TAG_ECLIPSING_ORB @gray color + loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W104, SOUND_PAN_TARGET + launchtemplate gIceHammerPunchStompTemplate 0x83, 0x3 0x0 0xffe0 0xf + delay 0x13 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtask AnimTask_SquishTarget 0x2 0x0 + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xfff4 0x68 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xfff4 0x48 0x1 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xfffa 0x38 0x1 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xfffa 0x58 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x0 0x38 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x0 0x58 0x1 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x6 0x48 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x6 0x68 0x1 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xc 0x48 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0xc 0x38 0x1 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x12 0x50 0x0 0x4b + launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x12 0x48 0x1 0x4b + call IceCrystalEffectShort + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + end + + +Move_FLORAL_HEALING:: + loadspritegfx ANIM_TAG_SPARKLE_2 @heal + loadspritegfx ANIM_TAG_FLOWER @flowers + loadspritegfx ANIM_TAG_LEAF @leaves + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_PINK_PETAL @pink particles + monbg ANIM_ATTACKER + monbg ANIM_TARGET + playsewithpan SE_W197, SOUND_PAN_ATTACKER + call CIRCLES_LEAVES + call CIRCLES_LEAVES + waitforvisualfinish + panse_1B SE_W004, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + playsewithpan SE_W239, 0x0 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x46 0x1 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3c 0x0 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x50 0x1 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3a 0x0 0x78 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x5a 0x0 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x30 0x0 0x40 @2 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x5f 0x1 0x50 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x4b 0x1 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x55 0x0 0x78 + delay 0x2 + loopsewithpan SE_W077, SOUND_PAN_TARGET, 0x12, 0xa + call FloralHealingSpores + call FloralHealingSpores + call FloralHealingSpores + waitforvisualfinish + playsewithpan SE_W071B, SOUND_PAN_ATTACKER + launchtemplate gGrantingStarsSpriteTemplate 0x10 0x7 0xfff1 0x0 0x1 0x0 0x20 0x3c 0x1 + delay 0x8 + launchtemplate gGrantingStarsSpriteTemplate 0x10 0x7 0xc 0xfffb 0x1 0x0 0x20 0x3c 0x1 + waitforvisualfinish + clearmonbg ANIM_TARGET + clearmonbg ANIM_ATTACKER + end +FloralHealingSpores: + launchtemplate gFloralHealingFlowerTemplate 0x2 0x5 0x0 0xffec 0x55 0x50 0x0 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x46 0x1 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3c 0x0 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x50 0x1 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3a 0x0 0x78 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x5a 0x0 0x40 + delay 0x3 + launchtemplate gFloralHealingFlowerTemplate 0x2 0x5 0x0 0xfff6 0xaa 0x50 0x0 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x30 0x0 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x5f 0x1 0x50 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x4b 0x1 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x55 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x46 0x1 0x40 + delay 0x3 + launchtemplate gFloralHealingFlowerTemplate 0x2 0x5 0x0 0xfff1 0x0 0x50 0x0 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3c 0x0 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x50 0x1 0x40 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x3a 0x0 0x78 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x78 + delay 0x2 + launchtemplate gFloralHealingWindLeavesTemplate 0x2 0x3 0x5a 0x0 0x40 + delay 0x2 + launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x30 0x0 0x40 + delay 0x3 + return +CIRCLES_LEAVES: + launchtemplate gFloralHealingOrbsTemplate 0x82 0x7 0x0 0x1c 0x180 0x32 0x8 0x32 0x0 + delay 0x2 + launchtemplate gFloralHealingLeavesTemplate 0x82 0x7 0x0 0x20 0xf0 0x28 0xb 0xffd2 0x0 + delay 0x2 + launchtemplate gFloralHealingOrbsTemplate 0x82 0x7 0x0 0x21 0x1a0 0x28 0x4 0x2a 0x0 + delay 0x2 + launchtemplate gFloralHealingLeavesTemplate 0x82 0x7 0x0 0x1f 0x120 0x2d 0x6 0xffd6 0x0 + delay 0x2 + launchtemplate gFloralHealingOrbsTemplate 0x82 0x7 0x0 0x1c 0x1c0 0x2d 0xb 0x2e 0x0 + delay 0x2 + launchtemplate gFloralHealingLeavesTemplate 0x82 0x7 0x0 0x21 0x1d0 0x32 0xa 0xffce 0x0 + delay 0x2 + return + + +Move_HIGH_HORSEPOWER:: + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_HORSESHOE_SIDE_FIST @horseshoe + monbg ANIM_TARGET + delay 0x2 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + setalpha 12, 8 + playsewithpan SE_W025, SOUND_PAN_TARGET + launchtemplate gHighHorsepowerHorseshoeTemplate 0x3 0x4 0x0 0x0 0x1 0x32 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x7 0x7fff + delay 0x32 + playsewithpan SE_W025B, SOUND_PAN_TARGET + call SetImpactBackground + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x16 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x0 0x7fff + launchtemplate gComplexPaletteBlendSpriteTemplate 0x2 0x7 0x1f 0x3 0x1 0x0 0x8 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x2 + restorebg + waitbgfadein + end + + +Move_STRENGTH_SAP:: + loadspritegfx ANIM_TAG_GRAY_SMOKE @smoke + loadspritegfx ANIM_TAG_TEAL_ALERT @inward + loadspritegfx ANIM_TAG_RED_HEART @heart color + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_ORBS @absorb + loadspritegfx ANIM_TAG_SPARKLE_2 @stars + monbg SIDE_TARGET + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0x8 0x3 0x1 0x0 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x46 0x0 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x28 0x28 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xa 0xffc4 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffce 0xffd8 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffd8 0x28 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x32 0xffce 0x6 + delay 0x2 + launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x1 0x0 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x32 0xffe2 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x3c 0xa 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x0 0x3c 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x0 0xffd8 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffc4 0x14 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffc4 0xffe2 0x6 + delay 0x2 + launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x1 0x0 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffce 0x32 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffc4 0x14 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0xffd8 0xffd8 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x14 0xffc4 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x32 0xffce 0x6 + launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x23 0x28 0x6 + delay 0x2 + launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x3 0x07FD + delay 0x5 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x0 0x5 0x8 0x1a + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0xa 0xfffb 0xfff8 0x1a + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0xfffb 0xf 0x10 0x21 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x0 0xfff1 0xfff0 0x24 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x0 0x5 0x8 0x1a + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0xa 0xfffb 0xfff8 0x1a + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0xfff6 0x14 0x14 0x27 + delay 0x4 + playsewithpan SE_W152, SOUND_PAN_TARGET + launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x5 0xffee 0xffec 0x23 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x3 0x0 0x07FD + loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 0x10, 0x3 + call GrantingStarsEffect + waitforvisualfinish + clearmonbg SIDE_TARGET + end + + +Move_SOLAR_BLADE:: + loadspritegfx ANIM_TAG_ORBS + choosetwoturnanim SolarBeamSetUp SolarBladeUnleash +SolarBladeUnleash: + loadspritegfx ANIM_TAG_SWORD @swords dance + loadspritegfx ANIM_TAG_CLAW_SLASH @blade hit + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + loadspritegfx ANIM_TAG_SUNLIGHT @sun rays + monbg ANIM_ATTACKER + setblends 0x30d + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_BG | PAL_ALL_BANKS), 1, 0, 6, 0x7fff + waitforvisualfinish + playsewithpan SE_W014, SOUND_PAN_ATTACKER + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x10 0x6 0x1 0x4 + launchtemplate gSwordsDanceBladeSpriteTemplate 0x2 0x2 0x0 0x0 + call SolarBladeSunRays + call SolarBladeSunRays + call SolarBladeSunRays + call SolarBladeSunRays + launchtask AnimTask_FlashAnimTagWithColor 0x2 0x7 0x2715 0x2 0x2 0x7ff2 0x10 0x0 0x0 + waitforvisualfinish + call SetSolarbeamBg + playsewithpan SE_W013, SOUND_PAN_TARGET + launchtemplate gSolarBladeImpactTemplate 0x82, 0x3, 0x0 0x0 0x1 + delay 0x2 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0xC 0x1 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_BG | PAL_ALL_BANKS), 1, 6, 0, 0x7fff + waitforvisualfinish + call UnsetPsychicBg + clearmonbg ANIM_ATTACKER + blendoff + end +SolarBladeSunRays: + launchtemplate gSunlightRaySpriteTemplate 0x28 0x0 + delay 0x6 + return + + +Move_LEAFAGE:: + loadspritegfx ANIM_TAG_RAZOR_LEAF @leaf + loadspritegfx ANIM_TAG_IMPACT @hit + monbg SIDE_TARGET + playsewithpan SE_W013B, SOUND_PAN_ATTACKER + launchtemplate gRazorLeafCutterSpriteTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0x14 0x1 + launchtemplate gRazorLeafCutterSpriteTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0xffec 0x1 + launchtemplate gRazorLeafCutterSpriteTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0x0 0x1 + delay 0x14 + playsewithpan SE_W013, SOUND_PAN_TARGET + launchtemplate gLeafageImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + waitforvisualfinish + clearmonbg SIDE_TARGET + end + + +Move_SPOTLIGHT:: + loadspritegfx ANIM_TAG_SPOTLIGHT + loadspritegfx ANIM_TAG_TAG_HAND + launchtask AnimTask_CreateSpotlight 0x2 0x0 + launchtask AnimTask_HardwarePaletteFade 0x2 0x5 0xf8 0x3 0x0 0xa 0x0 + waitforvisualfinish + playsewithpan SE_C_PASI, SOUND_PAN_ATTACKER + launchtemplate gSpotlightSpriteTemplate 0x82 0x2 0x0 0xfff8 + delay 0x40 + launchtask AnimTask_HardwarePaletteFade 0x2 0x5 0xf8 0x3 0xa 0x0 0x1 + waitforvisualfinish + launchtask AnimTask_RemoveSpotlight 0x2 0x0 + end + + +Move_TOXIC_THREAD:: + loadspritegfx ANIM_TAG_STRING + loadspritegfx ANIM_TAG_WEB_THREAD + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_STRING, 0, 0xA, 0xA, 0x6038 @Purple + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WEB_THREAD, 0x0, 0xA, 0xA, 0x6038 @Purple + monbg SIDE_TARGET + delay 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x9 0x0 + waitforvisualfinish + loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 0x9, 0x6 + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + call SpiderWebThread + waitforvisualfinish + playsewithpan SE_W081B, SOUND_PAN_TARGET + launchtemplate gToxicThreadString 0x82 0x2 0x0 0xa + delay 0x4 + launchtemplate gToxicThreadString 0x82 0x2 0x0 0xfffe + delay 0x4 + launchtemplate gToxicThreadString 0x82 0x2 0x0 0x16 + waitforvisualfinish + clearmonbg SIDE_TARGET + delay 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x9 0x0 0x0 + end + + +Move_LASER_FOCUS:: + loadspritegfx ANIM_TAG_EYE_SPARKLE @red + loadspritegfx ANIM_TAG_OPENING_EYE @eyes + loadspritegfx ANIM_TAG_LEER @leer + monbg ANIM_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + launchtemplate gLaserFocusRedEyesTemplate 0x5 0x4 0x0 0x0 0x0 0x0 + waitforvisualfinish + playsewithpan SE_W043, SOUND_PAN_ATTACKER + launchtemplate gLeerSpriteTemplate 0x2 0x2 0x18 0xfff4 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + + +Move_GEAR_UP:: + loadspritegfx ANIM_TAG_GEAR + loadspritegfx ANIM_TAG_SPARK_2 @sparks + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x039B + launchtemplate gGearUpGearsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0xF + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gGearUpGearsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0xF + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gGearUpGearsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0xF + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + call GearUpSparks + call GearUpSparks + call GearUpSparks + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x039B + waitforvisualfinish + end +GearUpSparks: + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0xF + playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0xF + return + + +Move_THROAT_CHOP:: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @karate chop + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W104, SOUND_PAN_TARGET + launchtemplate gKarateChopSpriteTemplate 0x2 0x8 0xfff0 0x0 0x0 0x0 0xa 0x1 0x3 0x0 + waitforvisualfinish + launchtask AnimTask_InvertScreenColor 0x2 0x3 0x101 0x101 0x101 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + delay 0x3 + launchtemplate gThroatChopRedImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 + waitforvisualfinish + launchtask AnimTask_InvertScreenColor 0x2 0x3 0x101 0x101 0x101 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + end + + +Move_POLLEN_PUFF:: + launchtask AnimTask_IsTargetPartner 0x5 0x0 + jumpargeq 0x0, 0x1, PollenPuffAlly +PollenPuffOpponent: + loadspritegfx ANIM_TAG_SPARKLE_2 @stars + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_BLACK_BALL_2 @circle launch + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + loadspritegfx ANIM_TAG_SPORE @ball + loadspritegfx ANIM_TAG_FLAT_ROCK @brown color + loadspritegfx ANIM_TAG_ORBS @hit + monbg ANIM_ATTACKER + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x0 + waitforvisualfinish + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + clearmonbg ANIM_ATTACKER + waitforvisualfinish + stopsound + monbg ANIM_TARGET + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0xA0 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x110 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xB0 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x100 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x90 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x110 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xB0 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x100 0x28 0x0 + delay 0x1 + playsewithpan SE_W028, SOUND_PAN_TARGET + launchtemplate gPollenPuffSporeTemplate 0x82 0x6 0xa 0x0 0x0 0x0 0x19 0xffe0 + waitforvisualfinish + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x0 0xFFE0 0x10 @up + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0xFFEE 0xFFEE 0x10 @upperleft + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x0 0x1C 0x10 @down + delay 0x4 + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0xFFE5 0x0 0x10 @left + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x14 0x14 0x10 @lowerright + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0xFFED 0x13 0x10 @lowerleft + delay 0x4 + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x1E 0x0 0x10 @right + launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x16 0xFFEA 0x10 @upperright + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +PollenPuffAlly: + loadspritegfx ANIM_TAG_SPARKLE_2 @stars + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_BLACK_BALL_2 @circle launch + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + loadspritegfx ANIM_TAG_SPORE @ball + monbg ANIM_ATTACKER + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x0 + waitforvisualfinish + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + playsewithpan SE_W234, SOUND_PAN_ATTACKER + delay 0xD + launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + playsewithpan SE_W071B, SOUND_PAN_ATTACKER + clearmonbg ANIM_ATTACKER + waitforvisualfinish + stopsound + playsewithpan SE_W028, SOUND_PAN_ATTACKER + monbg ANIM_TARGET + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0xa0 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x120 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e SOUND_PAN_ATTACKER 0x28 0x0 + launchtemplate gPollenPuffPinkSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x110 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0xa0 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x120 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e SOUND_PAN_ATTACKER 0x28 0x0 + launchtemplate gPollenPuffYellowSparkleTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x110 0x28 0x0 + delay 0x1 + launchtemplate gPollenPuffSporeTemplate 0x82 0x6 0xa 0x0 0x0 0x0 0x19 0xffe0 + waitforvisualfinish + unloadspritegfx ANIM_TAG_SPARKLE_2 @stars + loadspritegfx ANIM_TAG_BLUE_STAR @heal + playsewithpan SE_W071B, SOUND_PAN_ATTACKER + launchtemplate gPollenPuffHealTemplate 0x2 0x4 0x0 0xfffb 0x1 0x0 + delay 0x7 + launchtemplate gPollenPuffHealTemplate 0x2 0x4 0xfff1 0xa 0x1 0x0 + delay 0x7 + launchtemplate gPollenPuffHealTemplate 0x2 0x4 0xfff1 0xfff1 0x1 0x0 + delay 0x7 + launchtemplate gPollenPuffHealTemplate 0x2 0x4 0xa 0xfffb 0x1 0x0 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x1 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + + +Move_ANCHOR_SHOT:: + loadspritegfx ANIM_TAG_CHAIN_LINK + loadspritegfx ANIM_TAG_ANCHOR + playsewithpan SE_RU_HYUU SOUND_PAN_TARGET + monbg ANIM_TARGET + launchtemplate gAnchorShotAngledAnchorTemplate 0x2 0x3 0x0 0x0 0x35 + waitforvisualfinish + launchtemplate gAnchorShotAnchorTemplate 0x3 0x3 0x0 0xffe0 0xf + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + delay 0x25 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + waitforvisualfinish + loopsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER 0x1c 0x2 + launchtemplate gAnchorShotChainTemplate 0x82 0x2 0xfff0 0xfff0 + delay 0x4 + launchtemplate gAnchorShotChainTemplate 0x82 0x2 0xfff0 0x0 + delay 0x4 + launchtemplate gAnchorShotChainTemplate 0x82 0x2 0xfff0 0x10 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_PSYCHIC_TERRAIN:: + loadspritegfx ANIM_TAG_ORBS @Recover Ball + loadspritegfx ANIM_TAG_GREEN_SPARKLE @Green Star + loadspritegfx ANIM_TAG_POISON_BUBBLE @Purple Colour + playsewithpan SE_W215, SOUND_PAN_ATTACKER + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0x0 + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0x2a + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0x54 + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0x7e + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0xa8 + launchtemplate gPsychicTerrainOrbsTemplate 0x2 0x2 0x1a 0xd2 + delay 0x34 + setarg 0x7 0xffff + playsewithpan SE_W213, SOUND_PAN_ATTACKER + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfff9 0xfff9 0xb 0x0 0x0 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0x0 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0x20 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0x40 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0x60 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0x80 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0xa0 + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 SOUND_PAN_ATTACKER + launchtemplate gPsychicTerrainStarTemplate 0x82 0x1 0xe0 + waitforvisualfinish + restorebg + waitbgfadein + loopsewithpan SE_W048, SOUND_PAN_TARGET, 0xa, 0x3 + waitsound + end + + +Move_LUNGE:: + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_TEAL_ALERT @hit particles + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @psycho boost charge + loadspritegfx ANIM_TAG_LEAF @green + loadspritegfx ANIM_TAG_RAZOR_LEAF @green + loadspritegfx ANIM_TAG_SMALL_BUBBLES @ball + monbg SIDE_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x3 0x0 0xf0 0x0 + loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 0xe, 0xa + launchtemplate gLungeGreenChargeTemplate 0x2 0x0 + delay 0x6e + delay 0x3e + playsewithpan SE_W100, SOUND_PAN_ATTACKER + delay 0x15 + clearmonbg SIDE_ATTACKER + invisible ANIM_ATTACKER + waitforvisualfinish + playsewithpan SE_W039, SOUND_PAN_ATTACKER + launchtemplate gLungeGreenBubbleTemplate 0x82 0x6 0xa 0x0 0x0 0x0 0x19 0xffe0 + delay 0xF + monbg SIDE_TARGET + delay 0x1 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x46 0x0 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x28 0x28 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xa 0xffc4 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffce 0xffd8 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffd8 0x28 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x32 0xffce 0x6 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x5 0xb 0x1 + delay 0x2 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x32 0xffe2 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x3c 0xa 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x0 0x3c 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x0 0xffd8 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffc4 0x14 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffc4 0xffe2 0x6 + delay 0x2 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffce 0x32 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffc4 0x14 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0xffd8 0xffd8 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x14 0xffc4 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x32 0xffce 0x6 + launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x23 0x28 0x6 + waitforvisualfinish + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gLungeGreenImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + waitforvisualfinish + visible ANIM_ATTACKER + clearmonbg SIDE_TARGET + end + + +Move_FIRE_LASH:: + loadspritegfx ANIM_TAG_SMALL_EMBER + monbg SIDE_TARGET + monbgprio_2A ANIM_TARGET + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x4 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x8 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0xc + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x10 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x14 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x18 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x18 0x0 0x0 0x6 + delay 0x4 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x5 0x0 0x8 0x1 + launchtask AnimTask_BlendMonInAndOut 0x3 0x5 0x1 0x1f 0xc 0x1 0x1 + playsewithpan SE_W172B, SOUND_PAN_TARGET + loadspritegfx ANIM_TAG_SLASH + launchtemplate gSlashSliceSpriteTemplate 0x82, 0x3, 0x1 0xfff8 0x0 + playsewithpan SE_W013, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gSlashSliceSpriteTemplate 0x82, 0x3, 0x1 0x8 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x12 0x1 + playsewithpan SE_W013, SOUND_PAN_TARGET + delay 0x7 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x9 + waitforvisualfinish + clearmonbg SIDE_TARGET + end + + +Move_POWER_TRIP:: + loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy + loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color + loadspritegfx ANIM_TAG_PURPLE_FLAME @dark violet color + loadspritegfx ANIM_TAG_IMPACT @hit + monbg SIDE_TARGET + playsewithpan SE_W082, SOUND_PAN_ATTACKER + call PowerTripBuffUp + delay 0x8 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 + call PowerTripBuffUp + delay 0x8 + call PowerTripBuffUp + waitforvisualfinish + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gPowerTripImpactTemplate 0x2 0x4 0xFFF5 0xA 0x1 0x2 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x5 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gPowerTripImpactTemplate 0x2 0x4 0x0 0xFFF5 0x1 0x2 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x5 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gPowerTripImpactTemplate 0x2 0x4 0xA 0x0 0x1 0x2 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + waitforvisualfinish + clearmonbg SIDE_TARGET + end +PowerTripBuffUp: + launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + delay 0x4 + launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x4 + launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + delay 0x4 + launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x4 + launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0xfff4 0x0 0x1 + return + + +Move_BURN_UP:: + loadspritegfx ANIM_TAG_THIN_RING @ring + loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color + loadspritegfx ANIM_TAG_PINK_CLOUD @yawn + loadspritegfx ANIM_TAG_SMALL_EMBER @fire + monbg SIDE_TARGET + setblends 0x120C + fadetobg BG_FIRE + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff + waitbgfadein + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x1c + waitforvisualfinish + launchtask AnimTask_AllocBackupPalBuffer 0x5 0x0 + waitforvisualfinish + launchtask AnimTask_CopyPalUnfadedToBackup 0x5 0x2 0x0 0x1 + delay 0x1 + launchtask AnimTask_CopyPalFadedToUnfaded 0x5 0x1 0x0 + delay 0x1 + loopsewithpan SE_W036, SOUND_PAN_ATTACKER 0x9 0x2 + launchtask AnimTask_CopyPalUnfadedToBackup 0x5 0x2 0x1 0x0 + delay 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xd 0x1c + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x2 0x0 0xf 0x1 + waitforvisualfinish + delay 0x1E + launchtemplate gUproarRingSpriteTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + waitforvisualfinish + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtemplate gBurnUpRedYawnTemplate 0x80, 0x6 0x0 0x0 0x0 0x0 0x1e 0x0 + delay 0x1 + launchtask AnimTask_CopyPalFadedToUnfaded 0x5 0x1 0x1 + delay 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x0 0x0 0xd 0x4a52 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x3 0x0 0xf 0x1 + delay 0xF + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0xC 0x1C + delay 0x1 + launchtask AnimTask_CopyPalUnfadedFromBackup 0x5 0x2 0x0 0x1 + delay 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x1c + delay 0x1 + launchtask AnimTask_CopyPalUnfadedFromBackup 0x5 0x2 0x1 0x0 + delay 0x1 + playsewithpan SE_W172B, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x2 0x0 0xf 0x1 + call FireSpreadEffect + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x0 0xd 0x0 0x4a52 + delay 0x1 + launchtask AnimTask_FreeBackupPalBuffer 0x5 0x0 + delay 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0xC 0x0 0x1C + waitforvisualfinish + call UnsetPsychicBg + clearmonbg SIDE_TARGET + blendoff + end + + +Move_SPEED_SWAP:: + loadspritegfx ANIM_TAG_THIN_RING @ring + loadspritegfx ANIM_TAG_ICE_CHUNK @blue green + loadspritegfx ANIM_TAG_ORBS @circle + monbg ANIM_TARGET + panse_1B SE_W107, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, 0xfd, 0x0 + delay 0xf + launchtemplate gSpeedSwapCircleTemplate 0x82 0x2 0xfff4 0x18 + delay 0x5 + launchtemplate gSpeedSwapRingTemplate 0x28 0x4 0x0 0x0 0x1 0x0 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0x0 0xFFE0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0x16 0xFFEA 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0x1E 0x0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0x14 0x14 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0x0 0x1C 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0xFFED 0x13 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0xFFE5 0x0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x1 0x0 0xFFEE 0xFFEE 0x10 + waitforvisualfinish + panse_1B SE_W107, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, 0xfd, 0x0 + launchtemplate gSpeedSwapOrbMissileTemplate 0x80 0x6 0x0 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gSpeedSwapRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0x0 0xFFE0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0x16 0xFFEA 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0x1E 0x0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0x14 0x14 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0x0 0x1C 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0xFFED 0x13 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0xFFE5 0x0 0x10 + launchtemplate gSpeedSwapOrbTemplate 0x82 0x5 0x0 0x0 0xFFEE 0xFFEE 0x10 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_SMART_STRIKE:: + loadspritegfx ANIM_TAG_POWER_GEM @gem + loadspritegfx ANIM_TAG_AIR_WAVE @sonicboom + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_FLASH_CANNON_BALL @ball + loadspritegfx ANIM_TAG_LOCK_ON + launchtemplate gLockOnTargetSpriteTemplate 0x28 0x0 + launchtemplate gLockOnMoveTargetSpriteTemplate 0x28 0x1 0x1 + launchtemplate gLockOnMoveTargetSpriteTemplate 0x28 0x1 0x2 + launchtemplate gLockOnMoveTargetSpriteTemplate 0x28 0x1 0x3 + launchtemplate gLockOnMoveTargetSpriteTemplate 0x28 0x1 0x4 + delay 0x78 + setarg 0x7 0xffff + waitforvisualfinish + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + call SonicBoomProjectile + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0xa 0x1 + loadspritegfx ANIM_TAG_FLASH_CANNON_BALL + launchtemplate gSmartStrikeImpactTemplate 0x84 0x5 0x0 0x0 0x8 0x1 0x0 + playsewithpan SE_W233B, SOUND_PAN_TARGET + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0x0 0xffe8 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0x11 0xffef 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0x18 0x0 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0x11 0x11 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0x0 0x18 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0xffef 0x11 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0xffe8 0x0 0xa + launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0xffef 0xffef 0xa + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + waitforvisualfinish + end + + +Move_PURIFY:: + loadspritegfx ANIM_TAG_FLASH_CANNON_BALL @Ball + loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke + loadspritegfx ANIM_TAG_ICE_CHUNK @White Colour + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W104, SOUND_PAN_ATTACKER + launchtemplate gPurifyWhiteBallTemplate 0x2 0x6 0x14 0xfff8 0xfff8 0xfff8 0x14 0xffe0 + delay 0x13 + playsewithpan SE_W028, SOUND_PAN_TARGET + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xfff4 0x68 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xfff4 0x48 0x1 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xfffa 0x38 0x1 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xfffa 0x58 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x0 0x38 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x0 0x58 0x1 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x6 0x48 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x6 0x68 0x1 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xc 0x48 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0xc 0x38 0x1 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x12 0x50 0x0 0x4b + launchtemplate gPurifySmokeTemplate 0x84 0x5 0x0 0x12 0x48 0x1 0x4b + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + + +Move_REVELATION_DANCE:: + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_FLOWER @particles + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @another yellow + loadspritegfx ANIM_TAG_AIR_WAVE @sonicboom + loadspritegfx ANIM_TAG_THIN_RING @ring + monbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x0 + waitforvisualfinish + playsewithpan SE_W080, SOUND_PAN_ATTACKER + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + launchtemplate gRevelationDanceYellowOrbsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0x10 0xffe8 0x8 0x64 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0xfff0 0xffe8 0x8 0x64 + delay 0xf + launchtemplate gRevelationDanceYellowOrbsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0x20 0xffe8 0x8 0x64 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0xffe0 0xffe8 0x8 0x64 + delay 0xf + launchtemplate gRevelationDanceYellowOrbsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0x18 0xffe8 0x8 0x64 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0xffe8 0xffe8 0x8 0x64 + delay 0x1e + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0x10 0xffe8 0x0 0x64 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0xfff0 0xffe8 0x0 0x64 + delay 0x1e + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0x14 0xfff0 0xe 0x50 + launchtemplate gRevelationDanceYellowFlowerTemplate 0x2 0x4 0xffec 0xfff2 0x10 0x50 + waitforvisualfinish + unloadspritegfx ANIM_TAG_FLOWER @particles + loadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_SMALL_EMBER @light yellow + playsewithpan SE_W013B, SOUND_PAN_ATTACKER + launchtemplate gRevelationDanceYellowAirWaveTemplate 0x82 0x5 0x10 0x0 0x0 0x0 0xf + waitforvisualfinish + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtemplate gRevelationDanceYellowImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + launchtemplate gRevelationDanceYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xb0 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0xff40 0xf0 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xff60 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0xff40 0xff90 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0xa0 0x30 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0xff20 0xffe0 0x28 + launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_CORE_ENFORCER:: + loadspritegfx ANIM_TAG_SPARK_2 @yellow color + loadspritegfx ANIM_TAG_LEAF @green color + loadspritegfx ANIM_TAG_RAZOR_LEAF @another green color + loadspritegfx ANIM_TAG_WATER_ORB @blue color + loadspritegfx ANIM_TAG_THIN_RING @rings + loadspritegfx ANIM_TAG_SHOCK_3 @circle from thunderbolt + monbg ANIM_ATTACKER + setalpha 12, 8 + fadetobg BG_COSMIC + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x0 0xFC00 0x1 0xffff + waitbgfadein + loopsewithpan SE_W025, SOUND_PAN_ATTACKER 0xd 0xA + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gCoreEnforcerBlueRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + waitforvisualfinish + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + waitforvisualfinish + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gCoreEnforcerYellowRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + waitforvisualfinish + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + waitforvisualfinish + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gCoreEnforcerGreenRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + waitforvisualfinish + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerBlueSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gCoreEnforcerGreenChargeTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x5 + launchtemplate gCoreEnforcerCircleChargeTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + waitforvisualfinish + unloadspritegfx ANIM_TAG_SPARK_2 @yellow color + unloadspritegfx ANIM_TAG_LEAF @green color + unloadspritegfx ANIM_TAG_RAZOR_LEAF @another green color + unloadspritegfx ANIM_TAG_WATER_ORB @blue color + unloadspritegfx ANIM_TAG_THIN_RING @rings + unloadspritegfx ANIM_TAG_SHOCK_3 @circle from thunderbolt + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_ORBS @charging particles + loadspritegfx ANIM_TAG_SNORE_Z + loadspritegfx ANIM_TAG_EXPLOSION + clearmonbg ANIM_ATTACKER + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 0xD, 0xD, 0x079F @Yellow + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ORBS, 0, 0xA, 0xA, 0x7501 @Royal Blue + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SNORE_Z, 0, 0xA, 0xA, 0x0688 @Green + delay 0x10 + monbg ANIM_TARGET + launchtask AnimTask_CreateSmallSolarbeamOrbs 0x5 0x0 + panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0x41 0x1 + launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_DEF_PARTNER 0x2 0x0 0x41 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x0 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfff5 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfffa 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xffff 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x5 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xA 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xF 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x14 0xffe2 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xF 0xffe7 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x2 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xC 0xffea 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x9 0xffed 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x6 0xfff0 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x3 0xfff3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x3 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x0 0xfff6 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfffc 0xfff9 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfff9 0xfffc 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfff6 0xffff 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x4 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfff3 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfff8 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xfffd 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x2 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x5 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x7 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0xC 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x11 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerImpactTemplate 0x83 0x4 0x16 0x3 0x1 0x3 + delay 0x1 + launchtemplate gCoreEnforcerBeamTemplate 0x83 0x4 0xf 0x0 0x14 0x6 + delay 0x7 + launchtemplate gCoreEnforcerSnoreTemplate 0x2 0x2 0x0 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0x1e 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_DEF_PARTNER 0x2 0x0 0x1e 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_ATK_PARTNER 0x2 0x0 0x1e 0x1 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0x0 0x0 ANIM_TARGET 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0x18 0xffe8 ANIM_TARGET 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0xfff0 0x10 ANIM_TARGET 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0xffe8 0xfff4 ANIM_TARGET 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0x10 0x10 ANIM_TARGET 0x1 + delay 0x6 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gCoreEnforcerExplosionTemplate 0x3 0x4 0xffe8 0x18 ANIM_TARGET 0x1 + waitforvisualfinish + call UnsetPsychicBg + clearmonbg ANIM_TARGET + blendoff + end + + +Move_TROP_KICK:: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @kick + loadspritegfx ANIM_TAG_LEAF @leaves + loadspritegfx ANIM_TAG_FLOWER @flowers + monbg SIDE_TARGET + launchtemplate gTropKickGreenFootTemplate 0x2 0x8 0xfff0 0x8 0x0 0x0 0xa 0x1 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 + playsewithpan SE_W233B, SOUND_PAN_TARGET + delay 0xA + playsewithpan SE_W234, SOUND_PAN_ATTACKER + launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xb0 0x28 + launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa 0xff40 0xf0 0x28 + launchtemplate gTropKickFlowerTemplate 0x81 0x5 0x0 0xa SOUND_PAN_ATTACKER 0xff60 0x28 + launchtemplate gTropKickFlowerTemplate 0x81 0x5 0x0 0xa 0xff40 0xff90 0x28 + launchtemplate gTropKickFlowerTemplate 0x81 0x5 0x0 0xa 0xa0 0x30 0x28 + launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa 0xff20 0xffe0 0x28 + launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 + waitforvisualfinish + clearmonbg SIDE_TARGET + end + + +Move_INSTRUCT:: + loadspritegfx ANIM_TAG_FINGER @finger + loadspritegfx ANIM_TAG_SPOTLIGHT @spotlight + setalpha 12, 8 + launchtemplate gMetronomeFingerSpriteTemplate 0xc 0x1 0x0 + delay 0x18 + loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 0x16, 0x3 + waitforvisualfinish + launchtask AnimTask_HardwarePaletteFade 0x2 0x5 0xf8 0x3 0x0 0xa 0x0 + waitforvisualfinish + launchtemplate gSpotlightSpriteTemplate 0x82 0x2 0x0 0xfff8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x8 0x7DB9 + delay 0x4 + monbg ANIM_TARGET + launchtask AnimTask_BlendMonInAndOut 0x5 0x5 0x0 0x37b 0xc 0x1 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x29 0x1 + playsewithpan SE_W020, SOUND_PAN_TARGET + delay 0x1A + launchtask AnimTask_BlendMonInAndOut 0x5 0x5 0x0 0x37b 0xc 0x1 0x1 + playsewithpan SE_W020, SOUND_PAN_TARGET + delay 0x1A + launchtask AnimTask_BlendMonInAndOut 0x5 0x5 0x0 0x37b 0xc 0x1 0x1 + playsewithpan SE_W020, SOUND_PAN_TARGET + delay 0x1D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x8 0x0 0x7DB9 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + + +Move_BEAK_BLAST:: + loadspritegfx ANIM_TAG_SMALL_EMBER @Fire + playsewithpan SE_W082, SOUND_PAN_ATTACKER + delay 0x3 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x1f + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 + waitforvisualfinish + end +BeakBlastUnleash: + loadspritegfx ANIM_TAG_IMPACT + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x1F + waitforvisualfinish + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x0 + playsewithpan SE_W029, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x2 + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x1 + delay 0x2 + loopsewithpan SE_W030, SOUND_PAN_TARGET 0x4 0x8 + launchtask AnimTask_DrillPeckHitSplats 0x5 0x0 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x12 0x1 + waitforvisualfinish + launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x2 + waitforvisualfinish + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x6 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x1F + waitforvisualfinish + end + + +Move_CLANGING_SCALES:: + loadspritegfx ANIM_TAG_METAL_SOUND_WAVES @metal sound + loadspritegfx ANIM_TAG_POISON_BUBBLE @purple color + monbg SIDE_TARGET + monbgprio_2A 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x2002 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_METAL_SOUND_WAVES, 0, 10, 10, 0x642D + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x2 0x0 0x8 0x1 + call ClangingScalesMetalSound + call ClangingScalesMetalSound + call ClangingScalesMetalSound + call ClangingScalesMetalSound + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x0 0x3 0xf 0x1 + waitforvisualfinish + clearmonbg SIDE_TARGET + delay 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x2002 + waitforvisualfinish + end +ClangingScalesMetalSound: + panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtemplate gClangingScalesPurpleMetalSoundTemplate 0x82 0x7 0x10 0x0 0x0 0x0 0x1e 0x0 ANIM_TARGET + launchtemplate gClangingScalesPurpleMetalSoundTemplate 0x82 0x7 0x10 0x0 0x0 0x0 0x1e 0x0 ANIM_DEF_PARTNER + delay 0x2 + return + + +Move_DRAGON_HAMMER:: + loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_GRAY_SMOKE + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ROUND_SHADOW, 0, 12, 12, 0x7D7F @Pinkish purple + fadetobg BG_COSMIC + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x0, -500, 0x0 0xffff + waitbgfadein + setblends 0xF + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 + delay 0x6 + playsewithpan SE_W207, SOUND_PAN_TARGET + launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 + delay 0x2 + launchtask AnimTask_SquishTarget 0x2 0x0 + delay 0x5 + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gOctazookaSmokeSpriteTemplate 0x84 0x8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0xfff8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0x8 0x8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0xfff8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0x8 0xfff8 0x1 0x0 + delay 0x2 + launchtemplate gOctazookaSmokeSpriteTemplate 0x80 4 0xfff8 0x8 0x1 0x0 + delay 51 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 + waitforvisualfinish + call UnsetPsychicBg + blendoff + end + + +Move_BRUTAL_SWING:: + loadspritegfx ANIM_TAG_IMPACT @hits + loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color + monbg ANIM_TARGET + setalpha 12, 8 + fadetobg BG_DARK + waitbgfadeout + playsewithpan SE_W036, SOUND_PAN_ATTACKER + launchtemplate gVerticalDipSpriteTemplate 0x2 0x3 0x6 0x1 0x0 + waitforvisualfinish + delay 0xb + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 + delay 0x6 + launchtemplate gBrutalSwingBasicImpactTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x1 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x15 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x0 0x3 0x15 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATK_PARTNER 0x0 0x3 0x15 0x1 + delay 0x4 + launchtemplate gBrutalSwingRandomImpactTemplate 0x83 0x2 0x1 0x1 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBrutalSwingRandomImpactTemplate 0x83 0x2 0x1 0x1 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBrutalSwingBasicImpactTemplate 0x83 0x4 0x20 0x14 0x1 0x1 + playsewithpan SE_W004, SOUND_PAN_TARGET + waitsound + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x6 + waitforvisualfinish + restorebg + blendoff + clearmonbg ANIM_TARGET + end + + +Move_AURORA_VEIL:: + loadspritegfx ANIM_TAG_GUARD_RING + fadetobg BG_AURORA + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x400 0x0 0x0 0xffff + waitbgfadein + monbg SIDE_ATTACKER + setalpha 8, 8 + playsewithpan SE_W208, SOUND_PAN_ATTACKER + launchtemplate gAuroraVeilRingTemplate 0x2 0x0 + delay 0x4 + launchtemplate gAuroraVeilRingTemplate 0x2 0x0 + delay 0x4 + launchtemplate gAuroraVeilRingTemplate 0x2 0x0 + waitforvisualfinish + playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendColorCycle 0x2 0x6 0xa 0x0 0x2 0x0 0xa 0x7fff + waitforvisualfinish + call UnsetPsychicBg + waitforvisualfinish + clearmonbg SIDE_ATTACKER + blendoff + end + + +Move_SHELL_TRAP:: +ShellTrapChargeUp: + loadspritegfx ANIM_TAG_SMALL_EMBER + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 + call FireSpreadEffect + delay 0x4 + playsewithpan SE_W007, SOUND_PAN_TARGET + delay 0x15 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0xA 0x1 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xA 0x0 0x1 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xA 0xA 0x1 0x2 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +ShellTrapUnleash: + loadspritegfx ANIM_TAG_IMPACT @pound + loadspritegfx ANIM_TAG_SMALL_RED_EYE @red + loadspritegfx ANIM_TAG_SMALL_EMBER @fire + loadspritegfx ANIM_TAG_ICE_CRYSTALS @fire launches + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red + monbg ANIM_TARGET + waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 0x10 + delay 0x6 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x4 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x8 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0xc + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x10 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x14 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x18 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + delay 0x5 + waitforvisualfinish + call ShellTrapFireLaunch1 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + delay 0x3 + call ShellTrapFireLaunch2 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x3 + waitforvisualfinish + clearmonbg ANIM_TARGET + end +ShellTrapFireLaunch1: + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 + delay 0x3 + return +ShellTrapFireLaunch2: + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + playsewithpan SE_W172, SOUND_PAN_ATTACKER + delay 0x3 + return + + +Move_FLEUR_CANNON:: + loadspritegfx ANIM_TAG_ORBS @beam particles + loadspritegfx ANIM_TAG_ELECTRICITY @discharge + loadspritegfx ANIM_TAG_PINK_PETAL @pink color + loadspritegfx ANIM_TAG_PINK_HEART @pink color + setalpha 12, 8 + monbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x7440 + waitforvisualfinish + panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 0x32 0x1 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, 0x1f, 16, 0, 0 + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x32 0x1 + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + call FleurCannonBeam + delay 0x20 + launchtemplate gFleurCannonDischargeTemplate 0x2 0x3 0x1 0x10 0x10 + delay 0x2 + launchtemplate gFleurCannonDischargeTemplate 0x2 0x3 0x1 0xfff0 0xfff0 + delay 0x5 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x5 0xb 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7440 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +FleurCannonBeam: + launchtemplate gFleurCannonOrbTemplate 0x82 0x0 + launchtemplate gFleurCannonOrbTemplate 0x82 0x0 + delay 0x1 + launchtemplate gFleurCannonOrbTemplate 0x82 0x0 + launchtemplate gFleurCannonOrbTemplate 0x82 0x0 + delay 0x1 + return + + +Move_PSYCHIC_FANGS:: + loadspritegfx ANIM_TAG_SHARP_TEETH @Teeth + loadspritegfx ANIM_TAG_IMPACT @Hit + loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL @Screen + loadspritegfx ANIM_TAG_TORN_METAL @Broken Screen + monbg ANIM_TARGET + call SetPsychicBackground + setalpha 12, 8 + choosetwoturnanim PsychicFangsRegular PsychicFangsDestroyWall +PsychicFangsRegular: + playsewithpan SE_W044, SOUND_PAN_TARGET + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0xffe0 0xffe0 0x1 0x333 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0x20 0x20 0x5 0xfccd 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0x5 0x2 + delay 0x10 + playsewithpan SE_W044, SOUND_PAN_TARGET + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0x20 0xffe0 0x7 0xfccd 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0xffe0 0x20 0x3 0x333 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x8 0x4 0x2 +PsychicFangsEnd: + playsewithpan SE_W048, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + call UnsetPsychicBg + end +PsychicFangsDestroyWall: + launchtemplate gBrickBreakWallSpriteTemplate 0x3 0x5 0x1 0x0 0x0 0x21 0xa + playsewithpan SE_W044, SOUND_PAN_TARGET + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0xffe0 0xffe0 0x1 0x333 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0x20 0x20 0x5 0xfccd 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0x5 0x2 + delay 0x10 + playsewithpan SE_W044, SOUND_PAN_TARGET + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0x20 0xffe0 0x7 0xfccd 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 0x2 0x6 0xffe0 0x20 0x3 0x333 0xfccd 0xa + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x8 0x0 0x1 0x1 + launchtemplate gBrickBreakWallShardSpriteTemplate 0x2 0x4 0x1 0x0 0xfff8 0xfff4 + launchtemplate gBrickBreakWallShardSpriteTemplate 0x2 0x4 0x1 0x1 0x8 0xfff4 + launchtemplate gBrickBreakWallShardSpriteTemplate 0x2 0x4 0x1 0x2 0xfff8 0xc + launchtemplate gBrickBreakWallShardSpriteTemplate 0x2 0x4 0x1 0x3 0x8 0xc + playsewithpan SE_W280, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x8 0x4 0x2 + delay 0x10 + goto PsychicFangsEnd + + +Move_STOMPING_TANTRUM:: + loadspritegfx ANIM_TAG_ROCKS @rock colour + loadspritegfx ANIM_TAG_SMALL_ROCK @small rock + loadspritegfx ANIM_TAG_IMPACT @pound hit + loadspritegfx ANIM_TAG_SMALL_EMBER @hit color + monbg ANIM_TARGET + launchtask AnimTask_Splash 0x2 0x2 ANIM_ATTACKER 0x3 + delay 0x5 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x5 0xa 0x5 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0xa 0x5 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x0 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x1 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x2 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x3 + call StompingTantrumImpact + playsewithpan SE_W088, SOUND_PAN_TARGET + delay 0x25 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x0 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x1 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x2 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x3 + call StompingTantrumImpact + playsewithpan SE_W088, SOUND_PAN_TARGET + delay 0x25 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x0 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x1 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x2 + launchtemplate gStompingTantrumRockTemplate 0x2 0x2 0x0 0x3 + call StompingTantrumImpact + playsewithpan SE_W088, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + end +StompingTantrumImpact: + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x1 + return + + +Move_SHADOW_BONE:: + loadspritegfx ANIM_TAG_BONE + loadspritegfx ANIM_TAG_IMPACT + fadetobg BG_NIGHTMARE + waitbgfadein + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W155, SOUND_PAN_TARGET + launchtemplate gSpinningBoneSpriteTemplate 0x2 0x5 0xffd6 0xffe7 0x0 0x0 0xf + delay 0xc + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x5 0x5 0x1 + launchtemplate gComplexPaletteBlendSpriteTemplate 0x2 0x7 0x7 0x5 0x1 0x0 0xa 0x0 0x0 + playsewithpan SE_W233B, SOUND_PAN_TARGET + waitforvisualfinish + launchtask AnimTask_NightmareClone 0x2 0x0 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x28 0x1 + playsewithpan SE_W171, SOUND_PAN_TARGET + waitforvisualfinish + restorebg + waitbgfadein + clearmonbg 0x3 + blendoff + end + + +Move_ACCELEROCK:: + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_IMPACT + monbg SIDE_ATTACKER + setalpha 12, 8 + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x18 0x6 0x1 0x5 + launchtask AnimTask_TraceMonBlended 0x2 0x4 0x0 0x4 0x7 0x3 + playsewithpan SE_W026, SOUND_PAN_ATTACKER + delay 0x4 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x5 0x0 0x6 0x1 + launchtemplate gBasicHitSplatSpriteTemplate 0x84, 0x4, 0x0 0x0 0x1 0x1 + playsewithpan SE_W233B, SOUND_PAN_TARGET + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x5 0x1 0x3 0x0 0x5 0x1 + launchtemplate gRockFragmentSpriteTemplate 0x82 0x6 0x5 0x0 0xffec 0x18 0xe 0x1 + launchtemplate gRockFragmentSpriteTemplate 0x82 0x6 0x0 0x5 0x14 0xffe8 0xe 0x2 + launchtemplate gRockFragmentSpriteTemplate 0x82 0x6 0xfffb 0x0 0xffec 0xffe8 0xe 0x2 + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x5 0x1 0x3 0x0 0x5 0x1 + waitforvisualfinish + clearmonbg SIDE_ATTACKER + blendoff + waitforvisualfinish + end + + +Move_LIQUIDATION:: + loadspritegfx ANIM_TAG_WATER_IMPACT + loadspritegfx ANIM_TAG_SMALL_BUBBLES + loadspritegfx ANIM_TAG_ICE_CRYSTALS + loadspritegfx ANIM_TAG_IMPACT + monbg ANIM_TARGET + setalpha 12, 8 + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 + delay 0x6 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + playsewithpan SE_W104, SOUND_PAN_TARGET + waitforvisualfinish + call RisingWaterHitEffect + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + end + + +Move_PRISMATIC_LASER:: + loadspritegfx ANIM_TAG_ICE_CHUNK @blue green color + loadspritegfx ANIM_TAG_SPARK_H @yellow color + loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red color + loadspritegfx ANIM_TAG_RAZOR_LEAF @green color + loadspritegfx ANIM_TAG_POISON_BUBBLE @violet color + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge animation + loadspritegfx ANIM_TAG_TEAL_ALERT @straight lines + loadspritegfx ANIM_TAG_GREEN_SPIKE @needle arm animation + loadspritegfx ANIM_TAG_NEEDLE @sting + monbg ANIM_ATTACKER + setblends 0x80E + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + launchtemplate gPrismaticLaserChargeTemplate 0x2 0x1 0x0 + call PrismaticLaserInwardSpikes + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + call PrismaticLaserInwardSpikes + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + call PrismaticLaserInwardSpikes + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + call PrismaticLaserInwardSpikes + playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER + delay 0x1E + call PrismaticLaserOutwardSpikes + delay 0x5 + call PrismaticLaserOutwardSpikes2 + delay 0x5 + call PrismaticLaserOutwardSpikes + delay 0x5 + call PrismaticLaserOutwardSpikes2 + delay 0x5 + call PrismaticLaserOutwardSpikes + waitforvisualfinish + unloadspritegfx ANIM_TAG_TEAL_ALERT + unloadspritegfx ANIM_TAG_GREEN_SPIKE + unloadspritegfx ANIM_TAG_ICE_CHUNK + unloadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + delay 0x1E + launchtask AnimTask_HorizontalShake 0x5 0x3 0x5 0xa 0x32 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0xa 0x32 + playsewithpan SE_W076, SOUND_PAN_ATTACKER + call PrismaticLaserRain + call PrismaticLaserRain + call PrismaticLaserRain + call PrismaticLaserRain + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + end +PrismaticLaserOutwardSpikes: + launchtemplate gPrismaticLaserRedOutwardTemplate 0x82 0x5 0x0 0x1 0x0 0xFF90 0x10 @up + launchtemplate gPrismaticLaserGreenOutwardTemplate 0x82 0x5 0x0 0x1 0x5F 0xFF9D 0x10 @upper right + launchtemplate gPrismaticLaserYellowOutwardTemplate 0x82 0x5 0x0 0x1 0x73 0x0 0x10 @right + launchtemplate gPrismaticLaserVioletOutwardTemplate 0x82 0x5 0x0 0x1 0x4F 0x37 0x10 @lower right + launchtemplate gPrismaticLaserRedOutwardTemplate 0x82 0x5 0x0 0x1 0x0 0x53 0x10 @down + launchtemplate gPrismaticLaserGreenOutwardTemplate 0x82 0x5 0x0 0x1 0xFFB0 0x43 0x10 @lower left + launchtemplate gPrismaticLaserYellowOutwardTemplate 0x82 0x5 0x0 0x1 0xFF60 0x0 0x10 @left + launchtemplate gPrismaticLaserVioletOutwardTemplate 0x82 0x5 0x0 0x1 0xFFAA 0xFF94 0x10 @upper left + playsewithpan SE_W054, SOUND_PAN_ATTACKER + return +PrismaticLaserOutwardSpikes2: + launchtemplate gPrismaticLaserVioletOutwardTemplate 0x82 0x5 0x0 0x1 0xFFE0 0x43 0x10 @between lower left and down + launchtemplate gPrismaticLaserYellowOutwardTemplate 0x82 0x5 0x0 0x1 0x1F 0x37 0x10 @between lower right and down + launchtemplate gPrismaticLaserYellowOutwardTemplate 0x82 0x5 0x0 0x1 0xFFDA 0xFF94 0x10 @between up and upper left + launchtemplate gPrismaticLaserRedOutwardTemplate 0x82 0x5 0x0 0x1 0xFF60 0x43 0x10 @between left and lower left + launchtemplate gPrismaticLaserGreenOutwardTemplate 0x82 0x5 0x0 0x1 0xFF2A 0xFFAA 0x10 @between left and upper left + launchtemplate gPrismaticLaserVioletOutwardTemplate 0x82 0x5 0x0 0x1 0x2D 0xFF9D 0x10 @between up and upper right + launchtemplate gPrismaticLaserRedOutwardTemplate 0x82 0x5 0x0 0x1 0xDF 0xFF9D 0x10 @between right and upper right + launchtemplate gPrismaticLaserGreenOutwardTemplate 0x82 0x5 0x0 0x1 0x9F 0x37 0x10 @between right and lower right + playsewithpan SE_W054, SOUND_PAN_ATTACKER + return +PrismaticLaserInwardSpikes: + launchtemplate gPrismaticLaserRedInwardTemplate 0x82 0x5 0x0 0x0 0x0 0xFF90 0x10 @up + launchtemplate gPrismaticLaserVioletInwardTemplate 0x82 0x5 0x0 0x0 0xFFE0 0x43 0x10 @between lower left and down + delay 0x1 + launchtemplate gPrismaticLaserGreenInwardTemplate 0x82 0x5 0x0 0x0 0x5F 0xFF9D 0x10 @upper right + launchtemplate gPrismaticLaserYellowInwardTemplate 0x82 0x5 0x0 0x0 0x1F 0x37 0x10 @between lower right and down + launchtemplate gPrismaticLaserYellowInwardTemplate 0x82 0x5 0x0 0x0 0xFFDA 0xFF94 0x10 @between up and upper left + delay 0x1 + launchtemplate gPrismaticLaserYellowInwardTemplate 0x82 0x5 0x0 0x0 0x73 0x0 0x10 @right + launchtemplate gPrismaticLaserRedInwardTemplate 0x82 0x5 0x0 0x0 0xFF60 0x43 0x10 @between left and lower left + delay 0x1 + launchtemplate gPrismaticLaserVioletInwardTemplate 0x82 0x5 0x0 0x0 0x4F 0x37 0x10 @lower right + launchtemplate gPrismaticLaserGreenInwardTemplate 0x82 0x5 0x0 0x0 0xFF2A 0xFFAA 0x10 @between left and upper left + delay 0x1 + launchtemplate gPrismaticLaserRedInwardTemplate 0x82 0x5 0x0 0x0 0x0 0x53 0x10 @down + launchtemplate gPrismaticLaserVioletInwardTemplate 0x82 0x5 0x0 0x0 0x2D 0xFF9D 0x10 @between up and upper right + delay 0x1 + launchtemplate gPrismaticLaserGreenInwardTemplate 0x82 0x5 0x0 0x0 0xFFB0 0x43 0x10 @lower left + launchtemplate gPrismaticLaserRedInwardTemplate 0x82 0x5 0x0 0x0 0xDF 0xFF9D 0x10 @between right and upper right + delay 0x1 + launchtemplate gPrismaticLaserYellowInwardTemplate 0x82 0x5 0x0 0x0 0xFF60 0x0 0x10 @left + launchtemplate gPrismaticLaserGreenInwardTemplate 0x82 0x5 0x0 0x0 0x9F 0x37 0x10 @between right and lower right + delay 0x1 + launchtemplate gPrismaticLaserVioletInwardTemplate 0x82 0x5 0x0 0x0 0xFFAA 0xFF94 0x10 @upper left + delay 0x1 + return +PrismaticLaserRain: + launchtemplate gPrismaticLaserYellowRainTemplate 0x82, 0x4, 35, 0x3c, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserGreenRainTemplate 0x82, 0x4, -30, 0x44, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserRedRainTemplate 0x82, 0x4, 27, 0x37, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserVioletRainTemplate 0x82, 0x4, -20, 0x32, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserYellowRainTemplate 0x82, 0x4, 33, 0x3a, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserGreenRainTemplate 0x82, 0x4, -12, 0x3a, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserRedRainTemplate 0x82, 0x4, 19, 0x3c, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserVioletRainTemplate 0x82, 0x4, -38, 0x3a, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserYellowRainTemplate 0x82, 0x4, 5, 0x3c, 4, ANIM_TARGET + delay 0x2 + launchtemplate gPrismaticLaserGreenRainTemplate 0x82, 0x4, -23, 0x28, 4, ANIM_TARGET + return + + +Move_SPECTRAL_THIEF:: + choosetwoturnanim SpectralThiefSteal SpectralThiefUnleash +SpectralThiefUnleash: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @Black Colour + loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @Black Colour + loadspritegfx ANIM_TAG_GRAY_SMOKE @smoke + loadspritegfx ANIM_TAG_WHITE_SHADOW @destiny bond + loadspritegfx ANIM_TAG_IMPACT @hits + loadspritegfx ANIM_TAG_POISON_BUBBLE + fadetobg BG_GHOST + waitbgfadein + delay 0x5 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0x8 0x8 0x0 0x0 + invisible 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0x8 0x8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0xfff8 0xfff8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0x8 0xfff8 0x0 0x0 + delay 0x2 + launchtemplate gSpectralThiefBlackSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x0 0x0 + waitforvisualfinish + playsewithpan SE_W060, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtask AnimTask_DestinyBondWhiteShadow 0x5 0x2 0x0 0x30 + delay 0x30 + launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x0 0x2 0x0 0x18 0x1 + launchtask AnimTask_BlendBattleAnimPalExclude 0x2 0x5 0x6 0x1 0x0 0xc 0x77bd + delay 0x18 + launchtask AnimTask_BlendBattleAnimPalExclude 0x2 0x5 0x6 0x1 0xc 0x0 0x77bd + waitforvisualfinish + setblends 0x1000 + delay 0x1 + monbg_22 ANIM_TARGET + launchtask AnimTask_MoveTargetMementoShadow 0x5 0x0 + playsewithpan SE_W060, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg_23 ANIM_TARGET + delay 0x1 + blendoff + delay 0x1 + setalpha 12, 8 + monbg ANIM_TARGET + delay 0x1 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0xa 0x14 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0xfffb 0xa 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0x11 0xfff4 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0xfff1 0xf 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0x0 0x0 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x4 + launchtemplate gSpectralThiefThiefImpactTemplate 0x82, 0x3, 0x14 0x2 0x0 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + waitforvisualfinish + visible 0x0 + delay 0x2 + restorebg + waitbgfadein + clearmonbg ANIM_TARGET + blendoff + end +SpectralThiefSteal: + loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color + loadspritegfx ANIM_TAG_ORBS @mimic + loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy + setblends 0x50b + monbgprio_29 + panse_1B SE_W107, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, 0xfd, 0x0 + delay 0xf + launchtemplate gSpectralThiefBlackOrbsTemplate 0x82 0x2 0xfff4 0x18 + delay 0xB + setarg 0x7 0xffff + waitforvisualfinish + playsewithpan SE_W082, SOUND_PAN_ATTACKER + call SpectralThiefBuffUp + delay 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 + call SpectralThiefBuffUp + delay 0x8 + call SpectralThiefBuffUp + waitforvisualfinish + blendoff + end +SpectralThiefBuffUp: + launchtemplate gSpectralThiefBlackBuffTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + delay 0x4 + launchtemplate gSpectralThiefBlackBuffTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x4 + launchtemplate gSpectralThiefBlackBuffTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + delay 0x4 + launchtemplate gSpectralThiefBlackBuffTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x4 + launchtemplate gSpectralThiefBlackBuffTemplate 0x2 0x4 0x0 0xfff4 0x0 0x1 + return + + +Move_SUNSTEEL_STRIKE:: + loadspritegfx ANIM_TAG_ROUND_SHADOW @fly + loadspritegfx ANIM_TAG_AIR_WAVE_2 @black color + loadspritegfx ANIM_TAG_ROCKS @rock colour + loadspritegfx ANIM_TAG_SMALL_ROCK @small rock + monbg ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_W104, SOUND_PAN_TARGET + launchtemplate gSunsteelStrikeBlackFlyBallTemplate 0x2 0x4 0x0 0x0 0xd 0x150 + launchtask AnimTask_HorizontalShake 0x5 0x3 0x4 0x1 0x1A + delay 0x18 + launchtemplate gSunsteelStrikeRocksTemplate 0x2 0x2 0x0 0x0 @The rock particles mess up the fly animation + launchtemplate gSunsteelStrikeRocksTemplate 0x2 0x2 0x0 0x1 + launchtemplate gSunsteelStrikeRocksTemplate 0x2 0x2 0x0 0x2 + launchtemplate gSunsteelStrikeRocksTemplate 0x2 0x2 0x0 0x3 + waitforvisualfinish + unloadspritegfx ANIM_TAG_ROUND_SHADOW @fly + unloadspritegfx ANIM_TAG_AIR_WAVE_2 @black color + loadspritegfx ANIM_TAG_METEOR @superpower + loadspritegfx ANIM_TAG_GOLD_RING @beam + loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color + loadspritegfx ANIM_TAG_IMPACT @hit + playsewithpan SE_TAMA, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_BG | PAL_ATK), 3, 0, 15, 0 + waitforvisualfinish + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + call SunsteelStrikeBeam + stopsound + playsewithpan SE_W025B, SOUND_PAN_TARGET + launchtemplate gSunsteelStrikeSuperpowerTemplate 0x82 0x1 0x14 + delay 0x14 + launchtemplate gSunsteelStrikeRedImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x0 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x6 0x0 0x8 0x1 + waitforvisualfinish + unloadspritegfx ANIM_TAG_METEOR @superpower + unloadspritegfx ANIM_TAG_GOLD_RING @beam + unloadspritegfx ANIM_TAG_SMALL_RED_EYE @red color + unloadspritegfx ANIM_TAG_IMPACT @hit + loadspritegfx ANIM_TAG_SMALL_EMBER @FireSpreadEffect + call FireSpreadEffect + delay 0x4 + playsewithpan SE_W007, SOUND_PAN_TARGET + waitforvisualfinish + visible ANIM_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_BG | PAL_ATK), 3, 15, 0, 0 + waitforvisualfinish + blendoff + clearmonbg ANIM_TARGET + end +SunsteelStrikeBeam: + launchtemplate gSunsteelStrikeYellowBeamTemplate 0x82 0x1 0x14 + delay 0x1 + launchtemplate gSunsteelStrikeRedBeamTemplate 0x82 0x1 0x14 + delay 0x1 + return + + +Move_MOONGEIST_BEAM:: + loadspritegfx ANIM_TAG_MOON + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_ORBS @hyper beam + loadspritegfx ANIM_TAG_WATER_GUN @water gun colour + loadspritegfx ANIM_TAG_ASSURANCE_HAND @purple colour + setalpha 8, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRIC_ORBS, 0, 15, 15, 0x7FFF @White + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CIRCLE_OF_LIGHT, 0, 15, 15, 0x7FFC @Light Blue + waitforvisualfinish + playsewithpan SE_W025, SOUND_PAN_TARGET + launchtemplate gMoonSpriteTemplate 0x80 0x2 0x20 0x15 + launchtask AnimTask_AlphaFadeIn 0x3 0x5 0x0 0x10 0x10 0x0 0x1 + call MoongeistBeamCharge + call MoongeistBeamCharge + call MoongeistBeamCharge + call MoongeistBeamCharge + launchtemplate gGrowingChargeOrbSpriteTemplate 0x2 0x1 0x0 @;Charge circle + call MoongeistBeamCharge + delay 0x20 + createsoundtask SoundTask_LoopSEAdjustPanning, 0x7, 0xCC, 0xffc0, SOUND_PAN_TARGET, 0x1, 0xf, 0x0, 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 0x32 0x1 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, 0x1f, 0x10, 0, 0 + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x32 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0xb 0x6739 + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + call MoongeistBeamOrbs + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0xb 0x0 0x6739 + delay 0x1A + stopsound + launchtask AnimTask_MoonlightEndFade 0x2 0x0 + end +MoongeistBeamCharge: + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, 40, 0, 0, 0, 30, 10 @From right + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, -40, 0, 0, 0, 30, -10 @From left + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, -25, -40, 0, 0, 30, -20 @From top left + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, 25, -40, 0, 0, 30, 20 @From top right + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, 25, 20, 0, 0, 30, 20 @From bottom right + launchtemplate gMoongeistBeamChargeTemplate 0, 0x6, -25, 40, 0, 0, 30, -20 @From bottom left + delay 0x5 + return +MoongeistBeamOrbs: + launchtemplate gMoongeistBeamBlueOrbsTemplate 0x82 0x0 + launchtemplate gMoongeistBeamPurpleOrbsTemplate 0x82 0x0 + delay 0x1 + return + + +Move_TEARFUL_LOOK:: + loadspritegfx ANIM_TAG_SMALL_BUBBLES @tears + loadspritegfx ANIM_TAG_OPENING_EYE @eye + monbg SIDE_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x7DE0 + waitforvisualfinish + playsewithpan SE_W109, SOUND_PAN_TARGET + launchtemplate gOpeningEyeSpriteTemplate 0x5 0x4 0x0 0x0 0x1 0x0 + delay 0x35 + loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 0xC, 0x2 + delay 0x8 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x0 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x1 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x2 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x3 + delay 0x8 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x0 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x1 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x2 + launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x3 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x7DE0 + waitforvisualfinish + clearmonbg SIDE_TARGET + end + + +Move_ZING_ZAP:: + loadspritegfx ANIM_TAG_SPARK_2 @sparks + loadspritegfx ANIM_TAG_YELLOW_BALL @ball + loadspritegfx ANIM_TAG_THIN_RING @ring + loadspritegfx ANIM_TAG_SPARK_H @yellow color + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + monbg ANIM_TARGET + call ZingZapSparks1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x4 0x0 0x6 0x1 + delay 0xA + call ZingZapSparks2 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x4 0x0 0x6 0x1 + delay 0xA + call ZingZapSparks1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x4 0x0 0x6 0x1 + delay 0xA + call ZingZapSparks2 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x4 0x0 0x6 0x1 + delay 0xA + launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x18 0x6 0x1 0x5 + delay 0x4 + call ZingZapSparks1 + invisible 0x0 + launchtemplate gZingZapYellowBallTemplate 0x82, 0x3, 0x0 0x0 0xF + delay 0xA + call ZingZapSparks2 + delay 0x5 + stopsound + playsewithpan SE_W026, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtemplate gZingZapRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 + call ElectricityEffect + visible 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + end +ZingZapSparks1: + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + return +ZingZapSparks2: + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + return + + +Move_NATURES_MADNESS:: + loadspritegfx ANIM_TAG_ICE_CRYSTALS @small circles + loadspritegfx ANIM_TAG_THIN_RING @ring + loadspritegfx ANIM_TAG_SPARKLE_2 @stars + loadspritegfx ANIM_TAG_PINK_PETAL @pink + loadspritegfx ANIM_TAG_ICE_CHUNK @blue green + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge + loadspritegfx ANIM_TAG_TEAL_ALERT @charge particles + loadspritegfx ANIM_TAG_ECLIPSING_ORB @blue green + monbg ANIM_ATTACKER + setblends 0x80E + delay 0x1 + loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 0x10, 0x3 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xa 0xa 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xfff1 0x0 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x14 0xa 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x0 0xfff6 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xfff6 0xf 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x19 0x14 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xffec 0x14 0x19 0x0 + delay 0x4 + launchtemplate gNaturesMadnessPinkRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xc 0x0 0x19 0x0 + clearmonbg ANIM_ATTACKER + delay 0x1 + monbg ANIM_TARGET + waitforvisualfinish + launchtemplate gNaturesMadnessGrayRingTemplate 0x28 0x4 0x0 0x0 0x1 0x0 + playsewithpan SE_W215, SOUND_PAN_ATTACKER + delay 0xe + launchtemplate gNaturesMadnessGrayRingTemplate 0x28 0x4 0x0 0x0 0x1 0x0 + playsewithpan SE_W215, SOUND_PAN_ATTACKER + delay 0xe + launchtemplate gNaturesMadnessGrayRingTemplate 0x28 0x4 0x0 0x0 0x1 0x0 + playsewithpan SE_W215, SOUND_PAN_ATTACKER + waitforvisualfinish + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gNaturesMadnessPinkRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1F 0x8 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xa 0xa 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xfff1 0x0 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x14 0xa 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x0 0xfff6 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xfff6 0xf 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0x19 0x14 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xffec 0x14 0x19 0x1 + launchtemplate gNaturesMadnessPinkStarsTemplate 0x2 0x4 0xc 0x0 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xa 0xa 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xfff1 0x0 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x14 0xa 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x0 0xfff6 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xfff6 0xf 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0x19 0x14 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xffec 0x14 0x19 0x1 + launchtemplate gNaturesMadnessCrystalsTemplate 0x2 0x4 0xc 0x0 0x19 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + delay 0x5 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + + +Move_MULTI_ATTACK:: + loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy + loadspritegfx ANIM_TAG_CUT @cut + monbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_W082, SOUND_PAN_ATTACKER + call MultiAttackBuff + delay 0x8 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x7fff + launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 + call MultiAttackBuff + delay 0x8 + call MultiAttackBuff + waitforvisualfinish + delay 0xF + playsewithpan SE_W013, SOUND_PAN_TARGET + launchtemplate gCuttingSliceSpriteTemplate 0x2 0x3 0x28 0xffe0 0x0 + launchtemplate gCuttingSliceSpriteTemplate 0x2 0x3 0x28 0xffd0 0x0 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + end +MultiAttackBuff: + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xfff4 0x0 0x1 + return + + +Move_MIND_BLOWN:: + loadspritegfx ANIM_TAG_PINK_HEART @pink color + loadspritegfx ANIM_TAG_SMALL_BUBBLES @blue color + loadspritegfx ANIM_TAG_BLACEPHALON_HEAD @head + loadspritegfx ANIM_TAG_ORBS @circles + loadspritegfx ANIM_TAG_IMPACT @hit + monbg ANIM_TARGET + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + waitforvisualfinish + playsewithpan SE_RU_HYUU, SOUND_PAN_TARGET + launchtemplate gMindBlownHeadTemplate 0x82, 0x3, 0x0 0x0 0x25 + waitforvisualfinish + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0xf 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_DEF_PARTNER 0x2 0x0 0xf 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_ATK_PARTNER 0x2 0x0 0xf 0x1 + delay 0x1 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + launchtemplate gMindBlownBlueImpactTemplate 0x83 0x2 0x1 0x0 + launchtemplate gMindBlownPinkImpactTemplate 0x83 0x2 0x1 0x0 + call MindBlownBlueOrbs + delay 0x1 + call MindBlownPinkOrbs + delay 0x1 + call MindBlownBlueOrbs + delay 0x1 + call MindBlownPinkOrbs + delay 0x1 + call MindBlownBlueOrbs + delay 0x1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + blendoff + clearmonbg ANIM_TARGET + end +MindBlownBlueOrbs: + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0x0 0xFF90 0x8 @up + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0x5F 0xFF9D 0x8 @upper right + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0x73 0x0 0x8 @right + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0x4F 0x37 0x8 @lower right + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0x0 0x53 0x8 @down + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0xFFB0 0x43 0x8 @lower left + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0xFF60 0x0 0x8 @left + launchtemplate gMindBlownBlueOrbsTemplate 0x82 0x5 0x1 0x1 0xFFAA 0xFF94 0x8 @upper left + return +MindBlownPinkOrbs: + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0x2D 0xFF9D 0x8 @between up and upper right + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0xDF 0xFF9D 0x8 @between right and upper right + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0x9F 0x37 0x8 @between right and lower right + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0x1F 0x37 0x8 @between lower right and down + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0xFFE0 0x43 0x8 @between lower left and down + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0xFF60 0x43 0x8 @between left and lower left + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0xFF2A 0xFFAA 0x8 @between left and upper left + launchtemplate gMindBlownPinkOrbsTemplate 0x82 0x5 0x1 0x1 0xFFDA 0xFF94 0x8 @between up and upper left + return + + +Move_PLASMA_FISTS:: + loadspritegfx ANIM_TAG_SHOCK_3 @charge + loadspritegfx ANIM_TAG_SPARK_2 @ElectricityEffect + loadspritegfx ANIM_TAG_SPARK @shock wave + loadspritegfx ANIM_TAG_IMPACT @thunder punch + loadspritegfx ANIM_TAG_HANDS_AND_FEET @thunder punch + loadspritegfx ANIM_TAG_LIGHTNING @thunder punch + monbg ANIM_ATTACKER + setalpha 12, 8 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + waitforvisualfinish + launchtemplate gPlasmaFistsChargeTemplate 0x2 0x1 0x0 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x3 0x5c 0x1 + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + delay 0xA + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + delay 0xA + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + delay 0xA + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + delay 0xA + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + delay 0xA + call PlasmaFistSpark1 + delay 0xA + call PlasmaFistSpark2 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + launchtask AnimTask_ShockWaveProgressingBolt 0x5 0x0 + waitforvisualfinish + monbg ANIM_TARGET + call PlasmaFistsImpact + waitforvisualfinish + call PlasmaFistsImpact + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +PlasmaFistSpark1: + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0xb 0x5bff + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + return +PlasmaFistSpark2: + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + return +PlasmaFistsImpact: + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtemplate gFistFootSpriteTemplate 0x84 0x5 0x0 0x0 0x8 0x1 0x0 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + delay 0x1 + launchtask AnimTask_InvertScreenColor 0x2 0x3 0x101 0x101 0x101 + delay 0x1 + launchtemplate gLightningSpriteTemplate 0x82 0x2 0x0 0xffd0 + delay 0x1 + launchtemplate gLightningSpriteTemplate 0x2 0x2 0x0 0xfff0 + delay 0x1 + launchtemplate gLightningSpriteTemplate 0x2 0x2 0x0 0x10 + delay 0x1 + playsewithpan SE_W161B, SOUND_PAN_TARGET + launchtask AnimTask_InvertScreenColor 0x2 0x3 0x101 0x101 0x101 + delay 0x2 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + launchtemplate gBasicHitSplatSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x2 + return + + +Move_PHOTON_GEYSER:: + loadspritegfx ANIM_TAG_SHOCK_3 @charge + loadspritegfx ANIM_TAG_SPARK_2 @ElectricityEffect + loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color + loadspritegfx ANIM_TAG_THIN_RING @calm mind + loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color + loadspritegfx ANIM_TAG_ORBS @recover + monbg ANIM_ATTACKER + setalpha 12, 8 + launchtemplate gPhotonGeyserChargeTemplate 0x2 0x1 0x0 + call PhotonGeyserSparks1 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0xffd8 0xffd8 0x10 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0x0 0x28 0x10 + delay 0xA + call PhotonGeyserSparks2 + delay 0xA + call PhotonGeyserSparks1 + delay 0xA + call PhotonGeyserSparks2 + delay 0xA + call PhotonGeyserSparks1 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0x0 0xffd8 0x10 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0x28 0x14 0x10 + delay 0xA + call PhotonGeyserSparks2 + delay 0xA + call PhotonGeyserSparks1 + delay 0xA + call PhotonGeyserSparks2 + delay 0xA + call PhotonGeyserSparks1 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0xffd8 0x0 0x10 + launchtemplate gPowerAbsorptionOrbSpriteTemplate 0x2 0x3 0x28 0x0 0x10 + delay 0xA + call PhotonGeyserSparks2 + delay 0xA + call PhotonGeyserSparks1 + delay 0xA + call PhotonGeyserSparks2 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x0 + clearmonbg ANIM_ATTACKER + playsewithpan SE_W086, SOUND_PAN_ATTACKER + unloadspritegfx ANIM_TAG_ORBS @recover + unloadspritegfx ANIM_TAG_SHOCK_3 @charge + loadspritegfx ANIM_TAG_YELLOW_BALL @confuse ray (for zap cannon) + loadspritegfx ANIM_TAG_BLACK_BALL_2 @zap cannon + loadspritegfx ANIM_TAG_AIR_WAVE_2 @white/gray color + launchtemplate gPhotonGeyserWhiteRingTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 + launchtemplate gPhotonGeyserZapBallTemplate 0x83 0x6 0xa 0x0 0x0 0x0 0x1e 0x0 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x0 0x28 0x0 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x40 0x28 0x1 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e 0x80 0x28 0x0 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x10 0x1e SOUND_PAN_ATTACKER 0x28 0x2 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x20 0x28 0x0 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0x60 0x28 0x1 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 + launchtemplate gPhotonGeyserZapCannonSparkTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 + waitforvisualfinish + monbg ANIM_TARGET + launchtemplate gPhotonGeyserYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x5 0x1 + playsewithpan SE_W153, SOUND_PAN_ATTACKER + unloadspritegfx ANIM_TAG_YELLOW_BALL @confuse ray (for zap cannon) + unloadspritegfx ANIM_TAG_BLACK_BALL_2 @zap cannon + unloadspritegfx ANIM_TAG_AIR_WAVE_2 @white/gray color + @Shoot beam to the sky + loadspritegfx ANIM_TAG_STRAIGHT_BEAM + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x6 0x0 0x10 0x43FF @Light yellow + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x4 0x0 0x60 0x1 + panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 + call PhotonGeyserBeam + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x10 0x0 0x43FF @Light yellow + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end +PhotonGeyserSparks1: + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gThinRingShrinkingSpriteTemplate 0x28 0x4 0x0 0x0 0x0 0x0 + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + return +PhotonGeyserSparks2: + playsewithpan SE_W268, SOUND_PAN_ATTACKER + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gPhotonGeyserSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + return +PhotonGeyserBeam: + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, 19, ANIM_TARGET, 180, 2, 6 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, 3, ANIM_TARGET, 180, 2, 5 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, -13, ANIM_TARGET, 180, 2, 4 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, -29, ANIM_TARGET, 180, 2, 3 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, -45, ANIM_TARGET, 180, 2, 2 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, -61, ANIM_TARGET, 180, 2, 1 + delay 0x1 + launchtemplate gPhotonGeyserBeam 0x83, 0x6, 0, -77, ANIM_TARGET, 180, 2, 0 + return + + +Move_DOUBLE_IRON_BASH:: + loadspritegfx ANIM_TAG_GUST + loadspritegfx ANIM_TAG_IMPACT + loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 0x1c, 0x2 + launchtask AnimTask_MetallicShine 0x5 0x3 0x0 0x0 0x0 + waitforvisualfinish + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 0x14, 0x2 + launchtask AnimTask_TranslateMonElliptical 0x2 0x5 0x0 0xc 0x4 0x1 0x4 + launchtask AnimTask_AnimateGustTornadoPalette 0x5 0x2 0x1 0x46 + launchtemplate gGustToTargetSpriteTemplate 0x2 0x5 0xffe7 0x0 0x0 0x0 0x0 @wing attack + launchtemplate gGustToTargetSpriteTemplate 0x2 0x5 0x19 0x0 0x0 0x0 0x0 @wing attack + delay 0x18 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x18 0x0 0x0 0x9 + delay 0x11 + launchtemplate gBasicHitSplatSpriteTemplate 0x84, 0x4, 0x0 0x0 0x1 0x1 + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET 0xffe0 0x0 0x0 0x3 + waitforvisualfinish + playsewithpan SE_W013, SOUND_PAN_TARGET + waitforvisualfinish + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0xb + waitforvisualfinish + delay 0x3 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x7 + clearmonbg SIDE_TARGET + blendoff + end + +@@@@@@@@@@@@@@@@@@@@@@@ GEN 8 @@@@@@@@@@@@@@@@@@@@@@@ +Move_DYNAMAX_CANNON:: + goto Move_HYPER_BEAM + + +Move_SNIPE_SHOT:: + loadspritegfx ANIM_TAG_IMPACT_2 + loadspritegfx ANIM_TAG_LEER + launchtask AnimTask_BlendBattleAnimPal 10 5 PAL_BG 0 0 16, 0 @;Black + waitforvisualfinish + launchtemplate gLeerSpriteTemplate 0x82, 2 0x18 -12 + playsewithpan SE_W197, SOUND_PAN_ATTACKER + waitforvisualfinish + delay 0x20 + playsewithpan SE_W202, SOUND_PAN_TARGET + launchtemplate gSnipeShotBallTemplate 0x82, 3, 0 0 16, + waitforvisualfinish + launchtask AnimTask_ShakeMon2 2 5 1 4 0 8, 1 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 10 5 PAL_BG 0 16, 0 0 @;Black + waitforvisualfinish + end + + +Move_JAW_LOCK:: + loadspritegfx ANIM_TAG_SHARP_TEETH + loadspritegfx ANIM_TAG_IMPACT + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SHARP_TEETH, 0, 10, 10, 0x0B1D @Light orange + monbg ANIM_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x0 @Black + waitforvisualfinish + playsewithpan SE_W044, SOUND_PAN_TARGET + launchtemplate gJawLockTeethTemplate 0x2 0x7 0xffe0 0xffe0 0x1 0x333 0x333 0xa 15 + launchtemplate gJawLockTeethTemplate 0x2 0x7 0x20 0x20 0x5 0xfccd 0xfccd 0xa 15 + delay 0xa + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 + launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0xA 0x2 + waitforvisualfinish + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x0 @;Black + waitforvisualfinish + clearmonbg ANIM_TARGET + delay 0x1 + end + + +Move_STUFF_CHEEKS:: + loadspritegfx ANIM_TAG_BERRY_NORMAL + loadspritegfx ANIM_TAG_SHARP_TEETH + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_SPARKLE_2 + playsewithpan SE_W118, 0xc0 + launchtemplate gFloatingBerryTemplate 1 0x1 0x0 + delay 0x45 + launchtask AnimTask_IsTargetPlayerSide 0x2 0x0 + jumpargeq 0x7 0x1 BERRYEAT_ON_PLAYER +BerryEatingOpponent: + call BiteOpponent + delay 0x10 + call BiteOpponent + delay 0xA + goto POST_BERRY_EAT +BERRYEAT_ON_PLAYER: + call BitePlayer + delay 0x10 + call BitePlayer + delay 0xA +POST_BERRY_EAT: + playsewithpan SE_REAPOKE, 0xc0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 0x2 0x3 0x7 0x0 0x67f1 + launchtemplate gThinRingExpandingSpriteTemplate 3 0x4 0x0 0x0 0x0 0x0 + waitforvisualfinish + end +BitePlayer: + playsewithpan SE_W044, 0x3f + launchtemplate gSharpTeethSpriteTemplate 2 0x6 0x27 0xffD0 0x0 0x0 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 2 0x6 0x27 0x10 0x4 0x0 0xfccd 0xa + return +BiteOpponent: + playsewithpan SE_W044, 0x3f + launchtemplate gSharpTeethSpriteTemplate 2 0x6 0xffDF 0xffD0 0x0 0x0 0x333 0xa + launchtemplate gSharpTeethSpriteTemplate 2 0x6 0xffDF 0x10 0x4 0x0 0xfccd 0xa + return + + +Move_NO_RETREAT:: + loadspritegfx ANIM_TAG_SMALL_EMBER + loopsewithpan SE_W172, SOUND_PAN_ATTACKER 0x7 0x12 + launchtemplate gNoRetreatFlameTemplate 2, 0x5 ANIM_ATTACKER, 20, 10, 0xA0, 0 + launchtemplate gNoRetreatFlameTemplate 2, 0x5 ANIM_ATTACKER, -20, 10, 0xA0, 0 + launchtask AnimTask_TeeterDanceMovement 0x5 0x0 + waitforvisualfinish + end + + +Move_TAR_SHOT:: + loadspritegfx ANIM_TAG_POISON_BUBBLE + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_POISON_BUBBLE, 0, 15, 15, 0 @Black + monbg ANIM_TARGET + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 + playsewithpan SE_W145C, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 + playsewithpan SE_W145C, SOUND_PAN_ATTACKER + delay 0xf + launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0xa 0x1 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0x10 0x0 @;Black + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xC 0x32 + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d + playsewithpan SE_W145 SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_MAGIC_POWDER:: + loadspritegfx ANIM_TAG_POISON_POWDER + loadspritegfx ANIM_TAG_WATER_GUN + loopsewithpan SE_W234, SOUND_PAN_ATTACKER 0xE 0x8 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe2 0xffea 0x75 0x50 0x5 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xa 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xffe7 0xffea 0x75 0x70 0x5 0x3 + delay 0xf + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x60 0x5 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x0 0xffea 0x75 0x45 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 + delay 0x1e + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff1 0xffea 0x75 0x70 0x5 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xf 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x60 0x7 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0xfffb 0xffea 0x75 0x5a 0xfff8 0x0 + delay 0x14 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0xfff6 0xffea 0x75 0x50 0xfffb 0x1 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x0 0xffea 0x75 0x59 0x5 0x2 + launchtemplate gMagicPowderBluePowderTemplate 0x82 0x6 0x14 0xffea 0x75 0x70 0xfff8 0x2 + launchtemplate gPoisonPowderParticleSpriteTemplate 0x82 0x6 0x5 0xffea 0x75 0x50 0x5 0x1 + waitforvisualfinish + playsewithpan SE_W048, SOUND_PAN_TARGET + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffa 0xfffa 0xf 0x1 0x1 + waitforvisualfinish + end + + +Move_DRAGON_DARTS:: + loadspritegfx ANIM_TAG_DREEPY + loadspritegfx ANIM_TAG_EXPLOSION + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER + launchtemplate gDreepyMissileTemplate 0x82, 0x3, 0x0 0x0 0x19 + delay 0x19 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x10 0x1 + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0x0 0x0 0x1 0x1 + waitforvisualfinish + end + + +Move_TEA_TIME:: + goto Move_MILK_DRINK + + +Move_OCTOLOCK:: + loadspritegfx ANIM_TAG_TENDRILS + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_TENDRILS, 0, 12, 12, 0x3D98 @Pinkish Red + loopsewithpan SE_W010, SOUND_PAN_TARGET 0x6 0x4 + launchtemplate gConstrictBindingSpriteTemplate 0x84, 0x4, 0x0 0x10 0x0 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0x0 0x0 0x2 + launchtemplate gConstrictBindingSpriteTemplate 0x82, 0x4, 0x0 0x8 0x1 0x2 + delay 0x7 + launchtemplate gConstrictBindingSpriteTemplate 0x83 0x4 0x0 0xfff8 0x1 0x2 + delay 0x8 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + delay 0x14 + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0x8 0x1f + playsewithpan SE_W020, SOUND_PAN_TARGET + setarg 0x7 0xffff + waitforvisualfinish + end + + +Move_BOLT_BEAK:: + loadspritegfx ANIM_TAG_HORN_HIT + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_SPARK_2 + loadspritegfx ANIM_TAG_ELECTRICITY + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRICITY, 0, 12, 12, 0x76E1 @Blue Electricity + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HORN_HIT, 0, 12, 12, 0x079D @Yellow + call BoltBeakSparks + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff + launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x2 0x4 0x4 + delay 0x4 + launchtemplate gHealingBlueStarSpriteTemplate 0x84 0x3 0x8 0x8 0xa + waitforvisualfinish + launchtemplate gFlashingHitSplatSpriteTemplate 0x83 0x4 0x0 0x0 0x1 0x1 + playsewithpan SE_W030, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x4 0xffe1 0x2 0x0 0x6 0x5bff + call ElectricityEffect + waitforvisualfinish + end +BoltBeakSparks: + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 + delay 0x0 + launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 + delay 0x0 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x5bff + delay 0xa + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x5 0x5 0x5bff + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0x64 0x18 0x3c 0xa 0x0 0x1 0x0 + launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0xaa 0x18 0x2a 0xb 0x0 0x1 0x1 + delay 0x0 + launchtemplate gBoltBeakBlueSparkTemplate 0x0 0x7 0xee 0x18 0xa5 0xa 0x0 0x1 0x1 + delay 0x0 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x0 0x0 0x76E1 + delay 0x14 + launchtask AnimTask_BlendColorCycle 0x2 0x6 0x3 0xffe1 0x1 0x4 0x4 0x76E1 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x0 0x14 0x0 0x0 + launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x40 0x14 0x1 0x0 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc 0x80 0x14 0x0 0x0 + launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x0 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0x20 0x14 0x0 0x0 + launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0x60 0x14 0x1 0x0 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0xa0 0x14 0x0 0x0 + launchtemplate gBoltBeakBlueFlashingSparkTemplate 0x4 0x8 0x0 0x0 0x10 0xc 0xe0 0x14 0x2 0x0 + delay 0x4 + return + + +Move_FISHIOUS_REND:: + loadspritegfx ANIM_TAG_SHARP_TEETH @Teeth + loadspritegfx ANIM_TAG_SMALL_BUBBLES + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SHARP_TEETH, 0, 10, 10, 0x726A @Blue Teeth + playsewithpan SE_W127, SOUND_PAN_TARGET + launchtemplate gFishiousRendTeethTemplate, 0x80, 0x2, 50, 4 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x4 0x0 0xC 0x2 + call FishousRendBubbles + waitforvisualfinish + end +FishousRendBubbles: + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xF 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xffec 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xffec 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff1 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfff6 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xfffb 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x0 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0x5 0x0 + delay 0x2 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 + launchtemplate gSmallDriftingBubblesSpriteTemplate 0x4 0x2 0xA 0x0 + return + + +Move_COURT_CHANGE:: + goto Move_TRICK_ROOM + + +Move_CLANGOROUS_SOUL:: + loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy + loadspritegfx ANIM_TAG_WATER_ORB @blue + loadspritegfx ANIM_TAG_POISON_BUBBLE @purple + loadspritegfx ANIM_TAG_AIR_WAVE_2 @white/grey + loadspritegfx ANIM_TAG_SPARKLE_2 @stars + launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 + call ClangorousSoulStarBuffEffect + call ClangorousSoulStarBuffEffect + call ClangorousSoulStarBuffEffect + waitforvisualfinish + loadspritegfx ANIM_TAG_VERTICAL_HEX @red + loadspritegfx ANIM_TAG_HORSESHOE_SIDE_FIST @fist + createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0xfff0, 0, 0, 0, 10, ANIM_ATTACKER, RIGHT_FIST, 1 + createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0x10, 0, 0, 0, 10, ANIM_ATTACKER, LEFT_FIST, 1 + playsewithpan SE_W233B, SOUND_PAN_TARGET + waitforvisualfinish + loadspritegfx ANIM_TAG_THIN_RING @ring + playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + launchtemplate gClangorousSoulRedRingTemplate 0x3 0x4 0x0 0x0 0x0 0x0 + waitforvisualfinish + end +ClangorousSoulStarBuffEffect: + playsewithpan SE_W082, SOUND_PAN_ATTACKER + launchtemplate gClangorousSoulBlueBuffTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 + delay 0x4 + launchtemplate gEndureEnergySpriteTemplate 0x2 0x4 0x0 0xe 0x1c 0x1 + delay 0x4 + launchtemplate gClangorousSoulPurpleBuffTemplate 0x2 0x4 0x0 0xfffb 0xa 0x2 + launchtemplate gGrantingStarsSpriteTemplate 0x2 0x6 0xfff1 0x0 0x0 0x0 0x20 0x3c + delay 0x4 + launchtemplate gClangorousSoulWhiteBuffTemplate 0x2 0x4 0x0 0x1c 0x1a 0x3 + delay 0x4 + launchtemplate gGrantingStarsSpriteTemplate 0x2 0x6 0xc 0xfffb 0x0 0x0 0x20 0x3c + return + + +Move_BODY_PRESS:: + loadspritegfx ANIM_TAG_ROUND_SHADOW @fly and bounce animation + loadspritegfx ANIM_TAG_GRAY_SMOKE @smoke + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ROUND_SHADOW, 0, 0xD, 0xD, 0x1E5D @Orange + playsewithpan SE_W036, SOUND_PAN_ATTACKER + launchtemplate gVerticalDipSpriteTemplate 0x2 0x3 0x6 0x1 0x0 + delay 0x7 + launchtemplate gFlyBallUpSpriteTemplate 0x2 0x4 0x0 0x0 0xd 0x150 @Fly up + waitforvisualfinish + delay 0x2F + launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 @Bounce down + delay 0x2 + playsewithpan SE_W107, SOUND_PAN_ATTACKER + launchtask AnimTask_SquishTarget 0x2 0x0 + waitforvisualfinish + end + + +Move_DECORATE:: + end @to do: + + +Move_DRUM_BEATING:: + loadspritegfx ANIM_TAG_MUSIC_NOTES + loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE + loadspritegfx ANIM_TAG_ROOTS + loadspritegfx ANIM_TAG_IMPACT + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_MUSIC_NOTES, 0, 0xD, 0xD, 0x03AC @Green + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 12, 8 + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x0 0x0 0x0 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + delay 0xf + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x1 0x1 0x0 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + delay 0xf + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x3 0x3 0x80 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x2 0x0 0x80 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumRight + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x0 0x1 0x1 0x0 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + delay 0x7 + call BellyDrumLeft + launchtemplate gSlowFlyingMusicNotesSpriteTemplate 0x2 0x4 0x1 0x0 0x3 0x0 + playsewithpan SE_W187, SOUND_PAN_ATTACKER + launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0x10 0x6 0x0 0x3 0x50 + playsewithpan SE_W010, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gFrenzyPlantRootSpriteTemplate 0x2 0x6 0x55 0xfff0 0xfffa 0x0 0x2 0x4b + playsewithpan SE_W010, SOUND_PAN_TARGET + delay 0x5 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0xfff6 0x1 0x3 + playsewithpan SE_W003, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x3 0x5 ANIM_TARGET 0x8 0x0 0x14 0x1 + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0x8 0x1 0x3 + playsewithpan SE_W003, SOUND_PAN_TARGET + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xa 0xfffd 0x1 0x2 + playsewithpan SE_W003, SOUND_PAN_TARGET + delay 0x3 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfffd 0x1 0x1 0x2 + playsewithpan SE_W003, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff6 0x1 0x1 0x1 + playsewithpan SE_W003, SOUND_PAN_TARGET + delay 0x2 + launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0xa 0x1 0x1 + playsewithpan SE_W003, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + + +Move_SNAP_TRAP:: + end @ to do: + + +Move_PYRO_BALL:: + loadspritegfx ANIM_TAG_FLAT_ROCK + loadspritegfx ANIM_TAG_SMALL_EMBER + playsewithpan SE_DANSA, SOUND_PAN_ATTACKER @;Hop + launchtemplate gPyroBallRockTemplate, 2, 0x3, 0, 0, 0 + delay 0x19 + playsewithpan SE_DANSA, SOUND_PAN_ATTACKER @;Hop + delay 0x19 + playsewithpan SE_W172, SOUND_PAN_TARGET + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x3 0x0 0x7 0x043D + launchtemplate gPyroBallBurningRockTemplate, 2, 0x3, 0, 0, 0 + delay 0x19 + playsewithpan SE_W172, SOUND_PAN_TARGET + delay 0x19 + playsewithpan SE_W172, SOUND_PAN_TARGET + launchtemplate gPyroBallFlamesUpTemplate, 2, 0x3, 0, 0, 1 + delay 0x19 + playsewithpan SE_W172B, SOUND_PAN_TARGET + launchtemplate gPyroBallEmberBallTemplate, 2, 0x6, 0, 10, 0, 5, 20, -20 + waitforvisualfinish + launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xc 0x1f + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 + call FireSpreadEffect + delay 0x20 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x043D + waitforvisualfinish + end + + +Move_BEHEMOTH_BLADE:: + goto Move_SACRED_SWORD + + +Move_BEHEMOTH_BASH:: + goto Move_SUNSTEEL_STRIKE + + +Move_AURA_WHEEL:: + loadspritegfx ANIM_TAG_IMPACT + loadspritegfx ANIM_TAG_SPARK + loadspritegfx ANIM_TAG_SPARK_2 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK, 0x0, 0xC, 0xC, 0x303B @Pinkish-Red Electricity + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK_2, 0x0, 0xC, 0xC, 0x76E1 @Blue Electricity + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0x0, 0xA, 0xA, 0x303B @Pinkish-Red + setalpha 12, 8 + monbg SIDE_TARGET + monbgprio_2A 0x1 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x0 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x4 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x8 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0xc + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x10 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelRedElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x14 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + delay 0x2 + launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x18 + playsewithpan SE_W085B, SOUND_PAN_ATTACKER + waitforvisualfinish + launchtemplate gSlideMonToOffsetSpriteTemplate 2, 0x5 0x0 0x18 0x0 0x0 0x6 + delay 0x4 + playsewithpan SE_W161B, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x17 0x1 + launchtemplate gBasicHitSplatSpriteTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK_2, 2, 12, 0, 0x76E1 @Revert blue Electricity + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x0 0x28 0x0 0x8003 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x40 0x28 0x1 0x8003 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0x80 0x28 0x0 0x8003 + launchtemplate gSparkElectricityFlashingSpriteTemplate 0x84, 0x8 0x0 0x0 0x30 0x2c 0xc0 0x28 0x2 0x8003 + delay 0x7 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 2, 0x3 0x0 0x0 0x9 + waitforvisualfinish + clearmonbg SIDE_TARGET + blendoff + end + + +Move_BREAKING_SWIPE:: + loadspritegfx ANIM_TAG_IMPACT @hits + loadspritegfx ANIM_TAG_SPARK_2 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, 0x001F @Red + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK_2, 0, 12, 12, 0x001F @Red + monbg ANIM_TARGET + setalpha 12, 8 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0xffe0 0xfff0 0x1 0x1 + launchtemplate gBreakingSwipeCenteredElectricity 0x82, 0x4, 0x5 0x0 0x5 0x0 + playsewithpan SE_W004, SOUND_PAN_TARGET + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0x15 0x1 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x0 0x3 0x15 0x1 + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x1 + launchtemplate gBreakingSwipeCenteredElectricity 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x1 + launchtemplate gBreakingSwipeCenteredElectricity 0x82, 0x4, 0xfff8 0x8 0x5 0x2 + playsewithpan SE_W004, SOUND_PAN_TARGET + delay 0x4 + launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x1 + launchtemplate gBreakingSwipeCenteredElectricity 0x82, 0x4, 0xffec 0xf 0x5 0x1 + playsewithpan SE_W004, SOUND_PAN_TARGET + waitsound + waitforvisualfinish + blendoff + clearmonbg ANIM_TARGET + end + + +Move_BRANCH_POKE:: + loadspritegfx ANIM_TAG_BRANCH + loadspritegfx ANIM_TAG_IMPACT + playsewithpan SE_W029, SOUND_PAN_ATTACKER + launchtemplate gBranchPokeBranchTemplate, 0x82, 0x3 0x0 0x0 0x25 + waitforvisualfinish + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x5 0x0 0x6 0x1 + launchtemplate gFlashingHitSplatSpriteTemplate, 0x83, 0x4 0x0 0x0 0x1 0x1 + playsewithpan SE_W030, SOUND_PAN_TARGET + waitforvisualfinish + end + + +Move_OVERDRIVE:: + loadspritegfx ANIM_TAG_THIN_RING + loadspritegfx ANIM_TAG_SPARK_2 + loadspritegfx ANIM_TAG_ELECTRICITY + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRICITY, 0, 12, 12, 0x76E1 @Blue Electricity + call BoltBeakSparks + waitforvisualfinish + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_THIN_RING, 0, 12, 12, 0x17BF @Yellow Electricity + call OverdriveRings + delay 0x8 + call OverdriveRings + delay 0x10 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_THIN_RING, 0, 0, 12, 0x76E1 @Blue Electricity + waitforvisualfinish + end +OverdriveRings: + playsewithpan SE_W085, SOUND_PAN_TARGET + launchtemplate gSimplePaletteBlendSpriteTemplate 0x2 0x5 0x1f 0x3 0x8 0x0 0x3ff + launchtask AnimTask_ScaleMonAndRestore 0x5 0x5 0xfffb 0xfffb 0x5 0x0 0x0 + launchtemplate gHyperVoiceRingSpriteTemplate 0x0 0x7 0x2d 0x0 0x0 0x0 0x0 0x0 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x6 0x1 + launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x6 0x1 + launchtask AnimTask_ShakeBattleTerrain 0x2 0x4 0x1 0x0 0x6 0x1 + launchtask SoundTask_WaitForCry 0x5 0x0 + return + + +Move_APPLE_ACID:: + loadspritegfx ANIM_TAG_APPLE + loadspritegfx ANIM_TAG_POISON_BUBBLE + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_POISON_BUBBLE, 0, 12, 12, 0x061D @Orange + playsewithpan SE_W118, SOUND_PAN_ATTACKER + launchtemplate gAppleAcidFloatingAppleTemplate 0xc 0x1 0x0 + delay 0x30 + monbg ANIM_TARGET + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x0 0x0 + playsewithpan SE_W145C, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0x18 0x0 + playsewithpan SE_W145C, SOUND_PAN_ATTACKER + delay 0x5 + launchtemplate gAppleAcidLaunchTemplate 0x82, 0x6 0x14 0x0 0x28 0x1 0xffe8 0x0 + playsewithpan SE_W145C, SOUND_PAN_ATTACKER + delay 0xf + launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0xa 0x1 + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x0 0xffea 0x0 0xf 0x37 + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xf 0xffe5 0x0 0xf 0x32 + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xfff1 0xffef 0x0 0xa 0x2d + playsewithpan SE_W145, SOUND_PAN_TARGET + delay 0xa + launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0x1b 0xffea 0x0 0xf 0x32 + playsewithpan SE_W145, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg ANIM_TARGET + end + + +Move_GRAV_APPLE:: + loadspritegfx ANIM_TAG_APPLE + fadetobg BG_IN_AIR + waitbgfadeout + launchtask AnimTask_StartSlidingBg 0x5 0x4 0x0 0xf800 0x0 0xffff + waitbgfadein + call SmallAppleShower + call SmallAppleShower + launchtemplate gGravAppleLargeApple, 0x82, 0x4, 0x0, 0x3c, 4, ANIM_TARGET + delay 0x7 + playsewithpan SE_W070, SOUND_PAN_TARGET + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET 0 0x15 0x0 0x4 + delay 0x30 + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x10 + waitforvisualfinish + call UnsetPsychicBg + end +SmallAppleShower: + launchtemplate gGravAppleSmallApple, 0x82, 0x4, 35, 0x3c, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, -30, 0x44, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, 27, 0x37, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, -20, 0x32, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, 33, 0x3a, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, -12, 0x3a, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, 19, 0x3c, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, -38, 0x3a, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, 5, 0x3c, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + launchtemplate gGravAppleSmallApple, 0x82, 0x4, -23, 0x28, 4, ANIM_TARGET + playsewithpan SE_RU_HYUU, SOUND_PAN_ATTACKER @;Falling sound + delay 0x2 + return + + +Move_SPIRIT_BREAK:: + goto Move_PSYCHIC + + +Move_STRANGE_STEAM:: + loadspritegfx ANIM_TAG_PINK_CLOUD + loadspritegfx ANIM_TAG_FINGER + loadspritegfx ANIM_TAG_WATER_GUN @blue colour + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FINGER, 0, 10, 10, 0x4798 @Green + monbg SIDE_TARGET + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 0x4, 0xA + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0x2A 0x1 + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + call StrangeSteamCloud + waitforvisualfinish + clearmonbg SIDE_TARGET + end +StrangeSteamCloud: + launchtemplate gStrangeSteamPinkCloudTemplate 0x82 0x5 0xf 0xf 0x14 0x0 0x0 + launchtemplate gStrangeSteamGreenCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xa 0x5 + launchtemplate gStrangeSteamPinkCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xfff6 0xfffb + launchtemplate gStrangeSteamGreenCloudTemplate 0x82 0x5 0xf 0xf 0x14 0x14 0xa + launchtemplate gStrangeSteamBlueCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xffec 0xfff6 + delay 0x2 + return + + +Move_LIFE_DEW:: + loadspritegfx ANIM_TAG_WATER_DROPLET + loadspritegfx ANIM_TAG_BLUE_STAR + monbg SIDE_ATTACKER + launchtemplate gLifeDewDropletTemplate, 2, 0x3, 0, 0, ANIM_ATTACKER + launchtemplate gLifeDewDropletTemplate, 2, 0x3, 0, 0, ANIM_ATK_PARTNER + delay 0x15 + playsewithpan SE_W145, SOUND_PAN_ATTACKER + waitforvisualfinish + playsewithpan SE_W071B, SOUND_PAN_ATTACKER + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 0, -5, ANIM_ATTACKER, FALSE + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 0, -5, ANIM_ATK_PARTNER, FALSE + delay 0x7 + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, 10, ANIM_ATTACKER, FALSE + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, 10, ANIM_ATK_PARTNER, FALSE + delay 0x7 + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, -15, ANIM_ATTACKER, FALSE + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, -15, -15, ANIM_ATK_PARTNER, FALSE + delay 0x7 + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 10, -5, ANIM_ATTACKER, FALSE + launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 10, -5, ANIM_ATK_PARTNER, FALSE + delay 0x7 + waitforvisualfinish + clearmonbg SIDE_ATTACKER + end + + +Move_OBSTRUCT:: + loadspritegfx ANIM_TAG_NOISE_LINE @growl + loadspritegfx ANIM_TAG_PROTECT + loadspritegfx ANIM_TAG_OBSTRUCT_CROSS + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_NOISE_LINE, 0, 10, 10, 0 @Black + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_PROTECT, 0, 10, 10, 0 @Black + launchtask SoundTask_PlayDoubleCry 0x2 0x2 ANIM_ATTACKER 0xff + call RoarEffect + waitforvisualfinish + delay 0x10 + monbg SIDE_ATTACKER + monbgprio_28 ANIM_ATTACKER + waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 0x10 + launchtemplate gProtectSpriteTemplate, 2, 0x3 0x18 0x0 0x5a @;Protect + waitforvisualfinish + launchtemplate gObstructCrossTemplate, 2, 0x4 0x0 0x0 0x1 0x24 + playsewithpan SE_W043, SOUND_PAN_TARGET + waitforvisualfinish + clearmonbg SIDE_ATTACKER + end + + +Move_FALSE_SURRENDER:: + goto Move_FEINT + + +Move_METEOR_ASSAULT:: + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + loadspritegfx ANIM_TAG_METEOR + loadspritegfx ANIM_TAG_EXPLOSION + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRIC_ORBS, 0, 12, 12, 0x0B1D @Light orange + createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 1, 0, 9, 0x0B1D @Light orange + launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x30 0x0 0x4 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + waitforvisualfinish + invisible ANIM_ATTACKER + launchtemplate gGrowingSuperpowerTemplate, 0x83, 0x1 0x0 + playsewithpan SE_W207, SOUND_PAN_ATTACKER + delay 0xF + createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_ATK | PAL_BG), 1, 0x10, 0x10, 0x7FFF @Screen flash white + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x5 0x20 0x1 + call BasicExplosion + call BasicExplosion + waitforvisualfinish + visible ANIM_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_ATK | PAL_BG), 1, 0x10, 0, 0x7FFF @Screen revert from white + waitforvisualfinish + end +BasicExplosion: + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0x0 0x0 0x1 0x1 + delay 0x3 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0x18 0xffe8 0x1 0x1 + delay 0x3 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0xfff0 0x10 0x1 0x1 + delay 0x3 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0xffe8 0xfff4 0x1 0x1 + delay 0x3 + playsewithpan SE_W120, SOUND_PAN_TARGET + launchtemplate gExplosionSpriteTemplate, 0x83, 0x4 0x10 0x10 0x1 0x1 + return + + +Move_ETERNA_BEAM:: + goto Move_HYPER_BEAM + + +Move_STEEL_BEAM:: + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + loadspritegfx ANIM_TAG_GUST + loadspritegfx ANIM_TAG_SPIKES + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x6B59 @To gray + launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x14 0x0 0x2 + playsewithpan SE_W268, SOUND_PAN_ATTACKER + delay 0x14 + loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 0x9, 15 + launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 72 0x1 + call SteelBeamShards + call SteelBeamShards + launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET, -30, 0x0 TRUE 145 + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + call SteelBeamShards + waitforvisualfinish + launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x6 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x6B59 @From gray + waitforvisualfinish + end +SteelBeamShards: + launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0x0 0x0 + launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xa 0x5 + launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xfff6 0xfffb + delay 0x2 + launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0x14 0xa + launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xffec 0xfff6 + delay 0x2 + +@@@@@@@@@@@@@@@@@@@@@@@ GEN 1-3 @@@@@@@@@@@@@@@@@@@@@@@ Move_NONE: Move_MIRROR_MOVE: Move_POUND: @@ -9044,7 +17090,6 @@ Move_FOLLOW_ME: loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3 end -Move_MAGNETIC_FLUX: Move_CHARGE: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @@ -11768,7 +19813,7 @@ Move_CRABHAMMER: end Move_SURF: - createvisualtask AnimTask_CreateSurfWave, 2, FALSE + createvisualtask AnimTask_CreateSurfWave, 2, SURF_PALETTE_SURF delay 24 panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish @@ -14065,7 +22110,7 @@ ArmThrustLeft: Move_MUDDY_WATER: panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, TRUE + createvisualtask AnimTask_CreateSurfWave, 2, SURF_PALETTE_MUDDY_WATER waitforvisualfinish end @@ -15609,6 +23654,7 @@ WaterBubblesEffectLong: ElectricityEffect: playsewithpan SE_W085B, SOUND_PAN_TARGET +ElectricityEffectNoSound: createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1 diff --git a/include/battle_anim.h b/include/battle_anim.h index 5189c82112..ce85a7163f 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -50,6 +50,7 @@ extern u8 gBattleAnimAttacker; extern u8 gBattleAnimTarget; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u8 gAnimCustomPanning; +extern u16 gAnimMoveIndex; void ClearBattleAnimationVars(void); void DoMoveAnim(u16 move); @@ -207,6 +208,10 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); // battle_anim_ground.c void AnimTask_HorizontalShake(u8 taskId); +void AnimMudSportDirt(struct Sprite *sprite); +void AnimDirtScatter(struct Sprite *sprite); +void AnimMudSportDirtRising(struct Sprite *sprite); +extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[]; // battle_anim_special.c void sub_8172EF0(u8 battler, struct Pokemon *mon); @@ -225,29 +230,110 @@ void AnimParticleBurst(struct Sprite *); void AnimPowerAbsorptionOrb(struct Sprite* sprite); void AnimNeedleArmSpike(struct Sprite *); void AnimTask_CompressTargetHorizontally(u8 taskId); +void AnimSporeParticle(struct Sprite* sprite); +void AnimAbsorptionOrb(struct Sprite* sprite); +void AnimPetalDanceSmallFlower(struct Sprite* sprite); +void AnimPetalDanceBigFlower(struct Sprite* sprite); +void AnimEndureEnergy(struct Sprite* sprite); +void AnimMimicOrb(struct Sprite* sprite); +void AnimSolarbeamBigOrb(struct Sprite* sprite); +void AnimHyperBeamOrb(struct Sprite* sprite); +void AnimNeedleArmSpike_Step(struct Sprite* sprite); +void AnimMovePowderParticle(struct Sprite* sprite); +void AnimMetronomeFinger(struct Sprite* sprite); +void AnimConversion(struct Sprite* sprite); +void AnimCuttingSlice(struct Sprite* sprite); +void AnimThoughtBubble(struct Sprite* sprite); +void AnimTranslateLinearSingleSineWave(struct Sprite* sprite); +void AnimGrantingStars(struct Sprite* sprite); +void AnimFollowMeFinger(struct Sprite* sprite); extern const union AnimCmd *const gRazorLeafParticleAnimTable[]; extern const union AnimCmd *const gPowerAbsorptionOrbAnimTable[]; extern const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[]; extern const union AnimCmd *const gMusicNotesAnimTable[]; +extern const union AffineAnimCmd *const gMimicOrbAffineAnimTable[]; +extern const union AnimCmd *const gSolarbeamBigOrbAnimTable[]; +extern const union AnimCmd *const gPowderParticlesAnimTable[]; +extern const union AffineAnimCmd *const gMetronomeFingerAffineAnimTable[]; +extern const union AnimCmd *const gPetalDanceBigFlowerAnimTable[]; +extern const union AnimCmd *const gOctazookaAnimTable[]; +extern const union AffineAnimCmd *const gAbsorptionOrbAffineAnimTable[]; +extern const union AnimCmd *const gGrantingStarsAnimTable[]; +extern const union AnimCmd *const gSporeParticleAnimTable[]; +extern const union AnimCmd *const gHealingBlueStarAnimTable[]; +extern const union AnimCmd *const gMoonlightSparkleAnimTable[]; +extern const union AnimCmd *const gEndureEnergyAnimTable[]; +extern const union AnimCmd *const gPetalDanceSmallFlowerAnimTable[]; +extern const union AnimCmd *const gConversionAnimTable[]; +extern const union AffineAnimCmd *const gConversionAffineAnimTable[]; +extern const union AnimCmd *const gCuttingSliceAnimTable[]; +extern const union AnimCmd *const gScratchAnimTable[]; +extern const union AnimCmd *const gIngrainRootAnimTable[]; +extern const union AffineAnimCmd *const gSwiftStarAffineAnimTable[]; +extern const union AnimCmd *const gMetronomeThroughtBubbleAnimTable[]; + +// battle_anim_effects_2.c +void AnimUproarRing(struct Sprite *sprite); +void AnimSonicBoomProjectile(struct Sprite *sprite); +void AnimOrbitFast(struct Sprite *sprite); +void AnimOrbitScatter(struct Sprite *sprite); +void AnimAngerMark(struct Sprite *sprite); +void AnimHyperVoiceRing(struct Sprite *sprite); +extern const union AffineAnimCmd *const gThinRingShrinkingAffineAnimTable[]; +extern const union AffineAnimCmd *const gThinRingExpandingAffineAnimTable[]; +extern const union AnimCmd *const gExplosionAnimTable[]; +extern const union AffineAnimCmd *const gGuardRingAffineAnimTable[]; +extern const union AffineAnimCmd *const gAngerMarkAffineAnimTable[]; +extern const union AffineAnimCmd *const gWaterPulseRingAffineAnimTable[]; +extern const union AffineAnimCmd *const gHyperVoiceRingAffineAnimTable[]; +extern const union AnimCmd *const gCoinAnimTable[]; +extern const union AffineAnimCmd *const gHiddenPowerOrbAffineAnimTable[]; + +// battle_anim_effects_3.c +void AnimBlackSmoke(struct Sprite *sprite); +void AnimSweetScentPetal(struct Sprite *sprite); +void AnimTealAlert(struct Sprite *sprite); +void AnimBlockX(struct Sprite *sprite); +extern const union AnimCmd *const gOpeningEyeAnimTable[]; +extern const union AnimCmd *const gEclipsingOrbAnimTable[]; // battle_anim_water.c void AnimWaterPulseRing(struct Sprite *sprite); +void AnimSmallBubblePair(struct Sprite *sprite); +void AnimWaterPulseBubble(struct Sprite *sprite); +extern const union AnimCmd *const gAnims_WaterBubbleProjectile[]; +extern const union AnimCmd *const gAnims_FlamethrowerFlame[]; +extern const union AnimCmd *const gAnims_WaterPulseBubble[]; // battle_anim_flying.c void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); void sub_810E2C8(struct Sprite *sprite); void AnimAirWaveCrescent(struct Sprite *sprite); +void AnimFlyBallUp(struct Sprite *sprite); +void AnimFlyBallAttack(struct Sprite *sprite); +void AnimFlyBallAttack_Step(struct Sprite *sprite); +void AnimFlyBallUp_Step(struct Sprite *sprite); extern const union AnimCmd *const gAffineAnims_AirWaveCrescent[]; +extern const union AffineAnimCmd *const gAffineAnims_FlyBallUp[]; +extern const union AffineAnimCmd *const gAffineAnims_FlyBallAttack[]; // battle_anim_poison.c void AnimSludgeBombHitParticle(struct Sprite *); +void AnimAcidPoisonBubble_Step(struct Sprite *sprite); extern const union AffineAnimCmd *const gAffineAnims_PoisonProjectile[]; +extern const union AnimCmd *const gAnims_PoisonProjectile[]; +extern const union AnimCmd *const gAnims_AcidPoisonDroplet[]; // battle_anim_ghost.c void AnimGhostStatusSprite(struct Sprite *sprite); +void AnimShadowBall(struct Sprite *sprite); +void AnimTask_GrudgeFlames_Step(u8 taskId); +extern const union AffineAnimCmd *const gAffineAnims_ShadowBall[]; // battle_anim_psychic.c +extern const union AffineAnimCmd *const gAffineAnims_PsychoBoostOrb[]; extern const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[]; +void AnimPsychoBoost(struct Sprite *sprite); // battle_anim_smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); @@ -315,4 +401,97 @@ extern const union AnimCmd *const gAnims_SmallBubblePair[]; extern const union AnimCmd *const gAnims_WaterBubble[]; extern const union AffineAnimCmd *const gAffineAnims_Bite[]; +// battle_anim_normal.c +extern const union AffineAnimCmd *const gAffineAnims_HitSplat[]; +void AnimHitSplatBasic(struct Sprite *sprite); +void AnimFlashingHitSplat(struct Sprite *sprite); +void AnimFlashingHitSplat_Step(struct Sprite *sprite); +void AnimHitSplatRandom(struct Sprite *sprite); +void AnimCrossImpact(struct Sprite *sprite); +void AnimHitSplatOnMonEdge(struct Sprite *sprite); + +// battle_anim_electric.c +void AnimThunderWave(struct Sprite *sprite); +void AnimGrowingChargeOrb(struct Sprite *sprite); +void AnimZapCannonSpark(struct Sprite *sprite); +void AnimSparkElectricity(struct Sprite *sprite); +void AnimElectricPuff(struct Sprite *sprite); +void AnimSparkElectricityFlashing(struct Sprite *sprite); +void AnimGrowingShockWaveOrb(struct Sprite *sprite); +extern const union AffineAnimCmd *const gAffineAnims_GrowingElectricOrb[]; +extern const union AffineAnimCmd *const gAffineAnims_FlashingSpark[]; +extern const union AnimCmd *const gAnims_ThunderboltOrb[]; +extern const union AnimCmd *const gAnims_ElectricPuff[]; +extern const union AnimCmd *const gAnims_ElectricChargingParticles[]; + +// battle_anim_fight.c +void AnimStompFoot(struct Sprite *sprite); +void AnimSpinningKickOrPunch(struct Sprite *sprite); +void AnimBrickBreakWall_Step(struct Sprite *sprite); +void AnimJumpKick(struct Sprite *sprite); +void AnimBasicFistOrFoot(struct Sprite *sprite); +void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); +void AnimRevengeScratch(struct Sprite *sprite); +void AnimDizzyPunchDuck(struct Sprite *sprite); +extern const union AnimCmd *const gAnims_HandOrFoot[]; +extern const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[]; +extern const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[]; +extern const union AnimCmd *const gAnims_RevengeBigScratch[]; + +// battle_anim_rock.c +extern const union AffineAnimCmd *const gAffineAnims_Whirlpool[]; +extern const union AffineAnimCmd *const gAffineAnims_BasicRock[]; +void AnimParticleInVortex(struct Sprite *sprite); +void AnimFallingRock(struct Sprite *sprite); +void AnimRaiseSprite(struct Sprite *sprite); +void AnimFallingRock_Step(struct Sprite *sprite); +void AnimFlyingSandCrescent(struct Sprite *sprite); + +// battle_anim_dark.c +void AnimClawSlash(struct Sprite *sprite); +void AnimTearDrop(struct Sprite *sprite); +void AnimBite(struct Sprite *sprite); +extern const union AnimCmd *const gAnims_ClawSlash[]; +extern const union AffineAnimCmd *const gAffineAnims_TearDrop[]; + +// battle_anim_bug.c +void AnimStringWrap_Step(struct Sprite *sprite); +void AnimMissileArc(struct Sprite *sprite); +void AnimSpiderWeb(struct Sprite *sprite); +void AnimMissileArc_Step(struct Sprite *sprite); + +// battle_anim_ice.c +void AnimThrowMistBall(struct Sprite *sprite); +void AnimMoveParticleBeyondTarget(struct Sprite *sprite); +void AnimIceEffectParticle(struct Sprite *sprite); +void AnimSwirlingSnowball_Step1(struct Sprite *sprite); +extern const union AnimCmd *const gAnims_Snowball[]; +extern const union AffineAnimCmd *const gAffineAnims_IceCrystalHit[]; +extern const union AnimCmd *const gAnims_IceCrystalLarge[]; +extern const union AnimCmd *const gAnims_IceBallChunk[]; +extern const union AnimCmd *const gAnims_BlizzardIceCrystal[]; + +// battle_anim_fire.c +void AnimFireSpread(struct Sprite *sprite); +void AnimFireSpiralOutward(struct Sprite *sprite); +extern const union AnimCmd *const gAnims_FireBlastCross[]; + +// battle_anim_dragon.c +extern const union AnimCmd *const gAnims_DragonBreathFire[]; +extern const union AnimCmd *const gAnims_DragonRageFirePlume[]; +extern const union AffineAnimCmd *const gAffineAnims_DragonRageFire[]; +extern const union AnimCmd *const gAnims_DragonRageFire[]; +extern const union AffineAnimCmd *const gAffineAnims_DragonBreathFire[]; +void AnimDragonRageFirePlume(struct Sprite *sprite); +void AnimDragonFireToTarget(struct Sprite *sprite); +void AnimDragonDanceOrb(struct Sprite *sprite); +void AnimOverheatFlame(struct Sprite *sprite); + +// battle_anim_new.c +bool8 IsMoveAnimDarkVoid(void); +bool8 IsMoveAnimFlashCannonOrSteelBeam(void); +bool8 IsMoveAnimCoreEnforcer(void); +bool8 IsMoveAnimAnchorShot(void); +void CoreEnforcerLoadBeamTarget(struct Sprite* sprite); + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 0883fafe93..1a4c385047 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -398,6 +398,10 @@ #define ANIM_ATK_PARTNER 2 #define ANIM_DEF_PARTNER 3 +//sides +#define SIDE_ATTACKER 2 +#define SIDE_TARGET 3 + // stereo panning constants [0-255] // // 0 @@ -592,5 +596,29 @@ #define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 #define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 +// mon pal blend +#define PAL_BG 0x1 +#define PAL_ATK 0x2 +#define PAL_DEF 0x4 +#define PAL_ATK_PARTNER 0x8 +#define PAL_DEF_PARTNER 0x10 +#define PAL_ALL 0x1f +#define PAL_BG_4 0x20 +#define PAL_BG_5 0x40 +#define PAL_ALL_BANKS 0x780 +#define PAL_PLAYER1 0x80 +#define PAL_PLAYER2 0x100 +#define PAL_OPPONENT1 0x200 +#define PAL_OPPONENT2 0x400 + +// horseshoe/fist frames +#define RIGHT_FIST 0 +#define LEFT_FIST 2 + +// surf wave palettes +#define SURF_PALETTE_SURF 0 +#define SURF_PALETTE_MUDDY_WATER 1 +#define SURF_PALETTE_SLUDGE_WAVE 2 + #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/include/constants/moves.h b/include/constants/moves.h index f425bbeddc..167d4a10b8 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -697,6 +697,45 @@ #define MOVES_COUNT_GEN7 677 -#define MOVES_COUNT MOVES_COUNT_GEN7 +// Gen 8 moves. +#define MOVE_DYNAMAX_CANNON (MOVES_COUNT_GEN7 + 0) +#define MOVE_SNIPE_SHOT (MOVES_COUNT_GEN7 + 1) +#define MOVE_JAW_LOCK (MOVES_COUNT_GEN7 + 2) +#define MOVE_STUFF_CHEEKS (MOVES_COUNT_GEN7 + 3) +#define MOVE_NO_RETREAT (MOVES_COUNT_GEN7 + 4) +#define MOVE_TAR_SHOT (MOVES_COUNT_GEN7 + 5) +#define MOVE_MAGIC_POWDER (MOVES_COUNT_GEN7 + 6) +#define MOVE_DRAGON_DARTS (MOVES_COUNT_GEN7 + 7) +#define MOVE_TEA_TIME (MOVES_COUNT_GEN7 + 8) +#define MOVE_OCTOLOCK (MOVES_COUNT_GEN7 + 9) +#define MOVE_BOLT_BEAK (MOVES_COUNT_GEN7 + 10) +#define MOVE_FISHIOUS_REND (MOVES_COUNT_GEN7 + 11) +#define MOVE_COURT_CHANGE (MOVES_COUNT_GEN7 + 12) +#define MOVE_CLANGOROUS_SOUL (MOVES_COUNT_GEN7 + 13) +#define MOVE_BODY_PRESS (MOVES_COUNT_GEN7 + 14) +#define MOVE_DECORATE (MOVES_COUNT_GEN7 + 15) +#define MOVE_DRUM_BEATING (MOVES_COUNT_GEN7 + 16) +#define MOVE_SNAP_TRAP (MOVES_COUNT_GEN7 + 17) +#define MOVE_PYRO_BALL (MOVES_COUNT_GEN7 + 18) +#define MOVE_BEHEMOTH_BLADE (MOVES_COUNT_GEN7 + 19) +#define MOVE_BEHEMOTH_BASH (MOVES_COUNT_GEN7 + 20) +#define MOVE_AURA_WHEEL (MOVES_COUNT_GEN7 + 21) +#define MOVE_BREAKING_SWIPE (MOVES_COUNT_GEN7 + 22) +#define MOVE_BRANCH_POKE (MOVES_COUNT_GEN7 + 23) +#define MOVE_OVERDRIVE (MOVES_COUNT_GEN7 + 24) +#define MOVE_APPLE_ACID (MOVES_COUNT_GEN7 + 25) +#define MOVE_GRAV_APPLE (MOVES_COUNT_GEN7 + 26) +#define MOVE_SPIRIT_BREAK (MOVES_COUNT_GEN7 + 27) +#define MOVE_STRANGE_STEAM (MOVES_COUNT_GEN7 + 28) +#define MOVE_LIFE_DEW (MOVES_COUNT_GEN7 + 29) +#define MOVE_OBSTRUCT (MOVES_COUNT_GEN7 + 30) +#define MOVE_FALSE_SURRENDER (MOVES_COUNT_GEN7 + 31) +#define MOVE_METEOR_ASSAULT (MOVES_COUNT_GEN7 + 32) +#define MOVE_ETERNA_BEAM (MOVES_COUNT_GEN7 + 33) +#define MOVE_STEEL_BEAM (MOVES_COUNT_GEN7 + 34) + +#define MOVES_COUNT_GEN8 (MOVES_COUNT_GEN7 + 35) + +#define MOVES_COUNT MOVES_COUNT_GEN8 #endif // GUARD_CONSTANTS_MOVES_H diff --git a/ld_script.txt b/ld_script.txt index 2762e22540..454d9c4a07 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -197,6 +197,7 @@ SECTIONS { src/battle_anim_ground.o(.text); src/battle_anim_normal.o(.text); src/battle_anim_utility_funcs.o(.text); + src/battle_anim_new.o(.text); src/battle_intro.o(.text); src/bike.o(.text); src/easy_chat.o(.text); @@ -570,6 +571,7 @@ SECTIONS { src/battle_anim_ground.o(.rodata); src/battle_anim_normal.o(.rodata); src/battle_anim_utility_funcs.o(.rodata); + src/battle_anim_new.o(.rodata); src/battle_intro.o(.rodata); src/bike.o(.rodata); src/easy_chat.o(.rodata); diff --git a/src/battle_anim.c b/src/battle_anim.c index 6dee835bee..7ac81cac62 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -108,7 +108,7 @@ EWRAM_DATA static u16 sSoundAnimFramesToWait = 0; EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; EWRAM_DATA u8 gAnimMoveTurn = 0; EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; -EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused. +EWRAM_DATA u16 gAnimMoveIndex = 0; // Set but unused. EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; @@ -2175,7 +2175,7 @@ void ClearBattleAnimationVars(void) sMonAnimTaskIdArray[1] = 0xFF; gAnimMoveTurn = 0; sAnimBackgroundFadeState = 0; - sAnimMoveIndex = 0; + gAnimMoveIndex = 0; gBattleAnimAttacker = 0; gBattleAnimTarget = 0; gAnimCustomPanning = 0; @@ -2211,9 +2211,9 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo } if (!isMoveAnim) - sAnimMoveIndex = 0; + gAnimMoveIndex = 0; else - sAnimMoveIndex = tableId; + gAnimMoveIndex = tableId; for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index 010ddf625d..33d6616a60 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -9,13 +9,9 @@ static void AnimLeechLifeNeedle(struct Sprite *); static void AnimTranslateWebThread(struct Sprite *); static void AnimTranslateWebThread_Step(struct Sprite *); static void AnimStringWrap(struct Sprite *); -static void AnimStringWrap_Step(struct Sprite *); -static void AnimSpiderWeb(struct Sprite *); static void AnimSpiderWeb_Step(struct Sprite *); static void AnimSpiderWeb_End(struct Sprite *); static void AnimTranslateStinger(struct Sprite *); -static void AnimMissileArc(struct Sprite *); -static void AnimMissileArc_Step(struct Sprite *); static void AnimTailGlowOrb(struct Sprite *); static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = @@ -307,7 +303,7 @@ static void AnimStringWrap(struct Sprite *sprite) sprite->callback = AnimStringWrap_Step; } -static void AnimStringWrap_Step(struct Sprite *sprite) +void AnimStringWrap_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -324,7 +320,7 @@ static void AnimStringWrap_Step(struct Sprite *sprite) // arg0: x // arg1: y // arg2: targets both -static void AnimSpiderWeb(struct Sprite *sprite) +void AnimSpiderWeb(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); @@ -432,7 +428,7 @@ static void AnimTranslateStinger(struct Sprite *sprite) // arg 3: target y pixel offset // arg 4: duration // arg 5: wave amplitude -static void AnimMissileArc(struct Sprite *sprite) +void AnimMissileArc(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); @@ -449,7 +445,7 @@ static void AnimMissileArc(struct Sprite *sprite) sprite->invisible = TRUE; } -static void AnimMissileArc_Step(struct Sprite *sprite) +void AnimMissileArc_Step(struct Sprite *sprite) { sprite->invisible = FALSE; diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index cd7ac09b72..b203004e1d 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -10,9 +10,6 @@ #include "constants/rgb.h" static void sub_81138D4(struct Sprite *); -static void AnimBite(struct Sprite *); -static void AnimTearDrop(struct Sprite *); -static void AnimClawSlash(struct Sprite *); static void AnimTask_AttackerFadeToInvisible_Step(u8); static void AnimTask_AttackerFadeFromInvisible_Step(u8); static void sub_8113950(struct Sprite *); @@ -134,7 +131,7 @@ static const union AffineAnimCmd sAffineAnim_TearDrop_1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_TearDrop[] = +const union AffineAnimCmd *const gAffineAnims_TearDrop[] = { sAffineAnim_TearDrop_0, sAffineAnim_TearDrop_1, @@ -147,7 +144,7 @@ const struct SpriteTemplate gTearDropSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_TearDrop, + .affineAnims = gAffineAnims_TearDrop, .callback = AnimTearDrop, }; @@ -171,7 +168,7 @@ static const union AnimCmd sAnim_ClawSlash_1[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_ClawSlash[] = +const union AnimCmd *const gAnims_ClawSlash[] = { sAnim_ClawSlash_0, sAnim_ClawSlash_1, @@ -182,7 +179,7 @@ const struct SpriteTemplate gClawSlashSpriteTemplate = .tileTag = ANIM_TAG_CLAW_SLASH, .paletteTag = ANIM_TAG_CLAW_SLASH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_ClawSlash, + .anims = gAnims_ClawSlash, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimClawSlash, @@ -397,7 +394,7 @@ static void sub_8113950(struct Sprite *sprite) } // Move sprite inward for Bite/Crunch and Clamp -static void AnimBite(struct Sprite *sprite) +void AnimBite(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -429,7 +426,7 @@ static void AnimBite_Step2(struct Sprite *sprite) } // Launches a tear drop away from the battler. Used by Fake Tears -static void AnimTearDrop(struct Sprite *sprite) +void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; @@ -883,7 +880,7 @@ void sub_8114470(u8 taskId) } // Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw -static void AnimClawSlash(struct Sprite *sprite) +void AnimClawSlash(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; diff --git a/src/battle_anim_dragon.c b/src/battle_anim_dragon.c index 172ad4b28c..406902d71d 100644 --- a/src/battle_anim_dragon.c +++ b/src/battle_anim_dragon.c @@ -6,11 +6,7 @@ #include "constants/rgb.h" static void AnimOutrageFlame(struct Sprite *); -static void AnimDragonRageFirePlume(struct Sprite *); -static void AnimDragonFireToTarget(struct Sprite *); -static void AnimDragonDanceOrb(struct Sprite *); static void AnimDragonDanceOrb_Step(struct Sprite *); -static void AnimOverheatFlame(struct Sprite *); static void AnimOverheatFlame_Step(struct Sprite *); static void AnimTask_DragonDanceWaver_Step(u8); static void sub_8113574(struct Task *); @@ -62,7 +58,7 @@ static const union AnimCmd sAnim_DragonBreathFire_1[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnims_DragonBreathFire[] = +const union AnimCmd *const gAnims_DragonBreathFire[] = { sAnim_DragonBreathFire_0, sAnim_DragonBreathFire_1, @@ -82,7 +78,7 @@ static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] = +const union AffineAnimCmd *const gAffineAnims_DragonBreathFire[] = { sAffineAnim_DragonBreathFire_0, sAffineAnim_DragonBreathFire_1, @@ -93,9 +89,9 @@ const struct SpriteTemplate gDragonBreathFireSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_DragonBreathFire, + .anims = gAnims_DragonBreathFire, .images = NULL, - .affineAnims = sAffineAnims_DragonBreathFire, + .affineAnims = gAffineAnims_DragonBreathFire, .callback = AnimDragonFireToTarget, }; @@ -109,7 +105,7 @@ static const union AnimCmd sAnim_DragonRageFirePlume[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_DragonRageFirePlume[] = +const union AnimCmd *const gAnims_DragonRageFirePlume[] = { sAnim_DragonRageFirePlume, }; @@ -119,7 +115,7 @@ const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate = .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_DragonRageFirePlume, + .anims = gAnims_DragonRageFirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimDragonRageFirePlume, @@ -133,7 +129,7 @@ static const union AnimCmd sAnim_DragonRageFire[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnims_DragonRageFire[] = +const union AnimCmd *const gAnims_DragonRageFire[] = { sAnim_DragonRageFire, sAnim_DragonRageFire, @@ -151,7 +147,7 @@ static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] = +const union AffineAnimCmd *const gAffineAnims_DragonRageFire[] = { sAffineAnim_DragonRageFire_0, sAffineAnim_DragonRageFire_1, @@ -162,9 +158,9 @@ const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_DragonRageFire, + .anims = gAnims_DragonRageFire, .images = NULL, - .affineAnims = sAffineAnims_DragonRageFire, + .affineAnims = gAffineAnims_DragonRageFire, .callback = AnimDragonFireToTarget, }; @@ -371,7 +367,7 @@ static void sub_8113100(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void AnimDragonRageFirePlume(struct Sprite *sprite) +void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -391,7 +387,7 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) } // For Dragon Breath and Dragon Rage -static void AnimDragonFireToTarget(struct Sprite *sprite) +void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); @@ -399,7 +395,7 @@ static void AnimDragonFireToTarget(struct Sprite *sprite) sub_8113100(sprite); } -static void AnimDragonDanceOrb(struct Sprite *sprite) +void AnimDragonDanceOrb(struct Sprite *sprite) { u16 r5; u16 r0; @@ -546,7 +542,7 @@ static void sub_8113574(struct Task *task) task->data[5] = (task->data[5] + 9) & 0xFF; } -static void AnimOverheatFlame(struct Sprite *sprite) +void AnimOverheatFlame(struct Sprite *sprite) { int r6 = (gBattleAnimArgs[2] * 3) / 5; int i; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index df9be5738a..d3b2642314 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -18,20 +18,13 @@ EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; -static void AnimMovePowderParticle(struct Sprite *); static void AnimMovePowderParticle_Step(struct Sprite *); -static void AnimSolarbeamBigOrb(struct Sprite *); static void AnimSolarbeamSmallOrb(struct Sprite *); static void AnimSolarbeamSmallOrb_Step(struct Sprite *); -static void AnimAbsorptionOrb(struct Sprite *); static void AnimAbsorptionOrb_Step(struct Sprite *); -static void AnimHyperBeamOrb(struct Sprite *); static void AnimHyperBeamOrb_Step(struct Sprite *); -static void AnimSporeParticle(struct Sprite *); static void AnimSporeParticle_Step(struct Sprite *); -static void AnimPetalDanceBigFlower(struct Sprite *); static void AnimPetalDanceBigFlower_Step(struct Sprite *); -static void AnimPetalDanceSmallFlower(struct Sprite *); static void AnimPetalDanceSmallFlower_Step(struct Sprite *); static void AnimRazorLeafParticle(struct Sprite *); static void AnimRazorLeafParticle_Step1(struct Sprite *); @@ -39,12 +32,10 @@ static void AnimRazorLeafParticle_Step2(struct Sprite *); static void AnimLeechSeed(struct Sprite *); static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *); -static void AnimTranslateLinearSingleSineWave(struct Sprite *); static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); static void AnimConstrictBinding(struct Sprite *); static void AnimConstrictBinding_Step1(struct Sprite *); static void AnimConstrictBinding_Step2(struct Sprite *); -static void AnimMimicOrb(struct Sprite *); static void AnimIngrainRoot(struct Sprite *); static void AnimFrenzyPlantRoot(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *); @@ -62,11 +53,9 @@ static void AnimTrickBag_Step2(struct Sprite *); static void AnimTrickBag_Step3(struct Sprite *); static void AnimFlyingParticle(struct Sprite *); static void AnimFlyingParticle_Step(struct Sprite *); -static void AnimNeedleArmSpike_Step(struct Sprite *); static void sub_81009F8(struct Sprite *); static void AnimWhipHit(struct Sprite *); static void sub_8100A94(struct Sprite *); -static void AnimCuttingSlice(struct Sprite *); static void AnimAirCutterSlice(struct Sprite *); static void AnimSlice_Step(struct Sprite *); static void sub_8100E1C(struct Sprite *); @@ -76,7 +65,6 @@ static void AnimProtect_Step(struct Sprite *); static void AnimMilkBottle(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step2(struct Sprite *, int, int); -static void AnimGrantingStars(struct Sprite *); static void AnimSparkingStars(struct Sprite *); static void sub_8101440(struct Sprite *); static void sub_81014A0(struct Sprite *); @@ -105,11 +93,9 @@ static void AnimFalseSwipeSlice_Step1(struct Sprite *); static void AnimFalseSwipeSlice_Step2(struct Sprite *); static void AnimFalseSwipeSlice_Step3(struct Sprite *); static void AnimFalseSwipePositionedSlice(struct Sprite *); -static void AnimEndureEnergy(struct Sprite *); static void AnimEndureEnergy_Step(struct Sprite *); static void AnimSharpenSphere(struct Sprite *); static void AnimSharpenSphere_Step(struct Sprite *); -static void AnimConversion(struct Sprite *); static void AnimConversion2(struct Sprite *); static void AnimConversion2_Step(struct Sprite *); static void AnimMoon(struct Sprite *); @@ -127,11 +113,8 @@ static void AnimFlyingMusicNotes_Step(struct Sprite *); static void AnimBellyDrumHand(struct Sprite *); static void AnimSlowFlyingMusicNotes(struct Sprite *); static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); -static void AnimThoughtBubble(struct Sprite *); static void AnimThoughtBubble_Step(struct Sprite *); -static void AnimMetronomeFinger(struct Sprite *); static void AnimMetronomeFinger_Step(struct Sprite *); -static void AnimFollowMeFinger(struct Sprite *); static void AnimFollowMeFinger_Step1(struct Sprite *); static void AnimFollowMeFinger_Step2(struct Sprite *); static void AnimTauntFinger(struct Sprite *); @@ -2975,7 +2958,7 @@ static void AnimWoodHammerSmall(struct Sprite *sprite) // arg 3: vertical movement speed (sub-pixel value) // arg 4: wave amplitude // arg 5: wave speed -static void AnimMovePowderParticle(struct Sprite* sprite) +void AnimMovePowderParticle(struct Sprite* sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -3030,7 +3013,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: sprite anim number -static void AnimSolarbeamBigOrb(struct Sprite* sprite) +void AnimSolarbeamBigOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[3]); @@ -3050,11 +3033,20 @@ static void AnimSolarbeamBigOrb(struct Sprite* sprite) static void AnimSolarbeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsMoveAnimCoreEnforcer()) + { + CoreEnforcerLoadBeamTarget(sprite); + } + else + { + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + } + InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = AnimSolarbeamSmallOrb_Step; @@ -3105,7 +3097,7 @@ void AnimTask_CreateSmallSolarbeamOrbs(u8 taskId) // arg 1: initial y pixel offset // arg 2: wave amplitude // arg 3: wave period (lower means faster wave) -static void AnimAbsorptionOrb(struct Sprite* sprite) +void AnimAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -3124,7 +3116,7 @@ static void AnimAbsorptionOrb_Step(struct Sprite* sprite) // Moves an orb in a wave-like fashion towards the target mon. The wave's // properties and the sprite anim are randomly determined. -static void AnimHyperBeamOrb(struct Sprite* sprite) +void AnimHyperBeamOrb(struct Sprite* sprite) { u16 speed; u16 animNum = Random2(); @@ -3515,7 +3507,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite) // arg 2: initial wave offset // arg 3: duration // arg 4: blend (0 = off, 1 = on) -static void AnimSporeParticle(struct Sprite* sprite) +void AnimSporeParticle(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -3577,7 +3569,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -static void AnimPetalDanceBigFlower(struct Sprite* sprite) +void AnimPetalDanceBigFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = gBattleAnimArgs[3]; @@ -3615,7 +3607,7 @@ static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -static void AnimPetalDanceSmallFlower(struct Sprite* sprite) +void AnimPetalDanceSmallFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -3713,7 +3705,7 @@ static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) // arg 4: translation duration // arg 5: wave amplitude // arg 6: target between double battle opponents (boolean) -static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) +void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3944,7 +3936,7 @@ static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) // Moves an orb from the target mon to the attacking mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -static void AnimMimicOrb(struct Sprite* sprite) +void AnimMimicOrb(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -4795,7 +4787,7 @@ void AnimNeedleArmSpike(struct Sprite* sprite) } } -static void AnimNeedleArmSpike_Step(struct Sprite* sprite) +void AnimNeedleArmSpike_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -4862,7 +4854,7 @@ static void sub_8100A94(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right -static void AnimCuttingSlice(struct Sprite* sprite) +void AnimCuttingSlice(struct Sprite* sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); @@ -5198,7 +5190,7 @@ static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) sprite->data[3] = 0; } -static void AnimGrantingStars(struct Sprite* sprite) +void AnimGrantingStars(struct Sprite* sprite) { if (!gBattleAnimArgs[2]) SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -5847,7 +5839,7 @@ static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite) } } -static void AnimEndureEnergy(struct Sprite* sprite) +void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -5915,7 +5907,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void AnimConversion(struct Sprite* sprite) +void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -6538,7 +6530,7 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } -static void AnimThoughtBubble(struct Sprite* sprite) +void AnimThoughtBubble(struct Sprite* sprite) { u8 a; u8 battler; @@ -6566,7 +6558,7 @@ static void AnimThoughtBubble_Step(struct Sprite* sprite) } } -static void AnimMetronomeFinger(struct Sprite* sprite) +void AnimMetronomeFinger(struct Sprite* sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) @@ -6590,7 +6582,7 @@ static void AnimMetronomeFinger_Step(struct Sprite* sprite) } } -static void AnimFollowMeFinger(struct Sprite* sprite) +void AnimFollowMeFinger(struct Sprite* sprite) { u8 battler; if (gBattleAnimArgs[0] == 0) diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index a8b54d41df..6fd10da8cd 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -26,7 +26,6 @@ static void sub_8103680(struct Sprite *); static void AnimKinesisZapEnergy(struct Sprite *); static void AnimSwordsDanceBlade(struct Sprite *); static void AnimSwordsDanceBlade_Step(struct Sprite *); -static void AnimSonicBoomProjectile(struct Sprite *); static void AnimAirWaveProjectile(struct Sprite *); static void AnimAirWaveProjectile_Step1(struct Sprite *sprite); static void AnimAirWaveProjectile_Step2(struct Sprite *sprite); @@ -46,12 +45,9 @@ static void AnimGuillotinePincer_Step1(struct Sprite *); static void AnimGuillotinePincer_Step2(struct Sprite *); static void AnimGuillotinePincer_Step3(struct Sprite *); static void AnimBreathPuff(struct Sprite *); -static void AnimAngerMark(struct Sprite *); static void AnimPencil(struct Sprite *); static void AnimPencil_Step(struct Sprite *); static void AnimBlendThinRing(struct Sprite *); -static void AnimHyperVoiceRing(struct Sprite *); -static void AnimUproarRing(struct Sprite *); static void AnimSoftBoiledEgg(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); @@ -67,9 +63,7 @@ static void AnimRedHeartProjectile(struct Sprite *); static void AnimRedHeartProjectile_Step(struct Sprite *); static void AnimRedHeartRising(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *); -static void AnimOrbitFast(struct Sprite *); static void AnimOrbitFast_Step(struct Sprite *); -static void AnimOrbitScatter(struct Sprite *); static void AnimOrbitScatter_Step(struct Sprite *); static void AnimSpitUpOrb(struct Sprite *); static void AnimSpitUpOrb_Step(struct Sprite *sprite); @@ -1523,7 +1517,7 @@ static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -static void AnimSonicBoomProjectile(struct Sprite *sprite) +void AnimSonicBoomProjectile(struct Sprite *sprite) { s16 targetXPos; s16 targetYPos; @@ -2311,7 +2305,7 @@ static void AnimBreathPuff(struct Sprite *sprite) // arg 0: target mon (0 = attacker, 1 = target) // arg 1: x pixel offset // arg 2: y pixel offset -static void AnimAngerMark(struct Sprite *sprite) +void AnimAngerMark(struct Sprite *sprite) { u8 battler; if (!gBattleAnimArgs[0]) @@ -2621,7 +2615,7 @@ void sub_8105284(struct Sprite *sprite) } } -static void AnimHyperVoiceRing(struct Sprite *sprite) +void AnimHyperVoiceRing(struct Sprite *sprite) { u16 r9 = 0; u16 r6 = 0; @@ -2706,7 +2700,7 @@ static void AnimHyperVoiceRing(struct Sprite *sprite) sprite->callback(sprite); } -static void AnimUproarRing(struct Sprite *sprite) +void AnimUproarRing(struct Sprite *sprite) { u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); if (index != 0xFF) @@ -3443,7 +3437,7 @@ static void AnimTask_ScaryFace_Step(u8 taskId) // Used by MOVE_HIDDEN_POWER // arg 0: duration // arg 1: initial wave offset -static void AnimOrbitFast(struct Sprite *sprite) +void AnimOrbitFast(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -3494,7 +3488,7 @@ static void AnimOrbitFast_Step(struct Sprite *sprite) // Moves orbs away from the mon, based on where they are in their orbit. // Used in MOVE_HIDDEN_POWER. // arg 0: initial wave offset -static void AnimOrbitScatter(struct Sprite *sprite) +void AnimOrbitScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 7791aac101..731432d96f 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -26,12 +26,10 @@ extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -static void AnimBlackSmoke(struct Sprite *); static void AnimBlackSmoke_Step(struct Sprite *); static void AnimWhiteHalo(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *); -static void AnimTealAlert(struct Sprite *); static void AnimMeanLookEye(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *); static void AnimMeanLookEye_Step2(struct Sprite *); @@ -63,7 +61,6 @@ static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); static void AnimWeakFrustrationAngerMark(struct Sprite *); -static void AnimSweetScentPetal(struct Sprite *); static void AnimSweetScentPetal_Step(struct Sprite *); static void AnimPainSplitProjectile(struct Sprite *); static void AnimFlatterConfetti(struct Sprite *); @@ -90,7 +87,6 @@ static void AnimForesightMagnifyingGlass(struct Sprite *); static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimMeteorMashStar(struct Sprite *); static void AnimMeteorMashStar_Step(struct Sprite *sprite); -static void AnimBlockX(struct Sprite *); static void AnimBlockX_Step(struct Sprite *); static void sub_815FE80(struct Sprite *); static void AnimKnockOffStrike(struct Sprite *); @@ -1224,7 +1220,7 @@ const struct SpriteTemplate gMegaSymbolSpriteTemplate = .callback = AnimGhostStatusSprite, }; -static void AnimBlackSmoke(struct Sprite *sprite) +void AnimBlackSmoke(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -1289,7 +1285,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void AnimTealAlert(struct Sprite *sprite) +void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); @@ -2843,7 +2839,7 @@ static void AnimTask_RockMonBackAndForth_Step(u8 taskId) // arg 0: initial y pixel offset // arg 1: sprite anim num // arg 2: unused -static void AnimSweetScentPetal(struct Sprite *sprite) +void AnimSweetScentPetal(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -4855,7 +4851,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) // Moves down an X that flickers and disappears. // No args. -static void AnimBlockX(struct Sprite *sprite) +void AnimBlockX(struct Sprite *sprite) { s16 y; diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index b49427bc79..c0f489fd8f 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -10,28 +10,21 @@ static void AnimLightning_Step(struct Sprite *); static void sub_810A214(struct Sprite *); static void sub_810A258(struct Sprite *); static void sub_810A274(struct Sprite *); -static void AnimSparkElectricity(struct Sprite *); -static void AnimZapCannonSpark(struct Sprite *); static void AnimZapCannonSpark_Step(struct Sprite *); static void AnimThunderboltOrb(struct Sprite *); static void AnimThunderboltOrb_Step(struct Sprite *); -static void AnimSparkElectricityFlashing(struct Sprite *); static void AnimSparkElectricityFlashing_Step(struct Sprite *); static void AnimElectricity(struct Sprite *); static void AnimTask_ElectricBolt_Step(u8 taskId); static void AnimElectricBoltSegment(struct Sprite *); -static void AnimThunderWave(struct Sprite *); static void AnimThunderWave_Step(struct Sprite *); static void AnimTask_ElectricChargingParticles_Step(u8 taskId); static void AnimElectricChargingParticles(struct Sprite *); static void AnimElectricChargingParticles_Step(struct Sprite *); -static void AnimGrowingChargeOrb(struct Sprite *); -static void AnimElectricPuff(struct Sprite *); static void AnimVoltTackleOrbSlide(struct Sprite *); static void AnimVoltTackleOrbSlide_Step(struct Sprite *); static bool8 sub_810B154(struct Task *task, u8 taskId); static void AnimVoltTackleBolt(struct Sprite *); -static void AnimGrowingShockWaveOrb(struct Sprite *); static bool8 sub_810B430(struct Task *task, u8 taskId); static void AnimShockWaveProgressingBolt(struct Sprite *); static bool8 sub_810B614(struct Task *task, u8 taskId); @@ -144,7 +137,7 @@ static const union AffineAnimCmd sAffineAnim_FlashingSpark[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] = +const union AffineAnimCmd *const gAffineAnims_FlashingSpark[] = { sAffineAnim_FlashingSpark, }; @@ -156,7 +149,7 @@ const struct SpriteTemplate gZapCannonSparkSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_FlashingSpark, + .affineAnims = gAffineAnims_FlashingSpark, .callback = AnimZapCannonSpark, }; @@ -168,7 +161,7 @@ static const union AnimCmd sAnim_ThunderboltOrb[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnims_ThunderboltOrb[] = +const union AnimCmd *const gAnims_ThunderboltOrb[] = { sAnim_ThunderboltOrb, }; @@ -191,7 +184,7 @@ const struct SpriteTemplate gThunderboltOrbSpriteTemplate = .tileTag = ANIM_TAG_SHOCK_3, .paletteTag = ANIM_TAG_SHOCK_3, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = sAnims_ThunderboltOrb, + .anims = gAnims_ThunderboltOrb, .images = NULL, .affineAnims = sAffineAnims_ThunderboltOrb, .callback = AnimThunderboltOrb, @@ -204,7 +197,7 @@ const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_FlashingSpark, + .affineAnims = gAffineAnims_FlashingSpark, .callback = AnimSparkElectricityFlashing, }; @@ -241,6 +234,17 @@ const struct SpriteTemplate gThunderWaveSpriteTemplate = .callback = AnimThunderWave, }; +const struct SpriteTemplate gAnchorShotChainTemplate = +{ + .tileTag = ANIM_TAG_CHAIN_LINK, + .paletteTag = ANIM_TAG_CHAIN_LINK, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThunderWave +}; + static const s8 sElectricChargingParticleCoordOffsets[][2] = { { 58, -60}, @@ -279,7 +283,7 @@ static const union AnimCmd sAnim_ElectricChargingParticles_1[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_ElectricChargingParticles[] = +const union AnimCmd *const gAnims_ElectricChargingParticles[] = { sAnim_ElectricChargingParticles_0, sAnim_ElectricChargingParticles_1, @@ -290,12 +294,23 @@ const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate = .tileTag = ANIM_TAG_ELECTRIC_ORBS, .paletteTag = ANIM_TAG_ELECTRIC_ORBS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = sAnims_ElectricChargingParticles, + .anims = gAnims_ElectricChargingParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; +const struct SpriteTemplate gLightOfRuinGrayChargeTemplate = +{ + .tileTag = ANIM_TAG_ELECTRIC_ORBS, + .paletteTag = ANIM_TAG_GUST, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_ElectricChargingParticles, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), @@ -326,7 +341,7 @@ static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] = +const union AffineAnimCmd *const gAffineAnims_GrowingElectricOrb[] = { sAffineAnim_GrowingElectricOrb_0, sAffineAnim_GrowingElectricOrb_1, @@ -340,7 +355,7 @@ const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_GrowingElectricOrb, + .affineAnims = gAffineAnims_GrowingElectricOrb, .callback = AnimGrowingChargeOrb, }; @@ -353,7 +368,7 @@ static const union AnimCmd sAnim_ElectricPuff[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_ElectricPuff[] = +const union AnimCmd *const gAnims_ElectricPuff[] = { sAnim_ElectricPuff, }; @@ -363,7 +378,7 @@ const struct SpriteTemplate gElectricPuffSpriteTemplate = .tileTag = ANIM_TAG_ELECTRICITY, .paletteTag = ANIM_TAG_ELECTRICITY, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_ElectricPuff, + .anims = gAnims_ElectricPuff, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimElectricPuff, @@ -376,7 +391,7 @@ const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_GrowingElectricOrb, + .affineAnims = gAffineAnims_GrowingElectricOrb, .callback = AnimVoltTackleOrbSlide, }; @@ -441,7 +456,7 @@ const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_GrowingElectricOrb, + .affineAnims = gAffineAnims_GrowingElectricOrb, .callback = AnimGrowingShockWaveOrb, }; @@ -463,7 +478,7 @@ const struct SpriteTemplate gFlashCannonGrayChargeTemplate = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_GrowingElectricOrb, + .affineAnims = gAffineAnims_GrowingElectricOrb, .callback = AnimGrowingChargeOrb }; @@ -499,7 +514,7 @@ const struct SpriteTemplate gSeedFlareGreenChargeTemplate = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_GrowingElectricOrb, + .affineAnims = gAffineAnims_GrowingElectricOrb, .callback = AnimGrowingChargeOrb }; @@ -560,7 +575,7 @@ static void sub_810A274(struct Sprite *sprite) sprite->callback = TranslateSpriteInCircleOverDuration; } -static void AnimSparkElectricity(struct Sprite *sprite) +void AnimSparkElectricity(struct Sprite *sprite) { u8 battler; u32 matrixNum; @@ -617,7 +632,7 @@ static void AnimSparkElectricity(struct Sprite *sprite) sprite->callback = DestroyAnimSpriteAfterTimer; } -static void AnimZapCannonSpark(struct Sprite *sprite) +void AnimZapCannonSpark(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; @@ -672,7 +687,7 @@ static void AnimThunderboltOrb(struct Sprite *sprite) sprite->callback = AnimThunderboltOrb_Step; } -static void AnimSparkElectricityFlashing(struct Sprite *sprite) +void AnimSparkElectricityFlashing(struct Sprite *sprite) { u8 battler; @@ -822,13 +837,17 @@ static void AnimElectricBoltSegment(struct Sprite *sprite) } // The horizontal bands of electricity used in Thunder Wave -static void AnimThunderWave(struct Sprite *sprite) +void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + if (IsMoveAnimAnchorShot()) + spriteId = CreateSprite(&gAnchorShotChainTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + else + spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + gSprites[spriteId].oam.tileNum += 8; gAnimVisualTaskCount++; gSprites[spriteId].callback = AnimThunderWave_Step; @@ -884,7 +903,11 @@ static void AnimTask_ElectricChargingParticles_Step(u8 taskId) { u8 spriteId; task->data[12] = 0; - spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); + if (IsMoveAnimFlashCannonOrSteelBeam()) + spriteId = CreateSprite(&gLightOfRuinGrayChargeTemplate, task->data[14], task->data[15], 2); + else + spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); + if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; @@ -936,7 +959,7 @@ static void AnimElectricChargingParticles(struct Sprite *sprite) sprite->callback = AnimElectricChargingParticles_Step; } -static void AnimGrowingChargeOrb(struct Sprite *sprite) +void AnimGrowingChargeOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -954,7 +977,7 @@ static void AnimGrowingChargeOrb(struct Sprite *sprite) } // The quick electric burst at the end of Charge / during the Volt Tackle hit -static void AnimElectricPuff(struct Sprite *sprite) +void AnimElectricPuff(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -1174,7 +1197,7 @@ static void AnimVoltTackleBolt(struct Sprite *sprite) } } -static void AnimGrowingShockWaveOrb(struct Sprite *sprite) +void AnimGrowingShockWaveOrb(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index fc692f164a..477a15b6d9 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -8,21 +8,15 @@ static void unc_080B08A0(struct Sprite *); static void AnimSlideHandOrFootToTarget(struct Sprite *); -static void AnimJumpKick(struct Sprite *); -static void AnimBasicFistOrFoot(struct Sprite *); static void AnimFistOrFootRandomPos(struct Sprite *); static void AnimFistOrFootRandomPos_Step(struct Sprite *); static void AnimCrossChopHand(struct Sprite *); static void AnimCrossChopHand_Step(struct Sprite *); static void AnimSlidingKick(struct Sprite *); static void AnimSlidingKick_Step(struct Sprite *); -static void AnimSpinningKickOrPunch(struct Sprite *); -static void AnimStompFoot(struct Sprite *); static void AnimStompFoot_Step(struct Sprite *); static void AnimStompFoot_End(struct Sprite *); -static void AnimDizzyPunchDuck(struct Sprite *); static void AnimBrickBreakWall(struct Sprite *); -static void AnimBrickBreakWall_Step(struct Sprite *); static void AnimBrickBreakWallShard(struct Sprite *); static void AnimBrickBreakWallShard_Step(struct Sprite *); static void AnimSuperpowerOrb(struct Sprite *); @@ -33,9 +27,7 @@ static void AnimSuperpowerRock_Step2(struct Sprite *); static void AnimSuperpowerFireball(struct Sprite *); static void AnimArmThrustHit(struct Sprite *); static void AnimArmThrustHit_Step(struct Sprite *sprite); -static void AnimRevengeScratch(struct Sprite *); static void AnimFocusPunchFist(struct Sprite *); -static void AnimSpinningKickOrPunchFinish(struct Sprite *); static void AnimForcePalm(struct Sprite *sprite); extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; @@ -82,7 +74,7 @@ static const union AnimCmd sAnim_CrossChopHand_1[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_HandOrFoot[] = +const union AnimCmd *const gAnims_HandOrFoot[] = { sAnim_HandOrFoot, }; @@ -104,7 +96,7 @@ const struct SpriteTemplate gKarateChopSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlideHandOrFootToTarget, @@ -115,7 +107,7 @@ const struct SpriteTemplate gJumpKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick, @@ -126,7 +118,7 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -137,7 +129,7 @@ const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFistOrFootRandomPos, @@ -172,7 +164,7 @@ static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = +const union AffineAnimCmd *const gAffineAnims_SpinningHandOrFoot[] = { sAffineAnim_SpinningHandOrFoot, }; @@ -183,9 +175,9 @@ const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, - .affineAnims = sAffineAnims_SpinningHandOrFoot, + .affineAnims = gAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, }; @@ -196,7 +188,7 @@ static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] = +const union AffineAnimCmd *const gAffineAnims_MegaPunchKick[] = { sAffineAnim_MegaPunchKick, }; @@ -206,9 +198,9 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, - .affineAnims = sAffineAnims_MegaPunchKick, + .affineAnims = gAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, }; @@ -308,7 +300,7 @@ const struct SpriteTemplate gArmThrustHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimArmThrustHit, @@ -377,7 +369,7 @@ static const union AnimCmd sAnim_RevengeBigScratch_2[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_RevengeBigScratch[] = +const union AnimCmd *const gAnims_RevengeBigScratch[] = { sAnim_RevengeBigScratch_0, sAnim_RevengeBigScratch_1, @@ -389,7 +381,7 @@ const struct SpriteTemplate gRevengeBigScratchSpriteTemplate = .tileTag = ANIM_TAG_PURPLE_SWIPE, .paletteTag = ANIM_TAG_PURPLE_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_64x64, - .anims = sAnims_RevengeBigScratch, + .anims = gAnims_RevengeBigScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimRevengeScratch, @@ -412,7 +404,7 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = sAffineAnims_FocusPunchFist, .callback = AnimFocusPunchFist, @@ -423,7 +415,7 @@ const struct SpriteTemplate gPalmSpriteTemplate = .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = gAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -520,7 +512,7 @@ static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) AnimTravelDiagonally(sprite); } -static void AnimJumpKick(struct Sprite *sprite) +void AnimJumpKick(struct Sprite *sprite) { if (IsContest()) { @@ -538,7 +530,7 @@ static void AnimJumpKick(struct Sprite *sprite) // arg 2: duration // arg 3: ? (todo: related to initial pixel offsets) // arg 4: anim num -static void AnimBasicFistOrFoot(struct Sprite *sprite) +void AnimBasicFistOrFoot(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -698,7 +690,7 @@ static void AnimSlidingKick_Step(struct Sprite *sprite) // arg 1: initial y pixel offset // arg 2: anim num // arg 3: spin duration -static void AnimSpinningKickOrPunch(struct Sprite *sprite) +void AnimSpinningKickOrPunch(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[2]); @@ -708,7 +700,7 @@ static void AnimSpinningKickOrPunch(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, AnimSpinningKickOrPunchFinish); } -static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) +void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 0); sprite->affineAnimPaused = 1; @@ -722,7 +714,7 @@ static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: initial wait duration -static void AnimStompFoot(struct Sprite *sprite) +void AnimStompFoot(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -751,7 +743,7 @@ static void AnimStompFoot_End(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void AnimDizzyPunchDuck(struct Sprite *sprite) +void AnimDizzyPunchDuck(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -799,7 +791,7 @@ static void AnimBrickBreakWall(struct Sprite *sprite) sprite->callback = AnimBrickBreakWall_Step; } -static void AnimBrickBreakWall_Step(struct Sprite *sprite) +void AnimBrickBreakWall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1050,7 +1042,7 @@ static void AnimArmThrustHit(struct Sprite *sprite) sprite->callback = AnimArmThrustHit_Step; } -static void AnimRevengeScratch(struct Sprite *sprite) +void AnimRevengeScratch(struct Sprite *sprite) { if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index 606f498d4c..1d240d0045 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -8,7 +8,6 @@ #include "trig.h" static void AnimFireSpiralInward(struct Sprite *); -static void AnimFireSpread(struct Sprite *); static void AnimFirePlume(struct Sprite *); static void AnimLargeFlame(struct Sprite *); static void sub_8109028(struct Sprite *); @@ -23,7 +22,6 @@ static void AnimFireRing_Step2(struct Sprite *); static void AnimFireRing_Step3(struct Sprite *); static void UpdateFireRingCircleOffset(struct Sprite *); static void AnimFireCross(struct Sprite *); -static void AnimFireSpiralOutward(struct Sprite *); static void AnimFireSpiralOutward_Step1(struct Sprite *); static void AnimFireSpiralOutward_Step2(struct Sprite *); static void AnimTask_EruptionLaunchRocks_Step(u8 taskId); @@ -313,7 +311,7 @@ static const union AnimCmd sAnim_FireBlastCross[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnims_FireBlastCross[] = +const union AnimCmd *const gAnims_FireBlastCross[] = { sAnim_FireBlastCross, }; @@ -342,7 +340,7 @@ const struct SpriteTemplate gFireBlastCrossSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_FireBlastCross, + .anims = gAnims_FireBlastCross, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireCross, @@ -565,7 +563,7 @@ static void AnimFireSpiralInward(struct Sprite *sprite) } // For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch -static void AnimFireSpread(struct Sprite *sprite) +void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -824,7 +822,7 @@ static void AnimFireCross(struct Sprite *sprite) sprite->callback = TranslateSpriteLinear; } -static void AnimFireSpiralOutward(struct Sprite *sprite) +void AnimFireSpiralOutward(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index 29043b9371..cc64bf60c2 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -12,10 +12,6 @@ static void AnimEllipticalGust(struct Sprite *); static void AnimEllipticalGust_Step(struct Sprite *); static void AnimGustToTarget(struct Sprite *); static void AnimGustToTarget_Step(struct Sprite *); -static void AnimFlyBallUp(struct Sprite *); -static void AnimFlyBallUp_Step(struct Sprite *); -static void AnimFlyBallAttack(struct Sprite *); -static void AnimFlyBallAttack_Step(struct Sprite *); static void AnimFallingFeather(struct Sprite *); static void sub_810E520(struct Sprite *); static void sub_810EB40(struct Sprite *); @@ -104,7 +100,7 @@ static const union AffineAnimCmd sAffineAnim_FlyBallUp[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] = +const union AffineAnimCmd *const gAffineAnims_FlyBallUp[] = { sAffineAnim_FlyBallUp, }; @@ -121,7 +117,7 @@ static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] = +const union AffineAnimCmd *const gAffineAnims_FlyBallAttack[] = { sAffineAnim_FlyBallAttack_0, sAffineAnim_FlyBallAttack_1, @@ -134,7 +130,7 @@ const struct SpriteTemplate gFlyBallUpSpriteTemplate = .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_FlyBallUp, + .affineAnims = gAffineAnims_FlyBallUp, .callback = AnimFlyBallUp, }; @@ -145,7 +141,7 @@ const struct SpriteTemplate gFlyBallAttackSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_FlyBallAttack, + .affineAnims = gAffineAnims_FlyBallAttack, .callback = AnimFlyBallAttack, }; @@ -464,7 +460,7 @@ void AnimAirWaveCrescent(struct Sprite *sprite) SeekSpriteAnim(sprite, gBattleAnimArgs[5]); } -static void AnimFlyBallUp(struct Sprite *sprite) +void AnimFlyBallUp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -473,7 +469,7 @@ static void AnimFlyBallUp(struct Sprite *sprite) gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void AnimFlyBallUp_Step(struct Sprite *sprite) +void AnimFlyBallUp_Step(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -489,7 +485,7 @@ static void AnimFlyBallUp_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void AnimFlyBallAttack(struct Sprite *sprite) +void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -514,7 +510,7 @@ static void AnimFlyBallAttack(struct Sprite *sprite) sprite->callback = AnimFlyBallAttack_Step; } -static void AnimFlyBallAttack_Step(struct Sprite *sprite) +void AnimFlyBallAttack_Step(struct Sprite *sprite) { sprite->data[0] = 1; AnimTranslateLinear(sprite); diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 273fdf38a4..cfae013275 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -18,7 +18,6 @@ static void AnimConfuseRayBallSpiral(struct Sprite *); static void AnimConfuseRayBallSpiral_Step(struct Sprite *); static void AnimTask_NightShadeClone_Step1(u8 taskId); static void AnimTask_NightShadeClone_Step2(u8 taskId); -static void AnimShadowBall(struct Sprite *); static void AnimShadowBall_Step(struct Sprite *); static void AnimLick(struct Sprite *); static void AnimLick_Step(struct Sprite *); @@ -36,7 +35,6 @@ static void AnimCurseNail_Step1(struct Sprite *); static void AnimCurseNail_Step2(struct Sprite *); static void AnimCurseNail_End(struct Sprite *); static void AnimGhostStatusSprite_Step(struct Sprite *); -static void AnimTask_GrudgeFlames_Step(u8 taskId); static void AnimGrudgeFlame(struct Sprite *); static void sub_8112F60(struct Sprite *); static void sub_8112FB8(struct Sprite *); @@ -81,7 +79,7 @@ static const union AffineAnimCmd sAffineAnim_ShadowBall[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] = +const union AffineAnimCmd *const gAffineAnims_ShadowBall[] = { sAffineAnim_ShadowBall, }; @@ -93,7 +91,7 @@ const struct SpriteTemplate gShadowBallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_ShadowBall, + .affineAnims = gAffineAnims_ShadowBall, .callback = AnimShadowBall, }; @@ -104,7 +102,7 @@ const struct SpriteTemplate gEnergyBallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_ShadowBall, + .affineAnims = gAffineAnims_ShadowBall, .callback = AnimShadowBall, }; @@ -179,6 +177,17 @@ const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = .callback = AnimDestinyBondWhiteShadow, }; +const struct SpriteTemplate gDarkVoidBlackHoleTemplate = +{ + .tileTag = ANIM_TAG_WHITE_SHADOW, + .paletteTag = ANIM_TAG_QUICK_GUARD_HAND, + .oam = &gOamData_AffineOff_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDestinyBondWhiteShadow +}; + const struct SpriteTemplate gCurseNailSpriteTemplate = { .tileTag = ANIM_TAG_NAIL, @@ -256,7 +265,7 @@ const struct SpriteTemplate gFlashCannonBallMovementTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_ShadowBall, + .affineAnims = gAffineAnims_ShadowBall, .callback = AnimShadowBall }; @@ -443,7 +452,7 @@ static void AnimTask_NightShadeClone_Step2(u8 taskId) // arg 0: duration step 1 (attacker -> center) // arg 1: duration step 2 (spin center) // arg 2: duration step 3 (center -> target) -static void AnimShadowBall(struct Sprite *sprite) +void AnimShadowBall(struct Sprite *sprite) { s16 oldPosX = sprite->pos1.x; s16 oldPosY = sprite->pos1.y; @@ -865,7 +874,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) && battler != (gBattleAnimAttacker ^ 2) && IsBattlerSpriteVisible(battler)) { - spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); + if (IsMoveAnimDarkVoid()) + spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void + else + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond + if (spriteId != MAX_SPRITES) { x = GetBattlerSpriteCoord(battler, 2); @@ -887,7 +900,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) } else { - spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); + if (IsMoveAnimDarkVoid()) + spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void + else + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond + if (spriteId != MAX_SPRITES) { x = 48; @@ -1237,7 +1254,7 @@ void AnimTask_GrudgeFlames(u8 taskId) task->func = AnimTask_GrudgeFlames_Step; } -static void AnimTask_GrudgeFlames_Step(u8 taskId) +void AnimTask_GrudgeFlames_Step(u8 taskId) { u16 i; u8 spriteId; diff --git a/src/battle_anim_ground.c b/src/battle_anim_ground.c index 937ba37d91..8c1442fd4c 100644 --- a/src/battle_anim_ground.c +++ b/src/battle_anim_ground.c @@ -8,14 +8,11 @@ static void AnimBonemerangProjectile(struct Sprite *); static void AnimBoneHitProjectile(struct Sprite *); -static void AnimDirtScatter(struct Sprite *); -static void AnimMudSportDirt(struct Sprite *); static void AnimDirtPlumeParticle(struct Sprite *); static void AnimDirtPlumeParticle_Step(struct Sprite *); static void AnimDigDirtMound(struct Sprite *); static void AnimBonemerangProjectile_Step(struct Sprite *); static void AnimBonemerangProjectile_End(struct Sprite *); -static void AnimMudSportDirtRising(struct Sprite *); static void AnimMudSportDirtFalling(struct Sprite *); static void AnimTask_DigBounceMovement(u8); static void AnimTask_DigEndBounceMovementSetInvisible(u8); @@ -44,7 +41,7 @@ static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] = sAffineAnim_Bonemerang, }; -static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] = +const union AffineAnimCmd *const gAffineAnims_SpinningBone[] = { sAffineAnim_SpinningBone, }; @@ -67,7 +64,7 @@ const struct SpriteTemplate gSpinningBoneSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_SpinningBone, + .affineAnims = gAffineAnims_SpinningBone, .callback = AnimBoneHitProjectile, }; @@ -222,7 +219,7 @@ static void AnimBoneHitProjectile(struct Sprite *sprite) // arg 2: duration // arg 3: target x pixel offset // arg 4: target y pixel offset -static void AnimDirtScatter(struct Sprite *sprite) +void AnimDirtScatter(struct Sprite *sprite) { u8 targetXPos, targetYPos; s16 xOffset, yOffset; @@ -251,7 +248,7 @@ static void AnimDirtScatter(struct Sprite *sprite) // arg 0: 0 = dirt is rising into the air, 1 = dirt is falling down // arg 1: initial x pixel offset // arg 2: initial y pixel offset -static void AnimMudSportDirt(struct Sprite *sprite) +void AnimMudSportDirt(struct Sprite *sprite) { sprite->oam.tileNum++; if (gBattleAnimArgs[0] == 0) @@ -270,7 +267,7 @@ static void AnimMudSportDirt(struct Sprite *sprite) } } -static void AnimMudSportDirtRising(struct Sprite *sprite) +void AnimMudSportDirtRising(struct Sprite *sprite) { if (++sprite->data[1] > 1) { diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index ea46092d9a..c3aa2680b0 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -24,18 +24,14 @@ static void sub_810B6C4(struct Sprite *); static void sub_810B848(struct Sprite *); static void AnimIcePunchSwirlingParticle(struct Sprite *); static void AnimIceBeamParticle(struct Sprite *); -static void AnimIceEffectParticle(struct Sprite *); static void AnimFlickerIceEffectParticle(struct Sprite *); static void AnimSwirlingSnowball(struct Sprite *); -static void AnimSwirlingSnowball_Step1(struct Sprite *); static void AnimSwirlingSnowball_Step2(struct Sprite *); static void AnimSwirlingSnowball_End(struct Sprite *); -static void AnimMoveParticleBeyondTarget(struct Sprite *); static void AnimWiggleParticleTowardsTarget(struct Sprite *); static void AnimWaveFromCenterOfTarget(struct Sprite *); static void InitSwirlingFogAnim(struct Sprite *); static void AnimSwirlingFogAnim(struct Sprite *); -static void AnimThrowMistBall(struct Sprite *); static void InitPoisonGasCloudAnim(struct Sprite *); static void MovePoisonGasCloud(struct Sprite *); static void AnimHailBegin(struct Sprite *); @@ -118,7 +114,7 @@ static const union AnimCmd *const gUnknown_08595AA4[] = gUnknown_08595A70, }; -static const union AnimCmd *const sAnims_IceCrystalLarge[] = +const union AnimCmd *const gAnims_IceCrystalLarge[] = { sAnim_IceCrystalLarge, }; @@ -128,12 +124,12 @@ static const union AnimCmd *const sAnims_IceCrystalSmall[] = sAnim_IceCrystalSmall, }; -static const union AnimCmd *const sAnims_Snowball[] = +const union AnimCmd *const gAnims_Snowball[] = { sAnim_Snowball, }; -static const union AnimCmd *const sAnims_BlizzardIceCrystal[] = +const union AnimCmd *const gAnims_BlizzardIceCrystal[] = { sAnim_BlizzardIceCrystal, }; @@ -159,7 +155,7 @@ const struct SpriteTemplate gIceCrystalSpiralInwardLarge = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineDouble_ObjBlend_8x16, - .anims = sAnims_IceCrystalLarge, + .anims = gAnims_IceCrystalLarge, .images = NULL, .affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge, .callback = AnimIcePunchSwirlingParticle, @@ -192,7 +188,7 @@ const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = sAnims_IceCrystalLarge, + .anims = gAnims_IceCrystalLarge, .images = NULL, .affineAnims = sAffineAnims_IceBeamInnerCrystal, .callback = AnimIceBeamParticle, @@ -217,7 +213,7 @@ static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] = +const union AffineAnimCmd *const gAffineAnims_IceCrystalHit[] = { sAffineAnim_IceCrystalHit, }; @@ -227,9 +223,9 @@ const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = sAnims_IceCrystalLarge, + .anims = gAnims_IceCrystalLarge, .images = NULL, - .affineAnims = sAffineAnims_IceCrystalHit, + .affineAnims = gAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; @@ -240,7 +236,7 @@ const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_8x8, .anims = sAnims_IceCrystalSmall, .images = NULL, - .affineAnims = sAffineAnims_IceCrystalHit, + .affineAnims = gAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; @@ -249,7 +245,7 @@ const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = sAnims_Snowball, + .anims = gAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSwirlingSnowball, @@ -260,7 +256,7 @@ const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sAnims_BlizzardIceCrystal, + .anims = gAnims_BlizzardIceCrystal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, @@ -271,7 +267,7 @@ const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate = .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = sAnims_Snowball, + .anims = gAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, @@ -458,7 +454,7 @@ static const union AnimCmd sAnim_IceBallChunk_1[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_IceBallChunk[] = +const union AnimCmd *const gAnims_IceBallChunk[] = { sAnim_IceBallChunk_0, sAnim_IceBallChunk_1, @@ -508,7 +504,7 @@ const struct SpriteTemplate gIceBallChunkSpriteTemplate = .tileTag = ANIM_TAG_ICE_CHUNK, .paletteTag = ANIM_TAG_ICE_CHUNK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_IceBallChunk, + .anims = gAnims_IceBallChunk, .images = NULL, .affineAnims = sAffineAnims_IceBallChunk, .callback = InitIceBallAnim, @@ -568,7 +564,7 @@ const struct SpriteTemplate gChatterSingNotesTemplate = .oam = &gOamData_AffineDouble_ObjNormal_16x16, .anims = gMusicNotesAnimTable, .images = NULL, - .affineAnims = sAffineAnims_IceCrystalHit, + .affineAnims = gAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle }; @@ -710,7 +706,7 @@ static void AnimIceBeamParticle(struct Sprite *sprite) // arg 0: target x offset // arg 1: target y offset // arg 2: ??? unknown boolean -static void AnimIceEffectParticle(struct Sprite *sprite) +void AnimIceEffectParticle(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) { @@ -801,7 +797,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } -static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) +void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { s16 tempVar; @@ -865,7 +861,7 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite) // arg 5: wave amplitude // arg 6: wave frequency // arg 7: multiple targets? (boolean) -static void AnimMoveParticleBeyondTarget(struct Sprite *sprite) +void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { int i; s16 tempDataHolder[8]; @@ -1167,7 +1163,7 @@ static void AnimTask_Haze2(u8 taskId) // arg 3: target y offset // arg 4: duration // arg 5: ??? unknown (seems to vibrate target mon somehow) -static void AnimThrowMistBall(struct Sprite *sprite) +void AnimThrowMistBall(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c new file mode 100644 index 0000000000..da741a94c8 --- /dev/null +++ b/src/battle_anim_new.c @@ -0,0 +1,5058 @@ +#include "global.h" +#include "battle_anim.h" +#include "item_menu_icons.h" +#include "sprite.h" +#include "random.h" +#include "gpu_regs.h" +#include "item.h" +#include "item_icon.h" +#include "sound.h" +#include "menu.h" +#include "malloc.h" +#include "util.h" +#include "graphics.h" +#include "battle_scripts.h" +#include "battle_controllers.h" +#include "constants/moves.h" + +// defines +#define PARTNER(battler) (battler ^ BIT_FLANK) + +//// function declarations +static void SpriteCB_SpriteToCentreOfSide(struct Sprite* sprite); +static void SpriteCB_SpriteOnMonForDuration(struct Sprite *sprite); +static void SpriteCB_ToxicThreadWrap(struct Sprite *sprite); +static void SpriteCB_GrowingSuperpower(struct Sprite *sprite); +static void SpriteCB_CentredSpiderWeb(struct Sprite* sprite); +static void SpriteCB_CoreEnforcerHits(struct Sprite* sprite); +static void SpriteCB_CoreEnforcerBeam(struct Sprite* sprite); +static void SpriteCB_TranslateAnimSpriteToTargetMonLocationDoubles(struct Sprite* sprite); +static void SpriteCB_FallingObject(struct Sprite *sprite); +static void SpriteCB_FallingObjectStep(struct Sprite *sprite); +static void SpriteCB_SunsteelStrikeRings(struct Sprite* sprite); +static void SpriteCB_MoongeistCharge(struct Sprite *sprite); +static void SpriteCB_MindBlownBall(struct Sprite *sprite); +static void AnimMindBlownBallStep(struct Sprite *sprite); +static void SpriteCB_MindBlownExplosion(struct Sprite* sprite); +static void SpriteCB_RandomCentredHits(struct Sprite* sprite); +static void SpriteCB_LockingJaw(struct Sprite *sprite); +static void SpriteCB_LockingJawStep(struct Sprite *sprite); +static void SpriteCB_LockingJawFinish(struct Sprite *sprite); +static void SpriteCB_LeftRightSlice(struct Sprite *sprite); +static void SpriteCB_LeftRightSliceStep1(struct Sprite *sprite); +static void SpriteCB_LeftRightSliceStep0(struct Sprite *sprite); +static void SpriteCB_PyroBallRockBounce(struct Sprite* sprite); +static void SpriteCB_PyroBallLaunch(struct Sprite* sprite); +static void SpriteCB_AcidLaunchSingleTarget(struct Sprite *sprite); +static void SpriteCB_AcidDripSingleTarget(struct Sprite *sprite); +static void SpriteCB_WaterDroplet(struct Sprite *sprite); +static void SpriteCB_WaterDropletDrip(struct Sprite *sprite); +static void SpriteCB_WaterDropletDrop(struct Sprite *sprite); +static void SpriteCB_AnimSpriteOnSelectedMonPos(struct Sprite *sprite); +static void SpriteCB_SurroundingRing(struct Sprite *sprite); +static void SpriteCB_PhotonGeyserBeam(struct Sprite* sprite); +static void SpriteCB_BeamUpStep(struct Sprite* sprite); +static void SpriteCB_CentredElectricity(struct Sprite* sprite); +static void AnimSkyDropBallUp(struct Sprite *sprite); +static void SpriteCB_SearingShotRock(struct Sprite* sprite); +static void AnimHappyHourCoinShower(struct Sprite *sprite); +static void SpriteCB_Geyser(struct Sprite* sprite); + +//////// const data +//// general +static const union AffineAnimCmd sSquishTargetAffineAnimCmds[] = +{ + AFFINEANIMCMD_FRAME(0, 64, 0, 16), //Flatten + AFFINEANIMCMD_FRAME(0, 0, 0, 64), + AFFINEANIMCMD_FRAME(0, -64, 0, 16), + AFFINEANIMCMD_END, +}; + +//// GEN 5 +//wide guard +const struct SpriteTemplate gWideGuardBlueConversionTemplate = +{ + .tileTag = ANIM_TAG_CONVERSION, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_8x8, + .anims = gConversionAnimTable, + .images = NULL, + .affineAnims = gConversionAffineAnimTable, + .callback = AnimConversion +}; + +//guard split +const struct SpriteTemplate gGuardSwapOrbs1Template = +{ + .tileTag = ANIM_TAG_BLUEGREEN_ORB, + .paletteTag = ANIM_TAG_BLUEGREEN_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimMimicOrb +}; + +const struct SpriteTemplate gGuardSwapOrbs2Template = +{ + .tileTag = ANIM_TAG_BLUEGREEN_ORB, + .paletteTag = ANIM_TAG_BLUEGREEN_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimMissileArc +}; + +// power split +const struct SpriteTemplate gPowerSplitOrbs1Template = +{ + .tileTag = ANIM_TAG_BLUEGREEN_ORB, + .paletteTag = ANIM_TAG_RED_HEART, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimMimicOrb +}; + +const struct SpriteTemplate gPowerSplitOrbs2Template = +{ + .tileTag = ANIM_TAG_BLUEGREEN_ORB, + .paletteTag = ANIM_TAG_RED_HEART, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimMissileArc +}; + +// automotize +const struct SpriteTemplate gAutotomizeMetalShardsTemplate = +{ + .tileTag = ANIM_TAG_METAL_BITS, + .paletteTag = ANIM_TAG_METAL_BITS, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_TearDrop, + .callback = AnimTearDrop +}; + +//rage powder +const struct SpriteTemplate gRagePowderRedPowderTemplate = +{ + .tileTag = ANIM_TAG_SPORE, + .paletteTag = ANIM_TAG_HEART_STAMP, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gSporeParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSporeParticle +}; + +//flame charge +const struct SpriteTemplate gFlameChargeEmberTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPetalDanceBigFlower +}; + +//final gambit +const struct SpriteTemplate gFinalGambitBlueYawnTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_WATER_IMPACT, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + +const struct SpriteTemplate gFinalGambitExplosionTemplate = +{ + .tileTag = ANIM_TAG_EXPLOSION, + .paletteTag = ANIM_TAG_WATER_IMPACT, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gExplosionAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//synchronoise +const struct SpriteTemplate gSynchronoiseVioletRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gHyperVoiceRingAffineAnimTable, + .callback = AnimHyperVoiceRing +}; + +const struct SpriteTemplate gSynchronoiseYellowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gHyperVoiceRingAffineAnimTable, + .callback = AnimHyperVoiceRing +}; + +const struct SpriteTemplate gSynchronoiseBlueRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gHyperVoiceRingAffineAnimTable, + .callback = AnimHyperVoiceRing +}; + +const struct SpriteTemplate gSynchronoiseAeroWheelTemplate = +{ + .tileTag = ANIM_TAG_AIR_WAVE_2, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gAffineAnims_AirWaveCrescent, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +//electro ball +const struct SpriteTemplate gElectroBallCannonBallTemplate = +{ + .tileTag = ANIM_TAG_FLASH_CANNON_BALL, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + +//foul play +const struct SpriteTemplate gFoulPlayImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +const struct SpriteTemplate gFoulPlayRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//simple beam +const struct SpriteTemplate gSimpleBeamBrownTemplate = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; + +const struct SpriteTemplate gSimpleBeamPinkTemplate = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; + +const struct SpriteTemplate gSimpleBeamBrownRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gSimpleBeamPinkRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +// after you +const struct SpriteTemplate gAfterYouGreenRageTemplate = +{ + .tileTag = ANIM_TAG_ANGER, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAngerMarkAffineAnimTable, + .callback = AnimAngerMark +}; + +//quick guard +const struct SpriteTemplate gQuickGuardArmImpactTemplate = +{ + .tileTag = ANIM_TAG_QUICK_GUARD_HAND, + .paletteTag = ANIM_TAG_QUICK_GUARD_HAND, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBasicFistOrFoot +}; + +//sky drop +static const union AffineAnimCmd sSkyDropFlyBallAffineAnimCmd_0[] = +{ + AFFINEANIMCMD_FRAME(0xa0, 0x100, 0x50, 0x0), //.hword 0xa0, 0x100, 0x50, 0x0, + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd *const sSkyDropFlyBallAffineAnimCmds[] = +{ + sSkyDropFlyBallAffineAnimCmd_0 +}; +const struct SpriteTemplate gSkyDropFlyBallTemplate = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSkyDropFlyBallAffineAnimCmds, + .callback = AnimThrowMistBall +}; + +const struct SpriteTemplate gSkyDropTargetFlyingTemplate = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlyBallUp, + .callback = AnimSkyDropBallUp +}; + +//shift gear +const struct SpriteTemplate gShiftGearGearsTemplate = +{ + .tileTag = ANIM_TAG_GEAR, + .paletteTag = ANIM_TAG_GEAR, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_SpinningBone, + .callback = SpriteCB_SpriteOnMonForDuration +}; + +//circle throw +const struct SpriteTemplate gCircleThrowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//quash +const struct SpriteTemplate gQuashArmHitTemplate = +{ + .tileTag = ANIM_TAG_ASSURANCE_HAND, + .paletteTag = ANIM_TAG_ASSURANCE_HAND, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimStompFoot +}; + +//reflect type +const struct SpriteTemplate gReflectTypeBlueStringTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_ToxicThreadWrap +}; + +const struct SpriteTemplate gReflectTypeVioletStringTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gOamData_AffineOff_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_ToxicThreadWrap +}; + +const struct SpriteTemplate gReflectTypeWhiteStringTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_GUARD_RING, + .oam = &gOamData_AffineOff_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_ToxicThreadWrap +}; + +const struct SpriteTemplate gReflectTypeWhiteRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_GUARD_RING, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +const struct SpriteTemplate gReflectTypePinkRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +const struct SpriteTemplate gReflectTypeVioletRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +const struct SpriteTemplate gReflectTypeBlueRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +//frost breath +const struct SpriteTemplate gFrostBreathBlueRageTemplate = +{ + .tileTag = ANIM_TAG_FIRE_PLUME, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_DragonRageFirePlume, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDragonRageFirePlume +}; + +const struct SpriteTemplate gFrostBreathBlueBreathTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_DragonRageFire, + .images = NULL, + .affineAnims = gAffineAnims_DragonRageFire, + .callback = AnimDragonFireToTarget +}; + +//heart stamp +const struct SpriteTemplate gHeartStampSpinningHeartTemplate = +{ + .tileTag = ANIM_TAG_HEART_STAMP, + .paletteTag = ANIM_TAG_HEART_STAMP, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gAffineAnims_SpinningHandOrFoot, + .callback = AnimSpinningKickOrPunch +}; + +//horn leech +const struct SpriteTemplate gHornLeechHornTemplate = +{ + .tileTag = ANIM_TAG_HORN_LEECH, + .paletteTag = ANIM_TAG_HORN_LEECH, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimShadowBall +}; + +//dual chop +const struct SpriteTemplate gDualChopImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//sacred sword +const struct SpriteTemplate gSacredSwordBladesTemplate = +{ + .tileTag = ANIM_TAG_PUNISHMENT_BLADES, + .paletteTag = ANIM_TAG_HYDRO_PUMP, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +const struct SpriteTemplate gSacredSwordCutTemplate = +{ + .tileTag = ANIM_TAG_CUT, + .paletteTag = ANIM_TAG_HYDRO_PUMP, + .oam = &gOamData_AffineOff_ObjBlend_32x32, + .anims = gCuttingSliceAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimCuttingSlice +}; + +//razor shell +const struct SpriteTemplate gRazorShellTemplate = +{ + .tileTag = ANIM_TAG_RAZOR_SHELL, + .paletteTag = ANIM_TAG_RAZOR_SHELL, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = SpriteCB_SpriteOnMonForDuration +}; + +//heat crash +const struct SpriteTemplate gHeatCrashEruptionRockTemplate = +{ + .tileTag = ANIM_TAG_WARM_ROCK, + .paletteTag = ANIM_TAG_WARM_ROCK, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimStompFoot +}; + +//leaf tornado +const struct SpriteTemplate gLeafTornadoVortexTemplate = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +//cotton guard +const struct SpriteTemplate gCottonGuardSporeTemplate = +{ + .tileTag = ANIM_TAG_SPORE, + .paletteTag = ANIM_TAG_SPORE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gSporeParticleAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimPowerAbsorptionOrb +}; + +//night daze +const struct SpriteTemplate gNightDazeVioletRingsTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gNightDazeVioletCirclesTemplate = +{ + .tileTag = ANIM_TAG_RED_ORB, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gHiddenPowerOrbAffineAnimTable, + .callback = AnimOrbitScatter +}; + +//tail slap +const struct SpriteTemplate gTailSlapTemplate = +{ + .tileTag = ANIM_TAG_PUNISHMENT_BLADES, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gScratchAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//gear grind +const struct SpriteTemplate gGearGrindTemplate = +{ + .tileTag = ANIM_TAG_GEAR, + .paletteTag = ANIM_TAG_GEAR, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimBite +}; + +//searing shot +const struct SpriteTemplate gSearingShotRedChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gSearingShotEruptionRockTemplate = +{ + .tileTag = ANIM_TAG_WARM_ROCK, + .paletteTag = ANIM_TAG_WARM_ROCK, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOverheatFlame +}; + +static const union AffineAnimCmd sSpriteAffineAnim_SearingShotRock[] = +{ + AFFINEANIMCMD_FRAME(8, 8, 9, 15), + AFFINEANIMCMD_FRAME(-8, -8, 9, 15), + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_SearingShotRock[] = +{ + sSpriteAffineAnim_SearingShotRock, +}; +const struct SpriteTemplate gSearingShotEruptionImpactTemplate = +{ + .tileTag = ANIM_TAG_WARM_ROCK, + .paletteTag = ANIM_TAG_WARM_ROCK, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_SearingShotRock, + .callback = SpriteCB_SearingShotRock +}; + +//techno blast +const struct SpriteTemplate gTechnoBlastWhiteChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; +const struct SpriteTemplate gTechnoBlastWhiteCircleTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimPowerAbsorptionOrb +}; +const struct SpriteTemplate gTechnoBlastWhiteBlastTemplate = +{ + .tileTag = ANIM_TAG_BLACK_BALL_2, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; +const struct SpriteTemplate gTechnoBlastWhiteSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; +const struct SpriteTemplate gTechnoBlastWhiteSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gTechnoBlastYellowBlastTemplate = +{ + .tileTag = ANIM_TAG_BLACK_BALL_2, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; +const struct SpriteTemplate gTechnoBlastYellowSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; +const struct SpriteTemplate gTechnoBlastYellowSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gTechnoBlastBlueChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; +const struct SpriteTemplate gTechnoBlastBlueBubbleTemplate = +{ + .tileTag = ANIM_TAG_BUBBLE, + .paletteTag = ANIM_TAG_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; +const struct SpriteTemplate gTechnoBlastBlueBlastTemplate = +{ + .tileTag = ANIM_TAG_BLACK_BALL_2, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; +const struct SpriteTemplate gTechnoBlastBlueSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; +const struct SpriteTemplate gTechnoBlastBlueSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gTechnoBlastRedChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; +const struct SpriteTemplate gTechnoBlastRedBlastTemplate = +{ + .tileTag = ANIM_TAG_BLACK_BALL_2, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; +const struct SpriteTemplate gTechnoBlastRedSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; +const struct SpriteTemplate gTechnoBlastRedSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gTechnoBlastIceChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; +const struct SpriteTemplate gTechnoBlastIceBlastTemplate = +{ + .tileTag = ANIM_TAG_BLACK_BALL_2, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; +const struct SpriteTemplate gTechnoBlastIceSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; +const struct SpriteTemplate gTechnoBlastIceSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; +const struct SpriteTemplate gTechnoBlastIceCrystalsTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineNormal_ObjBlend_8x16, + .anims = gAnims_IceCrystalLarge, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//secret sword +const struct SpriteTemplate gSecretSwordBladesTemplate = +{ + .tileTag = ANIM_TAG_PUNISHMENT_BLADES, + .paletteTag = ANIM_TAG_HYDRO_PUMP, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +//glaciate +const struct SpriteTemplate gGlaciateSmokeTemplate = +{ + .tileTag = ANIM_TAG_BLACK_SMOKE, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBlackSmoke +}; + +//blue flare +const struct SpriteTemplate gBlueFlareFlameJabTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_METAL_BITS, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gBlueFlareFlameSwirlTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_METAL_BITS, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gBlueFlareBurnTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_METAL_BITS, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +//freeze shock +const struct SpriteTemplate gFreezeShockCircleTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingShockWaveOrb +}; + +const struct SpriteTemplate gFreezeShockIceBallTemplate = +{ + .tileTag = ANIM_TAG_ICE_CHUNK, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_IceBallChunk, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; + +//ice burn +const struct SpriteTemplate gIceBurnSmokeTemplate = +{ + .tileTag = ANIM_TAG_BLACK_SMOKE, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBlackSmoke +}; + +//icicle crash +static const union AffineAnimCmd sSpriteAffineAnim_IcicleCrash[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 128, 1), //180 degree turn + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_IcicleCrash[] = +{ + sSpriteAffineAnim_IcicleCrash, +}; +const struct SpriteTemplate gIcicleCrashSpearTemplate = +{ + .tileTag = ANIM_TAG_ICICLE_SPEAR, + .paletteTag = ANIM_TAG_ICICLE_SPEAR, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_IcicleCrash, + .callback = AnimFallingRock +}; + +//v create +const struct SpriteTemplate gVCreateFlameTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_FireBlastCross, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gVCreateRedRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gVCreateRedOrbTemplate = +{ + .tileTag = ANIM_TAG_ECLIPSING_ORB, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gEclipsingOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//fusion flare +const struct SpriteTemplate gFusionFlareRedBallUpTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_VERTICAL_HEX, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimWeatherBallUp +}; + +const struct SpriteTemplate gFusionFlareRedBallTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_VERTICAL_HEX, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimStompFoot +}; + +const struct SpriteTemplate gFusionFlareRedBubblesTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimWaterPulseBubble +}; + +const struct SpriteTemplate gFusionFlareRedRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +//fusion bolt +static const union AffineAnimCmd sSpriteAffineAnim_DrakeStrikePlayer[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0xb9, 1), //.hword 0,0,0x01b9 + AFFINEANIMCMD_END, //.hword 0,0x7fff,0,0,0 +}; +static const union AffineAnimCmd sSpriteAffineAnim_DrakeStrikeOpponent[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0x50, 1), //.hword 0,0,0x0150,0, + AFFINEANIMCMD_END, //.hword 0x7fff,0,0,0 +}; +static const union AffineAnimCmd* const sAffineAnimCmdTable_DrakeStriking[] = //devestating drake, fusion bolt +{ + sSpriteAffineAnim_DrakeStrikePlayer, + sSpriteAffineAnim_DrakeStrikeOpponent, +}; +const struct SpriteTemplate gFusionBoltBallTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gOamData_AffineNormal_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnimCmdTable_DrakeStriking, + .callback = AnimFlyBallAttack +}; + +//// GEN 6 +//mat block +const struct SpriteTemplate gMatBlockGreenConversionTemplate = +{ + .tileTag = ANIM_TAG_CONVERSION, + .paletteTag = ANIM_TAG_GREEN_LIGHT_WALL, + .oam = &gOamData_AffineDouble_ObjBlend_8x8, + .anims = gConversionAnimTable, + .images = NULL, + .affineAnims = gConversionAffineAnimTable, + .callback = AnimConversion +}; + +//belch +static const union AnimCmd sAnimCmdBerryEaten[] = +{ + ANIMCMD_FRAME(16, 3), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdFramesBerryEaten[] = +{ + sAnimCmdBerryEaten, +}; +const struct SpriteTemplate gBelchBerryTemplate = +{ + .tileTag = ANIM_TAG_BERRY_NORMAL, + .paletteTag = ANIM_TAG_BERRY_NORMAL, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = sAnimCmdFramesBerryEaten, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMissileArc +}; + +//forest's curse +const struct SpriteTemplate gForestsCurseIngrainTemplate = +{ + .tileTag = ANIM_TAG_ROOTS, + .paletteTag = ANIM_TAG_ROOTS, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gIngrainRootAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimWaterPulseBubble +}; + +//petal blizzard +/* +PB_TEMPLATE_1: .hword 0x0,0xa,0xfffe,0x0 + 00 00 00 0A FE FF 00 00 +*/ +static const union AnimCmd sAnimCmd_PetalBlizzard1_0[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd *const sAnimCmdTable_PetalBlizzard1[] = +{ + sAnimCmd_PetalBlizzard1_0, +}; +const struct SpriteTemplate gPetalBlizzardTwister1Template = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = sAnimCmdTable_PetalBlizzard1, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveTwisterParticle +}; +static const u16 sPetalBlizzardFlowerOam[] = {0x0, 0x2000,0x0800,0x0}; //todo: convert to oam data +static const union AnimCmd sAnimCmd_PetalBlizzard2_0[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 0), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdTable_PetalBlizzard2[] = +{ + sAnimCmd_PetalBlizzard2_0, +}; +const struct SpriteTemplate gPetalBlizzardTwister2Template = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = (const struct OamData *) &sPetalBlizzardFlowerOam, + .anims = sAnimCmdTable_PetalBlizzard2, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveTwisterParticle +}; + +//crafty shield +const struct SpriteTemplate gCraftyShieldPinkConversionTemplate = +{ + .tileTag = ANIM_TAG_CRAFTY_SHIELD, + .paletteTag = ANIM_TAG_CRAFTY_SHIELD, + .oam = &gOamData_AffineDouble_ObjBlend_8x8, + .anims = gConversionAnimTable, + .images = NULL, + .affineAnims = gConversionAffineAnimTable, + .callback = AnimConversion +}; + +//grassy terrain +const struct SpriteTemplate gGrassyTerrainOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimOrbitFast +}; + +const struct SpriteTemplate gGrassyTerrainStarTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPARKLE, + .paletteTag = ANIM_TAG_GREEN_SPARKLE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gMoonlightSparkleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOrbitScatter +}; + +//misty terrain +const struct SpriteTemplate gMistyTerrainOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimOrbitFast +}; + +const struct SpriteTemplate gMistyTerrainStarTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPARKLE, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gMoonlightSparkleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOrbitScatter +}; + +//electrify +const struct SpriteTemplate gElectrifyRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +const struct SpriteTemplate gElectrifyYellowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +//fairy wind +const struct SpriteTemplate gFairyWindCloudTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_PINK_CLOUD, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSwiftStarAffineAnimTable, + .callback = AnimTranslateLinearSingleSineWave +}; + +//confide +const struct SpriteTemplate gConfideBubbleTemplate = +{ + .tileTag = ANIM_TAG_CONFIDE, + .paletteTag = ANIM_TAG_CONFIDE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gMetronomeThroughtBubbleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThoughtBubble +}; + +//diamond storm +const struct SpriteTemplate gDiamondStormSwirlingIceTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_Snowball, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSwirlingSnowball_Step1 +}; + +const struct SpriteTemplate gDiamondStormBlizzardTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gAnims_BlizzardIceCrystal, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveParticleBeyondTarget +}; + +const struct SpriteTemplate gDiamondStormDiamondsTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineNormal_ObjBlend_8x16, + .anims = gAnims_IceCrystalLarge, + .images = NULL, + .affineAnims = gAffineAnims_BasicRock, + .callback = AnimMoveTwisterParticle +}; + +//steam eruption +const struct SpriteTemplate gSteamEruptionBreathTemplate = +{ + .tileTag = ANIM_TAG_STEAM_ERUPTION, + .paletteTag = ANIM_TAG_STEAM_ERUPTION, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gAffineAnims_DragonBreathFire, + .callback = AnimDragonFireToTarget +}; + +//hyperspace hole +const struct SpriteTemplate gHyperspaceHoleImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_IceCrystalHit, + .callback = AnimIceEffectParticle +}; + +//water shuriken +const struct SpriteTemplate gWaterShurikenStarTemplate = +{ + .tileTag = ANIM_TAG_YELLOW_STAR, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + +const struct SpriteTemplate gWaterShurikenRingTemplate = +{ + .tileTag = ANIM_TAG_BLUE_RING_2, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gWaterPulseRingAffineAnimTable, + .callback = AnimWaterPulseRing +}; + +const struct SpriteTemplate gWaterShurikenImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//eerie impulse +const struct SpriteTemplate gEerieImpulseRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gHyperVoiceRingAffineAnimTable, + .callback = AnimHyperVoiceRing +}; + +const struct SpriteTemplate gEerieImpulseImpactTemplate = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_SPARK_H, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimGrantingStars +}; + +//venom drench +const struct SpriteTemplate gVenomDrenchAcidTemplate = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFallingRock +}; + +//powder +const struct SpriteTemplate gPowderBlackSporeTemplate = +{ + .tileTag = ANIM_TAG_SPORE, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gSporeParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSporeParticle +}; + +//geomancy +const struct SpriteTemplate gGeomancyRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_GUARD_RING, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +const struct SpriteTemplate gGeomancyYellowRageTemplate = +{ + .tileTag = ANIM_TAG_FIRE_PLUME, + .paletteTag = ANIM_TAG_PAW_PRINT, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_DragonRageFirePlume, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDragonRageFirePlume +}; + +const struct SpriteTemplate gGeomancyRedCellVortexTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gGeomancyGreenCellVortexTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_WHIP_HIT, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gGeomancyBlueCellVortexTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_SWEAT_BEAD, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gGeomancyRedCellRaiseTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRaiseSprite +}; + +const struct SpriteTemplate gGeomancyGreenCellRaiseTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_WHIP_HIT, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRaiseSprite +}; + +const struct SpriteTemplate gGeomancyBlueCellRaiseTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_SWEAT_BEAD, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRaiseSprite +}; + +//magnetic flux +const struct SpriteTemplate gMagneticFluxUproarTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +//happy hour +const struct SpriteTemplate gHappyHourCoinShowerTemplate = +{ + .tileTag = ANIM_TAG_COIN, + .paletteTag = ANIM_TAG_COIN, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gCoinAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimHappyHourCoinShower +}; + +//electric terrain +const struct SpriteTemplate gElectricTerrainOrbsTemplate = +{ + .tileTag = ANIM_TAG_ELECTRIC_ORBS, + .paletteTag = ANIM_TAG_ELECTRIC_ORBS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_ElectricChargingParticles, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOrbitFast +}; + +const struct SpriteTemplate gElectricTerrainFlyingBallTemplate = +{ + .tileTag = ANIM_TAG_ELECTRIC_ORBS, + .paletteTag = ANIM_TAG_ELECTRIC_ORBS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_ElectricChargingParticles, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOrbitScatter +}; + +//celebrate +const struct SpriteTemplate gCelebrateBagTemplate = +{ + .tileTag = ANIM_TAG_ITEM_BAG, + .paletteTag = ANIM_TAG_ITEM_BAG, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gMetronomeFingerAffineAnimTable, + .callback = AnimFollowMeFinger +}; + +//hold hands +const struct SpriteTemplate gHoldHandsHeartTemplate = +{ + .tileTag = ANIM_TAG_MAGENTA_HEART, + .paletteTag = ANIM_TAG_VERTICAL_HEX, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPetalDanceBigFlower +}; + +//hold back +const struct SpriteTemplate gHoldBackSwipeTemplate = +{ + .tileTag = ANIM_TAG_PURPLE_SWIPE, + .paletteTag = ANIM_TAG_PAW_PRINT, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = gAnims_RevengeBigScratch, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRevengeScratch +}; + +const struct SpriteTemplate gHoldBackRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_PAW_PRINT, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gHoldBackStarsTemplate = +{ + .tileTag = ANIM_TAG_PAIN_SPLIT, + .paletteTag = ANIM_TAG_DUCK, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDizzyPunchDuck +}; + +//infestation +const struct SpriteTemplate gInfestationBubbleTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimParticleInVortex +}; + +//oblivion wing +static const union AffineAnimCmd sSpriteAffineAnim_GrowingRing[] = +{ + AFFINEANIMCMD_FRAME(8, 8, 0, 16), //Double in size + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_GrowingRing[] = +{ + sSpriteAffineAnim_GrowingRing, +}; +const struct SpriteTemplate gOblivionWingBeamTemplate = +{ + .tileTag = ANIM_TAG_HYDRO_PUMP, + .paletteTag = ANIM_TAG_HYDRO_PUMP, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_GrowingRing, + .callback = TranslateAnimSpriteToTargetMonLocation +}; + +//thousand arrows +const struct SpriteTemplate gThousandArrowsGreenChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gThousandArrowsGreenHexTemplate = +{ + .tileTag = ANIM_TAG_VERTICAL_HEX, + .paletteTag = ANIM_TAG_ZYGARDE_HEXES, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_Geyser +}; + +const struct SpriteTemplate gThousandArrowsGreenArrowTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMudSportDirt +}; + +const struct SpriteTemplate gThousandArrowsGreenDischargeTemplate = +{ + .tileTag = ANIM_TAG_ELECTRICITY, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_ElectricPuff, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimElectricPuff +}; + +//thousand waves +const struct SpriteTemplate gThousandWavesGreenWaveTemplate = +{ + .tileTag = ANIM_TAG_FLYING_DIRT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFlyingSandCrescent +}; + +const struct SpriteTemplate gThousandWavesGreenRecoverTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_ZYGARDE_HEXES, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimPowerAbsorptionOrb +}; + +const struct SpriteTemplate gThousandWavesGreenWheelTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_ZYGARDE_HEXES, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDragonDanceOrb +}; + +const struct SpriteTemplate gThousandWavesRotatingImpactTemplate = +{ + .tileTag = ANIM_TAG_ZYGARDE_HEXES, + .paletteTag = ANIM_TAG_ZYGARDE_HEXES, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_Whirlpool, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gThousandWavesPoundImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatOnMonEdge +}; + +//lands wrath +const struct SpriteTemplate gLandsWrathVortexTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gAffineAnims_Whirlpool, + .callback = AnimParticleInVortex +}; + +//light of ruin +const struct SpriteTemplate gLightOfRuinPinkOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarbeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimHyperBeamOrb +}; +const struct SpriteTemplate gLightOfRuinPinkDischargeTemplate = +{ + .tileTag = ANIM_TAG_ELECTRICITY, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_ElectricPuff, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimElectricPuff +}; + +const struct SpriteTemplate gLightOfRuinPinkExplosionTemplate = +{ + .tileTag = ANIM_TAG_EXPLOSION, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gExplosionAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//origin pulse +const struct SpriteTemplate gOriginPulseRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gOriginPulseOrbTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimDragonDanceOrb +}; + +const struct SpriteTemplate gOriginPulseOrbInwardTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gOriginPulseBlueImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatRandom +}; + +const struct SpriteTemplate gOriginPulseBasicSplatTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//precipice blades +static const union AnimCmd sAnimCmdLargeSpike[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_FRAME(96, 3), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdTable_LargeSpike[] = +{ + sAnimCmdLargeSpike, +}; +const struct SpriteTemplate gPrecipiceBladesSpikeTemplate = +{ + .tileTag = ANIM_TAG_LARGE_SPIKE, + .paletteTag = ANIM_TAG_LARGE_SPIKE, + .oam = &gOamData_AffineOff_ObjNormal_32x64, + .anims = sAnimCmdTable_LargeSpike, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SpriteOnMonForDuration +}; + +static const union AffineAnimCmd sSpriteAffineAnim_LargeHailRock[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 1), //Double sprite size + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_LargeHailRock[] = +{ + sSpriteAffineAnim_LargeHailRock, +}; +const struct SpriteTemplate gPrecipiceBladesLargeSpikeTemplate = +{ + .tileTag = ANIM_TAG_LARGE_SPIKE, + .paletteTag = ANIM_TAG_LARGE_SPIKE, + .oam = &gOamData_AffineDouble_ObjNormal_32x64, + .anims = sAnimCmdTable_LargeSpike, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_LargeHailRock, + .callback = SpriteCB_SpriteOnMonForDuration +}; + +const struct SpriteTemplate gPrecipiceBladesPlumeTemplate = +{ + .tileTag = ANIM_TAG_FIRE_PLUME, + .paletteTag = ANIM_TAG_FIRE_PLUME, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_DragonRageFirePlume, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_AnimSpriteOnSelectedMonPos +}; + +//dragon ascent +static const union AffineAnimCmd sAffineAnimCmd_Drake[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 1), //drake faces up + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd* const sAffineAnimCmdTable_DrakeFaceNorth[] = +{ + sAffineAnimCmd_Drake, + sAffineAnimCmd_Drake, +}; +const struct SpriteTemplate gDragonAscentFlyUpTemplate = +{ + .tileTag = ANIM_TAG_DRAGON_ASCENT, + .paletteTag = ANIM_TAG_DRAGON_ASCENT, + .oam = &gOamData_AffineNormal_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnimCmdTable_DrakeFaceNorth, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gDragonAscentDrakeTemplate = +{ + .tileTag = ANIM_TAG_DRAGON_ASCENT, + .paletteTag = ANIM_TAG_DRAGON_ASCENT, + .oam = &gOamData_AffineNormal_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnimCmdTable_DrakeStriking, + .callback = AnimFlyBallAttack +}; + +//hyperspace fury +const struct SpriteTemplate gHyperspaceFuryRingTemplate = +{ + .tileTag = ANIM_TAG_HOOPA_RING, + .paletteTag = ANIM_TAG_HOOPA_RING, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimFireSpiralOutward +}; + +const struct SpriteTemplate gHyperspaceFuryHandTemplate = +{ + .tileTag = ANIM_TAG_HOOPA_HAND, + .paletteTag = ANIM_TAG_HOOPA_HAND, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gHyperspaceFuryImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatRandom +}; + +//// GEN 7 +//first impression +const struct SpriteTemplate gFirstImpressionPoundTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//baneful bunker +const struct SpriteTemplate gBanefulBunkerPoisonBubbleTemplate = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; + +//spirit shackle +const struct SpriteTemplate gSpiritShackleArrowTemplate = +{ + .tileTag = ANIM_TAG_SPIRIT_ARROW, + .paletteTag = ANIM_TAG_SPIRIT_ARROW, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSonicBoomProjectile +}; + +const struct SpriteTemplate gSpiritShackleChainTemplate = +{ + .tileTag = ANIM_TAG_CHAIN_LINK, + .paletteTag = ANIM_TAG_CHAIN_LINK, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThunderWave +}; + +//darkest lariat +const struct SpriteTemplate gDarkestLariatImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//sparklig aria +const struct SpriteTemplate gSparklingAriaBlueChargeTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gSparklingAriaRainTemplate = +{ + .tileTag = ANIM_TAG_HYDRO_PUMP, + .paletteTag = ANIM_TAG_HYDRO_PUMP, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMudSportDirt +}; + +const struct SpriteTemplate gSparklingAriaBubbleRainTemplate = +{ + .tileTag = ANIM_TAG_BUBBLE, + .paletteTag = ANIM_TAG_BUBBLE, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMudSportDirt +}; + +const struct SpriteTemplate gSparklingAriaBubblesTemplate = +{ + .tileTag = ANIM_TAG_BUBBLE, + .paletteTag = ANIM_TAG_BUBBLE, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; + +//ice hammer +const struct SpriteTemplate gIceHammerPunchStompTemplate = +{ + .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, + .paletteTag = ANIM_TAG_HORSESHOE_SIDE_FIST, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimStompFoot +}; + +const struct SpriteTemplate gIceHammerSmokesTemplate = +{ + .tileTag = ANIM_TAG_BLACK_SMOKE, + .paletteTag = ANIM_TAG_ECLIPSING_ORB, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBlackSmoke +}; + +//floral healing +const struct SpriteTemplate gFloralHealingFlowerTemplate = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gPetalDanceBigFlowerAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSporeParticle +}; + +const struct SpriteTemplate gFloralHealingOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_Whirlpool, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gFloralHealingLeavesTemplate = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_Whirlpool, + .callback = AnimParticleInVortex +}; + +const struct SpriteTemplate gFloralHealingWindLeavesTemplate = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSweetScentPetal +}; + +//high horsepower +const struct SpriteTemplate gHighHorsepowerHorseshoeTemplate = +{ + .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, + .paletteTag = ANIM_TAG_HORSESHOE_SIDE_FIST, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gAffineAnims_MegaPunchKick, + .callback = AnimSpinningKickOrPunch +}; + +//strength sap +const struct SpriteTemplate gStrengthSapRedSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_RED_HEART, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gStrengthSapRedInwardTemplate = +{ + .tileTag = ANIM_TAG_TEAL_ALERT, + .paletteTag = ANIM_TAG_RED_HEART, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimTealAlert +}; + +const struct SpriteTemplate gStrengthSapAbsorbTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gAbsorptionOrbAffineAnimTable, + .callback = AnimAbsorptionOrb +}; + +//solar blade +const struct SpriteTemplate gSolarBladeImpactTemplate = +{ + .tileTag = ANIM_TAG_CLAW_SLASH, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_ClawSlash, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimClawSlash +}; + +//leafage +const struct SpriteTemplate gLeafageImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//toxic thread +const struct SpriteTemplate gToxicThreadString = +{ + .tileTag = ANIM_TAG_STRING, + .paletteTag = ANIM_TAG_STRING, + .oam = &gOamData_AffineOff_ObjNormal_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_ToxicThreadWrap +}; + +//laser focus +const struct SpriteTemplate gLaserFocusRedEyesTemplate = +{ + .tileTag = ANIM_TAG_OPENING_EYE, + .paletteTag = ANIM_TAG_EYE_SPARKLE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOpeningEyeAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//gear up +const struct SpriteTemplate gGearUpGearsTemplate = +{ + .tileTag = ANIM_TAG_GEAR, + .paletteTag = ANIM_TAG_GEAR, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPetalDanceBigFlower +}; + +//throat chop +const struct SpriteTemplate gThroatChopRedImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//pollen puff +const struct SpriteTemplate gPollenPuffPinkStarTemplate = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gGrantingStarsAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; + +const struct SpriteTemplate gPollenPuffPinkSparkleTemplate = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gGrantingStarsAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; + +const struct SpriteTemplate gPollenPuffYellowSparkleTemplate = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gGrantingStarsAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; + +const struct SpriteTemplate gPollenPuffSporeTemplate = +{ + .tileTag = ANIM_TAG_SPORE, + .paletteTag = ANIM_TAG_SPORE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gSporeParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThrowProjectile +}; + +const struct SpriteTemplate gPollenPuffImpactTemplates = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_FLAT_ROCK, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPollenPuffHealTemplate = +{ + .tileTag = ANIM_TAG_BLUE_STAR, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gHealingBlueStarAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//anchor shot +const struct SpriteTemplate gAnchorShotAnchorTemplate = +{ + .tileTag = ANIM_TAG_ANCHOR, + .paletteTag = ANIM_TAG_CHAIN_LINK, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBlockX +}; + +const struct SpriteTemplate gAnchorShotAngledAnchorTemplate = +{ + .tileTag = ANIM_TAG_ANCHOR, + .paletteTag = ANIM_TAG_CHAIN_LINK, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + +//psychic terrain +const struct SpriteTemplate gPsychicTerrainOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gPowerAbsorptionOrbAffineAnimTable, + .callback = AnimOrbitFast +}; + +const struct SpriteTemplate gPsychicTerrainStarTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPARKLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gMoonlightSparkleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimOrbitScatter +}; + +//lunge +const struct SpriteTemplate gLungeGreenChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_PsychoBoostOrb, + .callback = AnimPsychoBoost +}; + +const struct SpriteTemplate gLungeGreenBubbleTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThrowProjectile +}; + +const struct SpriteTemplate gLungeGreenImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//power trip +const struct SpriteTemplate gPowerTripFocusEnergyTemplate = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gEndureEnergyAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEndureEnergy +}; + +const struct SpriteTemplate gPowerTripImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//burn up +const struct SpriteTemplate gBurnUpRedYawnTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThrowMistBall +}; + +//speed swap +const struct SpriteTemplate gSpeedSwapRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gSpeedSwapCircleTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gMimicOrbAffineAnimTable, + .callback = AnimMimicOrb +}; + +const struct SpriteTemplate gSpeedSwapOrbMissileTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gMimicOrbAffineAnimTable, + .callback = AnimMissileArc +}; + +const struct SpriteTemplate gSpeedSwapOrbTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +//smart strike +const struct SpriteTemplate gSmartStrikeGemTemplate = +{ + .tileTag = ANIM_TAG_POWER_GEM, + .paletteTag = ANIM_TAG_POWER_GEM, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gSmartStrikeImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_FLASH_CANNON_BALL, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//purify +const struct SpriteTemplate gPurifyWhiteBallTemplate = +{ + .tileTag = ANIM_TAG_FLASH_CANNON_BALL, + .paletteTag = ANIM_TAG_FLASH_CANNON_BALL, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMissileArc +}; + +const struct SpriteTemplate gPurifySmokeTemplate = +{ + .tileTag = ANIM_TAG_BLACK_SMOKE, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBlackSmoke +}; + +//revelation dance +const struct SpriteTemplate gRevelationDanceYellowOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPetalDanceBigFlower +}; + +const struct SpriteTemplate gRevelationDanceYellowFlowerTemplate = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gPetalDanceSmallFlowerAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPetalDanceSmallFlower +}; + +const struct SpriteTemplate gRevelationDanceYellowAirWaveTemplate = +{ + .tileTag = ANIM_TAG_AIR_WAVE, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineDouble_ObjBlend_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSonicBoomProjectile +}; + +const struct SpriteTemplate gRevelationDanceYellowImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +const struct SpriteTemplate gRevelationDanceYellowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gRevelationDanceYellowDispersalTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +//core enforcer +const struct SpriteTemplate gCoreEnforcerBlueRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gCoreEnforcerYellowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gCoreEnforcerGreenRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gCoreEnforcerCircleChargeTemplate = +{ + .tileTag = ANIM_TAG_SHOCK_3, + .paletteTag = ANIM_TAG_SHOCK_3, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gAnims_ThunderboltOrb, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimFlashingHitSplat +}; + +const struct SpriteTemplate gCoreEnforcerBlueSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSparkElectricity +}; + +const struct SpriteTemplate gCoreEnforcerGreenChargeTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSparkElectricity +}; + +const struct SpriteTemplate gCoreEnforcerSnoreTemplate = +{ + .tileTag = ANIM_TAG_SNORE_Z, + .paletteTag = ANIM_TAG_SNORE_Z, + .oam = &gOamData_AffineOff_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_CentredSpiderWeb +}; + +const struct SpriteTemplate gCoreEnforcerImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = SpriteCB_CoreEnforcerHits +}; + +const struct SpriteTemplate gCoreEnforcerBeamTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarbeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_CoreEnforcerBeam +}; + +const struct SpriteTemplate gCoreEnforcerExplosionTemplate = +{ + .tileTag = ANIM_TAG_EXPLOSION, + .paletteTag = ANIM_TAG_EXPLOSION, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gExplosionAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SpriteToCentreOfSide +}; + +//trop kick +const struct SpriteTemplate gTropKickGreenFootTemplate = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimJumpKick +}; + +const struct SpriteTemplate gTropKickFlowerTemplate = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gPetalDanceBigFlowerAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +const struct SpriteTemplate gTropKickLeavesTemplate = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gRazorLeafParticleAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireSpread +}; + +//clanging scales +const struct SpriteTemplate gClangingScalesPurpleMetalSoundTemplate = +{ + .tileTag = ANIM_TAG_METAL_SOUND_WAVES, + .paletteTag = ANIM_TAG_METAL_SOUND_WAVES, + .oam = &gOamData_AffineDouble_ObjNormal_32x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGrowingRingAffineAnimTable, + .callback = SpriteCB_TranslateAnimSpriteToTargetMonLocationDoubles +}; + +//brutal swing +const struct SpriteTemplate gBrutalSwingRandomImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatRandom +}; + +const struct SpriteTemplate gBrutalSwingBasicImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +//aurora veil +const struct SpriteTemplate gAuroraVeilRingTemplate = +{ + .tileTag = ANIM_TAG_GUARD_RING, + .paletteTag = ANIM_TAG_GUARD_RING, + .oam = &gOamData_AffineDouble_ObjBlend_64x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGuardRingAffineAnimTable, + .callback = SpriteCB_SurroundingRing +}; + +//shell trap +const struct SpriteTemplate gShellTrapYellowImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +const struct SpriteTemplate gShellTrapRedImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +const struct SpriteTemplate gShellTrapFireHitsTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_Snowball, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveParticleBeyondTarget +}; + +//fleur cannon +const struct SpriteTemplate gFleurCannonOrbTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarbeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimHyperBeamOrb +}; + +const struct SpriteTemplate gFleurCannonDischargeTemplate = +{ + .tileTag = ANIM_TAG_ELECTRICITY, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_ElectricPuff, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimElectricPuff +}; + +//stomping tantrum +const struct SpriteTemplate gStompingTantrumRockTemplate = +{ + .tileTag = ANIM_TAG_SMALL_ROCK, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_TearDrop, + .callback = AnimTearDrop +}; + +//prismatic laser +const struct SpriteTemplate gPrismaticLaserChargeTemplate = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gPrismaticLaserYellowOutwardTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_SPARK_H, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserGreenOutwardTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserRedOutwardTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserVioletOutwardTemplate = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserYellowInwardTemplate = +{ + .tileTag = ANIM_TAG_TEAL_ALERT, + .paletteTag = ANIM_TAG_SPARK_H, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserGreenInwardTemplate = +{ + .tileTag = ANIM_TAG_TEAL_ALERT, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserRedInwardTemplate = +{ + .tileTag = ANIM_TAG_TEAL_ALERT, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserVioletInwardTemplate = +{ + .tileTag = ANIM_TAG_TEAL_ALERT, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimNeedleArmSpike +}; + +const struct SpriteTemplate gPrismaticLaserYellowRainTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_SPARK_H, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_FallingObject +}; + +const struct SpriteTemplate gPrismaticLaserGreenRainTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_FallingObject +}; + +const struct SpriteTemplate gPrismaticLaserRedRainTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_JAGGED_MUSIC_NOTE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_FallingObject +}; + +const struct SpriteTemplate gPrismaticLaserVioletRainTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_FallingObject +}; + +//spectral thief +const struct SpriteTemplate gSpectralThiefBlackSmokeTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +const struct SpriteTemplate gSpectralThiefThiefImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_IceCrystalHit, + .callback = AnimIceEffectParticle +}; + +const struct SpriteTemplate gSpectralThiefBlackOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gMimicOrbAffineAnimTable, + .callback = AnimMimicOrb +}; + +const struct SpriteTemplate gSpectralThiefBlackBuffTemplate = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gEndureEnergyAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEndureEnergy +}; + +//sunsteeel strike +const struct SpriteTemplate gSunsteelStrikeBlackFlyBallTemplate = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlyBallUp, + .callback = AnimFlyBallUp +}; + +static const struct OamData sSunsteelStrikeBlastOAM = +{ + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1, //Above sprites +}; +static const union AffineAnimCmd sSpriteAffineAnim_SunsteelStrikeBlastEnemySide[] = +{ + AFFINEANIMCMD_FRAME(0, 0, -64, 1), //90 degree turn + AFFINEANIMCMD_FRAME(0, 0, 0, 7), //Pause + AFFINEANIMCMD_FRAME(16, 16, 0, 15), //Double in size + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd sSpriteAffineAnim_SunsteelStrikeBlastPlayerSide[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 128, 1), //180 degree turn + AFFINEANIMCMD_FRAME(0, 0, 0, 7), //Pause + AFFINEANIMCMD_FRAME(16, 16, 0, 15), //Double in size + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_SunsteelStrikeBlast[] = +{ + sSpriteAffineAnim_SunsteelStrikeBlastEnemySide, + sSpriteAffineAnim_SunsteelStrikeBlastPlayerSide, +}; +const struct SpriteTemplate gSunsteelStrikeSuperpowerTemplate = +{ + .tileTag = ANIM_TAG_METEOR, + .paletteTag = ANIM_TAG_METEOR, + .oam = &sSunsteelStrikeBlastOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_SunsteelStrikeBlast, + .callback = AnimFlyBallAttack +}; + +const struct SpriteTemplate gSunsteelStrikeRedBeamTemplate = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlyBallAttack, + .callback = SpriteCB_SunsteelStrikeRings +}; + +const struct SpriteTemplate gSunsteelStrikeYellowBeamTemplate = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_GOLD_RING, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlyBallAttack, + .callback = SpriteCB_SunsteelStrikeRings +}; + +const struct SpriteTemplate gSunsteelStrikeRedImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = AnimHitSplatBasic +}; + +const struct SpriteTemplate gSunsteelStrikeRocksTemplate = +{ + .tileTag = ANIM_TAG_SMALL_ROCK, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_TearDrop, + .callback = AnimTearDrop +}; + +//moongeist beam +const struct SpriteTemplate gMoongeistBeamBlueOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarbeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimHyperBeamOrb +}; + +const struct SpriteTemplate gMoongeistBeamPurpleOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ASSURANCE_HAND, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarbeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimHyperBeamOrb +}; + +const struct SpriteTemplate gMoongeistBeamChargeTemplate = +{ + .tileTag = ANIM_TAG_ELECTRIC_ORBS, + .paletteTag = ANIM_TAG_ELECTRIC_ORBS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_ElectricChargingParticles, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MoongeistCharge +}; + +//zing zap +const struct SpriteTemplate gZingZapYellowBallTemplate = +{ + .tileTag = ANIM_TAG_YELLOW_BALL, + .paletteTag = ANIM_TAG_SPARK_H, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimShadowBall +}; + +const struct SpriteTemplate gZingZapRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +//nature's madness +const struct SpriteTemplate gNaturesMadnessPinkStarsTemplate = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gGrantingStarsAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; + +const struct SpriteTemplate gNaturesMadnessCrystalsTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, + .paletteTag = ANIM_TAG_ICE_CHUNK, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_SmallBubblePair, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair +}; + +const struct SpriteTemplate gNaturesMadnessPinkRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_PINK_PETAL, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gNaturesMadnessGrayRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_ECLIPSING_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingShrinkingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//mind blown +const struct SpriteTemplate gMindBlownHeadTemplate = +{ + .tileTag = ANIM_TAG_BLACEPHALON_HEAD, + .paletteTag = ANIM_TAG_BLACEPHALON_HEAD, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = SpriteCB_MindBlownBall +}; + +const struct SpriteTemplate gMindBlownBlueOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MindBlownExplosion +}; + +const struct SpriteTemplate gMindBlownPinkOrbsTemplate = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_PINK_HEART, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = gPowerAbsorptionOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MindBlownExplosion +}; + +const struct SpriteTemplate gMindBlownBlueImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = SpriteCB_RandomCentredHits +}; + +const struct SpriteTemplate gMindBlownPinkImpactTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_PINK_HEART, + .oam = &gOamData_AffineNormal_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_HitSplat, + .callback = SpriteCB_RandomCentredHits +}; + +//plasma fists +const struct SpriteTemplate gPlasmaFistsChargeTemplate = +{ + .tileTag = ANIM_TAG_SHOCK_3, + .paletteTag = ANIM_TAG_SHOCK_3, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gAnims_ThunderboltOrb, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +//photon geyser +static const union AnimCmd sAnimCmdPhotonGeyserBeam1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; +static const union AnimCmd sAnimCmdSmiteBeam[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END +}; +static const union AnimCmd sAnimCmdPhotonGeyserBeam2[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END +}; +static const union AnimCmd *const sAnimCmdTable_PhotonGeyserBeam[] = +{ + sAnimCmdPhotonGeyserBeam1, + sAnimCmdSmiteBeam, + sAnimCmdPhotonGeyserBeam2, +}; +static const union AffineAnimCmd sSpriteAffineAnim_DoNothing[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 1), //Do nothing + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd sSpriteAffineAnim_PhotonGeyserBeam[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 16), //Delay + AFFINEANIMCMD_FRAME(64, 64, 0, 4), //Double in size + //Pulsate + AFFINEANIMCMD_FRAME(-128, -128, 0, 1), + AFFINEANIMCMD_FRAME(128, 128, 0, 1), + AFFINEANIMCMD_JUMP(2), +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_PhotonGeyserBeam[] = +{ + sSpriteAffineAnim_DoNothing, + sSpriteAffineAnim_PhotonGeyserBeam, +}; +const struct SpriteTemplate gPhotonGeyserBeam = +{ + .tileTag = ANIM_TAG_STRAIGHT_BEAM, + .paletteTag = ANIM_TAG_STRAIGHT_BEAM, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = sAnimCmdTable_PhotonGeyserBeam, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_PhotonGeyserBeam, + .callback = SpriteCB_PhotonGeyserBeam +}; + +const struct SpriteTemplate gPhotonGeyserChargeTemplate = +{ + .tileTag = ANIM_TAG_SHOCK_3, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gAnims_ThunderboltOrb, + .images = NULL, + .affineAnims = gAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb +}; + +const struct SpriteTemplate gPhotonGeyserSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSparkElectricity +}; + +const struct SpriteTemplate gPhotonGeyserZapCannonSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SMALL_RED_EYE, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark +}; + +const struct SpriteTemplate gPhotonGeyserWhiteRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gPhotonGeyserYellowRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineDouble_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimUproarRing +}; + +const struct SpriteTemplate gPhotonGeyserZapBallTemplate = +{ + .tileTag = ANIM_TAG_YELLOW_BALL, + .paletteTag = ANIM_TAG_YELLOW_BALL, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation +}; + + +//// GEN 8 +//snipe shot +static const union AffineAnimCmd sSpriteAffineAnim_LargeSpikePointedLeft[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 32, 1), //45 degree turn + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sSpriteAffineAnim_LargeSpikePointedRight[] = +{ + AFFINEANIMCMD_FRAME(0, 0, -32, 1), //45 degree turn + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_LargeSpike[] = +{ + sSpriteAffineAnim_LargeSpikePointedLeft, + sSpriteAffineAnim_LargeSpikePointedRight, +}; + +static const union AffineAnimCmd* const sSpriteAffineAnimTable_SnipeShot[] = +{ + sSpriteAffineAnim_LargeSpikePointedRight, +}; +static const union AnimCmd sAnimCmdSnipeShot[] = +{ + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdTable_SnipeShot[] = +{ + sAnimCmdSnipeShot, +}; +const struct SpriteTemplate gSnipeShotBallTemplate = //used in aura sphere +{ + .tileTag = ANIM_TAG_IMPACT_2, + .paletteTag = ANIM_TAG_IMPACT_2, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = sAnimCmdTable_SnipeShot, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_SnipeShot, + .callback = AnimShadowBall +}; + +//jaw lock +const struct SpriteTemplate gJawLockTeethTemplate = +{ + .tileTag = ANIM_TAG_SHARP_TEETH, + .paletteTag = ANIM_TAG_SHARP_TEETH, + .oam = &gOamData_AffineNormal_ObjBlend_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_Bite, + .callback = SpriteCB_LockingJaw +}; + +//stuff cheeks +static const union AnimCmd sAnimCmdBerryChomp[] = +{ + ANIMCMD_FRAME(0, 0x30), + ANIMCMD_FRAME(0, 0x25), + ANIMCMD_FRAME(16, 3), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdTable_BerryChomp[] = +{ + sAnimCmdBerryChomp, +}; +const struct SpriteTemplate gFloatingBerryTemplate = +{ + .tileTag = ANIM_TAG_BERRY_NORMAL, + .paletteTag = ANIM_TAG_BERRY_NORMAL, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = sAnimCmdTable_BerryChomp, + .images = NULL, + .affineAnims = gMetronomeFingerAffineAnimTable, + .callback = AnimMetronomeFinger +}; + +//no retreat +static const struct OamData sPyroBallFlamesOAM = +{ + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .priority = 1, //Above sprites +}; +const struct SpriteTemplate gNoRetreatFlameTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &sPyroBallFlamesOAM, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SpriteOnMonForDuration +}; + +//magic powder +const struct SpriteTemplate gMagicPowderBluePowderTemplate = +{ + .tileTag = ANIM_TAG_POISON_POWDER, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineOff_ObjNormal_8x16, + .anims = gPowderParticlesAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMovePowderParticle +}; + +//dreepy missile +const struct SpriteTemplate gDreepyMissileTemplate = +{ + .tileTag = ANIM_TAG_DREEPY, + .paletteTag = ANIM_TAG_DREEPY, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimShadowBall +}; + +//bolt beak +const struct SpriteTemplate gBoltBeakBlueSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_ELECTRICITY, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSparkElectricity +}; + +const struct SpriteTemplate gBoltBeakBlueFlashingSparkTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_ELECTRICITY, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_FlashingSpark, + .callback = AnimSparkElectricityFlashing +}; + +//fishious rend +static const struct OamData sFishiousRendTeethOam = +{ + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1, //Above sprites +}; +const struct SpriteTemplate gFishiousRendTeethTemplate = +{ + .tileTag = ANIM_TAG_SHARP_TEETH, + .paletteTag = ANIM_TAG_SHARP_TEETH, + .oam = &sFishiousRendTeethOam, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_LeftRightSlice +}; + +//clangorous soul +const struct SpriteTemplate gClangorousSoulBlueBuffTemplate = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gEndureEnergyAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEndureEnergy +}; + +const struct SpriteTemplate gClangorousSoulPurpleBuffTemplate = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gEndureEnergyAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEndureEnergy +}; + +const struct SpriteTemplate gClangorousSoulWhiteBuffTemplate = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = gEndureEnergyAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEndureEnergy +}; + +const struct SpriteTemplate gClangorousSoulRedFistTemplate = +{ + .tileTag = ANIM_TAG_HORSESHOE_SIDE_FIST, + .paletteTag = ANIM_TAG_VERTICAL_HEX, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_HandOrFoot, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimJumpKick +}; + +const struct SpriteTemplate gClangorousSoulRedRingTemplate = +{ + .tileTag = ANIM_TAG_THIN_RING, + .paletteTag = ANIM_TAG_VERTICAL_HEX, + .oam = &gOamData_AffineDouble_ObjNormal_64x64, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gThinRingExpandingAffineAnimTable, + .callback = AnimSpriteOnMonPos +}; + +//pyro ball +static const struct OamData sPyroBallRockOAM = +{ + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1, //Above sprites +}; +const struct SpriteTemplate gPyroBallRockTemplate = +{ + .tileTag = ANIM_TAG_FLAT_ROCK, + .paletteTag = ANIM_TAG_FLAT_ROCK, + .oam = &sPyroBallRockOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PyroBallRockBounce +}; + +const struct SpriteTemplate gPyroBallBurningRockTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &sPyroBallFlamesOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PyroBallRockBounce +}; + +const struct SpriteTemplate gPyroBallFlamesUpTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &sPyroBallFlamesOAM, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PyroBallRockBounce +}; + +const struct SpriteTemplate gPyroBallEmberBallTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &sPyroBallFlamesOAM, + .anims = gAnims_DragonBreathFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PyroBallLaunch +}; + +//aura wheel +const struct SpriteTemplate gAuraWheelBlueElectricityTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimFireSpiralOutward +}; + +const struct SpriteTemplate gAuraWheelRedElectricityTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SPARK, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimFireSpiralOutward +}; + +//breaking swipe +const struct SpriteTemplate gBreakingSwipeCenteredElectricity = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_CentredElectricity +}; + +//branch poke +const struct SpriteTemplate gBranchPokeBranchTemplate = +{ + .tileTag = ANIM_TAG_BRANCH, + .paletteTag = ANIM_TAG_BRANCH, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimShadowBall +}; + +//apple acid +const struct SpriteTemplate gAppleAcidFloatingAppleTemplate = +{ + .tileTag = ANIM_TAG_APPLE, + .paletteTag = ANIM_TAG_APPLE, + .oam = &gOamData_AffineDouble_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gMetronomeFingerAffineAnimTable, + .callback = AnimMetronomeFinger +}; + +const struct SpriteTemplate gAppleAcidLaunchTemplate = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gAffineAnims_PoisonProjectile, + .callback = SpriteCB_AcidLaunchSingleTarget +}; + +const struct SpriteTemplate gAppleAcidDripTemplate = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_AcidPoisonDroplet, + .images = NULL, + .affineAnims = gAffineAnims_Droplet, + .callback = SpriteCB_AcidDripSingleTarget +}; + +//grav apple +static const struct OamData sAppleOAM = +{ + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .priority = 1, //Above sprites +}; +const struct SpriteTemplate gGravAppleSmallApple = +{ + .tileTag = ANIM_TAG_APPLE, + .paletteTag = ANIM_TAG_APPLE, + .oam = &sAppleOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_FallingObject +}; + +static const union AffineAnimCmd sSpriteAffineAnim_ScaledApple[] = +{ + AFFINEANIMCMD_FRAME(64, 64, 0, 10), //Quadruple in size + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_ScaledApple[] = +{ + sSpriteAffineAnim_ScaledApple, +}; +const struct SpriteTemplate gGravAppleLargeApple = +{ + .tileTag = ANIM_TAG_APPLE, + .paletteTag = ANIM_TAG_APPLE, + .oam = &sAppleOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_ScaledApple, + .callback = SpriteCB_FallingObject +}; + +//strange steam +const struct SpriteTemplate gStrangeSteamPinkCloudTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_PINK_CLOUD, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimDirtScatter +}; + +const struct SpriteTemplate gStrangeSteamGreenCloudTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_FINGER, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimDirtScatter +}; + +const struct SpriteTemplate gStrangeSteamBlueCloudTemplate = +{ + .tileTag = ANIM_TAG_PINK_CLOUD, + .paletteTag = ANIM_TAG_WATER_GUN, + .oam = &gOamData_AffineNormal_ObjNormal_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimDirtScatter +}; + +//life dew +static const union AnimCmd sAnimCmdWaterDropletDrip[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_END, +}; +static const union AnimCmd sAnimCmdWaterDropletSplash[] = +{ + ANIMCMD_FRAME(64, 3), + ANIMCMD_FRAME(80, 3), + ANIMCMD_FRAME(96, 3), + ANIMCMD_FRAME(112, 10), + ANIMCMD_END, +}; +static const union AnimCmd *const sAnimCmdWaterDroplet[] = +{ + sAnimCmdWaterDropletDrip, + sAnimCmdWaterDropletSplash, +}; +const struct SpriteTemplate gLifeDewDropletTemplate = +{ + .tileTag = ANIM_TAG_WATER_DROPLET, + .paletteTag = ANIM_TAG_WATER_DROPLET, + .oam = &sAppleOAM, + .anims = sAnimCmdWaterDroplet, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_WaterDroplet +}; + +const struct SpriteTemplate gLifeDewSpecialOrbsTemplate = +{ + .tileTag = ANIM_TAG_BLUE_STAR, + .paletteTag = ANIM_TAG_BLUE_STAR, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gHealingBlueStarAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_AnimSpriteOnSelectedMonPos +}; + +//obstruct +const struct SpriteTemplate gObstructCrossTemplate = +{ + .tileTag = ANIM_TAG_OBSTRUCT_CROSS, + .paletteTag = ANIM_TAG_OBSTRUCT_CROSS, + .oam = &gOamData_AffineOff_ObjBlend_32x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimCrossImpact +}; + +//meteor assault +static const struct OamData sGrowingSuperpowerOAM = +{ + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 2, +}; +static const union AffineAnimCmd sSpriteAffineAnim_GrowingSuperpowerEnemyAttack[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 128, 1), //180 degree turn + AFFINEANIMCMD_FRAME(0, 0, 0, 2), //Pause + AFFINEANIMCMD_FRAME(16, 16, 0, 15), //Double in size + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd sSpriteAffineAnim_GrowingSuperpowerPlayerAttack[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 2), //Pause + AFFINEANIMCMD_FRAME(16, 16, 0, 15), //Double in size + AFFINEANIMCMD_END +}; +static const union AffineAnimCmd* const sSpriteAffineAnimTable_GrowingSuperpower[] = +{ + sSpriteAffineAnim_GrowingSuperpowerPlayerAttack, + sSpriteAffineAnim_GrowingSuperpowerEnemyAttack, +}; +const struct SpriteTemplate gGrowingSuperpowerTemplate = //used in breakneck blitz +{ + .tileTag = ANIM_TAG_METEOR, + .paletteTag = ANIM_TAG_METEOR, + .oam = &sGrowingSuperpowerOAM, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_GrowingSuperpower, + .callback = SpriteCB_GrowingSuperpower +}; + +//steel beam +const struct SpriteTemplate gSteelBeamSpikeShardTemplate = +{ + .tileTag = ANIM_TAG_SPIKES, + .paletteTag = ANIM_TAG_SPIKES, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gAffineAnims_ShadowBall, + .callback = AnimDirtScatter +}; + +//// functions +//general +static u8 LoadBattleAnimTarget(u8 arg) +{ + u8 battler; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + switch (gBattleAnimArgs[arg]) + { + case 0: + battler = gBattleAnimAttacker; + break; + default: + battler = gBattleAnimTarget; + break; + case 2: + battler = PARTNER(gBattleAnimAttacker); + break; + case 3: + battler = PARTNER(gBattleAnimTarget); + break; + } + } + else + { + if (gBattleAnimArgs[arg] == 0) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + } + + return battler; +} + +static u8 GetProperCentredCoord(u8 bank, u8 coordType) +{ + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return (GetBattlerSpriteCoord2(bank, coordType) + GetBattlerSpriteCoord2(PARTNER(bank), coordType)) / 2; + + return GetBattlerSpriteCoord(bank, coordType); +} + +static void InitSpritePosToGivenTarget(struct Sprite* sprite, u8 target) +{ + sprite->pos1.x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); + + SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); + sprite->pos2.y = gBattleAnimArgs[1]; +} + +static void InitSpritePosToAnimTargetsCentre(struct Sprite *sprite, bool8 respectMonPicOffsets) +{ + if (!respectMonPicOffsets) + { + sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimTarget), BATTLER_COORD_X)) / 2; + sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y)) / 2; + } + + SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; +} + +static void InitSpritePosToAnimAttackersCentre(struct Sprite *sprite, bool8 respectMonPicOffsets) +{ + if (!respectMonPicOffsets) + { + sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_X)) / 2; + sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y)) / 2; + } + else + { + sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2)) / 2; + sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET)) / 2; + } + + SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; +} + +//sprite callbacks +static void SpriteCB_SpriteToCentreOfSide(struct Sprite* sprite) +{ + bool8 var; + + if (!sprite->data[0]) + { + if (!gBattleAnimArgs[3]) + var = TRUE; + else + var = FALSE; + + if (gBattleAnimArgs[2] == 0) //Attacker + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimAttackersCentre(sprite, var); + else + InitSpritePosToAnimAttacker(sprite, var); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimTargetsCentre(sprite, var); + else + InitSpritePosToAnimTarget(sprite, var); + } + + sprite->data[0]++; + } + else if (sprite->animEnded || sprite->affineAnimEnded) + { + DestroySpriteAndMatrix(sprite); + } +} + +static void SpriteCB_SpriteOnMonForDuration(struct Sprite *sprite) +{ + u8 target = LoadBattleAnimTarget(0); + + if (!IsBattlerSpriteVisible(target)) + { + DestroyAnimSprite(sprite); + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(target, 0); + sprite->pos1.y = GetBattlerSpriteCoord(target, 1); + sprite->pos1.x += gBattleAnimArgs[1]; + sprite->pos1.y += gBattleAnimArgs[2]; + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[3] = 0; + sprite->callback = AnimBrickBreakWall_Step; + } +} + +static void SpriteCB_ToxicThreadWrap(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + sprite->pos1.x -= gBattleAnimArgs[0]; + else + sprite->pos1.x += gBattleAnimArgs[0]; + + sprite->pos1.y += gBattleAnimArgs[1]; + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + sprite->pos1.y += 8; + + sprite->callback = AnimStringWrap_Step; +} + + +static void SpriteCB_GrowingSuperpower(struct Sprite *sprite) +{ + u8 battler; + + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + battler = gBattleAnimTarget; + sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); + } + else + { + battler = gBattleAnimAttacker; + sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); + } + + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + StartSpriteAffineAnim(sprite, 1); + + sprite->data[0] = 16; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(battler, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(battler, 3); + + InitAnimLinearTranslation(sprite); + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = sub_80A6F98; +} + +static void SpriteCB_CentredSpiderWeb(struct Sprite* sprite) +{ + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimTargetsCentre(sprite, FALSE); + else + InitSpritePosToAnimTarget(sprite, FALSE); + + sprite->callback = AnimSpiderWeb; +} + +static void SpriteCB_CoreEnforcerHits(struct Sprite* sprite) +{ + StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); + + if (gBattleAnimArgs[2] == 0) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimAttackersCentre(sprite, FALSE); + else + InitSpritePosToAnimAttacker(sprite, FALSE); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimTargetsCentre(sprite, FALSE); + else + InitSpritePosToAnimTarget(sprite, FALSE); + } + + sprite->pos1.y += 20; + sprite->callback = AnimFlashingHitSplat_Step; +} + +static void SpriteCB_CoreEnforcerBeam(struct Sprite* sprite) +{ + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + AnimSolarbeamBigOrb(sprite); + } + else + { + InitSpritePosToAnimAttacker(sprite, TRUE); + StartSpriteAnim(sprite, gBattleAnimArgs[3]); + + sprite->data[0] = gBattleAnimArgs[2]; + + sprite->data[2] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; + + + sprite->data[4] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; + + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + } +} + +static void SpriteCB_TranslateAnimSpriteToTargetMonLocationDoubles(struct Sprite* sprite) +{ + bool8 v1; + u8 target; + u8 coordType; + + if (!(gBattleAnimArgs[5] & 0xff00)) + v1 = TRUE; + else + v1 = FALSE; + + if (!(gBattleAnimArgs[5] & 0xff)) + coordType = BATTLER_COORD_Y_PIC_OFFSET; + else + coordType = BATTLER_COORD_Y; + + InitSpritePosToAnimAttacker(sprite, v1); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + target = LoadBattleAnimTarget(6); + + if (!IsBattlerSpriteVisible(target)) + DestroyAnimSprite(sprite); + else + { + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(target, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(target, coordType) + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + } +} + +//Causes an object to fall from the sky. +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: speed +//arg 3: anim bank +static void SpriteCB_FallingObject(struct Sprite *sprite) +{ + u8 target = LoadBattleAnimTarget(3); + + if (!IsBattlerSpriteVisible(target)) + DestroyAnimSprite(sprite); + else + { + sprite->pos1.x = GetBattlerSpriteCoord2(target, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord2(target, BATTLER_COORD_Y); + + sprite->pos2.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + sprite->pos2.y = -gBattleAnimArgs[1]; + + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + { + sprite->pos1.y += 45; + sprite->pos2.y -= 45; + } + + sprite->data[3] = gBattleAnimArgs[2]; //Speed + sprite->callback = SpriteCB_FallingObjectStep; + } +} +static void SpriteCB_FallingObjectStep(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos2.y += sprite->data[3]; + if (sprite->pos2.y >= 0) + { + sprite->pos2.y = 0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 0) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] == 10) + DestroySpriteAndMatrix(sprite); + } + break; + } +} + +static void SpriteCB_SunsteelStrikeRings(struct Sprite* sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->pos1.x = 272; + sprite->pos1.y = -32; + } + else + { + sprite->pos1.x = -32; + sprite->pos1.y = -32; + } + + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + + InitAnimLinearTranslation(sprite); + sprite->callback = AnimFlyBallAttack_Step; +} + +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: target x pixel offset +//arg 3: target y pixel offset +//arg 4: duration +//arg 5: wave amplitude +static void SpriteCB_MoongeistCharge(struct Sprite *sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; //Target X + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; //Target Y + sprite->data[5] = gBattleAnimArgs[5]; + + InitAnimArcTranslation(sprite); + sprite->callback = AnimMissileArc_Step; +} + +//Spins a sprite towards the target, pausing in the middle. +//Used in Mind Blown. +//arg 0: duration step 1 (attacker -> center) +//arg 1: duration step 2 (spin center) +//arg 2: duration step 3 (center -> target) +static void SpriteCB_MindBlownBall(struct Sprite *sprite) +{ + s16 oldPosX = sprite->pos1.x; + s16 oldPosY = sprite->pos1.y; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[0]; + sprite->data[2] = gBattleAnimArgs[1]; + sprite->data[3] = gBattleAnimArgs[2]; + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + sprite->data[6] = ((oldPosX - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[7] = ((oldPosY - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); + sprite->callback = AnimMindBlownBallStep; +} +static void AnimMindBlownBallStep(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + sprite->data[1] -= 1; + if (sprite->data[1] > 0) + break; + sprite->data[0] += 1; + break; + case 1: + sprite->data[2] -= 1; + if (sprite->data[2] > 0) + break; + + sprite->data[1] = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + sprite->data[6] = ((sprite->data[1] - sprite->pos1.x) << 4) / sprite->data[3]; + sprite->data[7] = ((sprite->data[2] - sprite->pos1.y) << 4) / sprite->data[3]; + sprite->data[0] += 1; + break; + case 2: + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + sprite->data[3] -= 1; + if (sprite->data[3] > 0) + break; + sprite->pos1.x = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->pos1.y = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->data[0] += 1; + break; + case 3: + DestroySpriteAndMatrix(sprite); + break; + } +} + +static void SpriteCB_MindBlownExplosion(struct Sprite* sprite) +{ + u8 a; + u8 b; + u16 x; + u16 y; + + if (gBattleAnimArgs[4] == 0) + { + DestroyAnimSprite(sprite); + } + else + { + a = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + b = GetProperCentredCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + + sprite->data[0] = gBattleAnimArgs[4]; + if (gBattleAnimArgs[1] == 0) + { + sprite->pos1.x = gBattleAnimArgs[2] + a; + sprite->pos1.y = gBattleAnimArgs[3] + b; + sprite->data[5] = a; + sprite->data[6] = b; + } + else + { + sprite->pos1.x = a; + sprite->pos1.y = b; + sprite->data[5] = gBattleAnimArgs[2] + a; + sprite->data[6] = gBattleAnimArgs[3] + b; + } + + x = sprite->pos1.x; + sprite->data[1] = x * 16; + y = sprite->pos1.y; + sprite->data[2] = y * 16; + sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; + sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; + + sprite->callback = AnimNeedleArmSpike_Step; + } +} + +static void SpriteCB_RandomCentredHits(struct Sprite* sprite) +{ + if (gBattleAnimArgs[1] == -1) + gBattleAnimArgs[1] = Random() & 3; + + StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); + + if (gBattleAnimArgs[0] == 0) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimAttackersCentre(sprite, FALSE); + else + InitSpritePosToAnimAttacker(sprite, FALSE); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimTargetsCentre(sprite, FALSE); + else + InitSpritePosToAnimTarget(sprite, FALSE); + } + + sprite->pos2.x += (Random() % 48) - 24; + sprite->pos2.y += (Random() % 24) - 12; + + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); + sprite->callback = RunStoredCallbackWhenAffineAnimEnds; +} + +//Creates a jaw that bites down and locks on the target. +//args: Idk same as bite and crunch +//arg 6: Time to hold bite for. +static void SpriteCB_LockingJaw(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = gBattleAnimArgs[4]; + sprite->data[2] = gBattleAnimArgs[5]; + sprite->data[6] = -gBattleAnimArgs[6]; + sprite->callback = SpriteCB_LockingJawStep; +} +static void SpriteCB_LockingJawStep(struct Sprite *sprite) +{ + sprite->data[4] += sprite->data[0]; + sprite->data[5] += sprite->data[1]; + sprite->pos2.x = sprite->data[4] >> 8; + sprite->pos2.y = sprite->data[5] >> 8; + if (++sprite->data[3] == sprite->data[2]) + sprite->callback = SpriteCB_LockingJawFinish; +} +static void SpriteCB_LockingJawFinish(struct Sprite *sprite) +{ + if (--sprite->data[3] <= sprite->data[6]) + DestroySpriteAndMatrix(sprite); +} + +//Creates a sprite that moves left then right along the target. +//arg 0: Slice distance +//arg 1: Speed +static void SpriteCB_LeftRightSlice(struct Sprite *sprite) +{ + sprite->pos2.x = gBattleAnimArgs[0]; + sprite->data[0] = -gBattleAnimArgs[0]; //Slice distance + sprite->data[1] = gBattleAnimArgs[1]; //Slice speed + sprite->callback = SpriteCB_LeftRightSliceStep0; +} +static void SpriteCB_LeftRightSliceStep1(struct Sprite *sprite) +{ + sprite->pos2.x += sprite->data[1]; + if (sprite->pos2.x >= sprite->data[0]) + DestroyAnimSprite(sprite); +} +static void SpriteCB_LeftRightSliceStep0(struct Sprite *sprite) +{ + sprite->pos2.x -= sprite->data[1]; + if (sprite->pos2.x <= sprite->data[0]) + { + sprite->data[0] = -sprite->data[0]; + sprite->callback = SpriteCB_LeftRightSliceStep1; + } +} + +//Creates a rock that bounces between the attacker's feet. +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: Ignore horizontal motion if TRUE. Only bounce once. +#define sVerticalTime sprite->data[0] +#define sHorizontalTime sprite->data[1] +#define sMovingBackHorizontally sprite->data[2] +static void SpriteCB_PyroBallRockBounceStep(struct Sprite* sprite) +{ + s8 initialVerticalVelocity; + s8 initialHorizontalVelocity; + + if (sprite->pos2.y > 0) //Rock returned back down + { + if (gBattleAnimArgs[2] || sMovingBackHorizontally) //Finished moving from left to right + DestroyAnimSprite(sprite); + else + { + sVerticalTime = 0; + sMovingBackHorizontally = TRUE; + } + } + + initialVerticalVelocity = -6; + initialHorizontalVelocity = -1; //Starts by moving right to left + + //vi = -6 + //g = 0.25 (gravity not negative b/c go up to go closer to 0) + //h = vi*t + 0.5g*t^2 + //t = sVerticalTime + sprite->pos2.y = (initialVerticalVelocity * sVerticalTime + (1 * sVerticalTime * sVerticalTime) / 4); + + //x = vi*t + //vi = sprite->data[2] + //t = sHorizontalTime + if (!gBattleAnimArgs[2]) + sprite->pos2.x = (initialHorizontalVelocity * sHorizontalTime); + + sVerticalTime++; + + if (sMovingBackHorizontally) + sHorizontalTime--; //Move left to right + else + sHorizontalTime++; //Move right to left +} + +static void InitSpritePositionForPyroBall(struct Sprite* sprite) +{ + InitSpritePosToAnimAttacker(sprite, 0); + sprite->pos1.y += 20; //Move closer to attacker's feet + + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + sprite->pos1.y += 20; //Move below the text box + +} + +static void SpriteCB_PyroBallRockBounce(struct Sprite* sprite) +{ + InitSpritePositionForPyroBall(sprite); + sprite->callback = SpriteCB_PyroBallRockBounceStep; +} +#undef sVerticalTime +#undef sHorizontalTime +#undef sMovingBackHorizontally + +//Launches a projectile from the attacker's feet at the target. +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: target x pixel offset +//arg 3: target y pixel offset +//arg 4: duration +//arg 5: wave amplitude +static void SpriteCB_PyroBallLaunch(struct Sprite* sprite) +{ + InitSpritePositionForPyroBall(sprite); + + if (GetBattlerSide(gBattleAnimAttacker)) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; //Target X + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; //Target Y + sprite->data[5] = gBattleAnimArgs[5]; + InitAnimArcTranslation(sprite); + + sprite->callback = AnimMissileArc_Step; +} + +//Throws acid at a single target. +static void SpriteCB_AcidLaunchSingleTarget(struct Sprite *sprite) +{ + s16 l1, l2; + + if (!gBattleAnimArgs[3]) + StartSpriteAnim(sprite, 2); + + InitSpritePosToAnimTarget(sprite, TRUE); + l1 = sprite->pos1.x; l2 = sprite->pos1.y; + InitSpritePosToAnimAttacker(sprite, TRUE); + if (GetBattlerSide(gBattleAnimAttacker)) + gBattleAnimArgs[4] = -gBattleAnimArgs[4]; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = l1 + gBattleAnimArgs[4]; + sprite->data[4] = l2 + gBattleAnimArgs[5]; + sprite->data[5] = -30; + InitAnimArcTranslation(sprite); + sprite->callback = AnimAcidPoisonBubble_Step; +} + +//Causes acid to drip down a single target. +static void SpriteCB_AcidDripSingleTarget(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[0] = -gBattleAnimArgs[0]; + + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->pos1.y + sprite->data[0]; + + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +//Causes an object to fall from the sky. +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: anim bank +static void SpriteCB_WaterDroplet(struct Sprite *sprite) +{ + u8 target = LoadBattleAnimTarget(2); + + if (!IsBattlerSpriteVisible(target)) + DestroyAnimSprite(sprite); + else + { + InitSpritePosToGivenTarget(sprite, target); + sprite->data[1] = sprite->pos1.y; //Target's y coord + + sprite->pos2.x = gBattleAnimArgs[0]; + sprite->pos2.y = 0; + + //Put droplet at the top of the screen + sprite->pos1.y = 15; + + sprite->callback = SpriteCB_WaterDropletDrip; + } +} +static void SpriteCB_WaterDropletDrip(struct Sprite *sprite) +{ + sprite->data[0] = 12; + StartSpriteAnim(sprite, 0); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, SpriteCB_WaterDropletDrop); +} +static void SpriteCB_WaterDropletDrop(struct Sprite *sprite) +{ + sprite->pos2.y += 4; + if (sprite->pos2.y >= sprite->data[1]) + { + sprite->data[0] = 19; + StartSpriteAnim(sprite, 1); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + } +} + +static void SpriteCB_AnimSpriteOnSelectedMonPos(struct Sprite *sprite) +{ + if (!sprite->data[0]) + { + u8 target = LoadBattleAnimTarget(2); + + if (!IsBattlerSpriteVisible(target)) + DestroyAnimSprite(sprite); + else + { + InitSpritePosToGivenTarget(sprite, target); + sprite->data[0]++; + } + } + else if (sprite->animEnded || sprite->affineAnimEnded) + { + DestroySpriteAndMatrix(sprite); + } +} + +static void SpriteCB_SurroundingRing(struct Sprite *sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 40; + + sprite->data[0] = 13; + sprite->data[2] = sprite->pos1.x; + sprite->data[4] = sprite->pos1.y - 72; + + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +//Imitates launching a beam of light towards the sky +//arg 0: initial x pixel offset +//arg 1: initial y pixel offset +//arg 2: bank +//arg 3: duration +//arg 4: Anim num +//arg 5: affine anim start delay +static void SpriteCB_PhotonGeyserBeam(struct Sprite* sprite) +{ + u8 target = LoadBattleAnimTarget(2); + + if (!IsBattlerSpriteVisible(target)) + DestroyAnimSprite(sprite); + else + { + InitSpritePosToGivenTarget(sprite, target); + StartSpriteAnim(sprite, gBattleAnimArgs[4]); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = gBattleAnimArgs[5]; + sprite->callback = SpriteCB_BeamUpStep; + } +} +//Animates the beam of light +static void SpriteCB_BeamUpStep(struct Sprite* sprite) +{ + if (sprite->data[1]-- == 0) + StartSpriteAffineAnim(sprite, 1); + + if (sprite->data[0]-- <= 0) + DestroySpriteAndMatrix(sprite); +} + +static void SpriteCB_CentredElectricity(struct Sprite* sprite) +{ + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + InitSpritePosToAnimTargetsCentre(sprite, FALSE); + else + InitSpritePosToAnimTarget(sprite, FALSE); + + sprite->oam.tileNum += gBattleAnimArgs[3] * 4; + + if (gBattleAnimArgs[3] == 1) + sprite->oam.matrixNum = 8; + else if (gBattleAnimArgs[3] == 2) + sprite->oam.matrixNum = 16; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +static void AnimSkyDropBallUp(struct Sprite *sprite) +{ + InitSpritePosToAnimTarget(sprite, TRUE); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->callback = AnimFlyBallUp_Step; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; +} + +static void SpriteCB_SearingShotRock(struct Sprite* sprite) +{ + u8 target = LoadBattleAnimTarget(4); + + if (!IsBattlerSpriteVisible(target)) + { + DestroyAnimSprite(sprite); + } + else + { + InitSpritePosToGivenTarget(sprite, target); + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, AnimSpinningKickOrPunchFinish); + } +} + +static void AnimHappyHourCoinShower(struct Sprite *sprite) +{ + if (gBattleAnimArgs[3] != 0) + SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->pos1.x, &sprite->pos1.y); //coin shower on attacker + + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += 14; + StartSpriteAnim(sprite, gBattleAnimArgs[1]); + AnimateSprite(sprite); + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = 4; + sprite->data[3] = 16; + sprite->data[4] = -70; + sprite->data[5] = gBattleAnimArgs[2]; + StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step); + sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback(sprite); +} + +//Launches an object upwards like they were being shot from a geyser +//arg 0: null +//arg 1: initial x pixel offset +//arg 2: initial y pixel offset +static void SpriteCB_Geyser(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; + sprite->callback = AnimMudSportDirtRising; +} + +// Anim Task Functions +static void AnimTask_WaitAffineAnim(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + + if (!RunAffineAnimFromTaskData(task)) + DestroyAnimVisualTask(taskId); +} + +void AnimTask_SquishTarget(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + + PrepareAffineAnimInTaskData(task, spriteId, sSquishTargetAffineAnimCmds); + task->func = AnimTask_WaitAffineAnim; +} + +void AnimTask_IsTargetPartner(u8 taskId) +{ + if (gBattleAnimTarget == PARTNER(gBattleAnimAttacker)) + gBattleAnimArgs[0] = 1; + else + gBattleAnimArgs[0] = 0; + + DestroyAnimVisualTask(taskId); +} + +void AnimTask_AllBanksInvisible(u8 taskId) +{ + int i; + u8 spriteId; + + for (i = 0; i < gBattlersCount; ++i) + { + spriteId = gBattlerSpriteIds[i]; + if (spriteId != 0xFF) + gSprites[spriteId].invisible = TRUE; + } + + DestroyAnimVisualTask(taskId); +} + +void AnimTask_AllBanksVisible(u8 taskId) +{ + int i; + u8 spriteId; + + for (i = 0; i < gBattlersCount; ++i) + { + spriteId = gBattlerSpriteIds[i]; + if (spriteId != 0xFF) + gSprites[spriteId].invisible = FALSE; + } + + DestroyAnimVisualTask(taskId); +} + +void CoreEnforcerLoadBeamTarget(struct Sprite* sprite) +{ + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; +} + +void AnimTask_CreateBestowItem(u8 taskId) +{ + u8 iconSpriteId = AddItemIconSprite(ANIM_TAG_ITEM_BAG, ANIM_TAG_ITEM_BAG, gLastUsedItem); + + if (iconSpriteId != MAX_SPRITES) + { + gSprites[iconSpriteId].oam.priority = 2; + gSprites[iconSpriteId].callback = AnimThrowProjectile; + ++gAnimVisualTaskCount; + } + DestroyAnimVisualTask(taskId); +} + +//Creates purple flames that surround the target. +//No args. +void AnimTask_PurpleFlamesOnTarget(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[0] = 0; + task->data[1] = 16; + task->data[9] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimTarget); + task->data[11] = (GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_WIDTH) / 2) + 8; + task->data[7] = 0; + task->data[5] = GetBattlerSpriteBGPriority(gBattleAnimTarget); + task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 2; + task->data[3] = 0; + task->data[4] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); + task->data[8] = 0; + task->func = AnimTask_GrudgeFlames_Step; +} + +void AnimTask_TechnoBlast(u8 taskId) +{ + //gBattleAnimArgs[0] = gItems[GetBattlerPartyData(gBattleAnimAttacker).item].holdEffectParam; + gBattleAnimArgs[0] = ItemId_GetHoldEffectParam(gBattleMons[gBattleAnimAttacker].item); + DestroyAnimVisualTask(taskId); +} + +// move checks +bool8 IsMoveAnimDarkVoid(void) +{ + return gAnimMoveIndex == MOVE_DARK_VOID; +} + +bool8 IsMoveAnimFlashCannonOrSteelBeam(void) +{ + return gAnimMoveIndex == MOVE_FLASH_CANNON || gAnimMoveIndex == MOVE_STEEL_BEAM; +} + +bool8 IsMoveAnimCoreEnforcer(void) +{ + return gAnimMoveIndex == MOVE_CORE_ENFORCER; +} + +bool8 IsMoveAnimAnchorShot(void) +{ + return gAnimMoveIndex == MOVE_ANCHOR_SHOT; +} + diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c index f1ad164cea..fefa405627 100644 --- a/src/battle_anim_normal.c +++ b/src/battle_anim_normal.c @@ -16,14 +16,8 @@ static void sub_81159B4(struct Sprite *); static void AnimShakeMonOrBattleTerrain(struct Sprite *); static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *); static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); -static void AnimHitSplatBasic(struct Sprite *); static void AnimHitSplatPersistent(struct Sprite *); static void AnimHitSplatHandleInvert(struct Sprite *); -static void AnimHitSplatRandom(struct Sprite *); -static void AnimHitSplatOnMonEdge(struct Sprite *); -static void AnimCrossImpact(struct Sprite *); -static void AnimFlashingHitSplat(struct Sprite *); -static void AnimFlashingHitSplat_Step(struct Sprite *); static void AnimConfusionDuck_Step(struct Sprite *); static void BlendColorCycle(u8, u8, u8); static void AnimTask_BlendColorCycleLoop(u8); @@ -215,7 +209,7 @@ static const union AffineAnimCmd sAffineAnim_HitSplat_3[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_HitSplat[] = +const union AffineAnimCmd *const gAffineAnims_HitSplat[] = { sAffineAnim_HitSplat_0, sAffineAnim_HitSplat_1, @@ -230,7 +224,7 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatBasic, }; @@ -241,7 +235,7 @@ const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatHandleInvert, }; @@ -252,7 +246,7 @@ const struct SpriteTemplate gWaterHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatBasic, }; @@ -263,7 +257,7 @@ const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatRandom, }; @@ -274,7 +268,7 @@ const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatOnMonEdge, }; @@ -296,7 +290,7 @@ const struct SpriteTemplate gFlashingHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimFlashingHitSplat, }; @@ -307,7 +301,7 @@ const struct SpriteTemplate gPersistHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_HitSplat, + .affineAnims = gAffineAnims_HitSplat, .callback = AnimHitSplatPersistent, }; @@ -1015,7 +1009,7 @@ static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) #undef tTimer #undef tShakeDelay -static void AnimHitSplatBasic(struct Sprite *sprite) +void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == ANIM_ATTACKER) @@ -1051,7 +1045,7 @@ static void AnimHitSplatHandleInvert(struct Sprite *sprite) AnimHitSplatBasic(sprite); } -static void AnimHitSplatRandom(struct Sprite *sprite) +void AnimHitSplatRandom(struct Sprite *sprite) { if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random2() & 3; @@ -1069,7 +1063,7 @@ static void AnimHitSplatRandom(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimHitSplatOnMonEdge(struct Sprite *sprite) +void AnimHitSplatOnMonEdge(struct Sprite *sprite) { sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; @@ -1081,7 +1075,7 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimCrossImpact(struct Sprite *sprite) +void AnimCrossImpact(struct Sprite *sprite) { if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 1); @@ -1093,7 +1087,7 @@ static void AnimCrossImpact(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -static void AnimFlashingHitSplat(struct Sprite *sprite) +void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == ANIM_ATTACKER) @@ -1104,7 +1098,7 @@ static void AnimFlashingHitSplat(struct Sprite *sprite) sprite->callback = AnimFlashingHitSplat_Step; } -static void AnimFlashingHitSplat_Step(struct Sprite *sprite) +void AnimFlashingHitSplat_Step(struct Sprite *sprite) { sprite->invisible ^= 1; if (sprite->data[0]++ > 12) diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index cda06738ed..0972c9bff2 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -6,7 +6,6 @@ static void AnimSludgeProjectile(struct Sprite *); static void AnimSludgeProjectile_Step(struct Sprite *); static void AnimAcidPoisonBubble(struct Sprite *); -static void AnimAcidPoisonBubble_Step(struct Sprite *); static void AnimSludgeBombHitParticle_Step(struct Sprite *); static void AnimAcidPoisonDroplet(struct Sprite *); static void AnimBubbleEffect(struct Sprite *); @@ -60,12 +59,12 @@ static const union AnimCmd sAnim_SludgeBombHit[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_PoisonProjectile[] = +const union AnimCmd *const gAnims_PoisonProjectile[] = { sAnim_PoisonProjectile, }; -static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = +const union AnimCmd *const gAnims_AcidPoisonDroplet[] = { sAnim_AcidPoisonDroplet, }; @@ -104,7 +103,7 @@ const struct SpriteTemplate gSludgeProjectileSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_PoisonProjectile, + .anims = gAnims_PoisonProjectile, .images = NULL, .affineAnims = gAffineAnims_PoisonProjectile, .callback = AnimSludgeProjectile, @@ -115,7 +114,7 @@ const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_PoisonProjectile, + .anims = gAnims_PoisonProjectile, .images = NULL, .affineAnims = gAffineAnims_PoisonProjectile, .callback = AnimAcidPoisonBubble, @@ -149,7 +148,7 @@ const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_AcidPoisonDroplet, + .anims = gAnims_AcidPoisonDroplet, .images = NULL, .affineAnims = gAffineAnims_Droplet, .callback = AnimAcidPoisonDroplet, @@ -172,7 +171,7 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = sAnims_PoisonProjectile, + .anims = gAnims_PoisonProjectile, .images = NULL, .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, @@ -194,7 +193,7 @@ const struct SpriteTemplate gGreenPoisonDrip = .tileTag = ANIM_TAG_GREEN_POISON_BUBBLE, .paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_AcidPoisonDroplet, + .anims = gAnims_AcidPoisonDroplet, .images = NULL, .affineAnims = gAffineAnims_Droplet, .callback = AnimAcidPoisonDroplet, @@ -205,7 +204,7 @@ const struct SpriteTemplate gGreenPoisonBubble = .tileTag = ANIM_TAG_GREEN_POISON_BUBBLE, .paletteTag = ANIM_TAG_GREEN_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_PoisonProjectile, + .anims = gAnims_PoisonProjectile, .images = NULL, .affineAnims = gAffineAnims_PoisonProjectile, .callback = AnimAcidPoisonBubble, @@ -445,7 +444,7 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite) sprite->callback = AnimAcidPoisonBubble_Step; } -static void AnimAcidPoisonBubble_Step(struct Sprite *sprite) +void AnimAcidPoisonBubble_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 47023d437e..07756de451 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -21,7 +21,6 @@ static void AnimQuestionMark_Step1(struct Sprite *); static void AnimQuestionMark_Step2(struct Sprite *); static void AnimRedX(struct Sprite *); static void AnimSkillSwapOrb(struct Sprite *); -static void AnimPsychoBoost(struct Sprite *); static void AnimTask_MeditateStretchAttacker_Step(u8); static void AnimTask_Teleport_Step(u8); static void AnimTask_ImprisonOrbs_Step(u8); @@ -404,7 +403,7 @@ static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] = +const union AffineAnimCmd *const gAffineAnims_PsychoBoostOrb[] = { sAffineAnim_PsychoBoostOrb_0, sAffineAnim_PsychoBoostOrb_1, @@ -417,7 +416,7 @@ const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sAffineAnims_PsychoBoostOrb, + .affineAnims = gAffineAnims_PsychoBoostOrb, .callback = AnimPsychoBoost, }; @@ -1236,7 +1235,7 @@ static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) } } -static void AnimPsychoBoost(struct Sprite *sprite) +void AnimPsychoBoost(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 22f9f2f8e6..7edef58e85 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -9,11 +9,7 @@ #include "constants/rgb.h" #include "constants/songs.h" -static void AnimFallingRock(struct Sprite *); -static void AnimFallingRock_Step(struct Sprite *); static void AnimRockFragment(struct Sprite *); -static void AnimFlyingSandCrescent(struct Sprite *); -static void AnimRaiseSprite(struct Sprite *); static void AnimTask_Rollout_Step(u8 taskId); static void AnimRolloutParticle(struct Sprite *); static void AnimRockTomb(struct Sprite *); @@ -21,7 +17,6 @@ static void AnimRockTomb_Step(struct Sprite *sprite); static void AnimRockBlastRock(struct Sprite *); static void AnimRockScatter(struct Sprite *); static void AnimRockScatter_Step(struct Sprite *sprite); -static void AnimParticleInVortex(struct Sprite *); static void AnimParticleInVortex_Step(struct Sprite *sprite); static void AnimTask_LoadSandstormBackground_Step(u8 taskId); static void sub_8111214(struct Task *task); @@ -96,7 +91,7 @@ static const union AffineAnimCmd sAffineAnim_Whirlpool[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] = +const union AffineAnimCmd *const gAffineAnims_Whirlpool[] = { sAffineAnim_Whirlpool, }; @@ -108,7 +103,7 @@ const struct SpriteTemplate gWhirlpoolSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_16x16, .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = sAffineAnims_Whirlpool, + .affineAnims = gAffineAnims_Whirlpool, .callback = AnimParticleInVortex, }; @@ -255,7 +250,7 @@ static const union AffineAnimCmd sAffineAnim_BasicRock_1[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const sAffineAnims_BasicRock[] = +const union AffineAnimCmd *const gAffineAnims_BasicRock[] = { sAffineAnim_BasicRock_0, sAffineAnim_BasicRock_1, @@ -268,7 +263,7 @@ const struct SpriteTemplate gRockBlastRockSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = sAffineAnims_BasicRock, + .affineAnims = gAffineAnims_BasicRock, .callback = AnimRockBlastRock, }; @@ -279,7 +274,7 @@ const struct SpriteTemplate gRockScatterSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = sAffineAnims_BasicRock, + .affineAnims = gAffineAnims_BasicRock, .callback = AnimRockScatter, }; @@ -290,7 +285,7 @@ const struct SpriteTemplate gTwisterRockSpriteTemplate = .oam = &gOamData_AffineOff_ObjNormal_32x32, .anims = sAnims_TwisterRock, .images = NULL, - .affineAnims = sAffineAnims_BasicRock, + .affineAnims = gAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, }; @@ -301,7 +296,7 @@ const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = sAnims_WeatherBallRockDown, .images = NULL, - .affineAnims = sAffineAnims_BasicRock, + .affineAnims = gAffineAnims_BasicRock, .callback = AnimWeatherBallDown, }; @@ -404,7 +399,7 @@ static void AnimStealthRockStep2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void AnimFallingRock(struct Sprite *sprite) +void AnimFallingRock(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); @@ -427,7 +422,7 @@ static void AnimFallingRock(struct Sprite *sprite) sprite->callback(sprite); } -static void AnimFallingRock_Step(struct Sprite *sprite) +void AnimFallingRock_Step(struct Sprite *sprite) { sprite->pos1.x += sprite->data[5]; @@ -470,7 +465,7 @@ static void AnimRockFragment(struct Sprite *sprite) } // Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb -static void AnimParticleInVortex(struct Sprite *sprite) +void AnimParticleInVortex(struct Sprite *sprite) { if (gBattleAnimArgs[6] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); @@ -600,7 +595,7 @@ static void AnimTask_LoadSandstormBackground_Step(u8 taskId) // arg 1: projectile speed // arg 2: y pixel drop // arg 3: ??? unknown (possibly a color bit) -static void AnimFlyingSandCrescent(struct Sprite *sprite) +void AnimFlyingSandCrescent(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -651,7 +646,7 @@ static void AnimFlyingSandCrescent(struct Sprite *sprite) // arg 2: terminal y offset // arg 3: duration // arg 4: sprite size [1,5] -static void AnimRaiseSprite(struct Sprite *sprite) +void AnimRaiseSprite(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); InitSpritePosToAnimAttacker(sprite, 0); diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index e975a8fe0b..0e9bfe214f 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -29,7 +29,6 @@ static void AnimHydroCannonCharge(struct Sprite *); static void AnimHydroCannonCharge_Step(struct Sprite *); static void AnimHydroCannonBeam(struct Sprite *); static void AnimWaterGunDroplet(struct Sprite *); -static void AnimSmallBubblePair(struct Sprite *); static void AnimSmallBubblePair_Step(struct Sprite *); static void AnimSmallDriftingBubbles(struct Sprite *); static void AnimSmallDriftingBubbles_Step(struct Sprite *); @@ -38,7 +37,6 @@ static void AnimWaterSpoutRain(struct Sprite *); static void AnimWaterSpoutRainHit(struct Sprite *); static void AnimWaterSportDroplet(struct Sprite *); static void AnimWaterSportDroplet_Step(struct Sprite *); -static void AnimWaterPulseBubble(struct Sprite *); static void AnimWaterPulseBubble_Step(struct Sprite *); static void AnimWaterPulseRingBubble(struct Sprite *); static void AnimWaterPulseRing_Step(struct Sprite *); @@ -111,7 +109,7 @@ static const union AnimCmd sAnim_WaterBubbleProjectile[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_WaterBubbleProjectile[] = +const union AnimCmd *const gAnims_WaterBubbleProjectile[] = { sAnim_WaterBubbleProjectile, }; @@ -121,7 +119,7 @@ const struct SpriteTemplate gWaterBubbleProjectileSpriteTemplate = .tileTag = ANIM_TAG_BUBBLE, .paletteTag = ANIM_TAG_BUBBLE, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = sAnims_WaterBubbleProjectile, + .anims = gAnims_WaterBubbleProjectile, .images = NULL, .affineAnims = sAffineAnims_WaterBubbleProjectile, .callback = AnimWaterBubbleProjectile, @@ -245,7 +243,7 @@ static const union AnimCmd sAnim_FlamethrowerFlame[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnims_FlamethrowerFlame[] = +const union AnimCmd *const gAnims_FlamethrowerFlame[] = { sAnim_FlamethrowerFlame, }; @@ -255,7 +253,7 @@ const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_FlamethrowerFlame, + .anims = gAnims_FlamethrowerFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimToTargetInSinWave, @@ -266,7 +264,7 @@ const struct SpriteTemplate gFirePledgeSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_FlamethrowerFlame, + .anims = gAnims_FlamethrowerFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFlyUpTarget, @@ -425,7 +423,7 @@ static const union AnimCmd sAnim_WeatherBallWaterDown[] = ANIMCMD_END, }; -static const union AnimCmd *const sAnims_WaterPulseBubble[] = +const union AnimCmd *const gAnims_WaterPulseBubble[] = { sAnim_WaterPulseBubble_0, sAnim_WaterPulseBubble_1, @@ -473,7 +471,7 @@ const struct SpriteTemplate gWaterPulseBubbleSpriteTemplate = .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = sAnims_WaterPulseBubble, + .anims = gAnims_WaterPulseBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWaterPulseBubble, @@ -484,7 +482,7 @@ const struct SpriteTemplate gWaterPulseRingBubbleSpriteTemplate = .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_8x8, - .anims = sAnims_WaterPulseBubble, + .anims = gAnims_WaterPulseBubble, .images = NULL, .affineAnims = sAffineAnims_WaterPulseRingBubble, .callback = AnimWaterPulseRingBubble, @@ -1033,7 +1031,7 @@ static void AnimWaterGunDroplet(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void AnimSmallBubblePair(struct Sprite *sprite) +void AnimSmallBubblePair(struct Sprite *sprite) { if (gBattleAnimArgs[3] != ANIM_ATTACKER) InitSpritePosToAnimTarget(sprite, TRUE); @@ -1077,10 +1075,18 @@ void AnimTask_CreateSurfWave(u8 taskId) AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_SurfContest, 1); } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); - if (gBattleAnimArgs[0] == 0) + switch (gBattleAnimArgs[0]) + { + case SURF_PALETTE_SURF: + default: LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); - else + break; + case SURF_PALETTE_MUDDY_WATER: LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); + case SURF_PALETTE_SLUDGE_WAVE: + LoadCompressedPalette(gBattleAnimBgPalette_SludgeWave, animBg.paletteId * 16, 32); + } + taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); gTasks[taskId].data[15] = taskId2; gTasks[taskId2].data[0] = 0; @@ -2125,7 +2131,7 @@ static void AnimWaterSportDroplet_Step(struct Sprite *sprite) } } -static void AnimWaterPulseBubble(struct Sprite *sprite) +void AnimWaterPulseBubble(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index a7422ea179..24366d9de2 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -481,7 +481,7 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId) // Great function to include newly added moves that don't have animation yet. bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn) { - if (moveId >= (MOVES_COUNT_GEN6 - 1)) + if (moveId >= (MOVES_COUNT - 1)) return TRUE; else return FALSE; From ed4035caf15258a4ff98d612645ec6f2c2268070 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 26 May 2020 08:54:02 -0600 Subject: [PATCH 5/7] fix anim particle config options --- include/constants/battle_config.h | 30 ++++++++-------- src/battle_anim.c | 59 ++++++++++++++++--------------- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 8472c3531f..220c3fb381 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -89,20 +89,20 @@ #define B_SLEEP_TURNS GEN_6 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. // Animation Settings -#define NEW_SWORD_PARTICLE // update swords dance particle -#define NEW_LEECH_SEED_PARTICLE //update leech seed's animation particle -#define NEW_HORN_ATTACK_PARTICLE //update horn attack's horn -#define NEW_LEAF_PARTICLE // update leaf particle -#define NEW_EMBER_PARTICLES //updates ember fire particle -#define NEW_MEAN_LOOK_PARTICLE //update mean look eye -#define NEW_TEETH_PARTICLE //update bite/crunch teeth particle -#define NEW_HANDS_FEET_PARTICLE //update chop/kick/punch particles -#define NEW_SPIKES_PARTICLE //update spikes particle -#define NEW_FLY_BUBBLE_PARTICLE //update fly 'bubble' particle -#define NEW_CURSE_NAIL_PARTICLE //updates curse nail -#define NEW_BATON_PASS_BALL_PARTICLE //update baton pass pokeball sprite -#define NEW_MORNING_SUN_STAR_PARTICLE //updates morning sun star particles -#define NEW_IMPACT_PALETTE //updates the basic 'hit' particle -#define NEW_SURF_PARTICLE_PALETTE //updates the surf wave palette +#define NEW_SWORD_PARTICLE TRUE // update swords dance particle +#define NEW_LEECH_SEED_PARTICLE TRUE //update leech seed's animation particle +#define NEW_HORN_ATTACK_PARTICLE TRUE //update horn attack's horn +#define NEW_LEAF_PARTICLE TRUE // update leaf particle +#define NEW_EMBER_PARTICLES TRUE //updates ember fire particle +#define NEW_MEAN_LOOK_PARTICLE TRUE //update mean look eye +#define NEW_TEETH_PARTICLE TRUE //update bite/crunch teeth particle +#define NEW_HANDS_FEET_PARTICLE TRUE //update chop/kick/punch particles +#define NEW_SPIKES_PARTICLE TRUE //update spikes particle +#define NEW_FLY_BUBBLE_PARTICLE TRUE //update fly 'bubble' particle +#define NEW_CURSE_NAIL_PARTICLE TRUE //updates curse nail +#define NEW_BATON_PASS_BALL_PARTICLE TRUE //update baton pass pokeball sprite +#define NEW_MORNING_SUN_STAR_PARTICLE TRUE //updates morning sun star particles +#define NEW_IMPACT_PALETTE TRUE //updates the basic 'hit' particle +#define NEW_SURF_PARTICLE_PALETTE TRUE //updates the surf wave palette #endif // GUARD_CONSTANTS_BATTLE_CONFIG_H diff --git a/src/battle_anim.c b/src/battle_anim.c index 7ac81cac62..a21fc16201 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -17,6 +17,7 @@ #include "sprite.h" #include "task.h" #include "constants/battle_anim.h" +#include "constants/battle_config.h" #define ANIM_SPRITE_INDEX_COUNT 8 @@ -1130,12 +1131,12 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, - #ifdef NEW_SWORD_PARTICLE + #if NEW_SWORD_PARTICLE {gBattleAnimSpriteGfx_NewSword, 0x0400, ANIM_TAG_SWORD}, #else {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, #endif - #ifdef NEW_LEECH_SEED_PARTICLE + #if NEW_LEECH_SEED_PARTICLE {gBattleAnimSpriteGfx_NewLeechSeed, 0x0180, ANIM_TAG_SEED}, #else {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, @@ -1162,7 +1163,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, - #ifdef NEW_EMBER_PARTICLES + #if NEW_EMBER_PARTICLES {gBattleAnimSpriteGfx_NewEmbers, 0x0A00, ANIM_TAG_SMALL_EMBER}, #else {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, @@ -1195,7 +1196,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, - #ifdef NEW_ROCKS_PARTICLE + #if NEW_ROCKS_PARTICLE {gBattleAnimSpriteGfx_NewRocks, 0x0C00, ANIM_TAG_ROCKS}, #else {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, @@ -1204,7 +1205,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - #ifdef NEW_LEAF_PARTICLE + #if NEW_LEAF_PARTICLE {gBattleAnimSpriteGfx_NewLeaf, 0x0480, ANIM_TAG_LEAF}, #else {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, @@ -1272,7 +1273,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, - #ifdef NEW_SUBSTITUTE_PARTICLE + #if NEW_SUBSTITUTE_PARTICLE {gBattleAnimSpriteGfx_NewSubstituteFront, 0x0200, ANIM_TAG_MONSTER_DOLL}, #else {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, @@ -1288,7 +1289,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, - #ifdef NEW_TEETH_PARTICLE + #if NEW_TEETH_PARTICLE {gBattleAnimSpriteGfx_NewTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, #else {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, @@ -1296,7 +1297,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, - #ifdef NEW_HANDS_FEET_PARTICLE + #if NEW_HANDS_FEET_PARTICLE {gBattleAnimSpriteGfx_NewHandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, #else {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, @@ -1309,7 +1310,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - #ifdef NEW_SPIKES_PARTICLE + #if NEW_SPIKES_PARTICLE {gBattleAnimSpriteGfx_NewSpikes, 0x0080, ANIM_TAG_SPIKES}, #else {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, @@ -1317,7 +1318,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - #ifdef NEW_FLY_BUBBLE_PARTICLE + #if NEW_FLY_BUBBLE_PARTICLE {gBattleAnimSpriteGfx_NewFly, 0x0800, ANIM_TAG_ROUND_SHADOW}, #else {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, @@ -1352,7 +1353,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, - #ifdef NEW_MEAN_LOOK_PARTICLE + #if NEW_MEAN_LOOK_PARTICLE {gBattleAnimSpriteGfx_NewEye, 0x0800, ANIM_TAG_EYE}, #else {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, @@ -1368,7 +1369,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, - #ifdef NEW_CURSE_NAIL_PARTICLE + #if NEW_CURSE_NAIL_PARTICLE {gBattleAnimSpriteGfx_NewNail, 0x0400, ANIM_TAG_NAIL}, #else {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, @@ -1399,7 +1400,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - #ifdef NEW_BATON_PASS_BALL_PARTICLE + #if NEW_BATON_PASS_BALL_PARTICLE {gBattleAnimSpriteGfx_NewPokeball, 0x0080, ANIM_TAG_POKEBALL}, #else {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, @@ -1418,7 +1419,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - #ifdef NEW_MORNING_SUN_STAR_PARTICLE + #if NEW_MORNING_SUN_STAR_PARTICLE {gBattleAnimSpriteGfx_NewGreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, #else {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, @@ -1573,12 +1574,12 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, - #ifdef NEW_SWORD_PARTICLE + #if NEW_SWORD_PARTICLE {gBattleAnimSpritePal_NewSword, ANIM_TAG_SWORD}, #else {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, #endif - #ifdef NEW_LEECH_SEED_PARTICLE + #if NEW_LEECH_SEED_PARTICLE {gBattleAnimSpritePal_NewLeechSeed, ANIM_TAG_SEED}, #else {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, @@ -1596,7 +1597,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, - #ifdef NEW_HORN_ATTACK_PARTICLE + #if NEW_HORN_ATTACK_PARTICLE {gBattleAnimSpritePal_NewHornHit, ANIM_TAG_HORN_HIT}, #else {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, @@ -1609,7 +1610,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, - #ifdef NEW_EMBER_PARTICLES + #if NEW_EMBER_PARTICLES {gBattleAnimSpritePal_NewEmbers, ANIM_TAG_SMALL_EMBER}, #else {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, @@ -1642,7 +1643,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, - #ifdef NEW_ROCKS_PARTICLE + #if NEW_ROCKS_PARTICLE {gBattleAnimSpritePal_NewRocks, ANIM_TAG_ROCKS}, #else {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, @@ -1651,7 +1652,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, - #ifdef NEW_LEAF_PARTICLE + #if NEW_LEAF_PARTICLE {gBattleAnimSpritePal_NewLeaf, ANIM_TAG_LEAF}, #else {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, @@ -1719,7 +1720,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, - #ifdef NEW_SUBSTITUTE_PARTICLE + #if NEW_SUBSTITUTE_PARTICLE {gBattleAnimSpritePal_NewSubstituteFront, ANIM_TAG_MONSTER_DOLL}, #else {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, @@ -1731,7 +1732,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, - #ifdef NEW_IMPACT_PALETTE + #if NEW_IMPACT_PALETTE {gBattleAnimSpritePal_NewImpact, ANIM_TAG_IMPACT}, #else {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, @@ -1739,7 +1740,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, - #ifdef NEW_TEETH_PARTICLE + #if NEW_TEETH_PARTICLE {gBattleAnimSpritePal_NewTeeth, ANIM_TAG_SHARP_TEETH}, #else {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, @@ -1747,7 +1748,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, - #ifdef NEW_HANDS_FEET_PARTICLE + #if NEW_HANDS_FEET_PARTICLE {gBattleAnimSpritePal_NewHandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, #else {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, @@ -1760,7 +1761,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, - #ifdef NEW_SPIKES_PARTICLE + #if NEW_SPIKES_PARTICLE {gBattleAnimSpritePal_NewSpikes, ANIM_TAG_SPIKES}, #else {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, @@ -1768,7 +1769,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, - #ifdef NEW_FLY_BUBBLE_PARTICLE + #if NEW_FLY_BUBBLE_PARTICLE {gBattleAnimSpritePal_NewFly, ANIM_TAG_ROUND_SHADOW}, #else {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, @@ -1803,7 +1804,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, - #ifdef NEW_MEAN_LOOK_PARTICLE + #if NEW_MEAN_LOOK_PARTICLE {gBattleAnimSpritePal_NewEye, ANIM_TAG_EYE}, #else {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, @@ -1846,7 +1847,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, - #ifdef NEW_BATON_PASS_BALL_PARTICLE + #if NEW_BATON_PASS_BALL_PARTICLE {gBattleAnimSpritePal_NewPokeball, ANIM_TAG_POKEBALL}, #else {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, @@ -1865,7 +1866,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, - #ifdef NEW_MORNING_SUN_STAR_PARTICLE + #if NEW_MORNING_SUN_STAR_PARTICLE {gBattleAnimSpritePal_NewGreenStar, ANIM_TAG_GREEN_STAR}, #else {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, From 638d585fc0b16070cf78d77f6e4eeb31c8bf6b02 Mon Sep 17 00:00:00 2001 From: Evan Date: Tue, 26 May 2020 10:16:24 -0600 Subject: [PATCH 6/7] update apple sprites --- graphics/battle_anims/sprites/new/apple.png | Bin 214 -> 272 bytes .../battle_anims/sprites/new/golden_apple.png | Bin 302 -> 467 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/battle_anims/sprites/new/apple.png b/graphics/battle_anims/sprites/new/apple.png index cb3e78230ffd2cfa6c192fb99eacd1516bf68210..a9cd54d4d6fa5589f62072b716c504db733ccc24 100644 GIT binary patch delta 184 zcmV;p07w7U0gwWaV1JuQL_t(2k;Ra)4Z<)GMctAyoDKXf7U1FqLYmZYg*RXeIwV&V z$Pzatjzcb<0ABZ>zkMeg^G`aFXPXb1{CscDAIQLM?_`WZ@KFn+JH`nJTcv~bdb!dbrJ<*bG4F~mmn#gPiEBJ9E~SG)>A#fP+wJyk)hdof(rf(nzV}0Bq(Is zfh=HbZ0sC?Ea2?y;_Qhe&>G?z5{x1c8tNJxiR{c!*HG69$O5UME@8+54Aa6=Gf`a1 f+0lujU`PT0Q0F!C(O8i2ySc6LT;H|JqLf%^?571H!$Z*l_^*p8)^= z$V5O=wQ@L_kbnV%D>ncD010qNS#tmY79{`x79{~mQY7#I00Bu!L_t(YiDO_G1w#q& zoH=sLEUD{{~Oo@}RprEj^l79+9)0vq-aE3n49R(x+ z)VO8f|Khc}af|;47@q|e*$z;F(Dt-K2|+2<{@g z1C&0f=c`cw0=#$cUO?ia$1Ow9iXE=T9ZexHJ`s^Eo|aaamM&-vi%Y_>&tlyHcjw0b?bYwJgdI1xj$YVe+`EB9YlwYL*3eHGUK zxjPn2@3KEN*F0L{)b6E@3!hqk{;<$3z(0DY`GQkt)^2V7R63D2x^;?^i&Zr9?RWbY z`ny^$WiR}3?R}ETiSjcWFPO0T$4*`zQ*Kxhv&_NrNm{_J9Q6eM3-#K3;ZbL1r^X8$ Rjsp41lik(NWt~$(698`kbkhI; From fdc6e80e1edd0f2868cf7a10c01306eef81115ed Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 28 May 2020 12:19:07 -0600 Subject: [PATCH 7/7] fix anim defines --- data/battle_anim_scripts.s | 740 ++++++++++++++++---------------- include/battle_anim.h | 4 - include/constants/battle_anim.h | 40 +- src/battle_anim_effects_1.c | 3 +- src/battle_anim_electric.c | 5 +- src/battle_anim_ghost.c | 5 +- src/battle_anim_new.c | 100 +---- src/battle_anim_water.c | 8 +- 8 files changed, 419 insertions(+), 486 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 56e7bf0db1..0187c23f99 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -4483,7 +4483,7 @@ Move_WIDE_GUARD: Move_GUARD_SPLIT:: loadspritegfx ANIM_TAG_BLUEGREEN_ORB - createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 10, ANIM_PAL_BG, 0x1, 0x0, 0xC, 0x0 loopsewithpan SE_W199, SOUND_PAN_ATTACKER, 0x18, 0x3 call GuardSplitLaunch call GuardSplitLaunch @@ -4496,7 +4496,7 @@ Move_GUARD_SPLIT:: call GuardSplitLaunch call GuardSplitLaunch waitforvisualfinish - createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER 10, ANIM_PAL_BG, 0x1, 0xC, 0x0, 0x0 waitforvisualfinish end GuardSplitLaunch: @@ -4509,7 +4509,7 @@ GuardSplitLaunch: Move_POWER_SPLIT:: loadspritegfx ANIM_TAG_RED_HEART loadspritegfx ANIM_TAG_BLUEGREEN_ORB - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0x0, 0xC, 0x0 loopsewithpan SE_W199, SOUND_PAN_ATTACKER, 0x18, 0x3 call PowerSplitLaunch call PowerSplitLaunch @@ -4522,7 +4522,7 @@ Move_POWER_SPLIT:: call PowerSplitLaunch call PowerSplitLaunch waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0xC, 0x0, 0x0 waitforvisualfinish end PowerSplitLaunch: @@ -4589,7 +4589,7 @@ Move_VENOSHOCK: Move_AUTOTOMIZE: loadspritegfx ANIM_TAG_METAL_BITS @Metal Bits setalpha 12, 8 - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 0x2, 0x0, 0x18, 0x6, 0x4, 0x4 createvisualtask AnimTask_TraceMonBlended 0x2, 0x0, 0x4, 0x7, 0xa playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER @@ -4607,7 +4607,7 @@ Move_AUTOTOMIZE: delay 0x18 waitforvisualfinish stopsound - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -4615,15 +4615,15 @@ Move_AUTOTOMIZE: Move_RAGE_POWDER:: loadspritegfx ANIM_TAG_SPORE @Powder loadspritegfx ANIM_TAG_HEART_STAMP @Red Colour - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET loopsewithpan SE_W077, SOUND_PAN_TARGET, 0x12, 0xa call RagePowderSprinkle call RagePowderSprinkle call RagePowderSprinkle - createvisualtask AnimTask_BlendColorCycle, ANIM_ATTACKER, 0x2, PAL_ATK, 0x2, 0x2, 0x0, 0xb, 0x1f + createvisualtask AnimTask_BlendColorCycle, ANIM_ATTACKER, 0x2, ANIM_PAL_ATK, 0x2, 0x2, 0x0, 0xb, 0x1f waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end RagePowderSprinkle: createsprite gRagePowderRedPowderTemplate, ANIM_ATTACKER, 0x2, 0x0, 0xffec, 0x55, 0x50, 0x0 @@ -4637,9 +4637,9 @@ RagePowderSprinkle: Move_TELEKINESIS:: loadspritegfx ANIM_TAG_SPARKLE_4 @detect - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0x9, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0x0, 0x9, 0x0 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 0x1, 0x0, 0x9, 0x7fff + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_ATK, 0x1, 0x0, 0x9, 0x7fff delay 0x12 playsewithpan SE_W197, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 0xd, 0x14, 0xffec @@ -4648,8 +4648,8 @@ Move_TELEKINESIS:: createvisualtask AnimTask_SwayMon, 0x5, 0x1, 0x18, 0xD0, 0x1, ANIM_TARGET waitforvisualfinish delay 0xA - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x9, 0x0, 0x0 - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 0x2, 0x9, 0x0, 0x7fff + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0x9, 0x0, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_ATK, 0x2, 0x9, 0x0, 0x7fff waitforvisualfinish end @@ -4734,7 +4734,7 @@ Move_FLAME_BURST: Move_SLUDGE_WAVE: panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 - createvisualtask AnimTask_CreateSurfWave, 0x2, SURF_PALETTE_SLUDGE_WAVE + createvisualtask AnimTask_CreateSurfWave, 0x2, ANIM_SURF_PAL_SLUDGE_WAVE waitforvisualfinish end @@ -4799,9 +4799,9 @@ Move_SYCHRONOISE: loadspritegfx ANIM_TAG_POISON_BUBBLE @violet color loadspritegfx ANIM_TAG_SMALL_EMBER @flame wheel particle loadspritegfx ANIM_TAG_AIR_WAVE_2 @aero particles - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_2A 0x1 - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0x0, 0xC, 0x0 @Darken + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0x0, 0xC, 0x0 @Darken waitforvisualfinish panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 createsprite gSynchronoiseVioletRingTemplate, ANIM_ATTACKER, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 @@ -4826,9 +4826,9 @@ Move_SYCHRONOISE: createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0xff20, 0xffe0, 0x28 createsprite gSynchronoiseAeroWheelTemplate, ANIM_TARGET, 1, 0x0, 0xffef, 0x70, 0xff80, 0x28 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x1, 0xC, 0x0, 0x0 @Darken + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x1, 0xC, 0x0, 0x0 @Darken waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -5000,11 +5000,11 @@ Move_FOUL_PLAY: launchtemplate gFoulPlayImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x1 launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x3 0x0 0x6 0x1 playsewithpan SE_W233 SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (PAL_BG | PAL_ALL_BANKS), 0x3, 0xa, 0x0, 0x0 + launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (ANIM_PAL_BG | ANIM_PAL_ALL_BATTLERS), 0x3, 0xa, 0x0, 0x0 launchtemplate gFoulPlayRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 delay 0x8 playsewithpan SE_W004, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (PAL_BG | PAL_ALL_BANKS), 0x3, 0xa, 0x0, 0x0 + launchtask AnimTask_BlendBattleAnimPal, 0xa, 0x5, (ANIM_PAL_BG | ANIM_PAL_ALL_BATTLERS), 0x3, 0xa, 0x0, 0x0 launchtemplate gFoulPlayRingTemplate 0x3 0x4 0x0 0x0 0x100 0x0 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5019,12 +5019,12 @@ Move_SIMPLE_BEAM: loadspritegfx ANIM_TAG_THIN_RING @ring setalpha 8, 8 monbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W062, SOUND_PAN_ATTACKER call SimpleBeamsRegular call SimpleBeamsRegular - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x7FFF launchtask AnimTask_SwayMon 0x5 0x5 0x0 0x6 0x800 0x4 ANIM_TARGET call SimpleBeamWithRings call SimpleBeamWithRings @@ -5037,8 +5037,8 @@ Move_SIMPLE_BEAM: delay 0x2 stopsound waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7FFF - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -5115,7 +5115,7 @@ Move_ROUND: Move_ECHOED_VOICE: loadspritegfx ANIM_TAG_METAL_SOUND_WAVES - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_2A 0x1 launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x2 0x0 0x8 0x1 call MetalSoundPlayNote @@ -5123,7 +5123,7 @@ Move_ECHOED_VOICE: call MetalSoundPlayNote call MetalSoundPlayNote waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER delay 0x0 waitforvisualfinish end @@ -5135,9 +5135,9 @@ MetalSoundPlayNote: Move_CHIP_AWAY: loadspritegfx ANIM_TAG_IMPACT - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x7FFF waitforvisualfinish - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 12, 8 launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x18 0x6 0x1 0x5 delay 0x4 @@ -5145,8 +5145,8 @@ Move_CHIP_AWAY: launchtemplate gBasicHitSplatSpriteTemplate 0x84, 0x4, 0x0 0x0 0x1 0x1 playsewithpan SE_W233B SOUND_PAN_TARGET waitforvisualfinish - clearmonbg SIDE_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x7FFF + clearmonbg ANIM_ATK_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x7FFF waitforvisualfinish blendoff end @@ -5213,7 +5213,7 @@ Move_QUICK_GUARD: loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @hand loadspritegfx ANIM_TAG_SPARKLE_4 @sparkles setalpha 12, 8 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0xa 0x7FFF + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x0 0x2 0x0 0xa 0x7FFF delay 0x10 monbg ANIM_ATTACKER launchtemplate gQuickGuardArmImpactTemplate 0x83 0x5 0xE 0x0 0x8 0x0 0x0 @@ -5327,7 +5327,7 @@ Move_HEAL_PULSE: Move_HEX: loadspritegfx ANIM_TAG_PURPLE_FLAME loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x4C4A @;Deep purple + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x4C4A @;Deep purple waitforvisualfinish monbg ANIM_TARGET monbgprio_29 @@ -5337,11 +5337,11 @@ Move_HEX: launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x2 0x0 0x25 0x1 playsewithpan SE_W171, SOUND_PAN_TARGET delay 0x20 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xc 0x4C4A @;Deep purple + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0xc 0x4C4A @;Deep purple launchtemplate gCurseGhostSpriteTemplate 0x84, 0x0 waitforvisualfinish clearmonbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x10 0x0 0x4C4A @;Deep purple + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x10 0x0 0x4C4A @;Deep purple waitforvisualfinish end @@ -5365,7 +5365,7 @@ SkyDropSetup: end SkyDropUnleash: visible ANIM_TARGET - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W207, SOUND_PAN_TARGET launchtemplate gBounceBallLandSpriteTemplate 0x83 0x0 @@ -5374,7 +5374,7 @@ SkyDropUnleash: launchtemplate gBasicHitSplatSpriteTemplate 0x82, 0x4, 0x0 0x0 0x1 0x0 launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x5 0xb 0x1 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -5393,7 +5393,7 @@ Move_CIRCLE_THROW: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_ICE_CHUNK - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233, SOUND_PAN_ATTACKER launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0xc 0x4 0x1 0x2 @@ -5412,7 +5412,7 @@ Move_CIRCLE_THROW: delay 0xb launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0xa waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -5534,22 +5534,22 @@ Move_REFLECT_TYPE: Move_RETALITATE: loadspritegfx ANIM_TAG_CUT @Cut - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 9, 8 launchtask AnimTask_AttackerPunchWithTrace 0x2 0x2 0x7128 0xa - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 waitforvisualfinish playsewithpan SE_W015, SOUND_PAN_TARGET launchtemplate gGuillotineSpriteTemplate 0x2 0x1 0x0 launchtemplate gGuillotineSpriteTemplate 0x2 0x1 0x1 delay 0x38 playsewithpan SE_W003, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x10 0x43D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x10 0x43D waitforvisualfinish launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x043D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x043D waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -5558,10 +5558,10 @@ Move_FINAL_GAMBIT: loadspritegfx ANIM_TAG_PINK_CLOUD @yawn animation loadspritegfx ANIM_TAG_WATER_IMPACT @blue colour loadspritegfx ANIM_TAG_EXPLOSION @explosion animation - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 @Darken + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 @Darken waitforvisualfinish launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0xa 0x1 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0x8 0x7fff + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x0 0x2 0x0 0x8 0x7fff waitforvisualfinish playsewithpan SE_W028, SOUND_PAN_ATTACKER launchtemplate gFinalGambitBlueYawnTemplate 0x2 0x3 0x0 0x0 0x25 @@ -5577,7 +5577,7 @@ Move_FINAL_GAMBIT: launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 waitforvisualfinish clearmonbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish end @@ -6003,7 +6003,7 @@ Move_STRUGGLE_BUG: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x0a1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x0a1f waitforvisualfinish launchtask AnimTask_FlailMovement 0x2 0x1 0x0 launchtemplate gMovementWavesSpriteTemplate 0x2 0x3 0x0 0x0 0x2 @@ -6013,7 +6013,7 @@ Move_STRUGGLE_BUG: launchtemplate gRandomPosHitSplatSpriteTemplate 0x83 0x2 0x1 0x3 launchtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg 0x2 0x5 0x0 0x1 0x1e 0x1 0x0 playsewithpan SE_W025B, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x0a1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x0a1f waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -6194,7 +6194,7 @@ Move_WILD_CHARGE: blendoff end ScreenFlash: - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x07FE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x07FE return Move_DRILL_RUN: @@ -6257,7 +6257,7 @@ Move_DUAL_CHOP: loadspritegfx ANIM_TAG_HANDS_AND_FEET @hand loadspritegfx ANIM_TAG_IMPACT @hit loadspritegfx ANIM_TAG_POISON_BUBBLE @purple - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 playsewithpan SE_W026, SOUND_PAN_ATTACKER @@ -6271,7 +6271,7 @@ Move_DUAL_CHOP: launchtemplate gDualChopImpactTemplate 0x3 0x4 0x0 0x0 0x1 0x2 launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x4 0x0 0x6 0x1 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -6378,7 +6378,7 @@ Move_HEAT_CRASH: Move_LEAF_TORNADO: loadspritegfx ANIM_TAG_GUST @Gust loadspritegfx ANIM_TAG_LEAF @Leaves - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET playsewithpan SE_W016, SOUND_PAN_TARGET launchtask AnimTask_ShakeMon 0x5 0x5 0x1 0x0 0x2 0x2f 0x1 @@ -6435,7 +6435,7 @@ Move_STEAMROLLER: Move_COTTON_GUARD: loadspritegfx ANIM_TAG_SPORE - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 12, 8 loopsewithpan SE_W077, SOUND_PAN_TARGET 0x12 0x6 call CreateCottonSpores @@ -6443,7 +6443,7 @@ Move_COTTON_GUARD: call CottonSporesSpiralInward call CottonSporesSpiralInward waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end CottonSporesSpiralInward: @@ -6468,7 +6468,7 @@ Move_NIGHT_DAZE: loadspritegfx ANIM_TAG_THIN_RING @uproar loadspritegfx ANIM_TAG_PURPLE_FLAME @dark violet color loadspritegfx ANIM_TAG_RED_ORB @circles - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_TAMA, SOUND_PAN_ATTACKER launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 @@ -6492,13 +6492,13 @@ Move_NIGHT_DAZE: launchtemplate gNightDazeVioletRingsTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1F 0x8 waitforvisualfinish launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x1f 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0x9 0x2002 + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x2002 delay 0x6 playsewithpan SE_W048, SOUND_PAN_ATTACKER waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x9 0x0 0x2002 + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x2002 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish end @@ -6544,7 +6544,7 @@ TailSlapLeft: Move_HURRICANE: loadspritegfx ANIM_TAG_GUST - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 fadetobg BG_HIGH_SPEED @@ -6566,7 +6566,7 @@ Move_HURRICANE: call HurricaneGust waitforvisualfinish stopsound - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff call UnsetPsychicBg end @@ -6631,10 +6631,10 @@ Move_SEARING_SHOT: createvisualtask AnimTask_BlendParticle, 0x5, ANIM_TAG_WARM_ROCK, 0x0, 0xB, 0xB, 0x01BE @Orange monbg ANIM_ATTACKER setalpha 8, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 waitforvisualfinish launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x3c 0x2 0xc - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x1F playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 0x1e playsewithpan SE_W268, SOUND_PAN_ATTACKER @@ -6676,15 +6676,15 @@ Move_SEARING_SHOT: launchtemplate gSearingShotEruptionRockTemplate 0x42 0x5 0x1 0xe0 0x1e 0x19 0x0 delay 0x15 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x1F clearmonbg ANIM_ATTACKER fadetobg BG_FIRE waitbgfadeout launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff waitbgfadein delay 0x1E - monbg SIDE_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK_PARTNER | PAL_DEF | PAL_DEF_PARTNER 0x2 0x0 0x9 0x1F + monbg ANIM_ATK_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK_PARTNER | ANIM_PAL_DEF | ANIM_PAL_DEF_PARTNER 0x2 0x0 0x9 0x1F playsewithpan SE_W153, SOUND_PAN_ATTACKER launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x1B 0x1 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x3 0x0 0x1B 0x1 @@ -6699,11 +6699,11 @@ Move_SEARING_SHOT: delay 0x1E playsewithpan SE_W153, SOUND_PAN_ATTACKER waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK_PARTNER | PAL_DEF | PAL_DEF_PARTNER 0x2 0x9 0x0 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK_PARTNER | ANIM_PAL_DEF | ANIM_PAL_DEF_PARTNER 0x2 0x9 0x0 0x1F delay 0x1E call UnsetPsychicBg - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 - clearmonbg SIDE_ATTACKER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x0 0x0 + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -6723,7 +6723,7 @@ TechnoBlastNormal: loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 0xE, 0x8 launchtemplate gTechnoBlastWhiteCircleTemplate 0x2 0x3 0x28 0x28 0x10 @@ -6779,7 +6779,7 @@ TechnoBlastNormal: delay 0x2 launchtemplate gTechnoBlastWhiteSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -6823,7 +6823,7 @@ TechnoBlastElectric: loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 0xE, 0x8 launchtemplate gGrowingChargeOrbSpriteTemplate 0x2 0x1 0x0 @@ -6873,7 +6873,7 @@ TechnoBlastElectric: launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -6902,7 +6902,7 @@ TechnoBlastWater: loadspritegfx ANIM_TAG_BUBBLE @bubbles monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x1 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x1 waitforvisualfinish launchtemplate gTechnoBlastBlueChargeTemplate 0x2 0x1 0x0 playsewithpan SE_W152, SOUND_PAN_ATTACKER @@ -7007,7 +7007,7 @@ TechnoBlastWater: launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xffec 0x14 0x19 0x1 launchtemplate gTechnoBlastBlueBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -7023,7 +7023,7 @@ TechnoBlastFire: loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish launchtemplate gTechnoBlastRedChargeTemplate 0x2 0x1 0x0 delay 0x5 @@ -7059,7 +7059,7 @@ TechnoBlastFire: delay 0x2 launchtemplate gTechnoBlastRedSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -7096,7 +7096,7 @@ TechnoBlastIce: loadspritegfx ANIM_TAG_SPARK_2 @blast particles loadspritegfx ANIM_TAG_GRAY_SMOKE @dispersal monbg ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish launchtemplate gTechnoBlastIceChargeTemplate 0x2 0x1 0x0 delay 0x5 @@ -7143,7 +7143,7 @@ TechnoBlastIce: launchtemplate gIceCrystalHitSmallSpriteTemplate 0x82, 0x3, 0x0 0x0 0x0 launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0x14 0x2 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -7177,7 +7177,7 @@ Move_RELIC_SONG: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_IMPACT - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER launchtask AnimTask_MusicNotesRainbowBlend 0x2 0x0 waitforvisualfinish panse_1B 0x1DF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 @ ??? @@ -7248,7 +7248,7 @@ Move_RELIC_SONG: launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 playsewithpan SE_W004, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER launchtask AnimTask_MusicNotesClearRainbowBlend 0x2 0x0 waitforvisualfinish end @@ -7262,7 +7262,7 @@ Move_SECRET_SWORD: monbg ANIM_ATTACKER setalpha 12, 8 playsewithpan SE_W014, SOUND_PAN_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x0 launchtemplate gSwordsDanceBladeSpriteTemplate 0x2 0x2 0x0 0x0 delay 0x16 launchtask AnimTask_FlashAnimTagWithColor 0x2 0x7 0x2715 0x2 0x2 0x7ff2 0x10 0x0 0x0 @@ -7276,7 +7276,7 @@ Move_SECRET_SWORD: delay 0x5 launchtask AnimTask_ShakeMon 0x2 0x5 0x1 0x0 0x3 0xa 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x10 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x10 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -7288,7 +7288,7 @@ Move_GLACIATE: loadspritegfx ANIM_TAG_ICE_CRYSTALS @ice loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke loadspritegfx ANIM_TAG_ICE_CHUNK @White Colour - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 fadetobg BG_ICE waitbgfadeout @@ -7306,12 +7306,12 @@ Move_GLACIATE: launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x12 0x50 0x0 0x4b launchtemplate gGlaciateSmokeTemplate 0x84 0x5 0x0 0x12 0x48 0x1 0x4b waitforvisualfinish - createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (PAL_DEF | PAL_DEF_PARTNER), 0x2, 0x0, 0xA, 0x7FFF + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (ANIM_PAL_DEF | ANIM_PAL_DEF_PARTNER), 0x2, 0x0, 0xA, 0x7FFF call IceCrystalEffectLong - createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (PAL_DEF | PAL_DEF_PARTNER), 0x2, 0xA, 0x0, 0x7FFF + createsprite AnimTask_BlendBattleAnimPal, ANIM_ATTACKER, 0xA, (ANIM_PAL_DEF | ANIM_PAL_DEF_PARTNER), 0x2, 0xA, 0x0, 0x7FFF waitforvisualfinish blendoff - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBg end @@ -7323,8 +7323,8 @@ Move_BOLT_STRIKE:: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @Electric Circle monbg ANIM_ATTACKER setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x07FE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x07FE launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x40 0x0 0x2 playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 0xc @@ -7342,19 +7342,19 @@ Move_BOLT_STRIKE:: launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_ATTACKER 0x1a 0x0 0x0 0x5 delay 0x6 launchtemplate gBasicHitSplatSpriteTemplate 0x4 0x4 0xfff6 0x0 0x1 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x07FE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x07FE launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0x20 0x1 playsewithpan SE_W161B, SOUND_PAN_TARGET call ElectricityEffect launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x07FE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x07FE playsewithpan SE_W161B, SOUND_PAN_TARGET call ElectricityEffect waitforvisualfinish clearmonbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x07FE + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x07FE call UnsetPsychicBg - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x0 0x0 blendoff waitforvisualfinish end @@ -7363,7 +7363,7 @@ Move_BOLT_STRIKE:: Move_BLUE_FLARE:: loadspritegfx ANIM_TAG_SMALL_EMBER @Fire loadspritegfx ANIM_TAG_METAL_BITS @Blue Flare Colour - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x0 loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 0x7, 0x9 launchtemplate gBlueFlareFlameJabTemplate 0x82 0x5 0x1 0x0 0x0 0xffe0 0x10 delay 0x2 @@ -7401,7 +7401,7 @@ Move_BLUE_FLARE:: playsewithpan SE_W172, SOUND_PAN_ATTACKER call BlueFlareFlameSpreadEffect waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x0 0x0 launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 0x4 0x1 0x9 0x0 0x1f call UnsetPsychicBg waitforvisualfinish @@ -7433,11 +7433,11 @@ BlueFlareFlameSpreadEffect: Move_FIERY_DANCE:: loadspritegfx ANIM_TAG_SMALL_EMBER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xc 0x14be + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xc 0x14be waitforvisualfinish playsewithpan SE_W221B, SOUND_PAN_TARGET launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x2 0x40 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x0 0x9 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x1 0x0 0x9 0x1f call FireSpinEffect call FireSpinEffect call FireSpinEffect @@ -7446,8 +7446,8 @@ Move_FIERY_DANCE:: call FireSpinEffect call FireSpinEffect waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x9 0x0 0x1f - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xc 0x0 0x14be + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x1 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xc 0x0 0x14be waitforvisualfinish end @@ -7461,15 +7461,15 @@ Move_FREEZE_SHOCK:: FreezeShockCharge: launchtask AnimTask_HorizontalShake 0x5 0x3 0x0 0x2 0x10 playsewithpan SE_W085B, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xf 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0x0 0xf 0x7fff launchtemplate gFreezeShockCircleTemplate 0x2 0x0 @electric circle delay 0x14 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0xf 0x0 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0xf 0x0 0x7fff waitforvisualfinish end FreezeShockAttack: loopsewithpan SE_W196, SOUND_PAN_TARGET, 0x5, 0x5 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 monbg ANIM_TARGET waitforvisualfinish playsewithpan SE_W086, SOUND_PAN_ATTACKER @@ -7489,7 +7489,7 @@ FreezeShockAttack: call ElectricityEffect waitforvisualfinish clearmonbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x0 waitforvisualfinish end @@ -7503,23 +7503,23 @@ Move_ICE_BURN:: waitforvisualfinish end IceBurnCharge: - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish loopsewithpan SE_W196, SOUND_PAN_TARGET, 0x4, 0x3 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x8 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0x8 0x0 0x0 launchtask AnimTask_HorizontalShake 0x5 0x3 0x0 0x2 0x10 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xf 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0x0 0xf 0x7fff delay 0x14 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0xf 0x0 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0xf 0x0 0x7fff waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish end IceBurnUnleash: monbg ANIM_TARGET fadetobg BG_ICE waitbgfadeout - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x7fff launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0xfff6 0xfff6 0x0 playsewithpan SE_W196, SOUND_PAN_TARGET launchtemplate gIceBurnSmokeTemplate 0x84 0x5 0x0 0xfff4 0x68 0x0 0x4b @@ -7554,7 +7554,7 @@ IceBurnUnleash: delay 0x4 launchtemplate gIceCrystalHitLargeSpriteTemplate 0x82, 0x3, 0x14 0x2 0x0 playsewithpan SE_W196, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x7fff waitforvisualfinish restorebg clearmonbg ANIM_TARGET @@ -7565,7 +7565,7 @@ Move_SNARL:: loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_IMPACT - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER fadetobg BG_DARK waitbgfadeout launchtask AnimTask_UproarDistortion 0x2 0x1 0x0 @@ -7601,7 +7601,7 @@ Move_SNARL:: playsewithpan SE_W004, SOUND_PAN_TARGET waitforvisualfinish call UnsetPsychicBg - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -7610,7 +7610,7 @@ Move_ICICLE_CRASH:: loadspritegfx ANIM_TAG_ICICLE_SPEAR @Icicle fadetobg BG_ICE waitbgfadein - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER launchtemplate gIcicleCrashSpearTemplate 0x82, 0x4, 0xfffb 0x0 0xfffb 0x0 playsewithpan SE_W196, SOUND_PAN_TARGET delay 0x2 @@ -7627,7 +7627,7 @@ Move_ICICLE_CRASH:: call LaunchIcicleCrashSpear call LaunchIcicleCrashSpear waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadeout end @@ -7664,14 +7664,14 @@ Move_V_CREATE:: loadspritegfx ANIM_TAG_THIN_RING @calm mind animation loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE @red color loadspritegfx ANIM_TAG_ECLIPSING_ORB @defense curl animation - monbg SIDE_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 @Darken + monbg ANIM_ATK_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 @Darken launchtemplate gVCreateRedOrbTemplate 0x2 0x4 0x0 0x11 0x0 0x1 playsewithpan SE_W025, SOUND_PAN_ATTACKER delay 0x2 launchtemplate gVCreateRedRingTemplate 0x28 0x4 0x0 0x0 0x0 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x9 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x1f playsewithpan SE_W172B, SOUND_PAN_TARGET call VCreateFlames call VCreateFlames @@ -7690,7 +7690,7 @@ Move_V_CREATE:: unloadspritegfx ANIM_TAG_ECLIPSING_ORB loadspritegfx ANIM_TAG_EXPLOSION @explosion animation loadspritegfx ANIM_TAG_CLAW_SLASH @dragon claw animation - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER fadetobg BG_FIRE @Mr. DS Fire waitbgfadeout launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff @@ -7699,7 +7699,7 @@ Move_V_CREATE:: launchtask AnimTask_WindUpLunge 0x5 0x7 0x0 0xffe8 0x8 0x17 0xa 0x28 0xa delay 0x23 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x5 0x32 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x1f playsewithpan SE_W153, SOUND_PAN_ATTACKER launchtemplate gExplosionSpriteTemplate 0x3 0x4 0x0 0x0 0x1 0x1 delay 0x6 @@ -7721,14 +7721,14 @@ Move_V_CREATE:: waitforvisualfinish launchtask AnimTask_ShakeMonInPlace 0x2 0x5 0x1 0x4 0x0 0xc 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x9 0x0 0x1f - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x1f delay 0x2 launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x5 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBg - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0xffff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x0 0xffff waitforvisualfinish end VCreateFlames: @@ -7749,12 +7749,12 @@ Move_FUSION_FLARE:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0x0, 0xD, 0xD, 0x015B @Reddish Orange monbg ANIM_TARGET setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W025, SOUND_PAN_ATTACKER call FusionFlareBuff delay 0x8 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x1F + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x2 0x2 0x0 0xb 0x1F launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 launchtemplate gVerticalDipSpriteTemplate 0x2 0x3 0x8 0x1 0x0 delay 0x8 @@ -7768,7 +7768,7 @@ Move_FUSION_FLARE:: launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x50 0x3c 0xa 0x3 0x14 0x32 0x0 launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x8c 0x64 0x10 0x1 0x14 0x1e 0x1 delay 0x29 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xb 0x1F + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0xb 0x1F delay 0x5 launchtemplate gFusionFlareRedRingTemplate 0x3 0x6 0x1 0x1 0x1 0x1 0x1F 0x8 launchtemplate gFusionFlareRedBubblesTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 @@ -7780,7 +7780,7 @@ Move_FUSION_FLARE:: delay 0x5 playsewithpan SE_W153, SOUND_PAN_ATTACKER waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -7805,7 +7805,7 @@ Move_FUSION_BOLT:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CIRCLE_OF_LIGHT, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRICITY, 0x0, 0xC, 0xC, 0x7960 @Blue Electricity - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_BG, 0x0, 0x0, 0xE, 0x0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_BG, 0x0, 0x0, 0xE, 0x0 waitforvisualfinish launchtemplate gVoltTackleOrbSlideSpriteTemplate 0x1 0x0 playsewithpan SE_W268, SOUND_PAN_ATTACKER @@ -7840,7 +7840,7 @@ Move_FUSION_BOLT:: launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x0 0x10 0x10 delay 0x2 launchtemplate gElectricPuffSpriteTemplate 0x2 0x3 0x0 0xfff0 0xfff0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0xE 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0xE 0x0 0x0 waitforvisualfinish end @@ -7883,7 +7883,7 @@ Move_FLYING_PRESS:: Move_MAT_BLOCK:: loadspritegfx ANIM_TAG_CONVERSION loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL @green color - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER setblends 0x10 delay 0x0 @@ -7906,7 +7906,7 @@ Move_MAT_BLOCK:: launchtask AnimTask_ConversionAlphaBlend 0x5 0x0 waitforvisualfinish delay 0x1 - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -7948,7 +7948,7 @@ Move_ROTOTILLER:: loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_DIRT_MOUND loadspritegfx ANIM_TAG_GREEN_SPARKLE - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x112C + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x112C waitforvisualfinish launchtemplate gDirtMoundSpriteTemplate 0x1 0x3 0x0 0x0 0xb4 launchtemplate gDirtMoundSpriteTemplate 0x1 0x3 0x0 0x1 0xb4 @@ -7959,7 +7959,7 @@ Move_ROTOTILLER:: call DigThrowDirt call DigThrowDirt waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x112C + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x112C waitforvisualfinish end @@ -8120,10 +8120,10 @@ Move_FORESTS_CURSE: loadspritegfx ANIM_TAG_ROOTS @frenzy plant loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT @curse monbg ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 waitforvisualfinish playsewithpan SE_W010, SOUND_PAN_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x8 0x02E3 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x8 0x02E3 launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x64 0x64 0x8 0x1 0x14 0x28 0x0 launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0x14 0x64 0x10 0x2 0xa 0x23 0x1 launchtemplate gForestsCurseIngrainTemplate 0x42 0x7 0xc8 0x50 0x8 0x1 0x28 0x14 0x0 @@ -8147,9 +8147,9 @@ Move_FORESTS_CURSE: launchtemplate gCurseGhostSpriteTemplate 0x82 0x0 launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x2 0x0 0xe 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x8 0x0 0x02E3 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x8 0x0 0x02E3 delay 0x3 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x0 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -8204,10 +8204,10 @@ Move_PETAL_BLIZZARD:: Move_FREEZE_DRY:: - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER loadspritegfx ANIM_TAG_ICE_CRYSTALS - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x9 0x7f4c + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x7 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x9 0x7f4c delay 0x14 playsewithpan SE_W081, SOUND_PAN_TARGET launchtemplate gIceCrystalSpiralInwardSmall 0x2 0x1 0x0 @@ -8228,9 +8228,9 @@ Move_FREEZE_DRY:: launchtask AnimTask_FrozenIceCube 0x2 0x0 waitplaysewithpan SE_RG_CARD1 SOUND_PAN_TARGET 0x11 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x9 0x0 0x7f4c - clearmonbg SIDE_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x7 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x7f4c + clearmonbg ANIM_DEF_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x7 0x0 0x0 waitforvisualfinish blendoff end @@ -8238,7 +8238,7 @@ Move_FREEZE_DRY:: Move_DISARMING_VOICE:: loadspritegfx ANIM_TAG_NOISE_LINE - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x6e7d waitforvisualfinish launchtask SoundTask_PlayDoubleCry 0x2 0x2 0x0 0xff call RoarEffect @@ -8248,7 +8248,7 @@ Move_DISARMING_VOICE:: waitforvisualfinish launchtask SoundTask_WaitForCry 0x5 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x6e7d waitforvisualfinish end @@ -8320,9 +8320,9 @@ Move_DRAINING_KISS: Move_CRAFTY_SHIELD:: loadspritegfx ANIM_TAG_CRAFTY_SHIELD - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x4DBF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x5 0x4DBF setblends 0x10 delay 0x0 playsewithpan SE_W129, SOUND_PAN_ATTACKER @@ -8366,10 +8366,10 @@ Move_CRAFTY_SHIELD:: delay 0x6 launchtask AnimTask_ConversionAlphaBlend 0x5 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x4DBF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x5 0x0 0x4DBF waitforvisualfinish delay 0x1 - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -8378,7 +8378,7 @@ Move_FLOWER_SHIELD:: loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_IMPACT setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x6e7d waitforvisualfinish playsewithpan SE_W080, SOUND_PAN_ATTACKER launchtemplate gPetalDanceBigFlowerSpriteTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c @@ -8399,7 +8399,7 @@ Move_FLOWER_SHIELD:: launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0x14 0xfff0 0xe 0x50 launchtemplate gPetalDanceSmallFlowerSpriteTemplate 0x2 0x4 0xffec 0xfff2 0x10 0x50 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x6e7d waitforvisualfinish blendoff end @@ -8495,12 +8495,12 @@ Move_ELECTRIFY:: launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xa0 0x28 0x0 launchtemplate gZapCannonSparkSpriteTemplate 0x84 0x7 0xa 0x0 0x8 0x1e 0xe0 0x28 0x2 delay 0xA - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0xB 0x039B - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x3 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0x0 0xB 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x3 0x039B delay 0x4 clearmonbg ANIM_ATTACKER delay 0x1 - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER playsewithpan SE_W085B, SOUND_PAN_TARGET launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 @@ -8526,10 +8526,10 @@ Move_ELECTRIFY:: delay 0x2 launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0xB 0x0 0x039B - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x3 0x0 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0xB 0x0 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x3 0x0 0x039B waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -8592,9 +8592,9 @@ Move_PLAY_ROUGH:: Move_FAIRY_WIND:: loadspritegfx ANIM_TAG_PINK_CLOUD - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x6e7d waitforvisualfinish playsewithpan SE_W016, SOUND_PAN_TARGET launchtemplate gFairyWindCloudTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0x14 0x1 @@ -8611,9 +8611,9 @@ Move_FAIRY_WIND:: waitforvisualfinish stopsound playsewithpan SE_W016B, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6e7d + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x6e7d waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -8675,8 +8675,8 @@ Move_FAIRY_LOCK:: loadspritegfx ANIM_TAG_CHAIN_LINK @Chain Colour loadspritegfx ANIM_TAG_FAIRY_LOCK_CHAINS @Fairy Lock Chain setalpha 8, 8 - monbg SIDE_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6B1F + monbg ANIM_ATK_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x6B1F waitforvisualfinish loopsewithpan SE_W010, SOUND_PAN_TARGET, 0x6, 0x4 launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x7 @@ -8687,9 +8687,9 @@ Move_FAIRY_LOCK:: launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x6 launchtask AnimTask_VoltTackleBolt 0x5 0x1 0x35 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6B1F + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x6B1F waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -8720,9 +8720,9 @@ Move_CONFIDE:: Move_DIAMOND_STORM:: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ICE_CRYSTALS - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x1888 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xF 0x1888 createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ICE_CRYSTALS, 0, 0xD, 0xD, 0x7DDE @Pink waitforvisualfinish panse_1B SE_W059, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 @@ -8784,23 +8784,23 @@ Move_DIAMOND_STORM:: launchtemplate gBasicHitSplatSpriteTemplate 0x83 0x4 0x20 0x14 0x1 0x3 playsewithpan SE_W196, SOUND_PAN_TARGET waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x1888 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xF 0x0 0x1888 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end Move_STEAM_ERUPTION:: loadspritegfx ANIM_TAG_STEAM_ERUPTION @Steam Eruption Particle - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x043D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x7 0x043D delay 0x20 - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 call SteamEruptionBreath call SteamEruptionBreath - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x0 0x9 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x1 0x0 0x9 0x1f call SteamEruptionBreath delay 0x2 launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x2 0x0 0x15 0x1 @@ -8820,10 +8820,10 @@ Move_STEAM_ERUPTION:: call SteamEruptionBreath call SteamEruptionBreath call SteamEruptionBreath - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x9 0x0 0x1f + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x1 0x9 0x0 0x1f waitforvisualfinish - clearmonbg SIDE_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x043D + clearmonbg ANIM_DEF_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x7 0x0 0x043D waitforvisualfinish end SteamEruptionBreath: @@ -8837,7 +8837,7 @@ Move_HYPERSPACE_HOLE:: loadspritegfx ANIM_TAG_WHITE_SHADOW @Destiny Bond loadspritegfx ANIM_TAG_QUICK_GUARD_HAND @Black Colour loadspritegfx ANIM_TAG_POISON_BUBBLE @Poison Colour - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x7FFF waitforvisualfinish playsewithpan SE_W185, SOUND_PAN_ATTACKER invisible ANIM_ATTACKER @@ -8876,7 +8876,7 @@ Move_HYPERSPACE_HOLE:: invisible ANIM_ATTACKER delay 0x1 visible ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x7FFF waitforvisualfinish end HyperspaceHoleMovement: @@ -8892,7 +8892,7 @@ Move_WATER_SHURIKEN:: loadspritegfx ANIM_TAG_BLUE_RING_2 @rings loadspritegfx ANIM_TAG_SMALL_BUBBLES @bubbles loadspritegfx ANIM_TAG_IMPACT @hydro pump hit - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET createsoundtask SoundTask_LoopSEAdjustPanning, 0x7, 0x87, 0xffc0, SOUND_PAN_TARGET, 0x5, 0x5, 0x0, 0x5 launchtemplate gWaterShurikenStarTemplate 0x82, 0x3, 0x0 0x0 0x27 @@ -8906,7 +8906,7 @@ Move_WATER_SHURIKEN:: playsewithpan SE_W028, SOUND_PAN_TARGET launchtemplate gWaterShurikenImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end Move_MYSTICAL_FIRE:: @@ -8943,7 +8943,7 @@ Move_MYSTICAL_FIRE:: Move_SPIKY_SHIELD:: loadspritegfx ANIM_TAG_PROTECT loadspritegfx ANIM_TAG_GREEN_SPIKE - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 0x10 launchtemplate gProtectSpriteTemplate 0x2 0x3 0x18 0x0 0x5a @@ -8972,24 +8972,24 @@ Move_SPIKY_SHIELD:: delay 0x2 launchtemplate gNeedleArmSpikeSpriteTemplate 0x82 0x5 0x0 0x1 0x10 0x10 0x10 waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end Move_AROMATIC_MIST:: loadspritegfx ANIM_TAG_PINK_PETAL playsewithpan SE_W230, SOUND_PAN_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x6E7D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x6E7D launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x3 0x64 0x0 0x64 delay 0x19 setpan 0x0 call SweetScentEffect launchtemplate gSweetScentPetalSpriteTemplate 0x2 0x2 0x37 0x0 setpan SOUND_PAN_TARGET - createvisualtask AnimTask_BlendColorCycle, 2, (PAL_DEF | PAL_DEF_PARTNER), 1, 5, 5, 13, 0x56bf + createvisualtask AnimTask_BlendColorCycle, 2, (ANIM_PAL_DEF | ANIM_PAL_DEF_PARTNER), 1, 5, 5, 13, 0x56bf call SweetScentEffect waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x6E7D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x6E7D waitforvisualfinish end @@ -9001,7 +9001,7 @@ Move_EERIE_IMPULSE:: loadspritegfx ANIM_TAG_BLUE_STAR @heal particles loadspritegfx ANIM_TAG_SPARK_H @lighter yellow particle loadspritegfx ANIM_TAG_GOLD_RING @psybeam ring - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER waitplaysewithpan SE_W085B, SOUND_PAN_TARGET 0x13 delay 0x4 launchtemplate gEerieImpulseRingTemplate 0x0 0x7 0x2d 0x0 0x0 0x0 0x0 0x0 0x1 @@ -9036,13 +9036,13 @@ Move_EERIE_IMPULSE:: launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end Move_VENOM_DRENCH:: loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfffb 0x1 0xfffb 0x0 playsewithpan SE_W145C, SOUND_PAN_TARGET delay 0x2 @@ -9058,7 +9058,7 @@ Move_VENOM_DRENCH:: call AcidDrench call AcidDrench waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end AcidDrench: launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 @@ -9091,14 +9091,14 @@ AcidDrench: Move_POWDER:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color loadspritegfx ANIM_TAG_SPORE @powder - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET loopsewithpan SE_W077, SOUND_PAN_TARGET, 0x12, 0xa call POWDER_SPORE call POWDER_SPORE call POWDER_SPORE waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end POWDER_SPORE: launchtemplate gPowderBlackSporeTemplate 0x2 0x5 0x0 0xffec 0x55 0x50 0x0 @@ -9117,27 +9117,27 @@ Move_GEOMANCY:: loadspritegfx ANIM_TAG_WHIP_HIT @green color loadspritegfx ANIM_TAG_SWEAT_BEAD @blue color loadspritegfx ANIM_TAG_SMALL_EMBER @dragon claw buff / red color - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 8, 8 choosetwoturnanim GeomancyChargeUp GeomancyUnleash GeomancyChargeUp: loadspritegfx ANIM_TAG_FOCUS_ENERGY @endure buff effect - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W322, SOUND_PAN_ATTACKER launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x0 0x2 0x5f 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x5 0x1F call GeomancyRingBuff - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x2C0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x5 0x2C0 call GeomancyRingBuff - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x7C60 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x5 0x7C60 call GeomancyRingBuff waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x5 0x0 0x7C60 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x5 0x0 0x7C60 waitforvisualfinish blendoff - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end GeomancyRingBuff: launchtemplate gGeomancyRedCellVortexTemplate 0x2 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x0 @@ -9188,7 +9188,7 @@ GeomancyRingBuff: return GeomancyUnleash: loadspritegfx ANIM_TAG_FIRE_PLUME @dragon rage - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x24CF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x24CF playsewithpan SE_W208, SOUND_PAN_ATTACKER launchtemplate gGeomancyRingTemplate 0x2 0x0 delay 0x1 @@ -9203,9 +9203,9 @@ GeomancyUnleash: launchtemplate gGeomancyRingTemplate 0x2 0x0 waitforvisualfinish playsewithpan SE_W082, SOUND_PAN_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x10 0x4D01 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x10 0x4D01 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x0 0x2 0x25 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x0 0x5 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x0 0x5 0x1F launchtemplate gGeomancyRedCellRaiseTemplate 0x2 0x5 0x14 0x20 0xffd0 0x32 0x1 launchtemplate gGeomancyGreenCellRaiseTemplate 0x2 0x5 0x0 0x20 0xffda 0x19 0x1 launchtemplate gGeomancyBlueCellRaiseTemplate 0x2 0x5 0x20 0x20 0xffe4 0x28 0x1 @@ -9215,11 +9215,11 @@ GeomancyUnleash: call GeomancyRageBuff call GeomancyRageBuff waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x4D01 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x2 0x5 0x0 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x4D01 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x2 0x5 0x0 0x1F waitforvisualfinish blendoff - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end GeomancyRageBuff: launchtemplate gGeomancyYellowRageTemplate 0xc2 0x3 0x0 0x5 0x0 @@ -9245,8 +9245,8 @@ Move_MAGNETIC_FLUX:: loadspritegfx ANIM_TAG_THIN_RING @uproar loadspritegfx ANIM_TAG_SPARK_2 @ElectricityEffect loadspritegfx ANIM_TAG_SMALL_EMBER @yellow color - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK), 2, 0, 9, 0x243B - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK_PARTNER), 2, 0, 9, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_DEF | ANIM_PAL_ATK), 2, 0, 9, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_DEF | ANIM_PAL_ATK_PARTNER), 2, 0, 9, 0x243B loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 0x12, 0x3 launchtask AnimTask_DefenseCurlDeformMon 0x5 0x0 call MagneticFluxSparks1 @@ -9258,8 +9258,8 @@ Move_MAGNETIC_FLUX:: launchtemplate gMagneticFluxUproarTemplate 0x3 0x6 0x0 0x0 0x0 0x0 0x1f 0x8 call MagneticFluxSparks2 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK), 2, 9, 0, 0x243B - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_DEF | PAL_ATK_PARTNER), 2, 9, 0, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_DEF | ANIM_PAL_ATK), 2, 9, 0, 0x243B + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_DEF | ANIM_PAL_ATK_PARTNER), 2, 9, 0, 0x243B waitforvisualfinish end MagneticFluxSparks1: @@ -9422,7 +9422,7 @@ Move_BABY_DOLL_EYES:: loadspritegfx ANIM_TAG_PINK_CLOUD loadspritegfx ANIM_TAG_OPENING_EYE @eye setalpha 8, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0xA 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0xA 0x7FFF waitforvisualfinish launchtemplate gOpeningEyeSpriteTemplate 0x5 0x4 0x0 0x0 0x1 0x0 delay 0x20 @@ -9432,7 +9432,7 @@ Move_BABY_DOLL_EYES:: delay 0xa launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x1 0x0 0x9 0x1 launchtask AnimTask_ShakeMon2 0x2 0x5 0x3 0x1 0x0 0x9 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0xA 0x0 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0xA 0x0 0x7FFF waitforvisualfinish blendoff end @@ -9491,9 +9491,9 @@ Move_HOLD_BACK:: Move_INFESTATION:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color loadspritegfx ANIM_TAG_SMALL_BUBBLES @circle particles - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_DEF, 0x2, 0x0, 0x9, 0x7320 + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_DEF, 0x2, 0x0, 0x9, 0x7320 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x3 0x0 0x4f 0x1 loopsewithpan SE_W268, SOUND_PAN_ATTACKER, 0x0, 0x4F call InfestationVortex @@ -9502,9 +9502,9 @@ Move_INFESTATION:: call InfestationVortex call InfestationVortex waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x9 0x0 0x7320 + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0x9 0x0 0x7320 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end InfestationVortex: launchtemplate gInfestationBubbleTemplate 0x82 0x7 0x0 0x1c 0x210 0x1e 0xd 0x32 0x1 @@ -9548,13 +9548,13 @@ Move_OBLIVION_WING:: playsewithpan SE_W019, SOUND_PAN_ATTACKER launchtemplate gFlyBallUpSpriteTemplate 0x2 0x4 0x0 0x0 0xd 0x150 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 @Black + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xE 0x0 @Black waitforvisualfinish createsoundtask SoundTask_LoopSEAdjustPanning, 0x7, 0xf0, 0xffc0, SOUND_PAN_TARGET, 0x1, 0xf, 0x0, 0x5 call OblivionWingBeam call OblivionWingBeam launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 40 0x1 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x4 0x0 0xc 0x289F @Pinkish Red + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x4 0x0 0xc 0x289F @Pinkish Red call OblivionWingBeam call OblivionWingBeam call OblivionWingBeam @@ -9569,7 +9569,7 @@ Move_OBLIVION_WING:: visible ANIM_ATTACKER call HealingEffect waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x0 @From black + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xE 0x0 0x0 @From black waitforvisualfinish end OblivionWingBeam: @@ -9590,7 +9590,7 @@ Move_THOUSAND_ARROWS:: loadspritegfx ANIM_TAG_NEEDLE @sting monbg ANIM_ATTACKER setblends 0x80e - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish launchtemplate gThousandArrowsGreenChargeTemplate 0x2 0x1 0x0 playsewithpan SE_W268, SOUND_PAN_ATTACKER @@ -9617,7 +9617,7 @@ Move_THOUSAND_ARROWS:: call ThousandArrowsDown call ThousandArrowsDown waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0xffff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0xffff waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff @@ -9674,9 +9674,9 @@ Move_THOUSAND_WAVES:: loadspritegfx ANIM_TAG_FLYING_DIRT @heat wave animation loadspritegfx ANIM_TAG_LEAF @green color loadspritegfx ANIM_TAG_IMPACT @pound hits - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 8, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W025, SOUND_PAN_ATTACKER launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0x0 @@ -9686,7 +9686,7 @@ Move_THOUSAND_WAVES:: launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0xaa launchtemplate gThousandWavesGreenWheelTemplate 0x2 0x1 0xd5 waitforvisualfinish - clearmonbg SIDE_ATTACKER @I placed this one here, because it ruins the teleport animation + clearmonbg ANIM_ATK_PARTNER @I placed this one here, because it ruins the teleport animation loopsewithpan SE_W004, SOUND_PAN_TARGET, 0x3, 0x15 call ThousandWavesRecover launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0xfff6 0xd @@ -9715,7 +9715,7 @@ Move_THOUSAND_WAVES:: delay 0x4 launchtask AnimTask_MoveHeatWaveTargets 0x5 0x0 delay 0xc - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET launchtemplate gThousandWavesGreenWaveTemplate 0x28 0x4 0xa 0x900 0x60 0x1 delay 0x2 @@ -9730,10 +9730,10 @@ Move_THOUSAND_WAVES:: waitforvisualfinish launchtask AnimTask_ExtremeSpeedMonReappear 0x2 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0xffff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0xffff waitforvisualfinish blendoff - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end ThousandWavesRecover: launchtemplate gThousandWavesGreenRecoverTemplate 0x2 0x3 0x28 0x28 0x10 @@ -9803,7 +9803,7 @@ Move_LANDS_WRATH:: loadspritegfx ANIM_TAG_WATER_ORB @whirl motion loadspritegfx ANIM_TAG_SPARK_2 @yellow color monbg ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xE 0x0 waitforvisualfinish call LandsWrathVortex call LandsWrathVortex @@ -9819,7 +9819,7 @@ Move_LANDS_WRATH:: waitbgfadein waitforvisualfinish call UnsetPsychicBg - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x0 0x0 clearmonbg ANIM_ATTACKER end LandsWrathVortex: @@ -9850,7 +9850,7 @@ Move_LIGHT_OF_RUIN:: waitforvisualfinish launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x14 0x0 0x2 panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x6B1F + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xF 0x6B1F launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 0x32 0x1 createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, 0x1f, 0x10, 0, 0 call LightOfRuinBeam @@ -9889,9 +9889,9 @@ Move_LIGHT_OF_RUIN:: launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x5 0xb 0x1 launchtemplate gLightOfRuinPinkExplosionTemplate 0x3 0x4 0x0 0x0 0x1 0x1 delay 0x10 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7FFF + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x7FFF waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ALL_BANKS 0x1 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ALL_BATTLERS 0x1 0x0 0x0 0x0 waitforvisualfinish end LightOfRuinBeam: @@ -9950,7 +9950,7 @@ Move_ORIGIN_PULSE:: launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFF2A 0xFFAA 0x10 @between left and upper left launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFDA 0xFF94 0x10 @between up and upper left waitforvisualfinish - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffb0 0xfff0 0x1 0x1 stopsound playsewithpan SE_W056, SOUND_PAN_ATTACKER @@ -9968,7 +9968,7 @@ Move_ORIGIN_PULSE:: launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffe0 0x5 0x1 0x1 waitsound call UnsetPsychicBg - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -9977,7 +9977,7 @@ Move_PRECIPICE_BLADES:: loadspritegfx ANIM_TAG_LARGE_SPIKE loadspritegfx ANIM_TAG_FIRE_PLUME createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_LARGE_SPIKE, 0, 10, 10, 0x159F @Blood orange - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 fadetobg 0x15 @@ -10016,7 +10016,7 @@ PrecipiceBladesContinue: launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x82, 0x3 ANIM_DEF_PARTNER 0x0 0x6 waitforvisualfinish call UnsetPsychicBg - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end PrecipiceBladesOpponent: @@ -10042,16 +10042,16 @@ Move_DRAGON_ASCENT:: invisible ANIM_ATTACKER launchtemplate gDragonAscentFlyUpTemplate 0x2 0x7 0x0 0x0 0x400 0x24 0x15 0x1 ANIM_ATTACKER waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 4, 0, 14, RGB(21, 31, 27) + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (ANIM_PAL_ATK | ANIM_PAL_BG | ANIM_PAL_BG_4 | ANIM_PAL_BG_5), 4, 0, 14, RGB(21, 31, 27) playsewithpan SE_W025, SOUND_PAN_ATTACKER waitforvisualfinish playsewithpan SE_W197, SOUND_PAN_ATTACKER launchtask AnimTask_StartSlidingBg, 0x5 0x4, -7304, -784, 1, -1 delay 2 - launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 0, 14, 0, RGB(21, 31, 27) + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (ANIM_PAL_ATK | ANIM_PAL_BG | ANIM_PAL_BG_4 | ANIM_PAL_BG_5), 0, 14, 0, RGB(21, 31, 27) waitforvisualfinish delay 1 - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W104, SOUND_PAN_ATTACKER launchtemplate gDragonAscentDrakeTemplate, 2, 0x1 5 @@ -10060,13 +10060,13 @@ Move_DRAGON_ASCENT:: launchtemplate gBasicHitSplatSpriteTemplate, 0x84, 0x4, -10, 0, 1, 0 launchtemplate gSlideMonToOffsetSpriteTemplate, 2, 0x5, 0x1, -32, 0, 0, 3 launchtask AnimTask_ShakeMonInPlace, 0x2 0x5, ANIM_TARGET, 6, 0, 12, 1 - launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (PAL_ATK | PAL_BG | PAL_BG_4 | PAL_BG_5), 2, 16, 0, RGB(26, 31, 0) + launchtask AnimTask_BlendBattleAnimPal, 0xa 0x5, (ANIM_PAL_ATK | ANIM_PAL_BG | ANIM_PAL_BG_4 | ANIM_PAL_BG_5), 2, 16, 0, RGB(26, 31, 0) waitforvisualfinish delay 3 launchtemplate gSlideMonToOriginalPosSpriteTemplate, 2, 0x3, 1, 0, 7 waitforvisualfinish blendoff - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBg end @@ -10076,7 +10076,7 @@ Move_HYPERSPACE_FURY:: loadspritegfx ANIM_TAG_HOOPA_RING @Hoopa Ring loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xA 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xA 0x0 waitforvisualfinish playsewithpan SE_W171, SOUND_PAN_ATTACKER launchtemplate gHyperspaceFuryRingTemplate 0x3 0x4 0x0 0x0 0x38 0x0 @@ -10151,7 +10151,7 @@ Move_HYPERSPACE_FURY:: invisible ANIM_ATTACKER delay 0x1 visible ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x0 0x0 end HyperspaceFuryRandomImpact: launchtemplate gHyperspaceFuryImpactTemplate 0x83 0x2 0x1 0x1 @@ -10217,7 +10217,7 @@ Move_FIRST_IMPRESSION:: Move_BANEFUL_BUNKER:: loadspritegfx ANIM_TAG_PROTECT @protect loadspritegfx ANIM_TAG_POISON_BUBBLE @poison - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER 0x10 launchtemplate gProtectSpriteTemplate 0x2 0x3 0x18 0x0 0x5a @@ -10237,17 +10237,17 @@ Move_BANEFUL_BUNKER:: delay 0x4 launchtemplate gBanefulBunkerPoisonBubbleTemplate 0x2 0x4 0xc 0x0 0x19 0x0 waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end Move_SPIRIT_SHACKLE:: loadspritegfx ANIM_TAG_SPIRIT_ARROW @Arrow loadspritegfx ANIM_TAG_CHAIN_LINK @Chain - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 waitforvisualfinish playsewithpan SE_W013B, SOUND_PAN_ATTACKER launchtemplate gSpiritShackleArrowTemplate 0x82 0x5 0x10 0x0 0x0 0x0 0xf @@ -10261,9 +10261,9 @@ Move_SPIRIT_SHACKLE:: delay 0x4 launchtemplate gSpiritShackleChainTemplate 0x82 0x2 0xfff0 0x10 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x0 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -10275,7 +10275,7 @@ Move_DARKEST_LARIAT:: waitbgfadein loadspritegfx ANIM_TAG_IMPACT @hit loadspritegfx ANIM_TAG_POISON_BUBBLE @purple color - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W104, SOUND_PAN_ATTACKER waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 0xa @@ -10293,7 +10293,7 @@ Move_DARKEST_LARIAT:: call DarkestLariatImpact call DarkestLariatImpact waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff call UnsetPsychicBg end @@ -10313,7 +10313,7 @@ Move_SPARKLING_ARIA:: loadspritegfx ANIM_TAG_HYDRO_PUMP @hydro pump monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xE 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xE 0x0 waitforvisualfinish launchtemplate gSparklingAriaBlueChargeTemplate 0x2 0x1 0x0 call SparklingAriaCharge @@ -10325,7 +10325,7 @@ Move_SPARKLING_ARIA:: call SparklingAriaRain call SparklingAriaRain waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xE 0x0 0x0 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff @@ -10406,7 +10406,7 @@ Move_ICE_HAMMER:: loadspritegfx ANIM_TAG_ECLIPSING_ORB @gray color loadspritegfx ANIM_TAG_BLACK_SMOKE @smoke setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W104, SOUND_PAN_TARGET launchtemplate gIceHammerPunchStompTemplate 0x83, 0x3 0x0 0xffe0 0xf @@ -10426,7 +10426,7 @@ Move_ICE_HAMMER:: launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x12 0x50 0x0 0x4b launchtemplate gIceHammerSmokesTemplate 0x84, 0x5 0x0 0x12 0x48 0x1 0x4b call IceCrystalEffectShort - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff end @@ -10543,17 +10543,17 @@ Move_HIGH_HORSEPOWER:: loadspritegfx ANIM_TAG_HORSESHOE_SIDE_FIST @horseshoe monbg ANIM_TARGET delay 0x2 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x0 setalpha 12, 8 playsewithpan SE_W025, SOUND_PAN_TARGET launchtemplate gHighHorsepowerHorseshoeTemplate 0x3 0x4 0x0 0x0 0x1 0x32 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x7 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x7 0x7fff delay 0x32 playsewithpan SE_W025B, SOUND_PAN_TARGET call SetImpactBackground launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0x0 0x0 0x1 0x0 launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x16 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x0 0x7fff + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x0 0x7fff launchtemplate gComplexPaletteBlendSpriteTemplate 0x2 0x7 0x1f 0x3 0x1 0x0 0x8 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET @@ -10571,7 +10571,7 @@ Move_STRENGTH_SAP:: loadspritegfx ANIM_TAG_PINK_PETAL @pink color loadspritegfx ANIM_TAG_ORBS @absorb loadspritegfx ANIM_TAG_SPARKLE_2 @stars - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER playsewithpan SE_W120, SOUND_PAN_TARGET launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0x8 0x3 0x1 0x0 launchtemplate gStrengthSapRedInwardTemplate 0x4 0x3 0x46 0x0 0x6 @@ -10599,7 +10599,7 @@ Move_STRENGTH_SAP:: delay 0x2 launchtemplate gStrengthSapRedSmokeTemplate 0x82, 0x4, 0xfff8 0x8 0x1 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x3 0x07FD + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x3 0x07FD delay 0x5 playsewithpan SE_W152, SOUND_PAN_TARGET launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x0 0x5 0x8 0x1a @@ -10625,11 +10625,11 @@ Move_STRENGTH_SAP:: playsewithpan SE_W152, SOUND_PAN_TARGET launchtemplate gStrengthSapAbsorbTemplate 0x3 0x4 0x5 0xffee 0xffec 0x23 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x3 0x0 0x07FD + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x3 0x0 0x07FD loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 0x10, 0x3 call GrantingStarsEffect waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -10643,7 +10643,7 @@ SolarBladeUnleash: loadspritegfx ANIM_TAG_SUNLIGHT @sun rays monbg ANIM_ATTACKER setblends 0x30d - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_BG | PAL_ALL_BANKS), 1, 0, 6, 0x7fff + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_BG | ANIM_PAL_ALL_BATTLERS), 1, 0, 6, 0x7fff waitforvisualfinish playsewithpan SE_W014, SOUND_PAN_ATTACKER launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x10 0x6 0x1 0x4 @@ -10660,7 +10660,7 @@ SolarBladeUnleash: delay 0x2 launchtask AnimTask_ShakeMon2 0x2 0x5 ANIM_TARGET 0x2 0x0 0xC 0x1 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal 10, (PAL_BG | PAL_ALL_BANKS), 1, 6, 0, 0x7fff + createvisualtask AnimTask_BlendBattleAnimPal 10, (ANIM_PAL_BG | ANIM_PAL_ALL_BATTLERS), 1, 6, 0, 0x7fff waitforvisualfinish call UnsetPsychicBg clearmonbg ANIM_ATTACKER @@ -10675,7 +10675,7 @@ SolarBladeSunRays: Move_LEAFAGE:: loadspritegfx ANIM_TAG_RAZOR_LEAF @leaf loadspritegfx ANIM_TAG_IMPACT @hit - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER playsewithpan SE_W013B, SOUND_PAN_ATTACKER launchtemplate gRazorLeafCutterSpriteTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0x14 0x1 launchtemplate gRazorLeafCutterSpriteTemplate 0x83 0x7 0x14 0xfff6 0x14 0x0 0x16 0xffec 0x1 @@ -10684,7 +10684,7 @@ Move_LEAFAGE:: playsewithpan SE_W013, SOUND_PAN_TARGET launchtemplate gLeafageImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -10708,9 +10708,9 @@ Move_TOXIC_THREAD:: loadspritegfx ANIM_TAG_WEB_THREAD createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_STRING, 0, 0xA, 0xA, 0x6038 @Purple createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WEB_THREAD, 0x0, 0xA, 0xA, 0x6038 @Purple - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER delay 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x9 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x9 0x0 waitforvisualfinish loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 0x9, 0x6 call SpiderWebThread @@ -10739,10 +10739,10 @@ Move_TOXIC_THREAD:: delay 0x4 launchtemplate gToxicThreadString 0x82 0x2 0x0 0x16 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER delay 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x9 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x9 0x0 0x0 end @@ -10751,14 +10751,14 @@ Move_LASER_FOCUS:: loadspritegfx ANIM_TAG_OPENING_EYE @eyes loadspritegfx ANIM_TAG_LEER @leer monbg ANIM_ATTACKER - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish launchtemplate gLaserFocusRedEyesTemplate 0x5 0x4 0x0 0x0 0x0 0x0 waitforvisualfinish playsewithpan SE_W043, SOUND_PAN_ATTACKER launchtemplate gLeerSpriteTemplate 0x2 0x2 0x18 0xfff4 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -10767,7 +10767,7 @@ Move_LASER_FOCUS:: Move_GEAR_UP:: loadspritegfx ANIM_TAG_GEAR loadspritegfx ANIM_TAG_SPARK_2 @sparks - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x039B launchtemplate gGearUpGearsTemplate 0x2 0x4 0x0 0xffe8 0x8 0x8c playsewithpan SE_TAMAKORO_E, SOUND_PAN_ATTACKER launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 @@ -10799,7 +10799,7 @@ Move_GEAR_UP:: launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x9c 0x18 0x79 0xd 0x0 0x1 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x039B + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x039B waitforvisualfinish end GearUpSparks: @@ -10822,7 +10822,7 @@ Move_THROAT_CHOP:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @karate chop loadspritegfx ANIM_TAG_IMPACT @hit loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 playsewithpan SE_W104, SOUND_PAN_TARGET @@ -10849,13 +10849,13 @@ Move_THROAT_CHOP:: waitforvisualfinish launchtask AnimTask_InvertScreenColor 0x2 0x3 0x101 0x101 0x101 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end Move_POLLEN_PUFF:: - launchtask AnimTask_IsTargetPartner 0x5 0x0 + launchtask AnimTask_IsTargetSameSide 0x5 0x0 jumpargeq 0x0, 0x1, PollenPuffAlly PollenPuffOpponent: loadspritegfx ANIM_TAG_SPARKLE_2 @stars @@ -10867,7 +10867,7 @@ PollenPuffOpponent: loadspritegfx ANIM_TAG_ORBS @hit monbg ANIM_ATTACKER setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x0 waitforvisualfinish launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 @@ -10910,7 +10910,7 @@ PollenPuffOpponent: launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x1E 0x0 0x10 @right launchtemplate gPollenPuffImpactTemplates 0x82 0x5 0x1 0x1 0x16 0xFFEA 0x10 @upperright waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -10923,7 +10923,7 @@ PollenPuffAlly: loadspritegfx ANIM_TAG_SPORE @ball monbg ANIM_ATTACKER setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x8 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x8 0x0 waitforvisualfinish launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 launchtemplate gPollenPuffPinkStarTemplate 0x2 0x4 0xa 0xa 0x19 0x0 @@ -10964,7 +10964,7 @@ PollenPuffAlly: delay 0x7 launchtemplate gPollenPuffHealTemplate 0x2 0x4 0xa 0xfffb 0x1 0x0 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x8 0x1 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x8 0x1 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -11032,7 +11032,7 @@ Move_LUNGE:: loadspritegfx ANIM_TAG_LEAF @green loadspritegfx ANIM_TAG_RAZOR_LEAF @green loadspritegfx ANIM_TAG_SMALL_BUBBLES @ball - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x3 0x0 0xf0 0x0 loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 0xe, 0xa launchtemplate gLungeGreenChargeTemplate 0x2 0x0 @@ -11040,13 +11040,13 @@ Move_LUNGE:: delay 0x3e playsewithpan SE_W100, SOUND_PAN_ATTACKER delay 0x15 - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER invisible ANIM_ATTACKER waitforvisualfinish playsewithpan SE_W039, SOUND_PAN_ATTACKER launchtemplate gLungeGreenBubbleTemplate 0x82 0x6 0xa 0x0 0x0 0x0 0x19 0xffe0 delay 0xF - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER delay 0x1 launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x46 0x0 0x6 launchtemplate gTealAlertSpriteTemplate 0x4 0x3 0x28 0x28 0x6 @@ -11074,13 +11074,13 @@ Move_LUNGE:: launchtemplate gLungeGreenImpactTemplate 0x2 0x4 0x0 0x0 0x1 0x2 waitforvisualfinish visible ANIM_ATTACKER - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end Move_FIRE_LASH:: loadspritegfx ANIM_TAG_SMALL_EMBER - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 playsewithpan SE_W172, SOUND_PAN_ATTACKER @@ -11118,7 +11118,7 @@ Move_FIRE_LASH:: delay 0x7 launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x9 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -11127,11 +11127,11 @@ Move_POWER_TRIP:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @black color loadspritegfx ANIM_TAG_PURPLE_FLAME @dark violet color loadspritegfx ANIM_TAG_IMPACT @hit - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER playsewithpan SE_W082, SOUND_PAN_ATTACKER call PowerTripBuffUp delay 0x8 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x0 + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x2 0x2 0x0 0xb 0x0 launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 call PowerTripBuffUp delay 0x8 @@ -11149,7 +11149,7 @@ Move_POWER_TRIP:: launchtemplate gPowerTripImpactTemplate 0x2 0x4 0xA 0x0 0x1 0x2 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end PowerTripBuffUp: launchtemplate gPowerTripFocusEnergyTemplate 0x2 0x4 0x0 0xffe8 0x1a 0x2 @@ -11169,13 +11169,13 @@ Move_BURN_UP:: loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color loadspritegfx ANIM_TAG_PINK_CLOUD @yawn loadspritegfx ANIM_TAG_SMALL_EMBER @fire - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER setblends 0x120C fadetobg BG_FIRE waitbgfadeout launchtask AnimTask_StartSlidingBg 0x5 0x4 0xA00 0x0 0x1 0xffff waitbgfadein - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x1c + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x5 0x1c waitforvisualfinish launchtask AnimTask_AllocBackupPalBuffer 0x5 0x0 waitforvisualfinish @@ -11186,7 +11186,7 @@ Move_BURN_UP:: loopsewithpan SE_W036, SOUND_PAN_ATTACKER 0x9 0x2 launchtask AnimTask_CopyPalUnfadedToBackup 0x5 0x2 0x1 0x0 delay 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x1 0x0 0xd 0x1c + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x1 0x0 0xd 0x1c launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x2 0x0 0xf 0x1 waitforvisualfinish delay 0x1E @@ -11197,14 +11197,14 @@ Move_BURN_UP:: delay 0x1 launchtask AnimTask_CopyPalFadedToUnfaded 0x5 0x1 0x1 delay 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x0 0x0 0xd 0x4a52 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x0 0x0 0xd 0x4a52 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_ATTACKER 0x3 0x0 0xf 0x1 delay 0xF - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0x0 0xC 0x1C + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0x0 0xC 0x1C delay 0x1 launchtask AnimTask_CopyPalUnfadedFromBackup 0x5 0x2 0x0 0x1 delay 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x1c + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x5 0x0 0x1c delay 0x1 launchtask AnimTask_CopyPalUnfadedFromBackup 0x5 0x2 0x1 0x0 delay 0x1 @@ -11212,15 +11212,15 @@ Move_BURN_UP:: launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x2 0x0 0xf 0x1 call FireSpreadEffect waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_ATK 0x0 0xd 0x0 0x4a52 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_ATK 0x0 0xd 0x0 0x4a52 delay 0x1 launchtask AnimTask_FreeBackupPalBuffer 0x5 0x0 delay 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_DEF 0x2 0xC 0x0 0x1C + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0xC 0x0 0x1C waitforvisualfinish call UnsetPsychicBg - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -11274,7 +11274,7 @@ Move_SMART_STRIKE:: delay 0x78 setarg 0x7 0xffff waitforvisualfinish - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 call SonicBoomProjectile @@ -11291,7 +11291,7 @@ Move_SMART_STRIKE:: launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0xffe8 0x0 0xa launchtemplate gSmartStrikeGemTemplate 0x82 0x5 0x1 0x1 0xffef 0xffef 0xa waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -11336,7 +11336,7 @@ Move_REVELATION_DANCE:: loadspritegfx ANIM_TAG_AIR_WAVE @sonicboom loadspritegfx ANIM_TAG_THIN_RING @ring monbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xF 0x0 waitforvisualfinish playsewithpan SE_W080, SOUND_PAN_ATTACKER launchtask AnimTask_RockMonBackAndForth 0x5 0x3 0x0 0x2 0x0 @@ -11377,7 +11377,7 @@ Move_REVELATION_DANCE:: launchtemplate gRevelationDanceYellowDispersalTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xF 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET end @@ -11606,7 +11606,7 @@ Move_TROP_KICK:: loadspritegfx ANIM_TAG_HANDS_AND_FEET @kick loadspritegfx ANIM_TAG_LEAF @leaves loadspritegfx ANIM_TAG_FLOWER @flowers - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER launchtemplate gTropKickGreenFootTemplate 0x2 0x8 0xfff0 0x8 0x0 0x0 0xa 0x1 0x1 0x1 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 playsewithpan SE_W233B, SOUND_PAN_TARGET @@ -11620,7 +11620,7 @@ Move_TROP_KICK:: launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa 0xff20 0xffe0 0x28 launchtemplate gTropKickLeavesTemplate 0x81 0x5 0x0 0xa 0x70 0xff80 0x28 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -11635,7 +11635,7 @@ Move_INSTRUCT:: launchtask AnimTask_HardwarePaletteFade 0x2 0x5 0xf8 0x3 0x0 0xa 0x0 waitforvisualfinish launchtemplate gSpotlightSpriteTemplate 0x82 0x2 0x0 0xfff8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0x8 0x7DB9 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0x8 0x7DB9 delay 0x4 monbg ANIM_TARGET launchtask AnimTask_BlendMonInAndOut 0x5 0x5 0x0 0x37b 0xc 0x1 0x1 @@ -11648,7 +11648,7 @@ Move_INSTRUCT:: launchtask AnimTask_BlendMonInAndOut 0x5 0x5 0x0 0x37b 0xc 0x1 0x1 playsewithpan SE_W020, SOUND_PAN_TARGET delay 0x1D - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x8 0x0 0x7DB9 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x8 0x0 0x7DB9 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -11659,13 +11659,13 @@ Move_BEAK_BLAST:: loadspritegfx ANIM_TAG_SMALL_EMBER @Fire playsewithpan SE_W082, SOUND_PAN_ATTACKER delay 0x3 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x1f + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x2 0x2 0x0 0xb 0x1f launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 waitforvisualfinish end BeakBlastUnleash: loadspritegfx ANIM_TAG_IMPACT - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x0 0x9 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x0 0x9 0x1F waitforvisualfinish launchtemplate gBowMonSpriteTemplate 0x2 0x1 0x0 playsewithpan SE_W029, SOUND_PAN_ATTACKER @@ -11681,7 +11681,7 @@ BeakBlastUnleash: waitforvisualfinish launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_ATTACKER 0x0 0x6 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 PAL_ATK 0x2 0x9 0x0 0x1F + launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_ATK 0x2 0x9 0x0 0x1F waitforvisualfinish end @@ -11689,9 +11689,9 @@ BeakBlastUnleash: Move_CLANGING_SCALES:: loadspritegfx ANIM_TAG_METAL_SOUND_WAVES @metal sound loadspritegfx ANIM_TAG_POISON_BUBBLE @purple color - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_2A 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x2002 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x2002 createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_METAL_SOUND_WAVES, 0, 10, 10, 0x642D waitforvisualfinish launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x2 0x0 0x8 0x1 @@ -11703,9 +11703,9 @@ Move_CLANGING_SCALES:: launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_DEF_PARTNER 0x0 0x3 0xf 0x1 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER delay 0x0 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x2002 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x2002 waitforvisualfinish end ClangingScalesMetalSound: @@ -11798,7 +11798,7 @@ Move_AURORA_VEIL:: waitbgfadeout launchtask AnimTask_StartSlidingBg 0x5 0x4 0x400 0x0 0x0 0xffff waitbgfadein - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 8, 8 playsewithpan SE_W208, SOUND_PAN_ATTACKER launchtemplate gAuroraVeilRingTemplate 0x2 0x0 @@ -11812,7 +11812,7 @@ Move_AURORA_VEIL:: waitforvisualfinish call UnsetPsychicBg waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff end @@ -12018,7 +12018,7 @@ Move_FLEUR_CANNON:: loadspritegfx ANIM_TAG_PINK_HEART @pink color setalpha 12, 8 monbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x7440 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xF 0x7440 waitforvisualfinish panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 0x32 0x1 @@ -12052,7 +12052,7 @@ Move_FLEUR_CANNON:: delay 0x5 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x5 0xb 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x7440 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x7440 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -12164,7 +12164,7 @@ Move_SHADOW_BONE:: loadspritegfx ANIM_TAG_IMPACT fadetobg BG_NIGHTMARE waitbgfadein - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 playsewithpan SE_W155, SOUND_PAN_TARGET @@ -12189,7 +12189,7 @@ Move_SHADOW_BONE:: Move_ACCELEROCK:: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER setalpha 12, 8 launchtask AnimTask_TranslateMonEllipticalRespectSide 0x2 0x5 0x0 0x18 0x6 0x1 0x5 launchtask AnimTask_TraceMonBlended 0x2 0x4 0x0 0x4 0x7 0x3 @@ -12204,7 +12204,7 @@ Move_ACCELEROCK:: launchtemplate gRockFragmentSpriteTemplate 0x82 0x6 0xfffb 0x0 0xffec 0xffe8 0xe 0x2 launchtemplate gHorizontalLungeSpriteTemplate 0x2 0x5 0x1 0x3 0x0 0x5 0x1 waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end @@ -12225,7 +12225,7 @@ Move_LIQUIDATION:: waitforvisualfinish call RisingWaterHitEffect waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -12242,7 +12242,7 @@ Move_PRISMATIC_LASER:: loadspritegfx ANIM_TAG_NEEDLE @sting monbg ANIM_ATTACKER setblends 0x80E - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 playsewithpan SE_ELEBETA, SOUND_PAN_ATTACKER launchtemplate gPrismaticLaserChargeTemplate 0x2 0x1 0x0 call PrismaticLaserInwardSpikes @@ -12277,7 +12277,7 @@ Move_PRISMATIC_LASER:: call PrismaticLaserRain call PrismaticLaserRain waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x10 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x10 0x0 0x0 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff @@ -12498,7 +12498,7 @@ Move_SUNSTEEL_STRIKE:: loadspritegfx ANIM_TAG_SMALL_RED_EYE @red color loadspritegfx ANIM_TAG_IMPACT @hit playsewithpan SE_TAMA, SOUND_PAN_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_BG | PAL_ATK), 3, 0, 15, 0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, (ANIM_PAL_BG | ANIM_PAL_ATK), 3, 0, 15, 0 waitforvisualfinish call SunsteelStrikeBeam call SunsteelStrikeBeam @@ -12527,7 +12527,7 @@ Move_SUNSTEEL_STRIKE:: playsewithpan SE_W007, SOUND_PAN_TARGET waitforvisualfinish visible ANIM_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_BG | PAL_ATK), 3, 15, 0, 0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, (ANIM_PAL_BG | ANIM_PAL_ATK), 3, 15, 0, 0 waitforvisualfinish blendoff clearmonbg ANIM_TARGET @@ -12548,7 +12548,7 @@ Move_MOONGEIST_BEAM:: loadspritegfx ANIM_TAG_WATER_GUN @water gun colour loadspritegfx ANIM_TAG_ASSURANCE_HAND @purple colour setalpha 8, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRIC_ORBS, 0, 15, 15, 0x7FFF @White createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CIRCLE_OF_LIGHT, 0, 15, 15, 0x7FFC @Light Blue waitforvisualfinish @@ -12571,7 +12571,7 @@ Move_MOONGEIST_BEAM:: call MoongeistBeamOrbs call MoongeistBeamOrbs launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x4 0x0 0x32 0x1 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0x0 0xb 0x6739 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0x0 0xb 0x6739 call MoongeistBeamOrbs call MoongeistBeamOrbs call MoongeistBeamOrbs @@ -12601,7 +12601,7 @@ Move_MOONGEIST_BEAM:: call MoongeistBeamOrbs call MoongeistBeamOrbs call MoongeistBeamOrbs - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x2 0xb 0x0 0x6739 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x2 0xb 0x0 0x6739 delay 0x1A stopsound launchtask AnimTask_MoonlightEndFade 0x2 0x0 @@ -12625,8 +12625,8 @@ MoongeistBeamOrbs: Move_TEARFUL_LOOK:: loadspritegfx ANIM_TAG_SMALL_BUBBLES @tears loadspritegfx ANIM_TAG_OPENING_EYE @eye - monbg SIDE_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x5 0x7DE0 + monbg ANIM_DEF_PARTNER + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x5 0x7DE0 waitforvisualfinish playsewithpan SE_W109, SOUND_PAN_TARGET launchtemplate gOpeningEyeSpriteTemplate 0x5 0x4 0x0 0x0 0x1 0x0 @@ -12643,9 +12643,9 @@ Move_TEARFUL_LOOK:: launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x2 launchtemplate gTearDropSpriteTemplate 0x2 0x2 0x1 0x3 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x5 0x0 0x7DE0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x5 0x0 0x7DE0 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end @@ -12788,12 +12788,12 @@ Move_MULTI_ATTACK:: loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy loadspritegfx ANIM_TAG_CUT @cut monbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_W082, SOUND_PAN_ATTACKER call MultiAttackBuff delay 0x8 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x2 0x2 0x0 0xb 0x7fff + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x2 0x2 0x0 0xb 0x7fff launchtask AnimTask_ShakeMon2 0x2 0x5 0x0 0x1 0x0 0x20 0x1 call MultiAttackBuff delay 0x8 @@ -12805,7 +12805,7 @@ Move_MULTI_ATTACK:: launchtemplate gCuttingSliceSpriteTemplate 0x2 0x3 0x28 0xffd0 0x0 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET end @@ -12830,7 +12830,7 @@ Move_MIND_BLOWN:: loadspritegfx ANIM_TAG_IMPACT @hit monbg ANIM_TARGET setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xC 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xC 0x0 waitforvisualfinish playsewithpan SE_RU_HYUU, SOUND_PAN_TARGET launchtemplate gMindBlownHeadTemplate 0x82, 0x3, 0x0 0x0 0x25 @@ -12853,7 +12853,7 @@ Move_MIND_BLOWN:: call MindBlownBlueOrbs delay 0x1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish blendoff clearmonbg ANIM_TARGET @@ -12889,7 +12889,7 @@ Move_PLASMA_FISTS:: loadspritegfx ANIM_TAG_LIGHTNING @thunder punch monbg ANIM_ATTACKER setalpha 12, 8 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x10 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x10 0x0 waitforvisualfinish launchtemplate gPlasmaFistsChargeTemplate 0x2 0x1 0x0 launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x3 0x5c 0x1 @@ -12925,14 +12925,14 @@ Move_PLASMA_FISTS:: waitforvisualfinish call PlasmaFistsImpact waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xC 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xC 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff end PlasmaFistSpark1: playsewithpan SE_W268, SOUND_PAN_ATTACKER - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_ATK 0x0 0x2 0x0 0xb 0x5bff + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_ATK 0x0 0x2 0x0 0xb 0x5bff launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x20 0x18 0xbe 0xc 0x0 0x1 0x0 delay 0x0 launchtemplate gSparkElectricitySpriteTemplate 0x0 0x7 0x50 0x18 0x16 0xc 0x0 0x1 0x0 @@ -13006,7 +13006,7 @@ Move_PHOTON_GEYSER:: delay 0xA call PhotonGeyserSparks2 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0xF 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0xF 0x0 clearmonbg ANIM_ATTACKER playsewithpan SE_W086, SOUND_PAN_ATTACKER unloadspritegfx ANIM_TAG_ORBS @recover @@ -13034,13 +13034,13 @@ Move_PHOTON_GEYSER:: unloadspritegfx ANIM_TAG_AIR_WAVE_2 @white/gray color @Shoot beam to the sky loadspritegfx ANIM_TAG_STRAIGHT_BEAM - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x6 0x0 0x10 0x43FF @Light yellow + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x6 0x0 0x10 0x43FF @Light yellow launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x4 0x0 0x60 0x1 panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 call PhotonGeyserBeam waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_DEF 0x1 0x10 0x0 0x43FF @Light yellow - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xF 0x0 0x0 + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_DEF 0x1 0x10 0x0 0x43FF @Light yellow + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xF 0x0 0x0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -13083,7 +13083,7 @@ Move_DOUBLE_IRON_BASH:: loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 0x1c, 0x2 launchtask AnimTask_MetallicShine 0x5 0x3 0x0 0x0 0x0 waitforvisualfinish - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 0x14, 0x2 @@ -13103,7 +13103,7 @@ Move_DOUBLE_IRON_BASH:: waitforvisualfinish delay 0x3 launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x7 - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -13115,7 +13115,7 @@ Move_DYNAMAX_CANNON:: Move_SNIPE_SHOT:: loadspritegfx ANIM_TAG_IMPACT_2 loadspritegfx ANIM_TAG_LEER - launchtask AnimTask_BlendBattleAnimPal 10 5 PAL_BG 0 0 16, 0 @;Black + launchtask AnimTask_BlendBattleAnimPal 10 5 ANIM_PAL_BG 0 0 16, 0 @;Black waitforvisualfinish launchtemplate gLeerSpriteTemplate 0x82, 2 0x18 -12 playsewithpan SE_W197, SOUND_PAN_ATTACKER @@ -13126,7 +13126,7 @@ Move_SNIPE_SHOT:: waitforvisualfinish launchtask AnimTask_ShakeMon2 2 5 1 4 0 8, 1 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 10 5 PAL_BG 0 16, 0 0 @;Black + launchtask AnimTask_BlendBattleAnimPal 10 5 ANIM_PAL_BG 0 16, 0 0 @;Black waitforvisualfinish end @@ -13136,7 +13136,7 @@ Move_JAW_LOCK:: loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SHARP_TEETH, 0, 10, 10, 0x0B1D @Light orange monbg ANIM_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x0 0x7 0x0 @Black + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x0 0x7 0x0 @Black waitforvisualfinish playsewithpan SE_W044, SOUND_PAN_TARGET launchtemplate gJawLockTeethTemplate 0x2 0x7 0xffe0 0xffe0 0x1 0x333 0x333 0xa 15 @@ -13145,7 +13145,7 @@ Move_JAW_LOCK:: launchtemplate gBasicHitSplatSpriteTemplate 0x2 0x4 0xfff8 0x0 0x1 0x1 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x0 0x7 0xA 0x2 waitforvisualfinish - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x0 @;Black + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x7 0x0 0x0 @;Black waitforvisualfinish clearmonbg ANIM_TARGET delay 0x1 @@ -13212,7 +13212,7 @@ Move_TAR_SHOT:: playsewithpan SE_W145C, SOUND_PAN_ATTACKER delay 0xf launchtask AnimTask_ShakeMon2 0x5 0x5 ANIM_TARGET 0x2 0x0 0xa 0x1 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0x10 0x0 @;Black + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0x10 0x0 @;Black launchtemplate gAppleAcidDripTemplate 0x82, 0x5 0xffe6 0xffe8 0x0 0xf 0x37 playsewithpan SE_W145, SOUND_PAN_TARGET delay 0xa @@ -13285,7 +13285,7 @@ Move_OCTOLOCK:: delay 0x8 launchtask AnimTask_ShakeMon2 0x2 0x5 0x1 0x3 0x0 0x6 0x1 delay 0x14 - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0x8 0x1f + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0x8 0x1f playsewithpan SE_W020, SOUND_PAN_TARGET setarg 0x7 0xffff waitforvisualfinish @@ -13418,8 +13418,8 @@ Move_CLANGOROUS_SOUL:: waitforvisualfinish loadspritegfx ANIM_TAG_VERTICAL_HEX @red loadspritegfx ANIM_TAG_HORSESHOE_SIDE_FIST @fist - createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0xfff0, 0, 0, 0, 10, ANIM_ATTACKER, RIGHT_FIST, 1 - createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0x10, 0, 0, 0, 10, ANIM_ATTACKER, LEFT_FIST, 1 + createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0xfff0, 0, 0, 0, 10, ANIM_ATTACKER, ANIM_RIGHT_FIST, 1 + createsprite gClangorousSoulRedFistTemplate, ANIM_ATTACKER, 2, 0x10, 0, 0, 0, 10, ANIM_ATTACKER, ANIM_LEFT_FIST, 1 playsewithpan SE_W233B, SOUND_PAN_TARGET waitforvisualfinish loadspritegfx ANIM_TAG_THIN_RING @ring @@ -13539,7 +13539,7 @@ Move_PYRO_BALL:: playsewithpan SE_DANSA, SOUND_PAN_ATTACKER @;Hop delay 0x19 playsewithpan SE_W172, SOUND_PAN_TARGET - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x3 0x0 0x7 0x043D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x3 0x0 0x7 0x043D launchtemplate gPyroBallBurningRockTemplate, 2, 0x3, 0, 0, 0 delay 0x19 playsewithpan SE_W172, SOUND_PAN_TARGET @@ -13550,11 +13550,11 @@ Move_PYRO_BALL:: playsewithpan SE_W172B, SOUND_PAN_TARGET launchtemplate gPyroBallEmberBallTemplate, 2, 0x6, 0, 10, 0, 5, 20, -20 waitforvisualfinish - launchtask AnimTask_BlendColorCycle 0x2 0x6 PAL_DEF 0x2 0x2 0x0 0xc 0x1f + launchtask AnimTask_BlendColorCycle 0x2 0x6 ANIM_PAL_DEF 0x2 0x2 0x0 0xc 0x1f launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x3 0xf 0x1 call FireSpreadEffect delay 0x20 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0x7 0x0 0x043D + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x7 0x0 0x043D waitforvisualfinish end @@ -13575,7 +13575,7 @@ Move_AURA_WHEEL:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SPARK_2, 0x0, 0xC, 0xC, 0x76E1 @Blue Electricity createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0x0, 0xA, 0xA, 0x303B @Pinkish-Red setalpha 12, 8 - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_2A 0x1 launchtemplate gAuraWheelBlueElectricityTemplate 3, 0x4 0x0 0x0 0x38 0x0 playsewithpan SE_W085B, SOUND_PAN_ATTACKER @@ -13611,7 +13611,7 @@ Move_AURA_WHEEL:: delay 0x7 launchtemplate gSlideMonToOriginalPosSpriteTemplate 2, 0x3 0x0 0x0 0x9 waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER blendoff end @@ -13784,7 +13784,7 @@ Move_STRANGE_STEAM:: loadspritegfx ANIM_TAG_FINGER loadspritegfx ANIM_TAG_WATER_GUN @blue colour createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FINGER, 0, 10, 10, 0x4798 @Green - monbg SIDE_TARGET + monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 0x4, 0xA call StrangeSteamCloud @@ -13800,7 +13800,7 @@ Move_STRANGE_STEAM:: call StrangeSteamCloud call StrangeSteamCloud waitforvisualfinish - clearmonbg SIDE_TARGET + clearmonbg ANIM_DEF_PARTNER end StrangeSteamCloud: launchtemplate gStrangeSteamPinkCloudTemplate 0x82 0x5 0xf 0xf 0x14 0x0 0x0 @@ -13815,7 +13815,7 @@ StrangeSteamCloud: Move_LIFE_DEW:: loadspritegfx ANIM_TAG_WATER_DROPLET loadspritegfx ANIM_TAG_BLUE_STAR - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER launchtemplate gLifeDewDropletTemplate, 2, 0x3, 0, 0, ANIM_ATTACKER launchtemplate gLifeDewDropletTemplate, 2, 0x3, 0, 0, ANIM_ATK_PARTNER delay 0x15 @@ -13835,7 +13835,7 @@ Move_LIFE_DEW:: launchtemplate gLifeDewSpecialOrbsTemplate, 2, 0x4, 10, -5, ANIM_ATK_PARTNER, FALSE delay 0x7 waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end @@ -13849,7 +13849,7 @@ Move_OBSTRUCT:: call RoarEffect waitforvisualfinish delay 0x10 - monbg SIDE_ATTACKER + monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 0x10 launchtemplate gProtectSpriteTemplate, 2, 0x3 0x18 0x0 0x5a @;Protect @@ -13857,7 +13857,7 @@ Move_OBSTRUCT:: launchtemplate gObstructCrossTemplate, 2, 0x4 0x0 0x0 0x1 0x24 playsewithpan SE_W043, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg SIDE_ATTACKER + clearmonbg ANIM_ATK_PARTNER end @@ -13870,7 +13870,7 @@ Move_METEOR_ASSAULT:: loadspritegfx ANIM_TAG_METEOR loadspritegfx ANIM_TAG_EXPLOSION createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ELECTRIC_ORBS, 0, 12, 12, 0x0B1D @Light orange - createvisualtask AnimTask_BlendBattleAnimPal, 10, PAL_ATK, 1, 0, 9, 0x0B1D @Light orange + createvisualtask AnimTask_BlendBattleAnimPal, 10, ANIM_PAL_ATK, 1, 0, 9, 0x0B1D @Light orange launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x30 0x0 0x4 playsewithpan SE_W268, SOUND_PAN_ATTACKER waitforvisualfinish @@ -13878,13 +13878,13 @@ Move_METEOR_ASSAULT:: launchtemplate gGrowingSuperpowerTemplate, 0x83, 0x1 0x0 playsewithpan SE_W207, SOUND_PAN_ATTACKER delay 0xF - createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_ATK | PAL_BG), 1, 0x10, 0x10, 0x7FFF @Screen flash white + createvisualtask AnimTask_BlendBattleAnimPal, 10, (ANIM_PAL_ATK | ANIM_PAL_BG), 1, 0x10, 0x10, 0x7FFF @Screen flash white launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0 0x5 0x20 0x1 call BasicExplosion call BasicExplosion waitforvisualfinish visible ANIM_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPal, 10, (PAL_ATK | PAL_BG), 1, 0x10, 0, 0x7FFF @Screen revert from white + createvisualtask AnimTask_BlendBattleAnimPal, 10, (ANIM_PAL_ATK | ANIM_PAL_BG), 1, 0x10, 0, 0x7FFF @Screen revert from white waitforvisualfinish end BasicExplosion: @@ -13913,7 +13913,7 @@ Move_STEEL_BEAM:: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_SPIKES - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x0 0x0 0x10 0x6B59 @To gray + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x6B59 @To gray launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x14 0x0 0x2 playsewithpan SE_W268, SOUND_PAN_ATTACKER delay 0x14 @@ -13940,7 +13940,7 @@ Move_STEEL_BEAM:: call SteelBeamShards waitforvisualfinish launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x6 - launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 PAL_BG 0x1 0xE 0x0 0x6B59 @From gray + launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xE 0x0 0x6B59 @From gray waitforvisualfinish end SteelBeamShards: @@ -19813,7 +19813,7 @@ Move_CRABHAMMER: end Move_SURF: - createvisualtask AnimTask_CreateSurfWave, 2, SURF_PALETTE_SURF + createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_SURF delay 24 panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish @@ -22110,7 +22110,7 @@ ArmThrustLeft: Move_MUDDY_WATER: panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, SURF_PALETTE_MUDDY_WATER + createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_MUDDY_WATER waitforvisualfinish end diff --git a/include/battle_anim.h b/include/battle_anim.h index ce85a7163f..b0a54c62b2 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -488,10 +488,6 @@ void AnimDragonDanceOrb(struct Sprite *sprite); void AnimOverheatFlame(struct Sprite *sprite); // battle_anim_new.c -bool8 IsMoveAnimDarkVoid(void); -bool8 IsMoveAnimFlashCannonOrSteelBeam(void); -bool8 IsMoveAnimCoreEnforcer(void); -bool8 IsMoveAnimAnchorShot(void); void CoreEnforcerLoadBeamTarget(struct Sprite* sprite); #endif // GUARD_BATTLE_ANIM_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 1a4c385047..c320eeb670 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -398,10 +398,6 @@ #define ANIM_ATK_PARTNER 2 #define ANIM_DEF_PARTNER 3 -//sides -#define SIDE_ATTACKER 2 -#define SIDE_TARGET 3 - // stereo panning constants [0-255] // // 0 @@ -597,28 +593,28 @@ #define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 // mon pal blend -#define PAL_BG 0x1 -#define PAL_ATK 0x2 -#define PAL_DEF 0x4 -#define PAL_ATK_PARTNER 0x8 -#define PAL_DEF_PARTNER 0x10 -#define PAL_ALL 0x1f -#define PAL_BG_4 0x20 -#define PAL_BG_5 0x40 -#define PAL_ALL_BANKS 0x780 -#define PAL_PLAYER1 0x80 -#define PAL_PLAYER2 0x100 -#define PAL_OPPONENT1 0x200 -#define PAL_OPPONENT2 0x400 +#define ANIM_PAL_BG 0x1 +#define ANIM_PAL_ATK 0x2 +#define ANIM_PAL_DEF 0x4 +#define ANIM_PAL_ATK_PARTNER 0x8 +#define ANIM_PAL_DEF_PARTNER 0x10 +#define ANIM_PAL_ALL 0x1f +#define ANIM_PAL_BG_4 0x20 +#define ANIM_PAL_BG_5 0x40 +#define ANIM_PAL_ALL_BATTLERS 0x780 +#define ANIM_PAL_PLAYER1 0x80 +#define ANIM_PAL_PLAYER2 0x100 +#define ANIM_PAL_OPPONENT1 0x200 +#define ANIM_PAL_OPPONENT2 0x400 // horseshoe/fist frames -#define RIGHT_FIST 0 -#define LEFT_FIST 2 +#define ANIM_RIGHT_FIST 0 +#define ANIM_LEFT_FIST 2 // surf wave palettes -#define SURF_PALETTE_SURF 0 -#define SURF_PALETTE_MUDDY_WATER 1 -#define SURF_PALETTE_SLUDGE_WAVE 2 +#define ANIM_SURF_PAL_SURF 0 +#define ANIM_SURF_PAL_MUDDY_WATER 1 +#define ANIM_SURF_PAL_SLUDGE_WAVE 2 #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index d3b2642314..23690a5295 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -15,6 +15,7 @@ #include "util.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "constants/moves.h" EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; @@ -3034,7 +3035,7 @@ static void AnimSolarbeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsMoveAnimCoreEnforcer()) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gAnimMoveIndex == MOVE_CORE_ENFORCER) { CoreEnforcerLoadBeamTarget(sprite); } diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index c0f489fd8f..18451068c2 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -4,6 +4,7 @@ #include "trig.h" #include "constants/songs.h" #include "sound.h" +#include "constants/moves.h" static void AnimLightning(struct Sprite *); static void AnimLightning_Step(struct Sprite *); @@ -843,7 +844,7 @@ void AnimThunderWave(struct Sprite *sprite) sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - if (IsMoveAnimAnchorShot()) + if (gAnimMoveIndex == MOVE_ANCHOR_SHOT) spriteId = CreateSprite(&gAnchorShotChainTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); else spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); @@ -903,7 +904,7 @@ static void AnimTask_ElectricChargingParticles_Step(u8 taskId) { u8 spriteId; task->data[12] = 0; - if (IsMoveAnimFlashCannonOrSteelBeam()) + if (gAnimMoveIndex == MOVE_FLASH_CANNON || gAnimMoveIndex == MOVE_STEEL_BEAM) spriteId = CreateSprite(&gLightOfRuinGrayChargeTemplate, task->data[14], task->data[15], 2); else spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index cfae013275..19d2fca348 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -9,6 +9,7 @@ #include "sound.h" #include "trig.h" #include "util.h" +#include "constants/moves.h" static void AnimConfuseRayBallBounce(struct Sprite *); static void AnimConfuseRayBallBounce_Step1(struct Sprite *); @@ -874,7 +875,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) && battler != (gBattleAnimAttacker ^ 2) && IsBattlerSpriteVisible(battler)) { - if (IsMoveAnimDarkVoid()) + if (gAnimMoveIndex == MOVE_DARK_VOID) spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void else spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond @@ -900,7 +901,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) } else { - if (IsMoveAnimDarkVoid()) + if (gAnimMoveIndex == MOVE_DARK_VOID) spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void else spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index da741a94c8..1129af88b9 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -15,9 +15,6 @@ #include "battle_controllers.h" #include "constants/moves.h" -// defines -#define PARTNER(battler) (battler ^ BIT_FLANK) - //// function declarations static void SpriteCB_SpriteToCentreOfSide(struct Sprite* sprite); static void SpriteCB_SpriteOnMonForDuration(struct Sprite *sprite); @@ -4055,10 +4052,10 @@ static u8 LoadBattleAnimTarget(u8 arg) battler = gBattleAnimTarget; break; case 2: - battler = PARTNER(gBattleAnimAttacker); + battler = BATTLE_PARTNER(gBattleAnimAttacker); break; case 3: - battler = PARTNER(gBattleAnimTarget); + battler = BATTLE_PARTNER(gBattleAnimTarget); break; } } @@ -4073,12 +4070,12 @@ static u8 LoadBattleAnimTarget(u8 arg) return battler; } -static u8 GetProperCentredCoord(u8 bank, u8 coordType) +static u8 GetProperCentredCoord(u8 battler, u8 coordType) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - return (GetBattlerSpriteCoord2(bank, coordType) + GetBattlerSpriteCoord2(PARTNER(bank), coordType)) / 2; + return (GetBattlerSpriteCoord2(battler, coordType) + GetBattlerSpriteCoord2(BATTLE_PARTNER(battler), coordType)) / 2; - return GetBattlerSpriteCoord(bank, coordType); + return GetBattlerSpriteCoord(battler, coordType); } static void InitSpritePosToGivenTarget(struct Sprite* sprite, u8 target) @@ -4095,9 +4092,9 @@ static void InitSpritePosToAnimTargetsCentre(struct Sprite *sprite, bool8 respec if (!respectMonPicOffsets) { sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimTarget), BATTLER_COORD_X)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X)) / 2; sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y)) / 2; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -4109,16 +4106,16 @@ static void InitSpritePosToAnimAttackersCentre(struct Sprite *sprite, bool8 resp if (!respectMonPicOffsets) { sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_X)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X)) / 2; sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y)) / 2; } else { sprite->pos1.x = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X_2)) / 2; sprite->pos1.y = (GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - + GetBattlerSpriteCoord2(PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET)) / 2; + + GetBattlerSpriteCoord2(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_Y_PIC_OFFSET)) / 2; } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -4275,11 +4272,11 @@ static void SpriteCB_CoreEnforcerBeam(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; + + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; sprite->data[4] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; + + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -4324,7 +4321,7 @@ static void SpriteCB_TranslateAnimSpriteToTargetMonLocationDoubles(struct Sprite //arg 0: initial x pixel offset //arg 1: initial y pixel offset //arg 2: speed -//arg 3: anim bank +//arg 3: anim battler static void SpriteCB_FallingObject(struct Sprite *sprite) { u8 target = LoadBattleAnimTarget(3); @@ -4740,7 +4737,7 @@ static void SpriteCB_AcidDripSingleTarget(struct Sprite *sprite) //Causes an object to fall from the sky. //arg 0: initial x pixel offset //arg 1: initial y pixel offset -//arg 2: anim bank +//arg 2: anim battler static void SpriteCB_WaterDroplet(struct Sprite *sprite) { u8 target = LoadBattleAnimTarget(2); @@ -4816,7 +4813,7 @@ static void SpriteCB_SurroundingRing(struct Sprite *sprite) //Imitates launching a beam of light towards the sky //arg 0: initial x pixel offset //arg 1: initial y pixel offset -//arg 2: bank +//arg 2: battler //arg 3: duration //arg 4: Anim num //arg 5: affine anim start delay @@ -4942,55 +4939,15 @@ void AnimTask_SquishTarget(u8 taskId) task->func = AnimTask_WaitAffineAnim; } -void AnimTask_IsTargetPartner(u8 taskId) -{ - if (gBattleAnimTarget == PARTNER(gBattleAnimAttacker)) - gBattleAnimArgs[0] = 1; - else - gBattleAnimArgs[0] = 0; - - DestroyAnimVisualTask(taskId); -} - -void AnimTask_AllBanksInvisible(u8 taskId) -{ - int i; - u8 spriteId; - - for (i = 0; i < gBattlersCount; ++i) - { - spriteId = gBattlerSpriteIds[i]; - if (spriteId != 0xFF) - gSprites[spriteId].invisible = TRUE; - } - - DestroyAnimVisualTask(taskId); -} - -void AnimTask_AllBanksVisible(u8 taskId) -{ - int i; - u8 spriteId; - - for (i = 0; i < gBattlersCount; ++i) - { - spriteId = gBattlerSpriteIds[i]; - if (spriteId != 0xFF) - gSprites[spriteId].invisible = FALSE; - } - - DestroyAnimVisualTask(taskId); -} - void CoreEnforcerLoadBeamTarget(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; sprite->data[2] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; + + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X_2)) / 2; sprite->data[3] = sprite->pos1.y; sprite->data[4] = (GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - + GetBattlerSpriteCoord(PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; + + GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y_PIC_OFFSET)) / 2; } void AnimTask_CreateBestowItem(u8 taskId) @@ -5035,24 +4992,3 @@ void AnimTask_TechnoBlast(u8 taskId) DestroyAnimVisualTask(taskId); } -// move checks -bool8 IsMoveAnimDarkVoid(void) -{ - return gAnimMoveIndex == MOVE_DARK_VOID; -} - -bool8 IsMoveAnimFlashCannonOrSteelBeam(void) -{ - return gAnimMoveIndex == MOVE_FLASH_CANNON || gAnimMoveIndex == MOVE_STEEL_BEAM; -} - -bool8 IsMoveAnimCoreEnforcer(void) -{ - return gAnimMoveIndex == MOVE_CORE_ENFORCER; -} - -bool8 IsMoveAnimAnchorShot(void) -{ - return gAnimMoveIndex == MOVE_ANCHOR_SHOT; -} - diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 0e9bfe214f..621b67b546 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -1077,14 +1077,16 @@ void AnimTask_CreateSurfWave(u8 taskId) AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); switch (gBattleAnimArgs[0]) { - case SURF_PALETTE_SURF: + case ANIM_SURF_PAL_SURF: default: LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); break; - case SURF_PALETTE_MUDDY_WATER: + case ANIM_SURF_PAL_MUDDY_WATER: LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); - case SURF_PALETTE_SLUDGE_WAVE: + break; + case ANIM_SURF_PAL_SLUDGE_WAVE: LoadCompressedPalette(gBattleAnimBgPalette_SludgeWave, animBg.paletteId * 16, 32); + break; } taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1);