wesnoth/data/core/macros/animation-utils.cfg
Ignacio R. Morelle 7fccf0709c Ran wmlindent
2008-08-12 20:02:13 +00:00

1528 lines
43 KiB
INI

#textdomain wesnoth
# Macros for setting animations.
# These don't rely on any other macros. Please don't change this.
#define STANDING_ANIM_DIRECTIONAL BASE_SE_IMAGE BASE_NE_IMAGE
[standing_anim]
[if]
direction=s,se,sw
start_time=0
[frame]
duration=150
image={BASE_SE_IMAGE}
[/frame]
[/if]
[else]
direction=n,ne,nw
start_time=0
[frame]
duration=150
image={BASE_NE_IMAGE}
[/frame]
[/else]
[/standing_anim]
#enddef
#define DEFENSE_ANIM REACTION_IMAGE BASE_IMAGE HIT_SOUND
# Define a defensive animation moving from a specified BASE_IMAGE
# to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs.
[defend]
start_time=-126
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_IMAGE}
sound={HIT_SOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_FILTERED REACTION_IMAGE BASE_IMAGE HIT_SOUND FILTER
# Define a defensive animation moving from a specified BASE_IMAGE
# to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs. This
# fires only if FILTER is matched.
[defend]
start_time=-126
{FILTER}
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_IMAGE}
sound={HIT_SOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_RANGE REACTION_IMAGE BASE_IMAGE HIT_SOUND RANGE
# Define a defensive animation moving from a specified BASE_IMAGE
# to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs. This
# fires only on the class of attacks specified by RANGE.
[defend]
start_time=-126
[filter_attack]
range={RANGE}
[/filter_attack]
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_IMAGE}
sound={HIT_SOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_IMAGE}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_DIRECTIONAL REACTION_SE_IMAGE BASE_SE_IMAGE REACTION_NE_IMAGE BASE_NE_IMAGE HITSOUND
[defend]
direction=sw,s,se
start_time=-126
[frame]
duration=1
image={BASE_SE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_SE_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_SE_IMAGE}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_SE_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_SE_IMAGE}
[/frame]
[/defend]
[defend]
direction=nw,n,ne
start_time=-126
[frame]
duration=1
image={BASE_NE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_NE_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_NE_IMAGE}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_NE_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_NE_IMAGE}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_DIRECTIONAL_RANGE REACTION_SE_IMAGE BASE_SE_IMAGE REACTION_NE_IMAGE BASE_NE_IMAGE HITSOUND RANGE
[defend]
direction=sw,s,se
range={RANGE}
start_time=-126
[frame]
duration=1
image={BASE_SE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_SE_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_SE_IMAGE}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_SE_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_SE_IMAGE}
[/frame]
[/defend]
[defend]
direction=nw,n,ne
range={RANGE}
start_time=-126
[frame]
duration=1
image={BASE_NE_IMAGE}
[/frame]
[frame]
duration=100
image={REACTION_NE_IMAGE}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={REACTION_NE_IMAGE}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={REACTION_NE_IMAGE}
[/frame]
[/else]
[frame]
duration=1
image={BASE_NE_IMAGE}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_ELVEN_RANGE REACTION_IMAGE BASE_IMAGE HIT_SOUND RANGE
# Define a defensive animation moving from a specified BASE_IMAGE
# to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs and an
# elven halo waxing and waning during the animation. This
# fires only on the class of attacks specified by RANGE.
[defend]
start_time=-175
[filter_attack]
range={RANGE}
[/filter_attack]
[frame]
duration=25
end=-150
image={BASE_IMAGE}
halo=halo/elven/elven-shield-halo-20pct.png
[/frame]
[frame]
duration=25
image={BASE_IMAGE}
halo=halo/elven/elven-shield-halo-40pct.png
[/frame]
[frame]
duration=50
image={REACTION_IMAGE}
halo=halo/elven/elven-shield-halo-60pct.png
[/frame]
[frame]
duration=50
image={REACTION_IMAGE}
halo=halo/elven/elven-shield-halo-80pct.png
[/frame]
[if]
hits=hit
[frame]
duration=100
image={REACTION_IMAGE}
sound={HIT_SOUND}
halo=halo/elven/elven-shield-halo-100pct.png
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=100
image={REACTION_IMAGE}
halo=halo/elven/elven-shield-halo-100pct.png
[/frame]
[/else]
[frame]
duration=50
image={REACTION_IMAGE}
halo=halo/elven/elven-shield-halo-80pct.png
[/frame]
[frame]
duration=25
image={BASE_IMAGE}
halo=halo/elven/elven-shield-halo-60pct.png
[/frame]
[frame]
duration=25
image={BASE_IMAGE}
halo=halo/elven/elven-shield-halo-40pct.png
[/frame]
[frame]
duration=25
image={BASE_IMAGE}
halo=halo/elven/elven-shield-halo-20pct.png
[/frame]
[/defend]
#enddef
# this macro is called on top of every idle animation,
# to provide a standard set of conditions to play the idle animation
#define STANDARD_IDLE_FILTER
# Poisoned units should have no idle animation.
[filter]
[not]
[filter_wml]
[status]
poisoned="yes"
[/status]
[/filter_wml]
[/not]
[/filter]
# Units next to enemies should not have idle animations
[filter]
[filter_adjacent]
is_enemy="yes"
count=0
[/filter_adjacent]
[/filter]
#enddef
#define MISSILE_FRAME_WAIL
# Animate a projectile for a wail attack.
[if]
direction=n,ne,nw
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-n-1.png"
image_diagonal="projectiles/wailprojectile-ne-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-n-2.png"
image_diagonal="projectiles/wailprojectile-ne-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-n-3.png"
image_diagonal="projectiles/wailprojectile-ne-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-n-4.png"
image_diagonal="projectiles/wailprojectile-ne-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-n-5.png"
image_diagonal="projectiles/wailprojectile-ne-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-n-6.png"
image_diagonal="projectiles/wailprojectile-ne-6.png"
[/missile_frame]
[/if]
[else]
direction=s,se,sw
### The price of asymmetrical projectiles - here, we use a conditional because the game automatically flips the images for the south frame. We have a separate set of images for the south part, which are not only flipped vertically, but also have their angle corrected for the sw direction.
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-s-1.png"
image_diagonal="projectiles/wailprojectile-se-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-s-2.png"
image_diagonal="projectiles/wailprojectile-se-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-s-3.png"
image_diagonal="projectiles/wailprojectile-se-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-s-4.png"
image_diagonal="projectiles/wailprojectile-se-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-s-5.png"
image_diagonal="projectiles/wailprojectile-se-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-s-6.png"
image_diagonal="projectiles/wailprojectile-se-6.png"
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_LIGHT_BEAM
# Animate a beam of light coming down from the heavens.
missile_start_time=-245
[if]
direction=n,ne,nw
[missile_frame]
duration=30
halo="halo/holy/light-beam-1.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-2.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-3.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-4.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-5.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-6.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=130
halo="halo/holy/light-beam-7.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-6.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-5.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-4.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-3.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-2.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-1.png"
offset=1.0
[/missile_frame]
[/if]
[else]
direction=s,se,sw
[missile_frame]
duration=30
halo="halo/holy/light-beam-1.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-2.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-3.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-4.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-5.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=30
halo="halo/holy/light-beam-6.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=130
halo="halo/holy/light-beam-7.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-6.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-5.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-4.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-3.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-2.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=70
halo="halo/holy/light-beam-1.png~FL(vert)"
offset=1.0
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FIRE_BREATH N_OFFSET S_OFFSET N_DIAGONAL_OFFSET S_DIAGONAL_OFFSET
# Animate a projectile for a fire-breath attack.
[if]
direction=n
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80
halo_x,halo_y={N_OFFSET}
[/missile_frame]
[/if]
[else]
direction=s
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80
halo_x,halo_y={S_OFFSET}
[/missile_frame]
[/else]
[else]
direction=ne,nw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80
halo_x,halo_y={N_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
[else]
direction=se,sw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80
halo_x,halo_y={S_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FAERIE_FIRE
# Animate a projectile for a faerie-fire attack.
[missile_frame]
begin=-500
end=-350
image="projectiles/icemissile-n-1.png"
image_diagonal="projectiles/icemissile-ne-1.png"
halo=halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:100,halo/elven/ice-halo3.png:25
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-350
end=-200
image="projectiles/icemissile-n-2.png"
image_diagonal="projectiles/icemissile-ne-2.png"
halo=halo/elven/ice-halo3.png:75,halo/elven/ice-halo4.png:75
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-200
end=-50
image="projectiles/icemissile-n-3.png"
image_diagonal="projectiles/icemissile-ne-3.png"
halo=halo/elven/ice-halo5.png:100,halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:50
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-50
end=0
image="projectiles/icemissile-n-4.png"
image_diagonal="projectiles/icemissile-ne-4.png"
halo=halo/elven/ice-halo6.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=25
end=75
image="projectiles/icemissile-n-5.png"
image_diagonal="projectiles/icemissile-ne-5.png"
halo=halo/elven/ice-halo7.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=75
end=125
image="projectiles/icemissile-n-6.png"
image_diagonal="projectiles/icemissile-ne-6.png"
halo=halo/elven/ice-halo8.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=125
end=175
image="projectiles/icemissile-n-7.png"
image_diagonal="projectiles/icemissile-ne-7.png"
halo=halo/elven/ice-halo9.png
halo_x,halo_y=0,0
[/missile_frame]
#enddef
#define MISSILE_FRAME_FIREBALL
# Animate a projectile for a fireball attack.
missile_start_time=-350
[if]
direction=n,ne,nw
hits=yes
[missile_frame]
duration=40
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
offset=0.0~0.10
[/missile_frame]
[missile_frame]
duration=100
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
offset=0.1~0.30
[/missile_frame]
[missile_frame]
duration=125
image="projectiles/fireball-n.png"
image_diagonal="projectiles/fireball-nw.png"
offset=0.3~0.60
[/missile_frame]
[missile_frame]
duration=55
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
offset=0.7~0.8
[/missile_frame]
[missile_frame]
duration=30
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
offset=0.8~0.9
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-1.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-2.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-3.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-4.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-5.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-6.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-7.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-8.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-9.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-10.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-11.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-12.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-13.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-14.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-15.png"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-16.png"
offset=1.0
[/missile_frame]
[/if]
[else]
direction=s,se,sw
hits=yes
[missile_frame]
duration=40
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
offset=0.0~0.10
[/missile_frame]
[missile_frame]
duration=100
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
offset=0.1~0.30
[/missile_frame]
[missile_frame]
duration=125
image="projectiles/fireball-n.png"
image_diagonal="projectiles/fireball-nw.png"
offset=0.3~0.60
[/missile_frame]
[missile_frame]
duration=55
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
offset=0.7~0.8
[/missile_frame]
[missile_frame]
duration=30
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
offset=0.8~0.9
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-1.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-2.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-3.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-4.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-5.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-6.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-7.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-8.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-9.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-10.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-11.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-12.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-13.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-14.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-15.png~FL(vert)"
offset=1.0
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/fireball-impact-16.png~FL(vert)"
offset=1.0
[/missile_frame]
[/else]
[else]
direction=n,ne,nw
hits=no
missile_offset=0.0~0.25,0.25~0.45,0.45~0.60,0.6~0.7
missile_alpha=1.0,1.0~0.0
[missile_frame]
duration=40
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-3.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-4.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-5.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-6.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-7.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-8.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-9.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-10.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-11.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-12.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-13.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-14.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-15.png"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-16.png"
[/missile_frame]
[/else]
[else]
direction=s,se,sw
hits=no
missile_offset=0.0~0.25,0.25~0.45,0.45~0.60,0.6~0.7
missile_alpha=1.0,1.0~0.0
[missile_frame]
duration=40
image="projectiles/fireball-n-1.png"
image_diagonal="projectiles/fireball-nw-1.png"
offset=0.0~0.1
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-3.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-4.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-5.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-6.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-7.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-8.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-9.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-10.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-11.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-12.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-13.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-14.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-15.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=40
halo="projectiles/fireball-impact-16.png~FL(vert)"
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_ICE
[if]
hits=yes
[missile_frame]
begin=-200
end=0
image="projectiles/whitemissile-n.png"
image_diagonal="projectiles/whitemissile-ne.png"
offset=0.0~0.8
[/missile_frame]
[missile_frame]
begin=0
end=50
halo="projectiles/whitemissile-impact-1.png"
offset=0.8
[/missile_frame]
[missile_frame]
begin=50
end=100
halo="projectiles/whitemissile-impact-2.png"
offset=0.92
[/missile_frame]
[missile_frame]
begin=100
end=150
halo="projectiles/whitemissile-impact-3.png"
offset=0.94
[/missile_frame]
[missile_frame]
begin=150
end=200
halo="projectiles/whitemissile-impact-4.png"
offset=0.96
[/missile_frame]
[missile_frame]
begin=200
end=250
halo="projectiles/whitemissile-impact-5.png"
offset=0.98
[/missile_frame]
[missile_frame]
begin=250
end=300
halo="projectiles/whitemissile-impact-6.png"
offset=1.0
[/missile_frame]
[missile_frame]
begin=300
end=350
halo="projectiles/whitemissile-impact-7.png"
offset=1.02
[/missile_frame]
[missile_frame]
begin=350
end=400
halo="projectiles/whitemissile-impact-8.png"
offset=1.04
[/missile_frame]
[/if]
[else]
hits=no
[missile_frame]
begin=-200
end=0
image="projectiles/whitemissile-n.png"
image_diagonal="projectiles/whitemissile-ne.png"
offset=0.0~0.8
alpha=.8~0.0:200
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_HATCHET
# Animate a projectile for a thrown-hatchet attack.
[missile_frame]
begin=-200
end=-150
image="projectiles/hatchet-2.png"
image_diagonal="projectiles/hatchet-2.png"
[/missile_frame]
[missile_frame]
begin=-150
end=-100
image="projectiles/hatchet-3.png"
image_diagonal="projectiles/hatchet-3.png"
[/missile_frame]
[missile_frame]
begin=-100
end=-50
image="projectiles/hatchet-4.png"
image_diagonal="projectiles/hatchet-4.png"
[/missile_frame]
[missile_frame]
begin=-50
end=0
image="projectiles/hatchet-1.png"
image_diagonal="projectiles/hatchet-1.png"
[/missile_frame]
#enddef
#define FIRE_BURST_SMALL
[missile_frame]
begin=0
end=75
image="projectiles/fire-burst-small-1.png"
image_diagonal="projectiles/fire-burst-small-1.png"
offset=0.8
[/missile_frame]
[missile_frame]
begin=75
end=150
image="projectiles/fire-burst-small-2.png"
image_diagonal="projectiles/fire-burst-small-2.png"
offset=0.83
[/missile_frame]
[missile_frame]
begin=150
end=225
image="projectiles/fire-burst-small-3.png"
image_diagonal="projectiles/fire-burst-small-3.png"
offset=0.86
[/missile_frame]
[missile_frame]
begin=225
end=300
image="projectiles/fire-burst-small-4.png"
image_diagonal="projectiles/fire-burst-small-4.png"
offset=0.89
[/missile_frame]
[missile_frame]
begin=300
end=375
image="projectiles/fire-burst-small-5.png"
image_diagonal="projectiles/fire-burst-small-5.png"
offset=0.92
[/missile_frame]
[missile_frame]
begin=375
end=450
image="projectiles/fire-burst-small-6.png"
image_diagonal="projectiles/fire-burst-small-6.png"
offset=0.95
[/missile_frame]
[missile_frame]
begin=450
end=525
image="projectiles/fire-burst-small-7.png"
image_diagonal="projectiles/fire-burst-small-7.png"
offset=0.98
[/missile_frame]
[missile_frame]
begin=525
end=600
image="projectiles/fire-burst-small-8.png"
image_diagonal="projectiles/fire-burst-small-8.png"
offset=1.0
[/missile_frame]
#enddef
#define LIGHTNING_BOLT DIRECTION_NUMBER
[if]
direction=sw,s,se
[missile_frame]
begin=-250
end=150
halo=halo/lightning-bolt-{DIRECTION_NUMBER}-1.png~FL(vert):100,halo/lightning-bolt-{DIRECTION_NUMBER}-2.png~FL(vert):100,halo/lightning-bolt-{DIRECTION_NUMBER}-3.png~FL(vert):100,halo/lightning-bolt-{DIRECTION_NUMBER}-4.png~FL(vert):100
halo_y=-125
offset=1.0
[/missile_frame]
[/if]
[else]
direction=nw,n,ne
[missile_frame]
begin=-250
end=150
halo=halo/lightning-bolt-{DIRECTION_NUMBER}-1.png:100,halo/lightning-bolt-{DIRECTION_NUMBER}-2.png:100,halo/lightning-bolt-{DIRECTION_NUMBER}-3.png:100,halo/lightning-bolt-{DIRECTION_NUMBER}-4.png:100
halo_y=-125
offset=1.0
[/missile_frame]
[/else]
#enddef
#define MERMAID_STAFF_FLARE X_POSITION Y_POSITION
flare_start_time=-420
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-1.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-2.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-3.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-4.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-5.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-6.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=60
halo=halo/merfolk/staff-flare-7.png
halo_x,halo_y={X_POSITION},{Y_POSITION}
[/flare_frame]
[flare_frame]
duration=10
[/flare_frame]
#enddef
#define MERMAID_WATER_BLAST_HALO
water_start_time=-420
[water_frame]
duration=60
halo=halo/merfolk/water-halo-1.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-2.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-3.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-4.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-5.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-6.png
[/water_frame]
[water_frame]
duration=60
halo=halo/merfolk/water-halo-7.png
[/water_frame]
[water_frame]
duration=10
[/water_frame]
#enddef
#define MISSILE_FRAME_MUZZLE_FLARE
missile_start_time=-250
[if]
hits = no
missile_offset=0.1
[missile_frame]
duration=100
halo="projectiles/misfire-spark-1.png"
[/missile_frame]
[missile_frame]
duration=100
halo="projectiles/misfire-spark-2.png"
[/missile_frame]
[missile_frame]
duration=100
halo="projectiles/misfire-spark-3.png"
[/missile_frame]
[missile_frame]
duration=100
halo="projectiles/misfire-spark-4.png"
[/missile_frame]
[/if]
[if]
hits = yes
missile_offset=0.5~1.1:250,1.1~1.5:200,1.5~1.7:360
[/if]
[else]
direction=n
hits = yes
[missile_frame]
duration=100
halo="projectiles/muzzle-flash-n-1.png"
[/missile_frame]
[missile_frame]
duration=80
halo="projectiles/muzzle-flash-n-2.png"
[/missile_frame]
[missile_frame]
duration=70
halo="projectiles/muzzle-flash-n-3.png"
[/missile_frame]
[/else]
[else]
direction=ne,nw
hits = yes
[missile_frame]
duration=100
halo="projectiles/muzzle-flash-ne-1.png"
[/missile_frame]
[missile_frame]
duration=80
halo="projectiles/muzzle-flash-ne-2.png"
[/missile_frame]
[missile_frame]
duration=70
halo="projectiles/muzzle-flash-ne-3.png"
[/missile_frame]
[/else]
[else]
direction=se,sw
hits = yes
[missile_frame]
duration=100
halo="projectiles/muzzle-flash-ne-1.png"
[/missile_frame]
[missile_frame]
duration=80
halo="projectiles/muzzle-flash-ne-2.png"
[/missile_frame]
[missile_frame]
duration=70
halo="projectiles/muzzle-flash-ne-3.png"
[/missile_frame]
[/else]
[else]
direction=s
hits = yes
[missile_frame]
duration=100
halo="projectiles/muzzle-flash-s-1.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=80
halo="projectiles/muzzle-flash-s-2.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=70
halo="projectiles/muzzle-flash-s-3.png~FL(vert)"
[/missile_frame]
[/else]
[if]
direction=n,ne,nw
hits = yes
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-4.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-5.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-6.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-7.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-8.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-9.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-10.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-11.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-12.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-13.png"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-14.png"
[/missile_frame]
[/if]
[else]
direction=s,se,sw
hits = yes
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-4.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-5.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-6.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-7.png~FL(vert)"
offset=1.55
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-8.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-9.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-10.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-11.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-12.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-13.png~FL(vert)"
[/missile_frame]
[missile_frame]
duration=60
halo="projectiles/muzzle-flash-14.png~FL(vert)"
[/missile_frame]
[/else]
#enddef