Document battle_anim_dark.c

This commit is contained in:
Martin Griffin 2024-11-28 15:17:32 +00:00
parent 050a9415c7
commit 5d713ad9bb
3 changed files with 133 additions and 83 deletions

View File

@ -340,6 +340,22 @@
createsprite gTailGlowOrbSpriteTemplate, \anim_battler, \subpriority_offset, \relative_to createsprite gTailGlowOrbSpriteTemplate, \anim_battler, \subpriority_offset, \relative_to
.endm .endm
.macro create_sharp_teeth_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, animation:req, x_velocity:req, y_velocity:req, half_duration:req
createsprite gSharpTeethSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \animation, 256 * \x_velocity, 256 * \y_velocity, \half_duration
.endm
.macro create_clamp_jaw_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, animation:req, x_velocity:req, y_velocity:req, half_duration:req
createsprite gClampJawSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \animation, 256 * \x_velocity, 256 * \y_velocity, \half_duration
.endm
.macro create_tear_drop_sprite anim_battler:req, subpriority_offset:req, relative_to:req, type:req
createsprite gTearDropSpriteTemplate, \anim_battler, \subpriority_offset, \relative_to, \type
.endm
.macro create_claw_slash_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, animation:req
createsprite gClawSlashSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \animation
.endm
.macro create_confusion_duck_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, wave_offset:req, wave_period:req, duration:req .macro create_confusion_duck_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, wave_offset:req, wave_period:req, duration:req
createsprite gConfusionDuckSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \wave_offset, \wave_period, \duration createsprite gConfusionDuckSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \wave_offset, \wave_period, \duration
.endm .endm
@ -379,6 +395,30 @@
@ createvisualtask wrappers @ createvisualtask wrappers
@ The arguments are based on the CMD_ARGS of the task. @ The arguments are based on the CMD_ARGS of the task.
.macro metallic_shine priority=5, permanent:req, color
.ifb \color
createvisualtask AnimTask_MetallicShine, \priority, \permanent, FALSE, RGB_BLACK
.else
createvisualtask AnimTask_MetallicShine, \priority, \permanent, TRUE, \color
.endif
.endm
.macro set_grayscale_pal priority=5, battler:req
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, \priority, \battler, FALSE
.endm
.macro set_original_pal priority=5, battler:req
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, \priority, \battler, TRUE
.endm
.macro attacker_fade_to_invisible priority=2, step_delay:req
createvisualtask AnimTask_AttackerFadeToInvisible, \priority, \step_delay
.endm
.macro attacker_fade_from_invisible priority=2, step_delay:req
createvisualtask AnimTask_AttackerFadeFromInvisible, \priority, \step_delay
.endm
.macro blend_color_cycle priority=2, selector:req, delay:req, num_blends:req, initial_blend_y:req, target_blend_y:req, color:req .macro blend_color_cycle priority=2, selector:req, delay:req, num_blends:req, initial_blend_y:req, target_blend_y:req, color:req
createvisualtask AnimTask_BlendColorCycle, \priority, \selector, \delay, \num_blends, \initial_blend_y, \target_blend_y, \color createvisualtask AnimTask_BlendColorCycle, \priority, \selector, \delay, \num_blends, \initial_blend_y, \target_blend_y, \color
.endm .endm

View File

@ -1657,12 +1657,12 @@ Explosion1:
Move_DEFENSE_CURL: Move_DEFENSE_CURL:
loadspritegfx ANIM_TAG_ECLIPSING_ORB loadspritegfx ANIM_TAG_ECLIPSING_ORB
loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, FALSE set_grayscale_pal battler=ANIM_ATTACKER
createvisualtask AnimTask_DefenseCurlDeformMon, 5 createvisualtask AnimTask_DefenseCurlDeformMon, 5
waitforvisualfinish waitforvisualfinish
createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE set_original_pal battler=ANIM_ATTACKER
waitforvisualfinish waitforvisualfinish
end end
@ -2965,7 +2965,7 @@ SkyAttackUnleash:
monbg ANIM_ATTACKER monbg ANIM_ATTACKER
createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE
delay 4 delay 4
createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 attacker_fade_to_invisible priority=5, step_delay=0
waitforvisualfinish waitforvisualfinish
createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER
createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2
@ -2973,7 +2973,7 @@ SkyAttackUnleash:
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1
createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET
delay 20 delay 20
createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 attacker_fade_from_invisible priority=5, step_delay=1
delay 2 delay 2
createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 15, 0, RGB_WHITE createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 15, 0, RGB_WHITE
waitforvisualfinish waitforvisualfinish
@ -3875,13 +3875,13 @@ Move_CAMOUFLAGE:
setalpha 16, 0 setalpha 16, 0
createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 3, 0, 14 createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 3, 0, 14
delay 16 delay 16
createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 attacker_fade_to_invisible step_delay=4
playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER
waitforvisualfinish waitforvisualfinish
delay 8 delay 8
createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 0, 0, 0 createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 0, 0, 0
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 attacker_fade_from_invisible step_delay=1
waitforvisualfinish waitforvisualfinish
blendoff blendoff
clearmonbg ANIM_ATK_PARTNER clearmonbg ANIM_ATK_PARTNER
@ -4116,12 +4116,12 @@ Move_CRUSH_CLAW:
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4
delay 4 delay 4
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=-10, animation=0
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=10, animation=0
playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET
delay 12 delay 12
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=-10, animation=1
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=10, animation=1
playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
blendoff blendoff
@ -4176,17 +4176,17 @@ Move_FAKE_TEARS:
createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1 createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1
loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4 loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4
delay 8 delay 8
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=0
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=1
delay 8 delay 8
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 2 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=2
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 3 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=3
delay 8 delay 8
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=0
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=1
delay 8 delay 8
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 2 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=2
createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 3 create_tear_drop_sprite ANIM_ATTACKER, 2, relative_to=ANIM_ATTACKER, type=3
waitforvisualfinish waitforvisualfinish
end end
@ -4360,7 +4360,7 @@ Move_AERIAL_ACE:
Move_IRON_DEFENSE: Move_IRON_DEFENSE:
loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK metallic_shine permanent=FALSE
complex_palette_blend unused_anim_battler=ANIM_ATTACKER, unused_subpriority_offset=2, selector=F_PAL_BG, delay=8, num_blends=2, color1=RGB_WHITEALPHA, blend_y1=14, color2=RGB_WHITEALPHA, blend_y2=0 complex_palette_blend unused_anim_battler=ANIM_ATTACKER, unused_subpriority_offset=2, selector=F_PAL_BG, delay=8, num_blends=2, color1=RGB_WHITEALPHA, blend_y1=14, color2=RGB_WHITEALPHA, blend_y2=0
waitforvisualfinish waitforvisualfinish
end end
@ -4572,7 +4572,7 @@ Move_SHOCK_WAVE:
Move_HARDEN: Move_HARDEN:
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK metallic_shine permanent=FALSE
waitforvisualfinish waitforvisualfinish
end end
@ -5155,7 +5155,7 @@ Move_FAINT_ATTACK:
delay 0 delay 0
playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3
createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 attacker_fade_to_invisible step_delay=1
waitforvisualfinish waitforvisualfinish
clearmonbg ANIM_ATTACKER clearmonbg ANIM_ATTACKER
invisible ANIM_ATTACKER invisible ANIM_ATTACKER
@ -5175,7 +5175,7 @@ Move_FAINT_ATTACK:
delay 32 delay 32
createvisualtask AnimTask_InitAttackerFadeFromInvisible, 2 createvisualtask AnimTask_InitAttackerFadeFromInvisible, 2
monbg ANIM_ATTACKER monbg ANIM_ATTACKER
createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 attacker_fade_from_invisible step_delay=1
waitforvisualfinish waitforvisualfinish
clearmonbg ANIM_ATTACKER clearmonbg ANIM_ATTACKER
delay 1 delay 1
@ -5286,8 +5286,8 @@ Move_BITE:
monbg ANIM_TARGET monbg ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
playsewithpan SE_M_BITE, SOUND_PAN_TARGET playsewithpan SE_M_BITE, SOUND_PAN_TARGET
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0, y=-32, animation=0, x_velocity=0, y_velocity=32/10, half_duration=10
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0, y=32, animation=4, x_velocity=0, y_velocity=-32/10, half_duration=10
delay 10 delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 7, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 7, 1
@ -5305,15 +5305,15 @@ Move_CRUNCH:
waitbgfadein waitbgfadein
setalpha 12, 8 setalpha 12, 8
playsewithpan SE_M_BITE, SOUND_PAN_TARGET playsewithpan SE_M_BITE, SOUND_PAN_TARGET
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=-32, animation=1, x_velocity=32/10, y_velocity=32/10, half_duration=10
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=32, animation=5, x_velocity=-32/10, y_velocity=-32/10, half_duration=10
delay 10 delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2
waitforvisualfinish waitforvisualfinish
playsewithpan SE_M_BITE, SOUND_PAN_TARGET playsewithpan SE_M_BITE, SOUND_PAN_TARGET
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=-32, animation=7, x_velocity=-32/10, y_velocity=32/10, half_duration=10
createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=32, animation=3, x_velocity=32/10, y_velocity=-32/10, half_duration=10
delay 10 delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2
@ -5331,8 +5331,8 @@ Move_CLAMP:
monbg ANIM_TARGET monbg ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET
createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 create_clamp_jaw_sprite ANIM_ATTACKER, 2, x=-32, y=0, animation=2, x_velocity=32/10, y_velocity=0, half_duration=10
createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 create_clamp_jaw_sprite ANIM_ATTACKER, 2, x=32, y=0, animation=6, x_velocity=-32/10, y_velocity=0, half_duration=10
delay 10 delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1
@ -7219,7 +7219,7 @@ Move_STEEL_WING:
loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_GUST
loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_IMPACT
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK metallic_shine permanent=FALSE
waitforvisualfinish waitforvisualfinish
monbg ANIM_DEF_PARTNER monbg ANIM_DEF_PARTNER
splitbgprio ANIM_TARGET splitbgprio ANIM_TARGET
@ -7245,7 +7245,7 @@ Move_STEEL_WING:
Move_IRON_TAIL: Move_IRON_TAIL:
loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_IMPACT
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 1, 0, RGB_BLACK metallic_shine permanent=TRUE
waitforvisualfinish waitforvisualfinish
monbg ANIM_TARGET monbg ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
@ -7255,7 +7255,7 @@ Move_IRON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE set_original_pal battler=ANIM_ATTACKER
clearmonbg ANIM_TARGET clearmonbg ANIM_TARGET
blendoff blendoff
waitforvisualfinish waitforvisualfinish
@ -7265,7 +7265,7 @@ Move_POISON_TAIL:
loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_IMPACT
loadspritegfx ANIM_TAG_POISON_BUBBLE loadspritegfx ANIM_TAG_POISON_BUBBLE
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 1, 1, RGB(24, 6, 23) metallic_shine permanent=TRUE, color=RGB(24, 6, 23)
waitforvisualfinish waitforvisualfinish
monbg ANIM_TARGET monbg ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
@ -7275,7 +7275,7 @@ Move_POISON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE set_original_pal battler=ANIM_ATTACKER
clearmonbg ANIM_TARGET clearmonbg ANIM_TARGET
blendoff blendoff
call PoisonBubblesEffect call PoisonBubblesEffect
@ -7285,20 +7285,20 @@ Move_POISON_TAIL:
Move_METAL_CLAW: Move_METAL_CLAW:
loadspritegfx ANIM_TAG_CLAW_SLASH loadspritegfx ANIM_TAG_CLAW_SLASH
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK metallic_shine permanent=FALSE
waitforvisualfinish waitforvisualfinish
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4
delay 2 delay 2
playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=-10, animation=0
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=10, animation=0
shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET
delay 8 delay 8
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4
delay 2 delay 2
playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=-10, animation=1
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=10, animation=1
shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET
waitforvisualfinish waitforvisualfinish
end end
@ -7947,16 +7947,16 @@ Move_PERISH_SONG:
panse SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 panse SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
delay 80 delay 80
simple_palette_blend selector=F_PAL_BG, delay=3, initial_blend_y=0, target_blend_y=16, color=RGB_BLACK simple_palette_blend selector=F_PAL_BG, delay=3, initial_blend_y=0, target_blend_y=16, color=RGB_BLACK
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_LEFT, FALSE set_grayscale_pal battler=ANIM_PLAYER_LEFT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_RIGHT, FALSE set_grayscale_pal battler=ANIM_PLAYER_RIGHT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_LEFT, FALSE set_grayscale_pal battler=ANIM_OPPONENT_LEFT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_RIGHT, FALSE set_grayscale_pal battler=ANIM_OPPONENT_RIGHT
delay 100 delay 100
simple_palette_blend selector=F_PAL_BG, delay=3, initial_blend_y=16, target_blend_y=0, color=RGB_BLACK simple_palette_blend selector=F_PAL_BG, delay=3, initial_blend_y=16, target_blend_y=0, color=RGB_BLACK
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_LEFT, TRUE set_original_pal battler=ANIM_PLAYER_LEFT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_RIGHT, TRUE set_original_pal battler=ANIM_PLAYER_RIGHT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_LEFT, TRUE set_original_pal battler=ANIM_OPPONENT_LEFT
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_RIGHT, TRUE set_original_pal battler=ANIM_OPPONENT_RIGHT
waitforvisualfinish waitforvisualfinish
end end
@ -8635,8 +8635,8 @@ Move_DRAGON_CLAW:
createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER
delay 2 delay 2
createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=-10, animation=0
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 create_claw_slash_sprite ANIM_TARGET, 2, x=-10, y=10, animation=0
shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET
createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER
delay 2 delay 2
@ -8648,8 +8648,8 @@ Move_DRAGON_CLAW:
createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER
delay 2 delay 2
createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=-10, animation=1
createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 create_claw_slash_sprite ANIM_TARGET, 2, x=10, y=10, animation=1
shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET shake_mon_or_platform velocity=-4, shake_timer=1, shake_duration=10, type=SHAKE_MON_Y, battler_selector=SHAKE_MON_TARGET
createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER
delay 2 delay 2
@ -9575,7 +9575,7 @@ Move_DOOM_DESIRE:
createvisualtask GetIsDoomDesireHitTurn, 2 createvisualtask GetIsDoomDesireHitTurn, 2
delay 1 delay 1
monbg ANIM_ATK_PARTNER monbg ANIM_ATK_PARTNER
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE set_grayscale_pal battler=ANIM_TARGET
simple_palette_blend selector=F_PAL_BG, delay=1, initial_blend_y=0, target_blend_y=4, color=RGB_BLACK simple_palette_blend selector=F_PAL_BG, delay=1, initial_blend_y=0, target_blend_y=4, color=RGB_BLACK
waitforvisualfinish waitforvisualfinish
setalpha 8, 8 setalpha 8, 8
@ -9583,7 +9583,7 @@ Move_DOOM_DESIRE:
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1
waitforvisualfinish waitforvisualfinish
delay 20 delay 20
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE set_original_pal battler=ANIM_TARGET
simple_palette_blend selector=F_PAL_BG, delay=1, initial_blend_y=4, target_blend_y=0, color=RGB_BLACK simple_palette_blend selector=F_PAL_BG, delay=1, initial_blend_y=4, target_blend_y=0, color=RGB_BLACK
waitforvisualfinish waitforvisualfinish
clearmonbg ANIM_ATK_PARTNER clearmonbg ANIM_ATK_PARTNER
@ -10407,8 +10407,8 @@ Status_Clamp:
monbg ANIM_TARGET monbg ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET
createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 create_clamp_jaw_sprite ANIM_ATTACKER, 2, x=-32, y=0, animation=2, x_velocity=32/10, y_velocity=0, half_duration=10
createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 create_clamp_jaw_sprite ANIM_ATTACKER, 2, x=32, y=0, animation=6, x_velocity=-32/10, y_velocity=0, half_duration=10
delay 10 delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=0, y=0, relative_to=ANIM_TARGET, animation=2
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1
@ -10471,7 +10471,7 @@ General_SmokeballEscape:
createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30
delay 4 delay 4
playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET
createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 attacker_fade_to_invisible step_delay=2
createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30
delay 14 delay 14
playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET

View File

@ -1,5 +1,6 @@
#include "global.h" #include "global.h"
#include "battle_anim.h" #include "battle_anim.h"
#include "battle_anim_internal.h"
#include "contest.h" #include "contest.h"
#include "gpu_regs.h" #include "gpu_regs.h"
#include "graphics.h" #include "graphics.h"
@ -189,8 +190,10 @@ const struct SpriteTemplate gClawSlashSpriteTemplate =
void AnimTask_AttackerFadeToInvisible(u8 taskId) void AnimTask_AttackerFadeToInvisible(u8 taskId)
{ {
CMD_ARGS(stepDelay);
int battler; int battler;
gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[0] = cmd->stepDelay;
battler = gBattleAnimAttacker; battler = gBattleAnimAttacker;
gTasks[taskId].data[1] = 16; gTasks[taskId].data[1] = 16;
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
@ -227,7 +230,9 @@ static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId)
void AnimTask_AttackerFadeFromInvisible(u8 taskId) void AnimTask_AttackerFadeFromInvisible(u8 taskId)
{ {
gTasks[taskId].data[0] = gBattleAnimArgs[0]; CMD_ARGS(stepDelay);
gTasks[taskId].data[0] = cmd->stepDelay;
gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16); gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16);
gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step; gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step;
SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]); SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]);
@ -314,12 +319,14 @@ static void AnimUnusedBagSteal_Step(struct Sprite *sprite)
// Move sprite inward for Bite/Crunch and Clamp // Move sprite inward for Bite/Crunch and Clamp
static void AnimBite(struct Sprite *sprite) static void AnimBite(struct Sprite *sprite)
{ {
sprite->x += gBattleAnimArgs[0]; CMD_ARGS(x, y, animation, xVelocity, yVelocity, halfDuration);
sprite->y += gBattleAnimArgs[1];
StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->x += cmd->x;
sprite->data[0] = gBattleAnimArgs[3]; sprite->y += cmd->y;
sprite->data[1] = gBattleAnimArgs[4]; StartSpriteAffineAnim(sprite, cmd->animation);
sprite->data[2] = gBattleAnimArgs[5]; sprite->data[0] = cmd->xVelocity;
sprite->data[1] = cmd->yVelocity;
sprite->data[2] = cmd->halfDuration;
sprite->callback = AnimBite_Step1; sprite->callback = AnimBite_Step1;
} }
@ -346,10 +353,12 @@ static void AnimBite_Step2(struct Sprite *sprite)
// Launches a tear drop away from the battler. Used by Fake Tears // Launches a tear drop away from the battler. Used by Fake Tears
static void AnimTearDrop(struct Sprite *sprite) static void AnimTearDrop(struct Sprite *sprite)
{ {
CMD_ARGS(relativeTo, type);
u8 battler; u8 battler;
s8 xOffset; s8 xOffset;
if (gBattleAnimArgs[0] == ANIM_ATTACKER) if (cmd->relativeTo == ANIM_ATTACKER)
battler = gBattleAnimAttacker; battler = gBattleAnimAttacker;
else else
battler = gBattleAnimTarget; battler = gBattleAnimTarget;
@ -357,7 +366,7 @@ static void AnimTearDrop(struct Sprite *sprite)
xOffset = 20; xOffset = 20;
sprite->oam.tileNum += 4; sprite->oam.tileNum += 4;
switch (gBattleAnimArgs[1]) switch (cmd->type)
{ {
case 0: case 0:
sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 8; sprite->x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_RIGHT) - 8;
@ -798,21 +807,22 @@ void AnimTask_MementoHandleBg(u8 taskId)
// Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw // Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw
static void AnimClawSlash(struct Sprite *sprite) static void AnimClawSlash(struct Sprite *sprite)
{ {
sprite->x += gBattleAnimArgs[0]; CMD_ARGS(x, y, animation);
sprite->y += gBattleAnimArgs[1];
StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->x += cmd->x;
sprite->y += cmd->y;
StartSpriteAnim(sprite, cmd->animation);
sprite->callback = RunStoredCallbackWhenAnimEnds; sprite->callback = RunStoredCallbackWhenAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
// Makes the attacker metallic and shining. // Makes the attacker metallic and shining.
// Used by MOVE_HARDEN and MOVE_IRON_DEFENSE. // Used by MOVE_HARDEN and MOVE_IRON_DEFENSE.
// arg0: if true won't change battler's palette back
// arg1: if true, use custom color
// arg2: custom color
// Custom color argument is used in MOVE_POISON_TAIL to make the mon turn purplish/pinkish as if became cloaked in poison. // Custom color argument is used in MOVE_POISON_TAIL to make the mon turn purplish/pinkish as if became cloaked in poison.
void AnimTask_MetallicShine(u8 taskId) void AnimTask_MetallicShine(u8 taskId)
{ {
CMD_ARGS(permanent, useColor, color);
u16 species; u16 species;
u8 spriteId; u8 spriteId;
u8 newSpriteId; u8 newSpriteId;
@ -869,15 +879,15 @@ void AnimTask_MetallicShine(u8 taskId)
gBattle_BG1_Y = -gSprites[spriteId].y + 32; gBattle_BG1_Y = -gSprites[spriteId].y + 32;
paletteNum = 16 + gSprites[spriteId].oam.paletteNum; paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
if (gBattleAnimArgs[1] == 0) if (cmd->useColor == 0)
SetGrayscaleOrOriginalPalette(paletteNum, FALSE); SetGrayscaleOrOriginalPalette(paletteNum, FALSE);
else else
BlendPalette(BG_PLTT_ID(paletteNum), 16, 11, gBattleAnimArgs[2]); BlendPalette(BG_PLTT_ID(paletteNum), 16, 11, cmd->color);
gTasks[taskId].data[0] = newSpriteId; gTasks[taskId].data[0] = newSpriteId;
gTasks[taskId].data[1] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = cmd->permanent;
gTasks[taskId].data[2] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = cmd->useColor;
gTasks[taskId].data[3] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = cmd->color;
gTasks[taskId].data[6] = priorityChanged; gTasks[taskId].data[6] = priorityChanged;
gTasks[taskId].func = AnimTask_MetallicShine_Step; gTasks[taskId].func = AnimTask_MetallicShine_Step;
} }
@ -926,22 +936,22 @@ static void AnimTask_MetallicShine_Step(u8 taskId)
} }
// Changes battler's palette to either grayscale or original. // Changes battler's palette to either grayscale or original.
// arg0: which battler
// arg1: FALSE grayscale, TRUE original
void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId)
{ {
CMD_ARGS(battler, mode);
u8 spriteId; u8 spriteId;
u8 battler; u8 battler;
bool8 calcSpriteId = FALSE; bool8 calcSpriteId = FALSE;
u8 position = B_POSITION_PLAYER_LEFT; u8 position = B_POSITION_PLAYER_LEFT;
switch (gBattleAnimArgs[0]) switch (cmd->battler)
{ {
case ANIM_ATTACKER: case ANIM_ATTACKER:
case ANIM_TARGET: case ANIM_TARGET:
case ANIM_ATK_PARTNER: case ANIM_ATK_PARTNER:
case ANIM_DEF_PARTNER: case ANIM_DEF_PARTNER:
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); spriteId = GetAnimBattlerSpriteId(cmd->battler);
break; break;
case ANIM_PLAYER_LEFT: case ANIM_PLAYER_LEFT:
position = B_POSITION_PLAYER_LEFT; position = B_POSITION_PLAYER_LEFT;
@ -974,7 +984,7 @@ void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId)
} }
if (spriteId != SPRITE_NONE) if (spriteId != SPRITE_NONE)
SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); SetGrayscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, cmd->mode);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }