home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 July / maximum-cd-2010-07.iso / DiscContents / wesnoth-1.8-win32.exe / data / core / macros / animation-utils.cfg < prev    next >
Encoding:
Text File  |  2010-03-08  |  66.6 KB  |  2,239 lines

  1. #textdomain wesnoth
  2. # Macros for setting animations.
  3.  
  4. # These don't rely on any other macros.   Please don't change this.
  5.  
  6. #define STANDING_ANIM_DIRECTIONAL BASE_SE_IMAGE BASE_NE_IMAGE
  7.     [standing_anim]
  8.         [if]
  9.             direction=s,se,sw
  10.             start_time=0
  11.             [frame]
  12.                 duration=150
  13.                 image={BASE_SE_IMAGE}
  14.             [/frame]
  15.         [/if]
  16.         [else]
  17.             direction=n,ne,nw
  18.             start_time=0
  19.             [frame]
  20.                 duration=150
  21.                 image={BASE_NE_IMAGE}
  22.             [/frame]
  23.         [/else]
  24.     [/standing_anim]
  25. #enddef
  26.  
  27. #define LEADING_ANIM FULL_IMAGE HALFWAYS_IMAGE
  28.     # Define a defensive animation moving from a specified BASE_IMAGE
  29.     # to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs.
  30.     [leading_anim]
  31.         start_time=-126
  32.         [frame]
  33.             duration=1
  34.             image={HALFWAYS_IMAGE}
  35.         [/frame]
  36.         [frame]
  37.             duration=100
  38.             image={FULL_IMAGE}
  39.         [/frame]
  40.         [frame]
  41.             duration=150
  42.             image={FULL_IMAGE}
  43.         [/frame]
  44.         [frame]
  45.             duration=1
  46.             image={HALFWAYS_IMAGE}
  47.         [/frame]
  48.     [/leading_anim]
  49. #enddef
  50.  
  51. #define DEFENSE_ANIM REACTION_IMAGE BASE_IMAGE HIT_SOUND
  52.     # Define a defensive animation moving from a specified BASE_IMAGE
  53.     # to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs.
  54.     [defend]
  55.         start_time=-126
  56.         [frame]
  57.             duration=1
  58.             image={BASE_IMAGE}
  59.         [/frame]
  60.         [frame]
  61.             duration=100
  62.             image={REACTION_IMAGE}
  63.         [/frame]
  64.         [if]
  65.             hits=hit
  66.             [frame]
  67.                 duration=150
  68.                 image={REACTION_IMAGE}
  69.                 sound={HIT_SOUND}
  70.             [/frame]
  71.         [/if]
  72.         [else]
  73.             hits=miss,kill
  74.             [frame]
  75.                 duration=150
  76.                 image={REACTION_IMAGE}
  77.             [/frame]
  78.         [/else]
  79.         [frame]
  80.             duration=1
  81.             image={BASE_IMAGE}
  82.         [/frame]
  83.     [/defend]
  84. #enddef
  85.  
  86. #define DEFENSE_ANIM_FILTERED REACTION_IMAGE BASE_IMAGE HIT_SOUND FILTER
  87.     # Define a defensive animation moving from a specified BASE_IMAGE
  88.     # to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs.  This
  89.     # fires only if FILTER is matched.
  90.     [defend]
  91.         start_time=-126
  92.         {FILTER}
  93.         [frame]
  94.             duration=1
  95.             image={BASE_IMAGE}
  96.         [/frame]
  97.         [frame]
  98.             duration=100
  99.             image={REACTION_IMAGE}
  100.         [/frame]
  101.         [if]
  102.             hits=hit
  103.             [frame]
  104.                 duration=150
  105.                 image={REACTION_IMAGE}
  106.                 sound={HIT_SOUND}
  107.             [/frame]
  108.         [/if]
  109.         [else]
  110.             hits=miss,kill
  111.             [frame]
  112.                 duration=150
  113.                 image={REACTION_IMAGE}
  114.             [/frame]
  115.         [/else]
  116.         [frame]
  117.             duration=1
  118.             image={BASE_IMAGE}
  119.         [/frame]
  120.     [/defend]
  121. #enddef
  122.  
  123. #define DEFENSE_ANIM_RANGE REACTION_IMAGE BASE_IMAGE HIT_SOUND RANGE
  124.     # Define a defensive animation moving from a specified BASE_IMAGE
  125.     # to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs.  This
  126.     # fires only on the class of attacks specified by RANGE.
  127.     [defend]
  128.         start_time=-126
  129.         [filter_attack]
  130.             range={RANGE}
  131.         [/filter_attack]
  132.         [frame]
  133.             duration=1
  134.             image={BASE_IMAGE}
  135.         [/frame]
  136.         [frame]
  137.             duration=100
  138.             image={REACTION_IMAGE}
  139.         [/frame]
  140.         [if]
  141.             hits=hit
  142.             [frame]
  143.                 duration=150
  144.                 image={REACTION_IMAGE}
  145.                 sound={HIT_SOUND}
  146.             [/frame]
  147.         [/if]
  148.         [else]
  149.             hits=miss,kill
  150.             [frame]
  151.                 duration=150
  152.                 image={REACTION_IMAGE}
  153.             [/frame]
  154.         [/else]
  155.         [frame]
  156.             duration=1
  157.             image={BASE_IMAGE}
  158.         [/frame]
  159.     [/defend]
  160. #enddef
  161.  
  162. #define DEFENSE_ANIM_DIRECTIONAL REACTION_SE_IMAGE BASE_SE_IMAGE REACTION_NE_IMAGE BASE_NE_IMAGE HITSOUND
  163.     [defend]
  164.         direction=sw,s,se
  165.         start_time=-126
  166.         [frame]
  167.             duration=1
  168.             image={BASE_SE_IMAGE}
  169.         [/frame]
  170.         [frame]
  171.             duration=100
  172.             image={REACTION_SE_IMAGE}
  173.         [/frame]
  174.         [if]
  175.             hits=hit
  176.             [frame]
  177.                 duration=150
  178.                 image={REACTION_SE_IMAGE}
  179.                 sound={HITSOUND}
  180.             [/frame]
  181.         [/if]
  182.         [else]
  183.             hits=miss,kill
  184.             [frame]
  185.                 duration=150
  186.                 image={REACTION_SE_IMAGE}
  187.             [/frame]
  188.         [/else]
  189.         [frame]
  190.             duration=1
  191.             image={BASE_SE_IMAGE}
  192.         [/frame]
  193.     [/defend]
  194.     [defend]
  195.         direction=nw,n,ne
  196.         start_time=-126
  197.         [frame]
  198.             duration=1
  199.             image={BASE_NE_IMAGE}
  200.         [/frame]
  201.         [frame]
  202.             duration=100
  203.             image={REACTION_NE_IMAGE}
  204.         [/frame]
  205.         [if]
  206.             hits=hit
  207.             [frame]
  208.                 duration=150
  209.                 image={REACTION_NE_IMAGE}
  210.                 sound={HITSOUND}
  211.             [/frame]
  212.         [/if]
  213.         [else]
  214.             hits=miss,kill
  215.             [frame]
  216.                 duration=150
  217.                 image={REACTION_NE_IMAGE}
  218.             [/frame]
  219.         [/else]
  220.         [frame]
  221.             duration=1
  222.             image={BASE_NE_IMAGE}
  223.         [/frame]
  224.     [/defend]
  225. #enddef
  226.  
  227. #define DEFENSE_ANIM_DIRECTIONAL_RANGE REACTION_SE_IMAGE BASE_SE_IMAGE REACTION_NE_IMAGE BASE_NE_IMAGE HITSOUND RANGE
  228.     [defend]
  229.         direction=sw,s,se
  230.         [filter_attack]
  231.             range={RANGE}
  232.         [/filter_attack]
  233.         start_time=-126
  234.         [frame]
  235.             duration=1
  236.             image={BASE_SE_IMAGE}
  237.         [/frame]
  238.         [frame]
  239.             duration=100
  240.             image={REACTION_SE_IMAGE}
  241.         [/frame]
  242.         [if]
  243.             hits=hit
  244.             [frame]
  245.                 duration=150
  246.                 image={REACTION_SE_IMAGE}
  247.                 sound={HITSOUND}
  248.             [/frame]
  249.         [/if]
  250.         [else]
  251.             hits=miss,kill
  252.             [frame]
  253.                 duration=150
  254.                 image={REACTION_SE_IMAGE}
  255.             [/frame]
  256.         [/else]
  257.         [frame]
  258.             duration=1
  259.             image={BASE_SE_IMAGE}
  260.         [/frame]
  261.     [/defend]
  262.     [defend]
  263.         direction=nw,n,ne
  264.         [filter_attack]
  265.             range={RANGE}
  266.         [/filter_attack]
  267.         start_time=-126
  268.         [frame]
  269.             duration=1
  270.             image={BASE_NE_IMAGE}
  271.         [/frame]
  272.         [frame]
  273.             duration=100
  274.             image={REACTION_NE_IMAGE}
  275.         [/frame]
  276.         [if]
  277.             hits=hit
  278.             [frame]
  279.                 duration=150
  280.                 image={REACTION_NE_IMAGE}
  281.                 sound={HITSOUND}
  282.             [/frame]
  283.         [/if]
  284.         [else]
  285.             hits=miss,kill
  286.             [frame]
  287.                 duration=150
  288.                 image={REACTION_NE_IMAGE}
  289.             [/frame]
  290.         [/else]
  291.         [frame]
  292.             duration=1
  293.             image={BASE_NE_IMAGE}
  294.         [/frame]
  295.     [/defend]
  296. #enddef
  297.  
  298. #define DEFENSE_ANIM_ELVEN_RANGE REACTION_IMAGE BASE_IMAGE HIT_SOUND RANGE
  299.     # Define a defensive animation moving from a specified BASE_IMAGE
  300.     # to REACTION_IMAGE, with HIT_SOUND playing only if a hit occurs and an
  301.     # elven halo waxing and waning during the animation.  This
  302.     # fires only on the class of attacks specified by RANGE.
  303.     [defend]
  304.         start_time=-175
  305.         [filter_attack]
  306.             range={RANGE}
  307.         [/filter_attack]
  308.         [frame]
  309.             duration=25
  310.             end=-150
  311.             image={BASE_IMAGE}
  312.             halo=halo/elven/elven-shield-halo-20pct.png
  313.         [/frame]
  314.         [frame]
  315.             duration=25
  316.             image={BASE_IMAGE}
  317.             halo=halo/elven/elven-shield-halo-40pct.png
  318.         [/frame]
  319.         [frame]
  320.             duration=50
  321.             image={REACTION_IMAGE}
  322.             halo=halo/elven/elven-shield-halo-60pct.png
  323.         [/frame]
  324.         [frame]
  325.             duration=50
  326.             image={REACTION_IMAGE}
  327.             halo=halo/elven/elven-shield-halo-80pct.png
  328.         [/frame]
  329.         [if]
  330.             hits=hit
  331.             [frame]
  332.                 duration=100
  333.                 image={REACTION_IMAGE}
  334.                 sound={HIT_SOUND}
  335.                 halo=halo/elven/elven-shield-halo-100pct.png
  336.             [/frame]
  337.         [/if]
  338.         [else]
  339.             hits=miss,kill
  340.             [frame]
  341.                 duration=100
  342.                 image={REACTION_IMAGE}
  343.                 halo=halo/elven/elven-shield-halo-100pct.png
  344.             [/frame]
  345.         [/else]
  346.         [frame]
  347.             duration=50
  348.             image={REACTION_IMAGE}
  349.             halo=halo/elven/elven-shield-halo-80pct.png
  350.         [/frame]
  351.         [frame]
  352.             duration=25
  353.             image={BASE_IMAGE}
  354.             halo=halo/elven/elven-shield-halo-60pct.png
  355.         [/frame]
  356.         [frame]
  357.             duration=25
  358.             image={BASE_IMAGE}
  359.             halo=halo/elven/elven-shield-halo-40pct.png
  360.         [/frame]
  361.         [frame]
  362.             duration=25
  363.             image={BASE_IMAGE}
  364.             halo=halo/elven/elven-shield-halo-20pct.png
  365.         [/frame]
  366.     [/defend]
  367. #enddef
  368.  
  369. # this macro is called on top of every idle animation,
  370. # to provide a standard set of conditions to play the idle animation
  371.  
  372. #define STANDARD_IDLE_FILTER
  373.     # Poisoned units should have no idle animation.
  374.     [filter]
  375.         [not]
  376.             [filter_wml]
  377.                 [status]
  378.                     poisoned="yes"
  379.                 [/status]
  380.             [/filter_wml]
  381.         [/not]
  382.     [/filter]
  383.     # Units next to enemies should not have idle animations
  384.     [filter]
  385.         [filter_adjacent]
  386.             is_enemy="yes"
  387.             count=0
  388.         [/filter_adjacent]
  389.     [/filter]
  390. #enddef
  391.  
  392. #define DRAKE_FLYING_ANIM STANDING_IMAGE FLYING_IMAGE
  393.     [standing_anim]
  394.         start_time=0
  395.         [filter]
  396.             [filter_location]
  397.                 terrain_type=!,W*,Qx*,Ql*
  398.                 [or]
  399.                     terrain_type=Wwf,Wwr,*^V*
  400.                 [/or]
  401.             [/filter_location]
  402.         [/filter]
  403.         [frame]
  404.             duration=150
  405.             image={STANDING_IMAGE}
  406.         [/frame]
  407.     [/standing_anim]
  408.  
  409.     [standing_anim]
  410.         start_time=0
  411.         layer=60
  412.         submerge=0.01
  413.         [filter]
  414.             [filter_location]
  415.                 terrain_type=W*,Qx*,Ql*
  416.                 [not]
  417.                     terrain_type=Wwf,Wwr,*^V*
  418.                 [/not]
  419.             [/filter_location]
  420.         [/filter]
  421.         [frame]
  422.             duration=150
  423.             image={FLYING_IMAGE}
  424.         [/frame]
  425.     [/standing_anim]
  426. #enddef
  427.  
  428. #define MISSILE_FRAME_WAIL
  429.     # Animate a projectile for a wail attack.
  430.     [if]
  431.         direction=n,ne,nw
  432.  
  433.         [missile_frame]
  434.             begin=-300
  435.             end=-230
  436.             image="projectiles/wailprojectile-n-1.png"
  437.             image_diagonal="projectiles/wailprojectile-ne-1.png"
  438.         [/missile_frame]
  439.         [missile_frame]
  440.             begin=-230
  441.             end=-160
  442.             image="projectiles/wailprojectile-n-2.png"
  443.             image_diagonal="projectiles/wailprojectile-ne-2.png"
  444.         [/missile_frame]
  445.         [missile_frame]
  446.             begin=-160
  447.             end=0
  448.             image="projectiles/wailprojectile-n-3.png"
  449.             image_diagonal="projectiles/wailprojectile-ne-3.png"
  450.         [/missile_frame]
  451.         [missile_frame]
  452.             begin=0
  453.             end=40
  454.             image="projectiles/wailprojectile-n-4.png"
  455.             image_diagonal="projectiles/wailprojectile-ne-4.png"
  456.         [/missile_frame]
  457.         [missile_frame]
  458.             begin=40
  459.             end=80
  460.             image="projectiles/wailprojectile-n-5.png"
  461.             image_diagonal="projectiles/wailprojectile-ne-5.png"
  462.         [/missile_frame]
  463.         [missile_frame]
  464.             begin=80
  465.             end=120
  466.             image="projectiles/wailprojectile-n-6.png"
  467.             image_diagonal="projectiles/wailprojectile-ne-6.png"
  468.         [/missile_frame]
  469.     [/if]
  470.     [else]
  471.         direction=s,se,sw
  472.         ### 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.
  473.  
  474.         [missile_frame]
  475.             begin=-300
  476.             end=-230
  477.             image="projectiles/wailprojectile-s-1.png"
  478.             image_diagonal="projectiles/wailprojectile-se-1.png"
  479.         [/missile_frame]
  480.         [missile_frame]
  481.             begin=-230
  482.             end=-160
  483.             image="projectiles/wailprojectile-s-2.png"
  484.             image_diagonal="projectiles/wailprojectile-se-2.png"
  485.         [/missile_frame]
  486.         [missile_frame]
  487.             begin=-160
  488.             end=0
  489.             image="projectiles/wailprojectile-s-3.png"
  490.             image_diagonal="projectiles/wailprojectile-se-3.png"
  491.         [/missile_frame]
  492.         [missile_frame]
  493.             begin=0
  494.             end=40
  495.             image="projectiles/wailprojectile-s-4.png"
  496.             image_diagonal="projectiles/wailprojectile-se-4.png"
  497.         [/missile_frame]
  498.         [missile_frame]
  499.             begin=40
  500.             end=80
  501.             image="projectiles/wailprojectile-s-5.png"
  502.             image_diagonal="projectiles/wailprojectile-se-5.png"
  503.         [/missile_frame]
  504.         [missile_frame]
  505.             begin=80
  506.             end=120
  507.             image="projectiles/wailprojectile-s-6.png"
  508.             image_diagonal="projectiles/wailprojectile-se-6.png"
  509.         [/missile_frame]
  510.     [/else]
  511. #enddef
  512.  
  513. #define MISSILE_FRAME_LIGHT_BEAM
  514.     # Animate a beam of light coming down from the heavens.
  515.  
  516.     missile_start_time=-245
  517.  
  518.     [if]
  519.         direction=n,ne,nw
  520.  
  521.         [missile_frame]
  522.             duration=30
  523.             halo="halo/holy/light-beam-1.png"
  524.             offset=1.0
  525.         [/missile_frame]
  526.         [missile_frame]
  527.             duration=30
  528.             halo="halo/holy/light-beam-2.png"
  529.             offset=1.0
  530.         [/missile_frame]
  531.         [missile_frame]
  532.             duration=30
  533.             halo="halo/holy/light-beam-3.png"
  534.             offset=1.0
  535.         [/missile_frame]
  536.         [missile_frame]
  537.             duration=30
  538.             halo="halo/holy/light-beam-4.png"
  539.             offset=1.0
  540.         [/missile_frame]
  541.         [missile_frame]
  542.             duration=30
  543.             halo="halo/holy/light-beam-5.png"
  544.             offset=1.0
  545.         [/missile_frame]
  546.         [missile_frame]
  547.             duration=30
  548.             halo="halo/holy/light-beam-6.png"
  549.             offset=1.0
  550.         [/missile_frame]
  551.         [missile_frame]
  552.             duration=130
  553.             halo="halo/holy/light-beam-7.png"
  554.             offset=1.0
  555.         [/missile_frame]
  556.         [missile_frame]
  557.             duration=70
  558.             halo="halo/holy/light-beam-6.png"
  559.             offset=1.0
  560.         [/missile_frame]
  561.         [missile_frame]
  562.             duration=70
  563.             halo="halo/holy/light-beam-5.png"
  564.             offset=1.0
  565.         [/missile_frame]
  566.         [missile_frame]
  567.             duration=70
  568.             halo="halo/holy/light-beam-4.png"
  569.             offset=1.0
  570.         [/missile_frame]
  571.         [missile_frame]
  572.             duration=70
  573.             halo="halo/holy/light-beam-3.png"
  574.             offset=1.0
  575.         [/missile_frame]
  576.         [missile_frame]
  577.             duration=70
  578.             halo="halo/holy/light-beam-2.png"
  579.             offset=1.0
  580.         [/missile_frame]
  581.         [missile_frame]
  582.             duration=70
  583.             halo="halo/holy/light-beam-1.png"
  584.             offset=1.0
  585.         [/missile_frame]
  586.     [/if]
  587.     [else]
  588.         direction=s,se,sw
  589.  
  590.         [missile_frame]
  591.             duration=30
  592.             halo="halo/holy/light-beam-1.png~FL(vert)"
  593.             offset=1.0
  594.         [/missile_frame]
  595.         [missile_frame]
  596.             duration=30
  597.             halo="halo/holy/light-beam-2.png~FL(vert)"
  598.             offset=1.0
  599.         [/missile_frame]
  600.         [missile_frame]
  601.             duration=30
  602.             halo="halo/holy/light-beam-3.png~FL(vert)"
  603.             offset=1.0
  604.         [/missile_frame]
  605.         [missile_frame]
  606.             duration=30
  607.             halo="halo/holy/light-beam-4.png~FL(vert)"
  608.             offset=1.0
  609.         [/missile_frame]
  610.         [missile_frame]
  611.             duration=30
  612.             halo="halo/holy/light-beam-5.png~FL(vert)"
  613.             offset=1.0
  614.         [/missile_frame]
  615.         [missile_frame]
  616.             duration=30
  617.             halo="halo/holy/light-beam-6.png~FL(vert)"
  618.             offset=1.0
  619.         [/missile_frame]
  620.         [missile_frame]
  621.             duration=130
  622.             halo="halo/holy/light-beam-7.png~FL(vert)"
  623.             offset=1.0
  624.         [/missile_frame]
  625.         [missile_frame]
  626.             duration=70
  627.             halo="halo/holy/light-beam-6.png~FL(vert)"
  628.             offset=1.0
  629.         [/missile_frame]
  630.         [missile_frame]
  631.             duration=70
  632.             halo="halo/holy/light-beam-5.png~FL(vert)"
  633.             offset=1.0
  634.         [/missile_frame]
  635.         [missile_frame]
  636.             duration=70
  637.             halo="halo/holy/light-beam-4.png~FL(vert)"
  638.             offset=1.0
  639.         [/missile_frame]
  640.         [missile_frame]
  641.             duration=70
  642.             halo="halo/holy/light-beam-3.png~FL(vert)"
  643.             offset=1.0
  644.         [/missile_frame]
  645.         [missile_frame]
  646.             duration=70
  647.             halo="halo/holy/light-beam-2.png~FL(vert)"
  648.             offset=1.0
  649.         [/missile_frame]
  650.         [missile_frame]
  651.             duration=70
  652.             halo="halo/holy/light-beam-1.png~FL(vert)"
  653.             offset=1.0
  654.         [/missile_frame]
  655.     [/else]
  656. #enddef
  657.  
  658. #define MISSILE_FRAME_FIRE_BREATH N_OFFSET_POSITION S_OFFSET_POSITION N_DIAGONAL_OFFSET_POSITION S_DIAGONAL_OFFSET_POSITION
  659.     # Animate a projectile for a fire-breath attack.
  660.     [if]
  661.         direction=n
  662.  
  663.         [missile_frame]
  664.             begin=-400
  665.             end=100
  666.             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
  667.             halo_x,halo_y={N_OFFSET_POSITION}
  668.         [/missile_frame]
  669.     [/if]
  670.     [else]
  671.         direction=s
  672.  
  673.         [missile_frame]
  674.             begin=-400
  675.             end=100
  676.             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
  677.             halo_x,halo_y={S_OFFSET_POSITION}
  678.         [/missile_frame]
  679.     [/else]
  680.     [else]
  681.         direction=ne,nw
  682.  
  683.         [missile_frame]
  684.             begin=-400
  685.             end=100
  686.             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
  687.             halo_x,halo_y={N_DIAGONAL_OFFSET_POSITION}
  688.         [/missile_frame]
  689.     [/else]
  690.     [else]
  691.         direction=se,sw
  692.  
  693.         [missile_frame]
  694.             begin=-400
  695.             end=100
  696.             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
  697.             halo_x,halo_y={S_DIAGONAL_OFFSET_POSITION}
  698.         [/missile_frame]
  699.     [/else]
  700. #enddef
  701.  
  702. #define MISSILE_FRAME_FIRE_BREATH_N OFFSET_POSITION
  703.     # Animate a projectile for a fire-breath attack.
  704.     [missile_frame]
  705.         begin=-400
  706.         end=100
  707.         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
  708.         halo_x,halo_y={OFFSET_POSITION}
  709.     [/missile_frame]
  710. #enddef
  711.  
  712. #define MISSILE_FRAME_FIRE_BREATH_S OFFSET_POSITION
  713.     # Animate a projectile for a fire-breath attack.
  714.     [missile_frame]
  715.         begin=-400
  716.         end=100
  717.         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
  718.         halo_x,halo_y={OFFSET_POSITION}
  719.     [/missile_frame]
  720. #enddef
  721.  
  722. #define MISSILE_FRAME_FIRE_BREATH_N_DIAGONAL OFFSET_POSITION
  723.     # Animate a projectile for a fire-breath attack.
  724.     [missile_frame]
  725.         begin=-400
  726.         end=100
  727.         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
  728.         halo_x,halo_y={OFFSET_POSITION}
  729.     [/missile_frame]
  730. #enddef
  731.  
  732. #define MISSILE_FRAME_FIRE_BREATH_S_DIAGONAL OFFSET_POSITION
  733.     # Animate a projectile for a fire-breath attack.
  734.     [missile_frame]
  735.         begin=-400
  736.         end=100
  737.         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
  738.         halo_x,halo_y={OFFSET_POSITION}
  739.     [/missile_frame]
  740. #enddef
  741.  
  742. #define MISSILE_FRAME_FAERIE_FIRE
  743.     # Animate a projectile for a faerie-fire attack.
  744.     [missile_frame]
  745.         begin=-500
  746.         end=-350
  747.         image="projectiles/icemissile-n-1.png"
  748.         image_diagonal="projectiles/icemissile-ne-1.png"
  749.         halo=halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:100,halo/elven/ice-halo3.png:25
  750.         halo_x,halo_y=0,0
  751.     [/missile_frame]
  752.     [missile_frame]
  753.         begin=-350
  754.         end=-200
  755.         image="projectiles/icemissile-n-2.png"
  756.         image_diagonal="projectiles/icemissile-ne-2.png"
  757.         halo=halo/elven/ice-halo3.png:75,halo/elven/ice-halo4.png:75
  758.         halo_x,halo_y=0,0
  759.     [/missile_frame]
  760.     [missile_frame]
  761.         begin=-200
  762.         end=-50
  763.         image="projectiles/icemissile-n-3.png"
  764.         image_diagonal="projectiles/icemissile-ne-3.png"
  765.         halo=halo/elven/ice-halo5.png:100,halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:50
  766.         halo_x,halo_y=0,0
  767.     [/missile_frame]
  768.     [missile_frame]
  769.         begin=-50
  770.         end=0
  771.         image="projectiles/icemissile-n-4.png"
  772.         image_diagonal="projectiles/icemissile-ne-4.png"
  773.         halo=halo/elven/ice-halo6.png
  774.         halo_x,halo_y=0,0
  775.     [/missile_frame]
  776.     [missile_frame]
  777.         begin=25
  778.         end=75
  779.         image="projectiles/icemissile-n-5.png"
  780.         image_diagonal="projectiles/icemissile-ne-5.png"
  781.         halo=halo/elven/ice-halo7.png
  782.         halo_x,halo_y=0,0
  783.     [/missile_frame]
  784.     [missile_frame]
  785.         begin=75
  786.         end=125
  787.         image="projectiles/icemissile-n-6.png"
  788.         image_diagonal="projectiles/icemissile-ne-6.png"
  789.         halo=halo/elven/ice-halo8.png
  790.         halo_x,halo_y=0,0
  791.     [/missile_frame]
  792.     [missile_frame]
  793.         begin=125
  794.         end=175
  795.         image="projectiles/icemissile-n-7.png"
  796.         image_diagonal="projectiles/icemissile-ne-7.png"
  797.         halo=halo/elven/ice-halo9.png
  798.         halo_x,halo_y=0,0
  799.     [/missile_frame]
  800. #enddef
  801.  
  802. #define MISSILE_FRAME_FIREBALL
  803.     # Animate a projectile for a fireball attack.
  804.  
  805.     missile_start_time=-350
  806.  
  807.     [if]
  808.         direction=n,ne,nw
  809.         hits=yes
  810.  
  811.         [missile_frame]
  812.             duration=40
  813.             image="projectiles/fireball-n-1.png"
  814.             image_diagonal="projectiles/fireball-nw-1.png"
  815.             offset=0.0~0.10
  816.         [/missile_frame]
  817.         [missile_frame]
  818.             duration=100
  819.             image="projectiles/fireball-n-2.png"
  820.             image_diagonal="projectiles/fireball-nw-2.png"
  821.             offset=0.1~0.30
  822.         [/missile_frame]
  823.         [missile_frame]
  824.             duration=125
  825.             image="projectiles/fireball-n.png"
  826.             image_diagonal="projectiles/fireball-nw.png"
  827.             offset=0.3~0.60
  828.         [/missile_frame]
  829.         [missile_frame]
  830.             duration=55
  831.             image="projectiles/fireball-n-2.png"
  832.             image_diagonal="projectiles/fireball-nw-2.png"
  833.             offset=0.7~0.8
  834.         [/missile_frame]
  835.         [missile_frame]
  836.             duration=30
  837.             image="projectiles/fireball-n-1.png"
  838.             image_diagonal="projectiles/fireball-nw-1.png"
  839.             offset=0.8~0.9
  840.         [/missile_frame]
  841.  
  842.         [missile_frame]
  843.             duration=60
  844.             halo="projectiles/fireball-impact-1.png"
  845.             offset=1.0
  846.         [/missile_frame]
  847.         [missile_frame]
  848.             duration=60
  849.             halo="projectiles/fireball-impact-2.png"
  850.             offset=1.0
  851.         [/missile_frame]
  852.         [missile_frame]
  853.             duration=60
  854.             halo="projectiles/fireball-impact-3.png"
  855.             offset=1.0
  856.         [/missile_frame]
  857.         [missile_frame]
  858.             duration=60
  859.             halo="projectiles/fireball-impact-4.png"
  860.             offset=1.0
  861.         [/missile_frame]
  862.         [missile_frame]
  863.             duration=60
  864.             halo="projectiles/fireball-impact-5.png"
  865.             offset=1.0
  866.         [/missile_frame]
  867.         [missile_frame]
  868.             duration=60
  869.             halo="projectiles/fireball-impact-6.png"
  870.             offset=1.0
  871.         [/missile_frame]
  872.         [missile_frame]
  873.             duration=60
  874.             halo="projectiles/fireball-impact-7.png"
  875.             offset=1.0
  876.         [/missile_frame]
  877.         [missile_frame]
  878.             duration=60
  879.             halo="projectiles/fireball-impact-8.png"
  880.             offset=1.0
  881.         [/missile_frame]
  882.         [missile_frame]
  883.             duration=60
  884.             halo="projectiles/fireball-impact-9.png"
  885.             offset=1.0
  886.         [/missile_frame]
  887.         [missile_frame]
  888.             duration=60
  889.             halo="projectiles/fireball-impact-10.png"
  890.             offset=1.0
  891.         [/missile_frame]
  892.         [missile_frame]
  893.             duration=60
  894.             halo="projectiles/fireball-impact-11.png"
  895.             offset=1.0
  896.         [/missile_frame]
  897.         [missile_frame]
  898.             duration=60
  899.             halo="projectiles/fireball-impact-12.png"
  900.             offset=1.0
  901.         [/missile_frame]
  902.         [missile_frame]
  903.             duration=60
  904.             halo="projectiles/fireball-impact-13.png"
  905.             offset=1.0
  906.         [/missile_frame]
  907.         [missile_frame]
  908.             duration=60
  909.             halo="projectiles/fireball-impact-14.png"
  910.             offset=1.0
  911.         [/missile_frame]
  912.         [missile_frame]
  913.             duration=60
  914.             halo="projectiles/fireball-impact-15.png"
  915.             offset=1.0
  916.         [/missile_frame]
  917.         [missile_frame]
  918.             duration=60
  919.             halo="projectiles/fireball-impact-16.png"
  920.             offset=1.0
  921.         [/missile_frame]
  922.     [/if]
  923.     [else]
  924.         direction=s,se,sw
  925.         hits=yes
  926.  
  927.         [missile_frame]
  928.             duration=40
  929.             image="projectiles/fireball-n-1.png"
  930.             image_diagonal="projectiles/fireball-nw-1.png"
  931.             offset=0.0~0.10
  932.         [/missile_frame]
  933.         [missile_frame]
  934.             duration=100
  935.             image="projectiles/fireball-n-2.png"
  936.             image_diagonal="projectiles/fireball-nw-2.png"
  937.             offset=0.1~0.30
  938.         [/missile_frame]
  939.         [missile_frame]
  940.             duration=125
  941.             image="projectiles/fireball-n.png"
  942.             image_diagonal="projectiles/fireball-nw.png"
  943.             offset=0.3~0.60
  944.         [/missile_frame]
  945.         [missile_frame]
  946.             duration=55
  947.             image="projectiles/fireball-n-2.png"
  948.             image_diagonal="projectiles/fireball-nw-2.png"
  949.             offset=0.7~0.8
  950.         [/missile_frame]
  951.         [missile_frame]
  952.             duration=30
  953.             image="projectiles/fireball-n-1.png"
  954.             image_diagonal="projectiles/fireball-nw-1.png"
  955.             offset=0.8~0.9
  956.         [/missile_frame]
  957.  
  958.         [missile_frame]
  959.             duration=60
  960.             halo="projectiles/fireball-impact-1.png~FL(vert)"
  961.             offset=1.0
  962.         [/missile_frame]
  963.         [missile_frame]
  964.             duration=60
  965.             halo="projectiles/fireball-impact-2.png~FL(vert)"
  966.             offset=1.0
  967.         [/missile_frame]
  968.         [missile_frame]
  969.             duration=60
  970.             halo="projectiles/fireball-impact-3.png~FL(vert)"
  971.             offset=1.0
  972.         [/missile_frame]
  973.         [missile_frame]
  974.             duration=60
  975.             halo="projectiles/fireball-impact-4.png~FL(vert)"
  976.             offset=1.0
  977.         [/missile_frame]
  978.         [missile_frame]
  979.             duration=60
  980.             halo="projectiles/fireball-impact-5.png~FL(vert)"
  981.             offset=1.0
  982.         [/missile_frame]
  983.         [missile_frame]
  984.             duration=60
  985.             halo="projectiles/fireball-impact-6.png~FL(vert)"
  986.             offset=1.0
  987.         [/missile_frame]
  988.         [missile_frame]
  989.             duration=60
  990.             halo="projectiles/fireball-impact-7.png~FL(vert)"
  991.             offset=1.0
  992.         [/missile_frame]
  993.         [missile_frame]
  994.             duration=60
  995.             halo="projectiles/fireball-impact-8.png~FL(vert)"
  996.             offset=1.0
  997.         [/missile_frame]
  998.         [missile_frame]
  999.             duration=60
  1000.             halo="projectiles/fireball-impact-9.png~FL(vert)"
  1001.             offset=1.0
  1002.         [/missile_frame]
  1003.         [missile_frame]
  1004.             duration=60
  1005.             halo="projectiles/fireball-impact-10.png~FL(vert)"
  1006.             offset=1.0
  1007.         [/missile_frame]
  1008.         [missile_frame]
  1009.             duration=60
  1010.             halo="projectiles/fireball-impact-11.png~FL(vert)"
  1011.             offset=1.0
  1012.         [/missile_frame]
  1013.         [missile_frame]
  1014.             duration=60
  1015.             halo="projectiles/fireball-impact-12.png~FL(vert)"
  1016.             offset=1.0
  1017.         [/missile_frame]
  1018.         [missile_frame]
  1019.             duration=60
  1020.             halo="projectiles/fireball-impact-13.png~FL(vert)"
  1021.             offset=1.0
  1022.         [/missile_frame]
  1023.         [missile_frame]
  1024.             duration=60
  1025.             halo="projectiles/fireball-impact-14.png~FL(vert)"
  1026.             offset=1.0
  1027.         [/missile_frame]
  1028.         [missile_frame]
  1029.             duration=60
  1030.             halo="projectiles/fireball-impact-15.png~FL(vert)"
  1031.             offset=1.0
  1032.         [/missile_frame]
  1033.         [missile_frame]
  1034.             duration=60
  1035.             halo="projectiles/fireball-impact-16.png~FL(vert)"
  1036.             offset=1.0
  1037.         [/missile_frame]
  1038.     [/else]
  1039.     [else]
  1040.         direction=n,ne,nw
  1041.         hits=no
  1042.  
  1043.         missile_offset=0.0~0.20,0.20~0.35,0.35~0.40,0.4~0.45
  1044.  
  1045.         [missile_frame]
  1046.             duration=100
  1047.             halo="projectiles/fireball-fail-1.png"
  1048.         [/missile_frame]
  1049.         [missile_frame]
  1050.             duration=100
  1051.             halo="projectiles/fireball-fail-2.png"
  1052.         [/missile_frame]
  1053.         [missile_frame]
  1054.             duration=100
  1055.             halo="projectiles/fireball-fail-3.png"
  1056.         [/missile_frame]
  1057.         [missile_frame]
  1058.             duration=100
  1059.             halo="projectiles/fireball-fail-4.png"
  1060.         [/missile_frame]
  1061.         [missile_frame]
  1062.             duration=100
  1063.             halo="projectiles/fireball-fail-5.png"
  1064.         [/missile_frame]
  1065.         [missile_frame]
  1066.             duration=100
  1067.             halo="projectiles/fireball-fail-6.png"
  1068.         [/missile_frame]
  1069.         [missile_frame]
  1070.             duration=100
  1071.             halo="projectiles/fireball-fail-7.png"
  1072.         [/missile_frame]
  1073.     [/else]
  1074.     [else]
  1075.         direction=s,se,sw
  1076.         hits=no
  1077.  
  1078.         missile_offset=0.0~0.20,0.20~0.35,0.35~0.40,0.4~0.45
  1079.  
  1080.         [missile_frame]
  1081.             duration=100
  1082.             halo="projectiles/fireball-fail-1.png~FL(vert)"
  1083.         [/missile_frame]
  1084.         [missile_frame]
  1085.             duration=100
  1086.             halo="projectiles/fireball-fail-2.png~FL(vert)"
  1087.         [/missile_frame]
  1088.         [missile_frame]
  1089.             duration=100
  1090.             halo="projectiles/fireball-fail-3.png~FL(vert)"
  1091.         [/missile_frame]
  1092.         [missile_frame]
  1093.             duration=100
  1094.             halo="projectiles/fireball-fail-4.png~FL(vert)"
  1095.         [/missile_frame]
  1096.         [missile_frame]
  1097.             duration=100
  1098.             halo="projectiles/fireball-fail-5.png~FL(vert)"
  1099.         [/missile_frame]
  1100.         [missile_frame]
  1101.             duration=100
  1102.             halo="projectiles/fireball-fail-6.png~FL(vert)"
  1103.         [/missile_frame]
  1104.         [missile_frame]
  1105.             duration=100
  1106.             halo="projectiles/fireball-fail-7.png~FL(vert)"
  1107.         [/missile_frame]
  1108.     [/else]
  1109. #enddef
  1110.  
  1111. #define MISSILE_FRAME_ICE
  1112.     [if]
  1113.         hits=yes
  1114.         [missile_frame]
  1115.             begin=-200
  1116.             end=0
  1117.             image="projectiles/whitemissile-n.png"
  1118.             image_diagonal="projectiles/whitemissile-ne.png"
  1119.             offset=0.0~0.8
  1120.         [/missile_frame]
  1121.         [missile_frame]
  1122.             begin=0
  1123.             end=50
  1124.             halo="projectiles/whitemissile-impact-1.png"
  1125.             offset=0.8
  1126.         [/missile_frame]
  1127.         [missile_frame]
  1128.             begin=50
  1129.             end=100
  1130.             halo="projectiles/whitemissile-impact-2.png"
  1131.             offset=0.92
  1132.         [/missile_frame]
  1133.         [missile_frame]
  1134.             begin=100
  1135.             end=150
  1136.             halo="projectiles/whitemissile-impact-3.png"
  1137.             offset=0.94
  1138.         [/missile_frame]
  1139.         [missile_frame]
  1140.             begin=150
  1141.             end=200
  1142.             halo="projectiles/whitemissile-impact-4.png"
  1143.             offset=0.96
  1144.         [/missile_frame]
  1145.         [missile_frame]
  1146.             begin=200
  1147.             end=250
  1148.             halo="projectiles/whitemissile-impact-5.png"
  1149.             offset=0.98
  1150.         [/missile_frame]
  1151.         [missile_frame]
  1152.             begin=250
  1153.             end=300
  1154.             halo="projectiles/whitemissile-impact-6.png"
  1155.             offset=1.0
  1156.         [/missile_frame]
  1157.         [missile_frame]
  1158.             begin=300
  1159.             end=350
  1160.             halo="projectiles/whitemissile-impact-7.png"
  1161.             offset=1.02
  1162.         [/missile_frame]
  1163.         [missile_frame]
  1164.             begin=350
  1165.             end=400
  1166.             halo="projectiles/whitemissile-impact-8.png"
  1167.             offset=1.04
  1168.         [/missile_frame]
  1169.     [/if]
  1170.     [else]
  1171.         hits=no
  1172.         [missile_frame]
  1173.             begin=-200
  1174.             end=0
  1175.             image="projectiles/whitemissile-n.png"
  1176.             image_diagonal="projectiles/whitemissile-ne.png"
  1177.             offset=0.0~0.8
  1178.             alpha=.8~0.0:200
  1179.         [/missile_frame]
  1180.     [/else]
  1181. #enddef
  1182.  
  1183. #define MISSILE_FRAME_HATCHET
  1184.     # Animate a projectile for a thrown-hatchet attack.
  1185.     [missile_frame]
  1186.         begin=-200
  1187.         end=-150
  1188.         image="projectiles/hatchet-2.png"
  1189.         image_diagonal="projectiles/hatchet-2.png"
  1190.     [/missile_frame]
  1191.     [missile_frame]
  1192.         begin=-150
  1193.         end=-100
  1194.         image="projectiles/hatchet-3.png"
  1195.         image_diagonal="projectiles/hatchet-3.png"
  1196.     [/missile_frame]
  1197.     [missile_frame]
  1198.         begin=-100
  1199.         end=-50
  1200.         image="projectiles/hatchet-4.png"
  1201.         image_diagonal="projectiles/hatchet-4.png"
  1202.     [/missile_frame]
  1203.     [missile_frame]
  1204.         begin=-50
  1205.         end=0
  1206.         image="projectiles/hatchet-1.png"
  1207.         image_diagonal="projectiles/hatchet-1.png"
  1208.     [/missile_frame]
  1209. #enddef
  1210.  
  1211. #define FIRE_BURST_SMALL
  1212.     [missile_frame]
  1213.         begin=0
  1214.         end=75
  1215.         image="projectiles/fire-burst-small-1.png"
  1216.         image_diagonal="projectiles/fire-burst-small-1.png"
  1217.         offset=0.8
  1218.     [/missile_frame]
  1219.     [missile_frame]
  1220.         begin=75
  1221.         end=150
  1222.         image="projectiles/fire-burst-small-2.png"
  1223.         image_diagonal="projectiles/fire-burst-small-2.png"
  1224.         offset=0.83
  1225.     [/missile_frame]
  1226.     [missile_frame]
  1227.         begin=150
  1228.         end=225
  1229.         image="projectiles/fire-burst-small-3.png"
  1230.         image_diagonal="projectiles/fire-burst-small-3.png"
  1231.         offset=0.86
  1232.     [/missile_frame]
  1233.     [missile_frame]
  1234.         begin=225
  1235.         end=300
  1236.         image="projectiles/fire-burst-small-4.png"
  1237.         image_diagonal="projectiles/fire-burst-small-4.png"
  1238.         offset=0.89
  1239.     [/missile_frame]
  1240.     [missile_frame]
  1241.         begin=300
  1242.         end=375
  1243.         image="projectiles/fire-burst-small-5.png"
  1244.         image_diagonal="projectiles/fire-burst-small-5.png"
  1245.         offset=0.92
  1246.     [/missile_frame]
  1247.     [missile_frame]
  1248.         begin=375
  1249.         end=450
  1250.         image="projectiles/fire-burst-small-6.png"
  1251.         image_diagonal="projectiles/fire-burst-small-6.png"
  1252.         offset=0.95
  1253.     [/missile_frame]
  1254.     [missile_frame]
  1255.         begin=450
  1256.         end=525
  1257.         image="projectiles/fire-burst-small-7.png"
  1258.         image_diagonal="projectiles/fire-burst-small-7.png"
  1259.         offset=0.98
  1260.     [/missile_frame]
  1261.     [missile_frame]
  1262.         begin=525
  1263.         end=600
  1264.         image="projectiles/fire-burst-small-8.png"
  1265.         image_diagonal="projectiles/fire-burst-small-8.png"
  1266.         offset=1.0
  1267.     [/missile_frame]
  1268. #enddef
  1269.  
  1270. #define LIGHTNING_BOLT DIRECTION_NUMBER
  1271.     [if]
  1272.         direction=sw,s,se
  1273.  
  1274.         [missile_frame]
  1275.             begin=-250
  1276.             end=150
  1277.             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
  1278.             halo_y=-125
  1279.             offset=1.0
  1280.         [/missile_frame]
  1281.     [/if]
  1282.     [else]
  1283.         direction=nw,n,ne
  1284.  
  1285.         [missile_frame]
  1286.             begin=-250
  1287.             end=150
  1288.             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
  1289.             halo_y=-125
  1290.             offset=1.0
  1291.         [/missile_frame]
  1292.     [/else]
  1293. #enddef
  1294.  
  1295. #define MAGIC_MISSILE OFFSET_X OFFSET_Y
  1296.     magic_missile_start_time=-750
  1297.  
  1298.     magic_missile_trail_1_start_time=-350
  1299.     magic_missile_trail_2_start_time=-350
  1300.     magic_missile_trail_3_start_time=-350
  1301.  
  1302.     [magic_missile_frame]
  1303.         duration=400
  1304.         halo=halo/mage-halo1.png,halo/mage-halo2.png,halo/mage-halo3.png,halo/mage-halo4.png,halo/mage-halo5.png
  1305.         halo_x={OFFSET_X}~0
  1306.         halo_y={OFFSET_Y}~-54
  1307.         offset=0.001~-0.083,-0.083~-0.25,-0.25~-0.5
  1308.     [/magic_missile_frame]
  1309.     [magic_missile_frame]
  1310.         duration=350
  1311.         halo=halo/mage-halo1.png,halo/mage-halo2.png,halo/mage-halo3.png,halo/mage-halo4.png,halo/mage-halo5.png,misc/blank-hex.png:1
  1312.         halo_y=-54~-45,-45~-27,-27~0
  1313.         offset=-0.5~-0.25,-0.25~0.25,0.25~1.0
  1314.     [/magic_missile_frame]
  1315.  
  1316.     [magic_missile_trail_1_frame]
  1317.         duration=350
  1318.         halo=misc/blank-hex.png:40,halo/mage-preparation-halo1.png,halo/mage-preparation-halo2.png,halo/mage-preparation-halo3.png,halo/mage-preparation-halo4.png,halo/mage-preparation-halo5.png,halo/mage-preparation-halo6.png,halo/mage-preparation-halo7.png,misc/blank-hex.png:1
  1319.         halo_y=-54:40,-54~-45,-45~-27,-27~0
  1320.         offset=0.001:40,-0.5~-0.25,-0.25~0.25,0.25~1.0
  1321.     [/magic_missile_trail_1_frame]
  1322.     [magic_missile_trail_2_frame]
  1323.         duration=350
  1324.         halo=misc/blank-hex.png:80,halo/mage-preparation-halo1.png,halo/mage-preparation-halo2.png,halo/mage-preparation-halo3.png,halo/mage-preparation-halo4.png,halo/mage-preparation-halo5.png,halo/mage-preparation-halo6.png,halo/mage-preparation-halo7.png,misc/blank-hex.png:1
  1325.         halo_y=-54:80,-54~-45,-45~-27,-27~0
  1326.         offset=0.001:80,-0.5~-0.25,-0.25~0.25,0.25~1.0
  1327.     [/magic_missile_trail_2_frame]
  1328.     [magic_missile_trail_3_frame]
  1329.         duration=350
  1330.         halo=misc/blank-hex.png:120,halo/mage-preparation-halo1.png,halo/mage-preparation-halo2.png,halo/mage-preparation-halo3.png,halo/mage-preparation-halo4.png,halo/mage-preparation-halo5.png,halo/mage-preparation-halo6.png,halo/mage-preparation-halo7.png,misc/blank-hex.png:1
  1331.         halo_y=-54:120,-54~-45,-45~-27,-27~0
  1332.         offset=0.001:120,-0.5~-0.25,-0.25~0.25,0.25~1.0
  1333.     [/magic_missile_trail_3_frame]
  1334. #enddef
  1335.  
  1336. #define MAGIC_MISSILE_STAFF_FLARE START_TIME DURATION_TIME OFFSET_X OFFSET_Y
  1337.     magic_missile_flare_start_time={START_TIME}
  1338.  
  1339.     [magic_missile_flare_frame]
  1340.         duration={DURATION_TIME}
  1341.         halo=halo/mage-preparation-halo1.png,halo/mage-preparation-halo2.png,halo/mage-preparation-halo3.png,halo/mage-preparation-halo4.png,halo/mage-preparation-halo5.png,halo/mage-preparation-halo6.png,halo/mage-preparation-halo7.png,misc/blank-hex.png:1
  1342.         halo_x={OFFSET_X}
  1343.         halo_y={OFFSET_Y}
  1344.         offset=0
  1345.     [/magic_missile_flare_frame]
  1346. #enddef
  1347.  
  1348. #define MERMAID_STAFF_FLARE OFFSET_X OFFSET_Y
  1349.     flare_start_time=-420
  1350.     [flare_frame]
  1351.         duration=60
  1352.         halo=halo/merfolk/staff-flare-1.png
  1353.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1354.     [/flare_frame]
  1355.     [flare_frame]
  1356.         duration=60
  1357.         halo=halo/merfolk/staff-flare-2.png
  1358.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1359.     [/flare_frame]
  1360.     [flare_frame]
  1361.         duration=60
  1362.         halo=halo/merfolk/staff-flare-3.png
  1363.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1364.     [/flare_frame]
  1365.     [flare_frame]
  1366.         duration=60
  1367.         halo=halo/merfolk/staff-flare-4.png
  1368.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1369.     [/flare_frame]
  1370.     [flare_frame]
  1371.         duration=60
  1372.         halo=halo/merfolk/staff-flare-5.png
  1373.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1374.     [/flare_frame]
  1375.     [flare_frame]
  1376.         duration=60
  1377.         halo=halo/merfolk/staff-flare-6.png
  1378.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1379.     [/flare_frame]
  1380.     [flare_frame]
  1381.         duration=60
  1382.         halo=halo/merfolk/staff-flare-7.png
  1383.         halo_x,halo_y={OFFSET_X},{OFFSET_Y}
  1384.     [/flare_frame]
  1385.     [flare_frame]
  1386.         duration=10
  1387.     [/flare_frame]
  1388. #enddef
  1389.  
  1390. #define MERMAID_WATER_BLAST_HALO
  1391.     water_start_time=-420
  1392.     [water_frame]
  1393.         duration=60
  1394.         halo=halo/merfolk/water-halo-1.png
  1395.     [/water_frame]
  1396.     [water_frame]
  1397.         duration=60
  1398.         halo=halo/merfolk/water-halo-2.png
  1399.     [/water_frame]
  1400.     [water_frame]
  1401.         duration=60
  1402.         halo=halo/merfolk/water-halo-3.png
  1403.     [/water_frame]
  1404.     [water_frame]
  1405.         duration=60
  1406.         halo=halo/merfolk/water-halo-4.png
  1407.     [/water_frame]
  1408.     [water_frame]
  1409.         duration=60
  1410.         halo=halo/merfolk/water-halo-5.png
  1411.     [/water_frame]
  1412.     [water_frame]
  1413.         duration=60
  1414.         halo=halo/merfolk/water-halo-6.png
  1415.     [/water_frame]
  1416.     [water_frame]
  1417.         duration=60
  1418.         halo=halo/merfolk/water-halo-7.png
  1419.     [/water_frame]
  1420.     [water_frame]
  1421.         duration=10
  1422.     [/water_frame]
  1423. #enddef
  1424.  
  1425. #define MISSILE_FRAME_MUZZLE_FLARE_MISS
  1426.     missile_start_time=-250
  1427.     missile_offset=0.1
  1428.     [missile_frame]
  1429.         duration=100
  1430.         halo="projectiles/misfire-spark-1.png"
  1431.     [/missile_frame]
  1432.     [missile_frame]
  1433.         duration=100
  1434.         halo="projectiles/misfire-spark-2.png"
  1435.     [/missile_frame]
  1436.     [missile_frame]
  1437.         duration=100
  1438.         halo="projectiles/misfire-spark-3.png"
  1439.     [/missile_frame]
  1440.     [missile_frame]
  1441.         duration=100
  1442.         halo="projectiles/misfire-spark-4.png"
  1443.     [/missile_frame]
  1444. #enddef
  1445. #define MISSILE_FRAME_MUZZLE_FLARE_HIT_NORTH START_X START_Y
  1446.     missile_start_time=-250
  1447.     missile_offset=0.5~1.1:250,1.1~1.5:200,1.5~1.7:360
  1448.     missile_halo_x={START_X}~0
  1449.     missile_halo_y={START_Y}~0
  1450.     [missile_frame]
  1451.         duration=100
  1452.         halo="projectiles/muzzle-flash-n-1.png"
  1453.     [/missile_frame]
  1454.     [missile_frame]
  1455.         duration=80
  1456.         halo="projectiles/muzzle-flash-n-2.png"
  1457.     [/missile_frame]
  1458.     [missile_frame]
  1459.         duration=70
  1460.         halo="projectiles/muzzle-flash-n-3.png"
  1461.     [/missile_frame]
  1462.     [missile_frame]
  1463.         duration=60
  1464.         halo="projectiles/muzzle-flash-4.png"
  1465.     [/missile_frame]
  1466.     [missile_frame]
  1467.         duration=60
  1468.         halo="projectiles/muzzle-flash-5.png"
  1469.     [/missile_frame]
  1470.     [missile_frame]
  1471.         duration=60
  1472.         halo="projectiles/muzzle-flash-6.png"
  1473.     [/missile_frame]
  1474.     [missile_frame]
  1475.         duration=60
  1476.         halo="projectiles/muzzle-flash-7.png"
  1477.     [/missile_frame]
  1478.     [missile_frame]
  1479.         duration=60
  1480.         halo="projectiles/muzzle-flash-8.png"
  1481.     [/missile_frame]
  1482.     [missile_frame]
  1483.         duration=60
  1484.         halo="projectiles/muzzle-flash-9.png"
  1485.     [/missile_frame]
  1486.     [missile_frame]
  1487.         duration=60
  1488.         halo="projectiles/muzzle-flash-10.png"
  1489.     [/missile_frame]
  1490.     [missile_frame]
  1491.         duration=60
  1492.         halo="projectiles/muzzle-flash-11.png"
  1493.     [/missile_frame]
  1494.     [missile_frame]
  1495.         duration=60
  1496.         halo="projectiles/muzzle-flash-12.png"
  1497.     [/missile_frame]
  1498.     [missile_frame]
  1499.         duration=60
  1500.         halo="projectiles/muzzle-flash-13.png"
  1501.     [/missile_frame]
  1502.     [missile_frame]
  1503.         duration=60
  1504.         halo="projectiles/muzzle-flash-14.png"
  1505.     [/missile_frame]
  1506. #enddef
  1507. #define MISSILE_FRAME_MUZZLE_FLARE_HIT_SOUTH START_X START_Y
  1508.     missile_start_time=-250
  1509.     missile_offset=0.5~1.1:250,1.1~1.5:200,1.5~1.7:360
  1510.     missile_halo_x={START_X}~0
  1511.     missile_halo_y={START_Y}~0
  1512.     [missile_frame]
  1513.         duration=100
  1514.         halo="projectiles/muzzle-flash-s-1.png~FL(vertical)"
  1515.     [/missile_frame]
  1516.     [missile_frame]
  1517.         duration=80
  1518.         halo="projectiles/muzzle-flash-s-2.png~FL(vertical)"
  1519.     [/missile_frame]
  1520.     [missile_frame]
  1521.         duration=70
  1522.         halo="projectiles/muzzle-flash-s-3.png~FL(vertical)"
  1523.     [/missile_frame]
  1524.     [missile_frame]
  1525.         duration=60
  1526.         halo="projectiles/muzzle-flash-4.png"
  1527.     [/missile_frame]
  1528.     [missile_frame]
  1529.         duration=60
  1530.         halo="projectiles/muzzle-flash-5.png"
  1531.     [/missile_frame]
  1532.     [missile_frame]
  1533.         duration=60
  1534.         halo="projectiles/muzzle-flash-6.png"
  1535.     [/missile_frame]
  1536.     [missile_frame]
  1537.         duration=60
  1538.         halo="projectiles/muzzle-flash-7.png"
  1539.     [/missile_frame]
  1540.     [missile_frame]
  1541.         duration=60
  1542.         halo="projectiles/muzzle-flash-8.png"
  1543.     [/missile_frame]
  1544.     [missile_frame]
  1545.         duration=60
  1546.         halo="projectiles/muzzle-flash-9.png"
  1547.     [/missile_frame]
  1548.     [missile_frame]
  1549.         duration=60
  1550.         halo="projectiles/muzzle-flash-10.png"
  1551.     [/missile_frame]
  1552.     [missile_frame]
  1553.         duration=60
  1554.         halo="projectiles/muzzle-flash-11.png"
  1555.     [/missile_frame]
  1556.     [missile_frame]
  1557.         duration=60
  1558.         halo="projectiles/muzzle-flash-12.png"
  1559.     [/missile_frame]
  1560.     [missile_frame]
  1561.         duration=60
  1562.         halo="projectiles/muzzle-flash-13.png"
  1563.     [/missile_frame]
  1564.     [missile_frame]
  1565.         duration=60
  1566.         halo="projectiles/muzzle-flash-14.png"
  1567.     [/missile_frame]
  1568. #enddef
  1569. #define MISSILE_FRAME_MUZZLE_FLARE_HIT_DIAG_NORTH START_X START_Y
  1570.     missile_start_time=-250
  1571.     missile_offset=0.5~1.1:250,1.1~1.5:200,1.5~1.7:360
  1572.     missile_halo_x={START_X}~0
  1573.     missile_halo_y={START_Y}~0
  1574.     [missile_frame]
  1575.         duration=100
  1576.         halo="projectiles/muzzle-flash-ne-1.png"
  1577.     [/missile_frame]
  1578.     [missile_frame]
  1579.         duration=80
  1580.         halo="projectiles/muzzle-flash-ne-2.png"
  1581.     [/missile_frame]
  1582.     [missile_frame]
  1583.         duration=70
  1584.         halo="projectiles/muzzle-flash-ne-3.png"
  1585.     [/missile_frame]
  1586.     [missile_frame]
  1587.         duration=60
  1588.         halo="projectiles/muzzle-flash-4.png"
  1589.     [/missile_frame]
  1590.     [missile_frame]
  1591.         duration=60
  1592.         halo="projectiles/muzzle-flash-5.png"
  1593.     [/missile_frame]
  1594.     [missile_frame]
  1595.         duration=60
  1596.         halo="projectiles/muzzle-flash-6.png"
  1597.     [/missile_frame]
  1598.     [missile_frame]
  1599.         duration=60
  1600.         halo="projectiles/muzzle-flash-7.png"
  1601.     [/missile_frame]
  1602.     [missile_frame]
  1603.         duration=60
  1604.         halo="projectiles/muzzle-flash-8.png"
  1605.     [/missile_frame]
  1606.     [missile_frame]
  1607.         duration=60
  1608.         halo="projectiles/muzzle-flash-9.png"
  1609.     [/missile_frame]
  1610.     [missile_frame]
  1611.         duration=60
  1612.         halo="projectiles/muzzle-flash-10.png"
  1613.     [/missile_frame]
  1614.     [missile_frame]
  1615.         duration=60
  1616.         halo="projectiles/muzzle-flash-11.png"
  1617.     [/missile_frame]
  1618.     [missile_frame]
  1619.         duration=60
  1620.         halo="projectiles/muzzle-flash-12.png"
  1621.     [/missile_frame]
  1622.     [missile_frame]
  1623.         duration=60
  1624.         halo="projectiles/muzzle-flash-13.png"
  1625.     [/missile_frame]
  1626.     [missile_frame]
  1627.         duration=60
  1628.         halo="projectiles/muzzle-flash-14.png"
  1629.     [/missile_frame]
  1630. #enddef
  1631. #define MISSILE_FRAME_MUZZLE_FLARE_HIT_DIAG_SOUTH START_X START_Y
  1632.     missile_start_time=-250
  1633.     missile_offset=0.5~1.1:250,1.1~1.5:200,1.5~1.7:360
  1634.     missile_halo_x={START_X}~0
  1635.     missile_halo_y={START_Y}~0
  1636.     [missile_frame]
  1637.         duration=100
  1638.         halo="projectiles/muzzle-flash-se-1.png~FL(vertical)"
  1639.     [/missile_frame]
  1640.     [missile_frame]
  1641.         duration=80
  1642.         halo="projectiles/muzzle-flash-se-2.png~FL(vertical)"
  1643.     [/missile_frame]
  1644.     [missile_frame]
  1645.         duration=70
  1646.         halo="projectiles/muzzle-flash-se-3.png~FL(vertical)"
  1647.     [/missile_frame]
  1648.     [missile_frame]
  1649.         duration=60
  1650.         halo="projectiles/muzzle-flash-4.png"
  1651.     [/missile_frame]
  1652.     [missile_frame]
  1653.         duration=60
  1654.         halo="projectiles/muzzle-flash-5.png"
  1655.     [/missile_frame]
  1656.     [missile_frame]
  1657.         duration=60
  1658.         halo="projectiles/muzzle-flash-6.png"
  1659.     [/missile_frame]
  1660.     [missile_frame]
  1661.         duration=60
  1662.         halo="projectiles/muzzle-flash-7.png"
  1663.     [/missile_frame]
  1664.     [missile_frame]
  1665.         duration=60
  1666.         halo="projectiles/muzzle-flash-8.png"
  1667.     [/missile_frame]
  1668.     [missile_frame]
  1669.         duration=60
  1670.         halo="projectiles/muzzle-flash-9.png"
  1671.     [/missile_frame]
  1672.     [missile_frame]
  1673.         duration=60
  1674.         halo="projectiles/muzzle-flash-10.png"
  1675.     [/missile_frame]
  1676.     [missile_frame]
  1677.         duration=60
  1678.         halo="projectiles/muzzle-flash-11.png"
  1679.     [/missile_frame]
  1680.     [missile_frame]
  1681.         duration=60
  1682.         halo="projectiles/muzzle-flash-12.png"
  1683.     [/missile_frame]
  1684.     [missile_frame]
  1685.         duration=60
  1686.         halo="projectiles/muzzle-flash-13.png"
  1687.     [/missile_frame]
  1688.     [missile_frame]
  1689.         duration=60
  1690.         halo="projectiles/muzzle-flash-14.png"
  1691.     [/missile_frame]
  1692. #enddef
  1693.  
  1694. #define MISSILE_FRAME_STONE_HIT OFFSET_X OFFSET_Y
  1695.     [sling_stone_frame]
  1696.         begin=-201
  1697.         end=-200
  1698.         image="misc/blank-hex.png"
  1699.     [/sling_stone_frame]
  1700.     [sling_stone_frame]
  1701.         begin=-200
  1702.         end=0
  1703.         halo="projectiles/stone.png"
  1704.         halo_x={OFFSET_X}~0
  1705.         halo_y={OFFSET_Y}~0
  1706.         y=0~-5,-5~-8,-8~-9,-9~-10,-10~-9,-9~-8,-8~-5,-5~0
  1707.         offset=0.0~1.0
  1708.     [/sling_stone_frame]
  1709.     [sling_stone_frame]
  1710.         begin=0
  1711.         end=1
  1712.         image="misc/blank-hex.png"
  1713.     [/sling_stone_frame]
  1714. #enddef
  1715.  
  1716. #define MISSILE_FRAME_STONE_MISS OFFSET_X OFFSET_Y
  1717.     [sling_stone_frame]
  1718.         begin=-201
  1719.         end=-200
  1720.         image="misc/blank-hex.png"
  1721.     [/sling_stone_frame]
  1722.     [sling_stone_frame]
  1723.         begin=-200
  1724.         end=100
  1725.         halo="projectiles/stone.png"
  1726.         halo_x={OFFSET_X}~0
  1727.         halo_y={OFFSET_Y}~0
  1728.         y=0~-5,-5~-8,-8~-9,-9~-10,-10~-9,-9~-8,-8~-5,-5~0
  1729.         offset=0.0~1.5
  1730.     [/sling_stone_frame]
  1731.     [sling_stone_frame]
  1732.         begin=100
  1733.         end=101
  1734.         image="misc/blank-hex.png"
  1735.     [/sling_stone_frame]
  1736. #enddef
  1737.  
  1738. #define DRAKE_UNWALKABLE_TERRAINS
  1739. Wo,Ww,Ww^Vm,Chs,Chw,Ss,Qxu,Ql,Qlf#enddef
  1740.  
  1741. #define DRAKE_STANDING_ANIM DRAKE_NAME
  1742.     [standing_anim]
  1743.         [frame]
  1744.             image="units/drakes/{DRAKE_NAME}.png"
  1745.             duration=50
  1746.         [/frame]
  1747.     [/standing_anim]
  1748.     [standing_anim]
  1749.         start_time=0
  1750.         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
  1751.         submerge=0.01
  1752.         [frame]
  1753.             duration=100
  1754.             image="units/drakes/{DRAKE_NAME}-fly-1.png"
  1755.         [/frame]
  1756.         [frame]
  1757.             duration=100
  1758.             image="units/drakes/{DRAKE_NAME}-fly-2.png"
  1759.         [/frame]
  1760.         [frame]
  1761.             duration=100
  1762.             image="units/drakes/{DRAKE_NAME}-fly-3.png"
  1763.         [/frame]
  1764.         [frame]
  1765.             duration=100
  1766.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  1767.         [/frame]
  1768.         [frame]
  1769.             duration=100
  1770.             image="units/drakes/{DRAKE_NAME}-fly-5.png"
  1771.         [/frame]
  1772.         [frame]
  1773.             duration=100
  1774.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  1775.         [/frame]
  1776.         [frame]
  1777.             duration=100
  1778.             image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
  1779.         [/frame]
  1780.         [frame]
  1781.             duration=100
  1782.             image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
  1783.         [/frame]
  1784.     [/standing_anim]
  1785.     [pre_movement_anim]
  1786.         start_time=0
  1787.         terrain_type=!,{DRAKE_UNWALKABLE_TERRAINS}
  1788.         [frame]
  1789.             duration=50
  1790.             image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
  1791.         [/frame]
  1792.         [frame]
  1793.             duration=50
  1794.             image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
  1795.         [/frame]
  1796.         [frame]
  1797.             duration=50
  1798.             image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
  1799.         [/frame]
  1800.         [frame]
  1801.             duration=50
  1802.             image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
  1803.         [/frame]
  1804.     [/pre_movement_anim]
  1805.     [movement_anim]
  1806.         start_time=0
  1807.         submerge=0.01
  1808.         [frame]
  1809.             duration=100
  1810.             image="units/drakes/{DRAKE_NAME}-fly-1.png"
  1811.         [/frame]
  1812.         [frame]
  1813.             duration=100
  1814.             image="units/drakes/{DRAKE_NAME}-fly-2.png"
  1815.         [/frame]
  1816.         [frame]
  1817.             duration=100
  1818.             image="units/drakes/{DRAKE_NAME}-fly-3.png"
  1819.         [/frame]
  1820.         [frame]
  1821.             duration=100
  1822.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  1823.         [/frame]
  1824.         [frame]
  1825.             duration=100
  1826.             image="units/drakes/{DRAKE_NAME}-fly-5.png"
  1827.         [/frame]
  1828.         [frame]
  1829.             duration=100
  1830.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  1831.         [/frame]
  1832.         [frame]
  1833.             duration=100
  1834.             image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
  1835.         [/frame]
  1836.         [frame]
  1837.             duration=100
  1838.             image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
  1839.         [/frame]
  1840.     [/movement_anim]
  1841.     [post_movement_anim]
  1842.         terrain_type=!,{DRAKE_UNWALKABLE_TERRAINS}
  1843.         start_time=0
  1844.         [frame]
  1845.             duration=100
  1846.             image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
  1847.         [/frame]
  1848.         [frame]
  1849.             duration=100
  1850.             image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
  1851.         [/frame]
  1852.         [frame]
  1853.             duration=100
  1854.             image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
  1855.         [/frame]
  1856.         [frame]
  1857.             duration=100
  1858.             image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
  1859.         [/frame]
  1860.     [/post_movement_anim]
  1861. #enddef
  1862.  
  1863. #define DRAKE_FIRE_ANIM_S_DIAGONAL DRAKE_NAME OFFSET_POSITION
  1864.     [attack_anim]
  1865.         [filter_attack]
  1866.             name=fire breath
  1867.         [/filter_attack]
  1868.         direction=se,sw
  1869.         [missile_frame]
  1870.             begin=-400
  1871.             end=100
  1872.             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
  1873.             halo_x,halo_y={OFFSET_POSITION}
  1874.         [/missile_frame]
  1875.         start_time=-900
  1876.         [if]
  1877.             hits=no
  1878.  
  1879.             [frame]
  1880.                 duration=20
  1881.                 image="units/drakes/{DRAKE_NAME}.png"
  1882.                 sound=flame-big-miss.ogg
  1883.             [/frame]
  1884.         [/if]
  1885.         [else]
  1886.             hits=yes
  1887.  
  1888.             [frame]
  1889.                 duration=20
  1890.                 image="units/drakes/{DRAKE_NAME}.png"
  1891.                 sound=flame-big.ogg
  1892.             [/frame]
  1893.         [/else]
  1894.         [frame]
  1895.             duration=100
  1896.             image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
  1897.         [/frame]
  1898.         [frame]
  1899.             duration=100
  1900.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  1901.         [/frame]
  1902.         [frame]
  1903.             duration=100
  1904.             image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
  1905.         [/frame]
  1906.         [frame]
  1907.             duration=100
  1908.             image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
  1909.         [/frame]
  1910.         [frame]
  1911.             duration=100
  1912.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  1913.         [/frame]
  1914.         [frame]
  1915.             duration=100
  1916.             image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
  1917.         [/frame]
  1918.         [frame]
  1919.             duration=100
  1920.             image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
  1921.         [/frame]
  1922.         [frame]
  1923.             duration=100
  1924.             image="units/drakes/{DRAKE_NAME}-fire-se-3.png"
  1925.         [/frame]
  1926.         [frame]
  1927.             duration=100
  1928.             image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
  1929.         [/frame]
  1930.         [frame]
  1931.             duration=100
  1932.             image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
  1933.         [/frame]
  1934.     [/attack_anim]
  1935. #enddef
  1936.  
  1937. #define DRAKE_FIRE_ANIM_N_DIAGONAL_CURRENT DRAKE_NAME OFFSET_POSITION
  1938.     [attack_anim]
  1939.         [filter_attack]
  1940.             name=fire breath
  1941.         [/filter_attack]
  1942.         direction=ne,nw
  1943.         [missile_frame]
  1944.             begin=-400
  1945.             end=100
  1946.             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
  1947.             halo_x,halo_y={OFFSET_POSITION}
  1948.         [/missile_frame]
  1949.         start_time=-900
  1950.         [if]
  1951.             hits=no
  1952.  
  1953.             [frame]
  1954.                 duration=20
  1955.                 image="units/drakes/{DRAKE_NAME}.png"
  1956.                 sound=flame-big-miss.ogg
  1957.             [/frame]
  1958.         [/if]
  1959.         [else]
  1960.             hits=yes
  1961.  
  1962.             [frame]
  1963.                 duration=20
  1964.                 image="units/drakes/{DRAKE_NAME}.png"
  1965.                 sound=flame-big.ogg
  1966.             [/frame]
  1967.         [/else]
  1968.         [frame]
  1969.             duration=100
  1970.             image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
  1971.         [/frame]
  1972.         [frame]
  1973.             duration=100
  1974.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  1975.         [/frame]
  1976.         [frame]
  1977.             duration=100
  1978.             image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
  1979.         [/frame]
  1980.         [frame]
  1981.             duration=100
  1982.             image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
  1983.         [/frame]
  1984.         [frame]
  1985.             duration=100
  1986.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  1987.         [/frame]
  1988.         [frame]
  1989.             duration=100
  1990.             image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
  1991.         [/frame]
  1992.         [frame]
  1993.             duration=100
  1994.             image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
  1995.         [/frame]
  1996.         [frame]
  1997.             duration=100
  1998.             image="units/drakes/{DRAKE_NAME}-fire-se-3.png"
  1999.         [/frame]
  2000.         [frame]
  2001.             duration=100
  2002.             image="units/drakes/{DRAKE_NAME}-fire-se-2.png"
  2003.         [/frame]
  2004.         [frame]
  2005.             duration=100
  2006.             image="units/drakes/{DRAKE_NAME}-fire-se-1.png"
  2007.         [/frame]
  2008.     [/attack_anim]
  2009. #enddef
  2010.  
  2011. #define DRAKE_FIRE_ANIM_S DRAKE_NAME OFFSET_POSITION
  2012.     [attack_anim]
  2013.         [filter_attack]
  2014.             name=fire breath
  2015.         [/filter_attack]
  2016.         direction=s
  2017.         [missile_frame]
  2018.             begin=-400
  2019.             end=100
  2020.             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
  2021.             halo_x,halo_y={OFFSET_POSITION}
  2022.         [/missile_frame]
  2023.         start_time=-900
  2024.         [if]
  2025.             hits=no
  2026.  
  2027.             [frame]
  2028.                 duration=20
  2029.                 image="units/drakes/{DRAKE_NAME}.png"
  2030.                 sound=flame-big-miss.ogg
  2031.             [/frame]
  2032.         [/if]
  2033.         [else]
  2034.             hits=yes
  2035.  
  2036.             [frame]
  2037.                 duration=20
  2038.                 image="units/drakes/{DRAKE_NAME}.png"
  2039.                 sound=flame-big.ogg
  2040.             [/frame]
  2041.         [/else]
  2042.         [frame]
  2043.             duration=100
  2044.             image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
  2045.         [/frame]
  2046.         [frame]
  2047.             duration=100
  2048.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  2049.         [/frame]
  2050.         [frame]
  2051.             duration=100
  2052.             image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
  2053.         [/frame]
  2054.         [frame]
  2055.             duration=100
  2056.             image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
  2057.         [/frame]
  2058.         [frame]
  2059.             duration=100
  2060.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  2061.         [/frame]
  2062.         [frame]
  2063.             duration=100
  2064.             image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
  2065.         [/frame]
  2066.         [frame]
  2067.             duration=100
  2068.             image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
  2069.         [/frame]
  2070.         [frame]
  2071.             duration=100
  2072.             image="units/drakes/{DRAKE_NAME}-fire-s-3.png"
  2073.         [/frame]
  2074.         [frame]
  2075.             duration=100
  2076.             image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
  2077.         [/frame]
  2078.         [frame]
  2079.             duration=100
  2080.             image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
  2081.         [/frame]
  2082.     [/attack_anim]
  2083. #enddef
  2084.  
  2085. #define DRAKE_FIRE_ANIM_N_CURRENT DRAKE_NAME OFFSET_POSITION
  2086.     [attack_anim]
  2087.         [filter_attack]
  2088.             name=fire breath
  2089.         [/filter_attack]
  2090.         direction=n
  2091.         [missile_frame]
  2092.             begin=-400
  2093.             end=100
  2094.             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
  2095.             halo_x,halo_y={OFFSET_POSITION}
  2096.         [/missile_frame]
  2097.         start_time=-900
  2098.         [if]
  2099.             hits=no
  2100.  
  2101.             [frame]
  2102.                 duration=20
  2103.                 image="units/drakes/{DRAKE_NAME}.png"
  2104.                 sound=flame-big-miss.ogg
  2105.             [/frame]
  2106.         [/if]
  2107.         [else]
  2108.             hits=yes
  2109.  
  2110.             [frame]
  2111.                 duration=20
  2112.                 image="units/drakes/{DRAKE_NAME}.png"
  2113.                 sound=flame-big.ogg
  2114.             [/frame]
  2115.         [/else]
  2116.         [frame]
  2117.             duration=100
  2118.             image="units/drakes/{DRAKE_NAME}-fire-inhale-1.png"
  2119.         [/frame]
  2120.         [frame]
  2121.             duration=100
  2122.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  2123.         [/frame]
  2124.         [frame]
  2125.             duration=100
  2126.             image="units/drakes/{DRAKE_NAME}-fire-inhale-3.png"
  2127.         [/frame]
  2128.         [frame]
  2129.             duration=100
  2130.             image="units/drakes/{DRAKE_NAME}-fire-inhale-4.png"
  2131.         [/frame]
  2132.         [frame]
  2133.             duration=100
  2134.             image="units/drakes/{DRAKE_NAME}-fire-inhale-2.png"
  2135.         [/frame]
  2136.         [frame]
  2137.             duration=100
  2138.             image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
  2139.         [/frame]
  2140.         [frame]
  2141.             duration=100
  2142.             image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
  2143.         [/frame]
  2144.         [frame]
  2145.             duration=100
  2146.             image="units/drakes/{DRAKE_NAME}-fire-s-3.png"
  2147.         [/frame]
  2148.         [frame]
  2149.             duration=100
  2150.             image="units/drakes/{DRAKE_NAME}-fire-s-2.png"
  2151.         [/frame]
  2152.         [frame]
  2153.             duration=100
  2154.             image="units/drakes/{DRAKE_NAME}-fire-s-1.png"
  2155.         [/frame]
  2156.     [/attack_anim]
  2157. #enddef
  2158.  
  2159. #define DRAKE_MOVEMENT_ANIM DRAKE_NAME
  2160.     [movement_anim]
  2161.         start_time=0
  2162.         [frame]
  2163.             duration=100
  2164.             image="units/drakes/{DRAKE_NAME}-fly-1.png"
  2165.         [/frame]
  2166.         [frame]
  2167.             duration=100
  2168.             image="units/drakes/{DRAKE_NAME}-fly-2.png"
  2169.         [/frame]
  2170.         [frame]
  2171.             duration=100
  2172.             image="units/drakes/{DRAKE_NAME}-fly-3.png"
  2173.         [/frame]
  2174.         [frame]
  2175.             duration=100
  2176.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  2177.         [/frame]
  2178.         [frame]
  2179.             duration=100
  2180.             image="units/drakes/{DRAKE_NAME}-fly-5.png"
  2181.         [/frame]
  2182.         [frame]
  2183.             duration=100
  2184.             image="units/drakes/{DRAKE_NAME}-fly-4.png"
  2185.         [/frame]
  2186.         [frame]
  2187.             duration=100
  2188.             image="units/drakes/{DRAKE_NAME}-fly-3-upstroke.png"
  2189.         [/frame]
  2190.         [frame]
  2191.             duration=100
  2192.             image="units/drakes/{DRAKE_NAME}-fly-2-upstroke.png"
  2193.         [/frame]
  2194.     [/movement_anim]
  2195. #enddef
  2196.  
  2197. #define DRAKE_WEAPON_ANIM DRAKE_NAME
  2198.     [draw_weapon_anim]
  2199.         #landing, only do it when we're not already flying
  2200.         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
  2201.         [frame]
  2202.             duration=100
  2203.             image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
  2204.         [/frame]
  2205.         [frame]
  2206.             duration=100
  2207.             image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
  2208.         [/frame]
  2209.         [frame]
  2210.             duration=100
  2211.             image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
  2212.         [/frame]
  2213.         [frame]
  2214.             duration=100
  2215.             image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
  2216.         [/frame]
  2217.     [/draw_weapon_anim]
  2218.     [sheath_weapon_anim]
  2219.         #landing, only do it when we're not already flying
  2220.         terrain_type={DRAKE_UNWALKABLE_TERRAINS}
  2221.         [frame]
  2222.             duration=100
  2223.             image="units/drakes/{DRAKE_NAME}-takeoff-1.png"
  2224.         [/frame]
  2225.         [frame]
  2226.             duration=100
  2227.             image="units/drakes/{DRAKE_NAME}-takeoff-2.png"
  2228.         [/frame]
  2229.         [frame]
  2230.             duration=100
  2231.             image="units/drakes/{DRAKE_NAME}-takeoff-3.png"
  2232.         [/frame]
  2233.         [frame]
  2234.             duration=100
  2235.             image="units/drakes/{DRAKE_NAME}-takeoff-4.png"
  2236.         [/frame]
  2237.     [/sheath_weapon_anim]
  2238. #enddef
  2239.