sc: encode hots bonus damage in data
[sheet.git] / sc-units-hots.inc.pl
index f6e3d781a4c173c376ed4f8b524620cf39b76d2a..5f23a22f5c092b26160d603a298922804e9b1788 100644 (file)
@@ -2,7 +2,7 @@ use utf8;
 use strict;
 
 [
-'patch 2.1.3 BU',
+'patch 2.1.10',
 # http://wiki.teamliquid.net/starcraft2/Unit_Statistics
 # http://wiki.teamliquid.net/starcraft2/User:Roemy/Unit_Statistics_(detailed)
 # http://starcraft.wikia.com/wiki/List_of_StarCraft_II_units
@@ -20,16 +20,19 @@ use strict;
        armor => 0,
        hp => 20,
        shield => 20,
-       suit => 1, # light
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => 5,
                        dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
 },
@@ -38,7 +41,6 @@ use strict;
        race => 'protoss',
        cat => 'base',
        name => 'Photon Cannon',
-       unit => 0,
        min => 150,
        gas => 0,
        build => 40,
@@ -46,19 +48,23 @@ use strict;
        armor => 1,
        hp => 150,
        shield => 150,
-       suit => 3, # armored
-       structure => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => 20,
                        dps => 16,
                        cooldown => 1.25,
+                       type => 'projectile',
+                       range => 7,
                },
-               air => 'ground',
-               range => 7,
-       },
+       ],
        speed => 0,
        sight => 11,
+       detect => 1,
 },
 
 {
@@ -74,20 +80,51 @@ use strict;
        armor => 1,
        hp => 130,
        shield => 60,
-       suit => 3, # armored
-       organic => 0, # mech
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               psionic => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [8 .. 11],
                        dps => [9.4, 10.6, 11.8, 13.0],
                        type => 'projectile',
                        cooldown => 0.85,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 1.875,
        sight => 9,
+       energy => 200,
+       special => [
+               {
+                       name => 'Photon Overcharge',
+                       abbr => 'po',
+                       desc => 'activate Nexus weapon for 1 minute',
+                       cost => 100,
+                       range => 10,
+               },
+               {
+                       name => 'Mass Recall',
+                       abbr => 'mr',
+                       desc => 'teleports itself and nearby units to targeted Nexus',
+                       cost => 100,
+                       duration => 2,
+                       radius => 7,
+               },
+               {
+                       name => 'Time Warp',
+                       abbr => 'tw',
+                       desc => 'create a temporal field which slows ground units by 50%',
+                       cost => 100,
+                       radius => 3.5,
+                       range => 9,
+                       duration => 30,
+               },
+       ],
 },
 
 {
@@ -102,29 +139,58 @@ use strict;
        armor => 2,
        hp => 350,
        shield => 350,
-       suit => 3, # armored
-       organic => 0, # mech
-       psionic => 1,
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               psionic => 1,
+               massive => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [6 .. 9],
                        dps => [16.3, 19.0, 21.7, 24.4],
                        cooldown => 2.21,
                        count => 6,
+                       range => 7,
                },
-               air => 'ground',
-               range => 7,
-       },
+       ],
        speed => 1.4062,
        sight => 14,
+       energy => 200,
+       special => [
+               {
+                       name => 'Cloaking Field',
+                       abbr => 'cf',
+                       desc => 'cloaks all nearby friendly units and buildings',
+                       radius => 5,
+                       duration => -1,
+               },
+               {
+                       name => 'Mass Recall',
+                       abbr => 'mr',
+                       desc => 'teleports itself and nearby units to targeted Nexus',
+                       cost => 100,
+                       duration => 2,
+                       radius => 7,
+               },
+               {
+                       name => 'Time Warp',
+                       abbr => 'tw',
+                       desc => 'create a temporal field which slows ground units by 50%',
+                       cost => 100,
+                       radius => 3.5,
+                       range => 9,
+                       duration => 30,
+               },
+       ],
 },
 
 {
        race => 'protoss',
        cat => 'base',
        name => 'Nexus',
-       unit => 0,
        min => 400,
        gas => 0,
        build => 100,
@@ -133,19 +199,32 @@ use strict;
        armor => 1,
        hp => 1000,
        shield => 1000,
-       suit => 3, # armored
-       structure => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => 20,
                        dps => 16,
                        cooldown => 1.25,
+                       type => 'projectile',
+                       range => 13,
                },
-               air => 'ground',
-               range => 13,
-       },
+       ],
        speed => 0,
        sight => 11,
+       energy => 100,
+       special => [
+               {
+                       name => 'Chrono Boost',
+                       abbr => 'cb',
+                       desc => '50% faster production speed at a targeted building',
+                       cost => 25,
+                       duration => 20,
+               },
+       ],
 },
 
 {
@@ -162,24 +241,36 @@ use strict;
        armor => 1,
        hp => 100,
        shield => 50,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [8 .. 11],
                        dps => [13.3, 15.0, 16.7, 18.4],
                        cooldown => 1.2,
                        count => 2,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.25,
-       upgrade => [
+       sight => 9,
+       special => [
                {
+                       name => 'Charge',
+                       abbr => 'ch',
+                       desc => 'on attack, increases movement speed to 6.05 for 3.5s',
+                       min => 200,
+                       gas => 200,
+                       build => 140,
                        speed => .5,
+                       range => 4,
+                       duration => 3.5,
+                       cooldown => 10,
                },
        ],
-       sight => 9,
 },
 
 {
@@ -196,20 +287,50 @@ use strict;
        armor => 1,
        hp => 40,
        shield => 40,
-       suit => 1, # light
-       organic => 0, # mech
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+               psionic => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [6 .. 9],
                        dps => [6 .. 9],
                        cooldown => 1.0,
+                       range => 5,
                },
-               air => 'ground',
-       },
+       ],
        speed => 2.25,
-       range => 5,
        sight => 10,
+       energy => 200,
+       special => [
+               {
+                       name => 'Force Field',
+                       abbr => 'ff',
+                       desc => 'erect a barries that impedes ground movement for 15s',
+                       cost => 50,
+                       range => 9,
+                       radius => 1.7,
+                       duration => 15,
+               },
+               {
+                       name => 'Guardian Shield',
+                       abbr => 'gs',
+                       desc => 'reduces ranged damage by 2 for friendly units within 4 radius',
+                       cost => 75,
+                       radius => 4,
+                       duration => 15,
+               },
+               {
+                       name => 'Hallucination',
+                       abbr => 'hl',
+                       desc => 'create fake replica of a protoss unit for one minute',
+                       cost => 100,
+                       duration => 60,
+                       range => 0,
+               },
+       ],
 },
 
 {
@@ -226,21 +347,37 @@ use strict;
        armor => 1,
        hp => 80,
        shield => 80,
-       suit => 3, # armored
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [10 .. 13],
                        dps => [6.9, 7.6, 8.3, 9.0],
-                       #bonus => +4 A,
+                       bonus => {
+                               armored => 4,
+                       },
                        type => 'projectile',
                        cooldown => 1.44,
+                       range => 6,
                },
-               air => 'ground',
-               range => 6,
-       },
+       ],
        speed => 2.9531,
        sight => 10,
+       special => [
+               {
+                       name => 'Blink',
+                       abbr => 'bl',
+                       desc => 'teleport to visible location',
+                       min => 150,
+                       gas => 150,
+                       build => 170,
+                       range => 8,
+                       cooldown => 10,
+               },
+       ],
 },
 
 {
@@ -257,11 +394,36 @@ use strict;
        armor => 0,
        hp => 40,
        shield => 40,
-       suit => 1, # light
-       organic => 1,
-       psionic => 1,
+       attr => {
+               light => 1,
+               psionic => 1,
+               organic => 1,
+       },
        speed => 1.875,
        sight => 10,
+       energy => 200,
+       special => [
+               {
+                       name => 'Feedback',
+                       abbr => 'fb',
+                       desc => 'target will lose its energy and receive damage equal to that amount',
+                       cost => 50,
+                       range => 9,
+               },
+               {
+                       name => 'Psionic Storm',
+                       abbr => 'ps',
+                       desc => 'deals 80 damage over 4 seconds to units in targeted area',
+                       cost => 75,
+                       cooldown => 2,
+                       duration => 4,
+                       radius => 1.5,
+                       range => 9,
+                       min => 200,
+                       gas => 200,
+                       build => 110,
+               },
+       ],
 },
 
 {
@@ -278,27 +440,38 @@ use strict;
        armor => 1,
        hp => 40,
        shield => 80,
-       suit => 1, # light
-       organic => 1,
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+               psionic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [45, 50, 55, 60],
                        dps => [26.6, 29.6, 32.6, 35.6],
                        cooldown => 1.694,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
+       special => [
+               {
+                       name => 'Permanent Cloak',
+                       abbr => 'cl',
+                       desc => 'cloaked at all times',
+                       duration => -1,
+               },
+       ],
 },
 
 {
        race => 'protoss',
        cat => 'gateway',
        name => 'Archon',
-       min => 100,
-       gas => 300,
+       min => 100, # or 175 or 250
+       gas => 300, # or 275 or 250
        unit => 4,
        build => 12,
        base => ['Templar', 'Templar'],
@@ -307,19 +480,23 @@ use strict;
        armor => 0,
        hp => 10,
        shield => 350,
-       psionic => 1,
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               psionic => 1,
+               massive => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [25, 28, 31, 34],
                        dps => [14.3, 16.0, 17.7, 19.4],
-                       #bonus => +10 (+1) B,
+                       bonus => {
+                               organic => [10 .. 13],
+                       },
                        splash => 1,
                        cooldown => 1.754,
+                       range => 3,
                },
-               air => 'ground',
-               range => 3,
-       },
+       ],
        speed => 2.8125,
        sight => 9,
 },
@@ -337,19 +514,32 @@ use strict;
        armor => 1,
        hp => 200,
        shield => 100,
-       suit => 3, # armored
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [20, 22, 24, 26],
-                       #bonus => +30 (+3) A,
+                       bonus => {
+                               armored => [30, 33, 36, 39],
+                       },
                        dps => [13.8, 15.2, 16.6, 18.0],
                        cooldown => 1.45,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 2.25,
        sight => 9,
+       special => [
+               {
+                       name => 'Hardened Shield',
+                       abbr => 'hs',
+                       desc => 'reduce all damage on shields to a maximum of 10',
+                       duration => -1,
+               },
+       ],
 },
 
 {
@@ -365,26 +555,38 @@ use strict;
        armor => 1,
        hp => 200,
        shield => 150,
-       suit => 3, # armored
-       organic => 0, # mech
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+               jump => 'Cliff Walk',
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [15, 17, 19, 21],
                        dps => [18.2, 20.6, 23.0, 25.4],
                        splash => 'line',
                        cooldown => 1.65,
                        count => 2,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
+       speed => 2.25,
+       sight => 10,
        upgrade => [
                {
-                       range => 3,
+                       name => 'Extended Thermal Lance',
+                       min => 200,
+                       gas => 200,
+                       build => 140,
+                       attack => [
+                               {
+                                       range => 3,
+                               },
+                       ],
                },
        ],
-       speed => 2.25,
-       sight => 10,
 },
 
 {
@@ -400,15 +602,31 @@ use strict;
        armor => 0,
        hp => 40,
        shield => 20,
-       suit => 1, # light
-       organic => 0, # mech
+       attr => {
+               light => 1,
+               mech => 1,
+               flying => 1,
+       },
        speed => 1.875,
+       sight => 11,
+       detect => 1,
+       special => [
+               {
+                       name => 'Permanent Cloak',
+                       abbr => 'cl',
+                       desc => 'cloaked at all times',
+                       duration => -1,
+               },
+       ],
        upgrade => [
                {
+                       name => 'Gravitic Boosters',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
                        speed => 0.9375,
                },
        ],
-       sight => 11,
 },
 
 {
@@ -420,20 +638,34 @@ use strict;
        gas => 0,
        build => 50,
        size => 1.75,
-       cargo => 0,
+       cargo => -8,
        armor => 0,
        hp => 100,
        shield => 100,
-       suit => 3, # armored
-       organic => 0, # mech
-       psionic => 1,
+       attr => {
+               armored => 1,
+               mech => 1,
+               psionic => 1,
+               flying => 1,
+       },
        speed => 2.9531,
+       sight => 10,
+       special => [
+               {
+                       name => 'Phasing Mode',
+                       abbr => 'pm',
+                       desc => 'basically transforms into a hovering pylon',
+               },
+       ],
        upgrade => [
                {
+                       name => 'Gravitic Drive',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
                        speed => 0.422,
                },
        ],
-       sight => 10,
 },
 
 {
@@ -449,24 +681,49 @@ use strict;
        armor => 0,
        hp => 120,
        shield => 60,
-       suit => 1, # light
-       organic => 0, # mech
-       attack => {
-               air => {
+       attr => {
+               light => 1,
+               mech => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 2,
                        damage => [5 .. 8],
                        dps => [9, 10.8, 12.6, 14.4],
-                       #bonus => +5 L,
+                       bonus => {
+                               light => 5,
+                       },
                        type => 'projectile',
                        cooldown => 1.11,
                        count => 2,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 4.25,
        sight => 10,
+       energy => 200,
+       special => [
+               {
+                       name => 'Graviton Beam',
+                       abbr => 'gb',
+                       desc => 'lifts a ground unit into the air for 10s',
+                       cost => 50,
+                       range => 4,
+                       duration => 10,
+               },
+       ],
        upgrade => [
                {
-                       range => 2,
+                       name => 'Anion Pulse-Crystals',
+                       min => 150,
+                       gas => 150,
+                       build => 90,
+                       attack => [
+                               {
+                                       range => 2,
+                               },
+                       ],
                },
        ],
 },
@@ -484,20 +741,41 @@ use strict;
        armor => 0,
        hp => 150,
        shield => 100,
-       suit => 3, # armored
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [6 .. 9],
-                       #bonus => +4 (+1), +10 (+1) A,
+                       bonus => {
+                               armored => [4 .. 7],
+                       },
                        dps => [12, 14, 16, 18],
                        cooldown => 0.5,
+                       range => 6, # keeps firing until range 8
                },
-               air => 'ground',
-               range => 6,
-       },
+       ],
        speed => 2.25,
        sight => 10,
+       special => [
+               {
+                       name => 'Prismatic Alignment',
+                       abbr => 'pa',
+                       desc => 'increases damage to armored by 6 for 20 seconds',
+                       duration => 20,
+                       cooldown => 60,
+                       attack => [
+                               {
+                                       bonus => {
+                                               armored => 6, # total +10 .. 13
+                                       },
+                               },
+                       ],
+               },
+       ],
 },
 
 {
@@ -513,22 +791,51 @@ use strict;
        armor => 0,
        hp => 100,
        shield => 60,
-       suit => 1, # light
-       organic => 0, # mech
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+               psionic => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        name => 'Pulsar Beam',
                        damage => 15,
                        # costs energy
-                       #bonus => +10 L,
+                       bonus => {
+                               light => 10,
+                       },
                        dps => 17.4,
                        cooldown => 0.86,
+                       cost => 25,
+                       maint => 1.4,
+                       range => 5, #XXX 4?
                },
-               range => 5,
-       },
+       ],
        speed => 4,
        sight => 10,
+       energy => 200,
+       special => [
+               {
+                       name => 'Revelation',
+                       abbr => 'rv',
+                       desc => 'hit enemy units and buildings are revealed for 1 minute',
+                       cost => 75,
+                       range => 9,
+                       cooldown => 3,
+                       duration => 60,
+                       radius => 6,
+               },
+               {
+                       name => 'Envision',
+                       abbr => 'ev',
+                       desc => 'temporary detection within sight range',
+                       cost => 50,
+                       range => 14,
+                       duration => 60,
+               },
+       ],
 },
 
 {
@@ -544,20 +851,25 @@ use strict;
        armor => 2,
        hp => 120,
        shield => 60,
-       suit => 3, # armored
-       organic => 0, # mech
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [30, 33, 36, 39],
-                       #bonus => +50 (+2) Ma Air,
+                       bonus => {
+                               'massive air' => 14,
+                       },
                        dps => [9.1, 10.0, 10.9, 11.8],
                        type => 'projectile',
                        cooldown => 3.3,
+                       range => 15,
                },
-               air => 'ground',
-               range => 15,
-       },
+       ],
        speed => 1.875,
        sight => 12,
 },
@@ -575,12 +887,17 @@ use strict;
        armor => 2,
        hp => 300,
        shield => 150,
-       suit => 3, # armored
-       organic => 0, # mech
-       massive => 1,
-       attack => {
-               range => 8,
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+               flying => 1,
        },
+       attack => [
+               {
+                       range => 8, # leash range 14
+               },
+       ],
        speed => 1.875,
        sight => 12,
        special => [
@@ -595,24 +912,36 @@ use strict;
                        armor => 0,
                        hp => 40,
                        shield => 40,
-                       suit => 1, # light
-                       organic => 0, # mech
-                       attack => {
-                               ground => {
+                       attr => {
+                               light => 1,
+                               mech => 1,
+                               flying => 1,
+                       },
+                       attack => [
+                               {
+                                       anti => 3,
                                        damage => [5 .. 8],
 #                                      dps => 26.7 (+5.3),
                                        dps => [3.3, 4.0, 4.7, 5.4],
 #                                      cooldown => 0.5 (0.125/ 0.25),
                                        cooldown => 3.0,
                                        count => 2,
+                                       range => 2,
                                },
-                               air => 'ground',
-                               range => 2,
-                       },
+                       ],
                        speed => 7.5,
                        sight => 7,
                },
        ],
+       upgrade => [
+               {
+                       name => 'Graviton Catapult',
+                       min => 150,
+                       gas => 150,
+                       build => 80,
+                       desc => 'increases Interceptor launch speed from 2/s to 4-8/s',
+               },
+       ],
 },
 
 # terran
@@ -629,17 +958,20 @@ use strict;
        cargo => 1,
        armor => 0,
        hp => 45,
-       suit => 1, # light
-       organic => 1,
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => 5,
                        dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
 },
@@ -654,8 +986,10 @@ use strict;
        size => 0.75,
        armor => 0,
        hp => 60,
-       suit => 1, # light
-       organic => 0, # mech
+       attr => {
+               light => 1,
+               mech => 1,
+       },
        speed => 2.8,
        sight => 8,
 },
@@ -664,7 +998,6 @@ use strict;
        race => 'terran',
        cat => 'base',
        name => 'Missile Turret',
-       unit => 0,
        min => 100,
        gas => 0,
        build => 25,
@@ -672,25 +1005,43 @@ use strict;
        cargo => 0,
        armor => 0,
        hp => 250,
-       suit => 3, # armored
-       organic => 0, # mech
-       structure => 1,
-       attack => {
-               air => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 2,
                        damage => 12,
                        dps => 27.9,
                        cooldown => 0.8608,
                        count => 2,
+                       type => 'projectile',
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => 0,
        sight => 11,
+       detect => 1,
        upgrade => [
                {
-                       attack => {
-                               range => 1,
-                       },
+                       name => 'Hi-Sec Auto Tracking',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
+               },
+               {
+                       name => 'Building Armor',
+                       min => 150,
+                       gas => 150,
+                       build => 140,
+                       armor => 2,
                },
        ],
 },
@@ -700,7 +1051,7 @@ use strict;
        cat => 'base',
        name => 'Planetary Fortress',
        base => ['Command Center'],
-       unit => 0,
+       unit => -11,
        min => 150,
        gas => 150,
        build => 50,
@@ -708,28 +1059,48 @@ use strict;
        cargo => 0,
        armor => 3,
        hp => 1500,
-       suit => 3, # armored
-       organic => 0, # mech
-       structure => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => 40,
                        dps => 20,
                        splash => 1,
                        cooldown => 2,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 0,
        sight => 11,
        upgrade => [
                {
+                       name => 'Neosteel Frame',
+                       min => 100,
+                       gas => 100,
+                       build => 110,
+                       desc => 'increase load space by 5',
+               },
+               {
+                       name => 'Building Armor',
+                       min => 150,
+                       gas => 150,
+                       build => 140,
                        armor => 2,
                },
                {
-                       attack => {
-                               range => 1,
-                       },
+                       name => 'Hi-Sec Auto Tracking',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
                },
        ],
 },
@@ -746,38 +1117,49 @@ use strict;
        cargo => 1,
        armor => 0,
        hp => 45,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
+                       name => 'C-14 rifle',
                        damage => [6 .. 9],
                        dps => [7, 8.2, 9.4, 10.6],
                        cooldown => 0.8608,
+                       range => 5,
                },
-               air => 'ground',
-               range => 5,
-       },
+       ],
        speed => 2.25,
        upgrade => [
                {
+                       name => 'Combat Shield',
+                       min => 100,
+                       gas => 100,
+                       build => 110,
                        hp => 10,
                },
        ],
        special => [
                {
-                       name => 'stim pack',
+                       name => 'Stim Pack',
                        abbr => 'sp',
                        alt => 'Stimmed Marine',
-                       desc => 'increases attack and movement speed for a few seconds at the cost of 10 health',
-                       speed => 2.25 + 1.125,
-                       attack => {
-                               ground => {
+                       desc => 'increases attack and movement speed by 50% for 15s at the cost of 10 health',
+                       speed => 1.125,
+                       min => 100,
+                       gas => 100,
+                       build => 170,
+                       attack => [
+                               {
+                                       anti => 3,
                                        dps => [10.5, 12.2, 13.9, 15.6],
                                        cooldown => 0.5739,
+                                       range => 5,
                                },
-                               air => 'ground',
-                       },
-                       duration => undef, #XXX
+                       ],
+                       duration => 15,
                },
        ],
        sight => 9,
@@ -795,31 +1177,54 @@ use strict;
        cargo => 2,
        armor => 1,
        hp => 125,
-       suit => 3, # armored
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [10 .. 13],
-                       #bonus => +10 (+1) A,
+                       bonus => {
+                               armored => [10 .. 13],
+                       },
                        dps => [6.7, 7.4, 8.1, 8.8],
                        type => 'projectile',
                        cooldown => 1.5,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        special => [
                {
-                       name => 'stim pack',
+                       name => 'Stim Pack',
                        abbr => 'sp',
-                       desc => 'increases attack and movement speed for a few seconds at the cost of 10 health',
-                       speed => 2.25 + 1.125,
-                       attack => {
-                               ground => {
+                       alt => 'Stimmed Marauder',
+                       desc => 'increases attack and movement speed by 50% for 15s at the cost of 10 health',
+                       speed => 1.125,
+                       min => 100,
+                       gas => 100,
+                       build => 170,
+                       attack => [
+                               {
+                                       anti => 3,
                                        dps => [10 .. 13],
+                                       type => 'projectile',
                                        cooldown => 1.0,
+                                       range => 6,
                                },
-                       },
-                       duration => undef, #XXX
+                       ],
+                       duration => 15,
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Concussive Shells',
+                       abbr => 'cs',
+                       desc => 'slows non-massive enemy movement speed by 50% for 1.5s when hit',
+                       min => 50,
+                       gas => 50,
+                       build => 60,
+                       duration => -1,
                },
        ],
        speed => 2.25,
@@ -838,19 +1243,31 @@ use strict;
        cargo => 1,
        armor => 0,
        hp => 60,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+               jump => 'Jet Pack',
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [4 .. 7],
                        dps => [7.3, 9.1, 10.9, 12.7],
                        cooldown => 1.1,
                        count => 2,
+                       range => 4.5,
                },
-               range => 4.5,
-       },
+       ],
        speed => 3.75,
        sight => 9,
+       special => [
+               {
+                       name => 'Combat Drugs',
+                       abbr => 'cd',
+                       desc => 'heal 2 HP per second after 10 seconds out of combat',
+                       duration => -1,
+               },
+       ],
 },
 
 {
@@ -865,20 +1282,59 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 100,
-       organic => 1,
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               organic => 1,
+               psionic => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [10 .. 13],
-                       #bonus => +10 (+1) L,
+                       bonus => {
+                               light => [10 .. 13],
+                       },
                        dps => [6.7, 7.4, 8.1, 8.8],
                        cooldown => 1.5,
+                       range => 6,
                },
-               air => 'ground',
-               range => 6,
-       },
+       ],
        speed => 2.25,
        sight => 11,
+       energy => 200,
+       special => [
+               {
+                       name => 'Sniper Round',
+                       abbr => 'sr',
+                       desc => '25 damage to a single biological unit, or 50 to psionic',
+                       cost => 25,
+                       range => 10,
+               },
+               {
+                       name => 'EMP Round',
+                       abbr => 'ep',
+                       desc => 'reveals cloaked units and removes up to 100 shields and energy',
+                       cost => 75,
+                       range => 10,
+                       radius => 1.5,
+               },
+               {
+                       name => 'Personal Cloaking',
+                       abbr => 'cl',
+                       desc => 'has the ability to cloak',
+                       cost => 25,
+                       maint => .9, # /s
+                       min => 150,
+                       gas => 150,
+                       build => 120,
+               },
+               {
+                       name => 'Nuclear Strike',
+                       abbr => 'ns',
+                       desc => 'guides a nuclear missile which will do 300 damage plus 200 to buildings',
+                       duration => 20,
+                       range => 12,
+               },
+       ],
 },
 
 {
@@ -893,20 +1349,49 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 90,
-       suit => 1, # light
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [8 .. 11],
+                       bonus => {
+                               light => [6 .. 9],
+                       },
                        dps => [3.2, 3.6, 4.0, 4.4],
-                       #bonus => +6 (+1), +11 (+1) L,
                        splash => 'line',
                        cooldown => 2.5,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 4.25,
        sight => 10,
+       special => [
+               {
+                       name => 'Hellbat Mode',
+                       abbr => 'hm',
+                       desc => 'transform to Hellbat',
+                       duration => 4,
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Infernal Pre-Igniter',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+                       attack => [
+                               {
+                                       damage => [6 .. 9],
+                                       bonus => {
+                                               light => [5, 5, 5, 5], # total [11 .. 14]
+                                       },
+                               },
+                       ],
+               },
+       ],
 },
 
 {
@@ -921,21 +1406,49 @@ use strict;
        cargo => 4,
        armor => 0,
        hp => 135,
-       suit => 1, # light
-       organic => 1,
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [18, 20, 22, 24],
-                       #bonus => +12 (+1) L,
+                       bonus => {
+                               light => [0 .. 3], # ?
+                       },
                        dps => [9 .. 12],
                        splash => 1,
                        cooldown => 2,
+                       range => 2,
                },
-               range => 2,
-       },
+       ],
        speed => 2.25,
        sight => 10,
+       special => [
+               {
+                       name => 'Hellion Mode',
+                       abbr => 'hm',
+                       desc => 'transform to Hellion',
+                       duration => 4,
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Infernal Pre-Igniter',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+                       attack => [
+                               {
+                                       bonus => {
+                                               light => [12, 12, 12, 12],
+                                       },
+                               },
+                       ],
+               },
+       ],
 },
 
 {
@@ -950,19 +1463,34 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 90,
-       suit => 1, # light
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => 125,
-                       #bonus => +35 Shield,
+                       bonus => {
+                               shields => 35,
+                       },
                        splash => 1,
                        cooldown => 40,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 2.8125,
        sight => 7,
+       upgrade => [
+               {
+                       name => 'Drilling Claws',
+                       abbr => 'dc',
+                       desc => 'decreases burrow time from 3 to 1 second',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+               },
+       ],
 },
 
 {
@@ -977,34 +1505,43 @@ use strict;
        cargo => 4,
        armor => 1,
        hp => 160,
-       suit => 3, # armored
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [15, 17, 19, 21],
-                       #bonus => +10 (+1)A,
+                       bonus => {
+                               armored => [10 .. 13],
+                       },
                        dps => [14.4, 16.3, 18.2, 20.1],
                        cooldown => 1.04,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        special => [
                {
                        name => 'siege mode',
                        abbr => 'sg',
                        alt => 'Sieged Tank',
                        cargo => 0,
-                       attack => {
-                               ground => {
+                       attack => [
+                               {
+                                       anti => 1,
                                        damage => [35, 38, 41, 44],
-                                       #bonus => 15 (+2)A,
+                                       bonus => {
+                                               armored => [15, 17, 19, 21],
+                                       },
                                        dps => [11.7, 12.7, 13.7, 14.7],
                                        splash => 1,
                                        cooldown => 3,
+                                       range => 13,
                                },
-                               range => 13,
-                       },
+                       ],
                        speed => 0,
+                       duration => 4,
                },
        ],
        speed => 2.25,
@@ -1023,21 +1560,27 @@ use strict;
        cargo => 8,
        armor => 1,
        hp => 400,
-       suit => 3, # armored
-       organic => 0, # mech
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [30, 33, 36, 39],
                        dps => [46.9, 51.6, 56.3, 61.0],
                        cooldown => 1.28,
                        range => 7,
                        count => 2,
                },
-               air => {
+               {
+                       anti => 2,
                        name => 'Explosive Payload',
                        damage => [6 .. 9],
-                       #bonus => +6 (+1) L Air,
+                       bonus => {
+                               'light air' => [6 .. 9],
+                       },
                        dps => [8, 9.3, 10.6, 11.9],
                        splash => 1,
                        type => 'projectile',
@@ -1045,14 +1588,15 @@ use strict;
                        range => 10,
                        count => 4,
                },
-               air => {
+               {
+                       anti => 2,
                        name => 'High Impact Payload',
                        damage => [24, 26, 28, 30],
                        dps => [12 .. 15],
                        cooldown => 2,
                        range => 10,
                },
-       },
+       ],
        speed => 1.875,
        sight => 11,
 },
@@ -1069,34 +1613,41 @@ use strict;
        cargo => 0,
        armor => 0,
        hp => 125,
-       suit => 3, # armored
-       organic => 0, # mech
-       attack => {
-               air => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 2,
                        damage => [10 .. 13],
-                       #bonus => +4A,
+                       bonus => {
+                               armored => 4,
+                       },
                        dps => [10 .. 13],
                        type => 'projectile',
                        cooldown => 2,
                        count => 2,
+                       range => 9,
                },
-               range => 9,
-       },
+       ],
        special => [
                {
+                       name => 'Assault Mode',
+                       abbr => 'am',
+                       build => 3, # transformation time
+                       alt => 'Landed Viking',
                        cargo => 2,
-                       attack => {
-                               name => 'Assault Mode',
-                               abbr => 'am',
-                               build => 3, # transformation time
-                               alt => 'Landed Viking',
-                               ground => {
+                       attack => [
+                               {
+                                       anti => 1,
                                        damage => [12 .. 15],
                                        dps => [12 .. 15],
                                        cooldown => 1,
+                                       range => 6,
                                },
-                               range => 6,
-                       },
+                       ],
                },
        ],
        speed => 2.75,
@@ -1112,18 +1663,43 @@ use strict;
        gas => 100,
        build => 42,
        size => 1.5,
-       cargo => 0,
+       cargo => -8,
        armor => 1,
        hp => 150,
-       suit => 3, # armored
-       organic => 0, # mech
+       attr => {
+               armored => 1,
+               mech => 1,
+               flying => 1,
+       },
        speed => 2.5,
-       upgrade => [
+       energy => 200,
+       special => [
                {
+                       name => 'Heal',
+                       abbr => 'hl',
+                       desc => 'automatically heals nearby biological allies for 9 HP per second',
+                       range => 4,
+                       cost => 3,
+               },
+               {
+                       name => 'Ignite Afterburners',
+                       abbr => 'ia',
+                       desc => 'boost speed and accelleration to 4.25 for 8s',
                        speed => 4.25,
+                       duration => 8,
+                       cooldown => 20,
                },
        ],
        sight => 11,
+       upgrade => [
+               {
+                       name => 'Caduceus Reactor',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
+                       starting_energy => 25,
+               },
+       ],
 },
 
 {
@@ -1138,20 +1714,37 @@ use strict;
        cargo => 0,
        armor => 0,
        hp => 140,
-       suit => 1, # light
-       organic => 0, # mech
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               mech => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [12 .. 15],
                        dps => [19.2, 20.8, 22.4, 24.0],
                        type => 'projectile',
                        cooldown => 1.25,
                        count => 2,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 2.75,
        sight => 10,
+       energy => 200,
+       special => [
+               {
+                       name => 'Cloak',
+                       abbr => 'cl',
+                       desc => 'has the ability to cloak',
+                       cost => 25,
+                       maint => .9,
+                       min => 100,
+                       gas => 100,
+                       build => 110,
+               },
+       ],
 },
 
 {
@@ -1166,60 +1759,140 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 140,
-       suit => 1, # light
-       organic => 0, # mech
+       attr => {
+               light => 1,
+               mech => 1,
+               flying => 1,
+       },
        speed => 2.25,
        sight => 11,
+       detect => 1,
+       energy => 200,
        special => [
                {
                        alt => 'Auto-Turret',
+#                      abbr => 'at',
+                       cost => 50,
                        size => 2,
                        cargo => 0,
                        armor => 1,
                        hp => 150,
-                       suit => 3, # armored
-                       organic => 0, # mech
-                       structure => 1,
-                       attack => {
-                               ground => {
+                       attr => {
+                               armored => 1,
+                               mech => 1,
+                               structure => 1,
+                       },
+                       attack => [
+                               {
+                                       anti => 3,
                                        damage => 8,
                                        dps => 10,
                                        cooldown => 0.8,
+                                       range => 6,
                                },
-                               air => 'ground',
-                               range => 6,
-                       },
+                       ],
                        speed => 0,
                        sight => 7,
                        upgrade => [
                                {
-                                       attack => {
-                                               range => 1,
-                                       },
+                                       name => 'Hi-Sec Auto Tracking',
+                                       min => 100,
+                                       gas => 100,
+                                       build => 80,
+                                       attack => [
+                                               {
+                                                       range => 1,
+                                               },
+                                       ],
+                               },
+                               {
+                                       name => 'Building Armor',
+                                       min => 150,
+                                       gas => 150,
+                                       build => 140,
+                                       armor => 2,
                                },
                        ],
                },
                {
                        alt => 'Point Defense Drone',
+#                      abbr => 'pd',
+                       cost => 100,
                        size => 1.2,
                        cargo => 0,
                        armor => 0,
                        hp => 50,
-                       suit => 1, # light
-                       organic => 0, # mech
-                       structure => 1,
-                       cooldown => 0,
-                       attack => {
-                               range => 8,
+                       attr => {
+                               light => 1,
+                               mech => 1,
+                               structure => 1,
+                               flying => 1,
                        },
+                       cooldown => 0,
+                       attack => [
+                               {
+                                       range => 8,
+                               },
+                       ],
                        sight => 7,
                        upgrade => [
                                {
-                                       attack => {
-                                               range => 1,
-                                       },
+                                       name => 'Hi-Sec Auto Tracking',
+                                       min => 100,
+                                       gas => 100,
+                                       build => 80,
+                                       attack => [
+                                               {
+                                                       range => 1,
+                                               },
+                                       ],
+                               },
+                               {
+                                       name => 'Building Armor',
+                                       min => 150,
+                                       gas => 150,
+                                       build => 140,
+                                       armor => 2,
+                               },
+                       ],
+                       duration => 20,
+               },
+               {
+                       name => 'Seeker Missile',
+                       abbr => 'sm',
+                       desc => 'launches missile to do 100 damage plus splash'
+                               . ' unless targeted unit moves to 13 range within 5 seconds of charging',
+                       range => 10,
+                       attack => [
+                               {
+                                       damage => 100,
+                                       splash => 1,
                                },
                        ],
+                       cost => 75,
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Durable Materials',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+#                      special => {
+#                              at => {
+#                                      duration => 240,
+#                              },
+#                              pd => {
+#                                      duration => 30,
+#                              },
+#                      },
+               },
+               {
+                       name => 'Corvid Reactor',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+                       starting_energy => 25,
                },
        ],
 },
@@ -1236,24 +1909,60 @@ use strict;
        cargo => 0,
        armor => 3,
        hp => 550,
-       suit => 3, # armored
-       organic => 0, # mech
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [8 .. 11],
                        dps => [35.6, 40.0, 44.4, 48.8],
                        cooldown => 0.225,
+                       type => 'projectile',
+                       range => 6,
                },
-               air => {
+               {
+                       anti => 2,
                        damage => [6 .. 9],
                        dps => [26.7, 31.1, 35.5, 39.9],
                        cooldown => 0.225,
+                       type => 'projectile',
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 1.875,
        sight => 12,
+       energy => 200,
+       special => [
+               {
+                       name => 'Yamato Cannon',
+                       abbr => 'yc',
+                       desc => '300 damage to a single target',
+                       min => 150,
+                       gas => 150,
+                       build => 60,
+                       duration => 3,
+                       range => 10,
+                       cost => 100,
+                       attack => [
+                               {
+                                       damage => 300,
+                               },
+                       ],
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Behemoth Reactor',
+                       min => 150,
+                       gas => 150,
+                       build => 80,
+                       starting_energy => 25,
+               },
+       ],
 },
 
 # zerg
@@ -1270,16 +1979,19 @@ use strict;
        cargo => 1,
        armor => 0,
        hp => 40,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => 5,
                        dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        creep => 1.0,
        sight => 8,
@@ -1297,28 +2009,60 @@ use strict;
        cargo => 2,
        armor => 1,
        hp => 175,
-       organic => 1,
-       psionic => 1,
-       attack => {
-               ground => {
+       attr => {
+               organic => 1,
+               psionic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [4 .. 7],
                        dps => [8, 10, 12, 14],
                        cooldown => 1.0,
-                       type => 'projectile',
+                       type => 'projectile', # except if range < 3
                        range => 5,
                        count => 2,
                },
-               air => {
+               {
+                       anti => 2,
                        damage => [9 .. 12],
                        dps => [9 .. 12],
                        cooldown => 1.0,
-                       type => 'projectile',
+                       type => 'projectile', # except if range < 3
                        range => 7,
                },
-       },
+       ],
        speed => 0.9375,
        creep => 2.7,
        sight => 9,
+       energy => 200,
+       special => [
+               {
+                       name => 'Spawn Larva',
+                       abbr => 'sl',
+                       desc => 'injects a Hatchery to produce 4 Larvae after 40 seconds',
+                       cost => 25,
+                       range => 1,
+                       cooldown => 2.5,
+                       duration => 40,
+               },
+               {
+                       name => 'Spawn Creep Tumor',
+                       abbr => 'sc',
+                       desc => 'place a tumor on creep which will expand it',
+                       cost => 25,
+                       range => 1,
+                       duration => 15,
+               },
+               {
+                       name => 'Transfusion',
+                       abbr => 'tf',
+                       desc => 'heal a friendly biological unit or building for 125 HP',
+                       cost => 50,
+                       range => 7,
+                       cooldown => 1,
+               },
+       ],
 },
 
 {
@@ -1330,18 +2074,43 @@ use strict;
        gas => 0,
        build => 25,
        size => 0,
-       cargo => -8,
+       cargo => 0,
        armor => 0,
        hp => 200,
-       suit => 3, # armored
-       organic => 1,
+       attr => {
+               armored => 1,
+               organic => 1,
+               flying => 1,
+       },
        speed => 0.586,
        creep => 0,
        sight => 11,
+       special => [
+               {
+                       name => 'Generate Creep',
+                       abbr => 'gc',
+                       desc => 'place Zerg creep at current location',
+                       duration => 15,
+                       radius => 2,
+                       req => 'Lair',
+               },
+       ],
        upgrade => [
                {
+                       name => 'Pneumatized Carapace',
+                       min => 100,
+                       gas => 100,
+                       build => 60,
                        speed => 1.294,
                },
+               {
+                       name => 'Ventral Sacs',
+                       min => 200,
+                       gas => 200,
+                       build => 130,
+                       cargo => -8,
+                       req => 'Lair',
+               },
        ],
 },
 
@@ -1358,28 +2127,50 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 200,
-       suit => 3, # armored
-       organic => 1,
+       attr => {
+               armored => 1,
+               organic => 1,
+               flying => 1,
+       },
        speed => 1.875,
        creep => 0,
        sight => 11,
+       detect => 1,
+       energy => 200,
        special => [
                {
+                       name => 'Spawn Changeling',
                        alt => 'Changeling',
+                       cost => 50,
+                       duration => 150,
                        build => 1,
                        size => 0.75,
                        cargo => 0,
                        armor => 0,
                        hp => 5,
-                       suit => 1, # light
-                       organic => 1,
+                       attr => {
+                               light => 1,
+                               organic => 1,
+                       },
                        speed => 2.25,
                        creep => 1.0,
                        sight => 8,
                },
+               {
+                       name => 'Contaminate',
+                       abbr => 'ct',
+                       desc => 'covers an enemy structure in slime, preventing production and research for 30 seconds',
+                       cost => 125,
+                       range => 3,
+                       duration => 30,
+               },
        ],
        upgrade => [
                {
+                       name => 'Pneumatized Carapace',
+                       min => 100,
+                       gas => 100,
+                       build => 60,
                        speed => 0.875,
                },
        ],
@@ -1395,18 +2186,32 @@ use strict;
        cargo => 0,
        armor => 10,
        hp => 25,
-       suit => 1, # light
-       organic => 1,
+       attr => {
+               light => 1,
+               organic => 1,
+       },
        speed => 0.5625,
        creep => 1.0,
        sight => 5,
+       special => [
+               {
+                       alt => 'Cocoon',
+                       attr => {
+                               organic => 1,
+                       },
+                       hp => 200,
+                       armor => 10,
+                       size => 0.75,
+                       sight => 5,
+                       speed => 0,
+               },
+       ],
 },
 
 {
        race => 'zerg',
        cat => 'creep',
        name => 'Spine Crawler',
-       unit => 0,
        min => 100,
        gas => 0,
        build => 50,
@@ -1414,18 +2219,23 @@ use strict;
        cargo => 0,
        armor => 2,
        hp => 300,
-       suit => 3, # armored
-       organic => 1,
-       structure => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => 25,
-                       #bonus => +5A,
+                       bonus => {
+                               armored => 5,
+                       },
                        dps => 13.5,
                        cooldown => 1.85,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => (1.0),
        creep => 2.5,
        sight => 11,
@@ -1435,7 +2245,6 @@ use strict;
        race => 'zerg',
        cat => 'creep',
        name => 'Spore Crawler',
-       unit => 0,
        min => 75,
        gas => 0,
        build => 30,
@@ -1443,22 +2252,28 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 400,
-       suit => 3, # armored
-       organic => 1,
-       structure => 1,
-       attack => {
-               air => {
+       attr => {
+               armored => 1,
+               organic => 1,
+               structure => 1,
+       },
+       attack => [
+               {
+                       anti => 2,
                        damage => 15,
-                       #bonus => + 30 B,
+                       bonus => {
+                               organic => 30,
+                       },
                        dps => 17.4,
                        type => 'projectile',
                        cooldown => 0.8608,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => (1.0),
        creep => 2.5,
        sight => 11,
+       detect => 1,
 },
 
 {
@@ -1473,29 +2288,42 @@ use strict;
        cargo => 1,
        armor => 0,
        hp => 35,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [5 .. 8],
                        dps => [7.2, 8.6, 10.0, 11.4],
                        cooldown => 0.696,
                },
-       },
+       ],
        speed => 2.9531,
        creep => 1.3,
        range => 0,
        sight => 8,
        upgrade => [
                {
-                       attack => {
-                               ground => {
+                       name => 'Adrenal Glands',
+                       min => 200,
+                       gas => 200,
+                       build => 130,
+                       attack => [
+                               {
+                                       anti => 1,
                                        dps => [8.5, 10.2, 11.9, 13.6],
-                                       cooldown => 0.587,
+                                       cooldown => -0.109,
                                },
-                       },
+                       ],
+                       req => 'Hive',
                },
                {
+                       name => 'Metabolic Boost',
+                       min => 100,
+                       gas => 100,
+                       build => 110,
                        speed => 1.746,
                },
        ],
@@ -1514,21 +2342,32 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 30,
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [20, 22, 24, 26],
-                       #bonus => +15 (+2)L / +60 (+3)S,
+                       bonus => {
+                               light => [15, 17, 19, 21],
+                               structure => [60, 63, 66, 69],
+                       },
                        splash => 1,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.5,
        creep => 1.3,
        sight => 8,
        upgrade => [
                {
+                       name => 'Centrifugal Hooks',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
                        speed => 0.4531,
+                       req => 'Lair',
                },
        ],
 },
@@ -1545,22 +2384,48 @@ use strict;
        cargo => 2,
        armor => 1,
        hp => 145,
-       suit => 3, # armored
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [16, 18, 20, 22],
                        dps => [8 .. 11],
                        cooldown => 2.0,
                },
-       },
+       ],
        speed => 2.25,
        creep => 1.3,
        range => 4,
        sight => 9,
+       special => [
+               {
+                       name => 'Rapid Regeneration',
+                       abbr => 'rr',
+                       desc => 'regenerates health at 5 HP/s while burrowed',
+                       duration => -1,
+               },
+               {
+                       name => 'Tunneling Claws',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+                       abbr => 'tc',
+                       desc => 'move while burrowed at speed of 2.0 and increase regeneration to 10 HP/s',
+                       duration => -1,
+                       req => 'Lair',
+               },
+       ],
        upgrade => [
                {
+                       name => 'Glial Reconstitution',
+                       min => 100,
+                       gas => 100,
+                       build => 110,
                        speed => 0.75,
+                       req => 'Lair',
                },
        ],
 },
@@ -1577,30 +2442,42 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 80,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [12 .. 15],
                        dps => [16, 17.3, 18.6, 19.9],
-                       type => 'projectile',
+                       type => 'projectile', # except meelee
                        cooldown => 0.75,
+                       range => 5,
                },
-               air => 'ground',
-               range => 5,
-       },
+       ],
        speed => 2.25,
        creep => 1.5,
        sight => 9,
        upgrade => [
                {
-                       speed => 0.5625,
-                       creep => -0.302,
+                       name => 'Grooved Spines',
+                       min => 150,
+                       gas => 150,
+                       build => 80,
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
                },
                {
-                       attack => {
-                               range => 1,
-                       },
+                       name => 'Muscular Augments',
+                       min => 150,
+                       gas => 150,
+                       build => 100,
+                       speed => 0.5625,
+                       creep => -0.302,
                },
        ],
 },
@@ -1617,43 +2494,79 @@ use strict;
        cargo => 2,
        armor => 0,
        hp => 90,
-       suit => 3, # armored
-       organic => 1,
-       psionic => 1,
+       attr => {
+               armored => 1,
+               organic => 1,
+               psionic => 1,
+       },
        speed => 2.25,
        creep => 1.3,
        sight => 10,
+       energy => 200,
        special => [
+               {
+                       name => 'Neural Parasite',
+                       abbr => 'np',
+                       desc => 'take control of target enemy unit for 15s (while within 14 range)',
+                       cost => 100,
+                       range => 7,
+                       duration => 15,
+                       min => 150,
+                       gas => 150,
+                       build => 110,
+               },
+               {
+                       name => 'Fungal Growth',
+                       abbr => 'fg',
+                       desc => 'for 4 seconds, immobilize enemy units in target area and deal 30 damage',
+                       cost => 75,
+                       range => 10,
+                       duration => 4,
+                       radius => 2.0,
+               },
                {
                        alt => 'Infested Terran',
+                       cost => 25,
+                       range => 9,
+                       duration => 30,
                        build => 5,
                        size => 0.75,
                        cargo => 0,
                        armor => 0,
                        hp => 50,
-                       suit => 1, # light
-                       organic => 1,
-                       attack => {
-                               ground => {
+                       attr => {
+                               light => 1,
+                               organic => 1,
+                       },
+                       attack => [
+                               {
+                                       anti => 3,
                                        damage => 8,
                                        dps => 9.3,
                                        cooldown => 0.8608,
+                                       range => 5,
                                },
-                               air => 'ground',
-                               range => 5,
-                       },
+                       ],
                        speed => 0.9375,
                        creep => 1.3,
                        sight => 9,
                },
        ],
+       upgrade => [
+               {
+                       name => 'Pathogen Glands',
+                       min => 150,
+                       gas => 150,
+                       build => 80,
+                       starting_energy => 25,
+               },
+       ],
 },
 
 {
        race => 'zerg',
        cat => 'lair',
        name => 'Nydus Worm',
-       unit => 0,
        min => 100,
        gas => 100,
        build => 20,
@@ -1661,9 +2574,11 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 200,
-       suit => 3, # armored
-       organic => 1,
-       structure => 1,
+       attr => {
+               armored => 1,
+               organic => 1,
+               structure => 1,
+       },
        speed => 0,
        sight => 10,
 },
@@ -1672,24 +2587,27 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Swarm Host',
-       unit => 3,
-       min => 200,
-       gas => 100,
+       unit => 4,
+       min => 100,
+       gas => 200,
        build => 40,
        size => 1.625,
        cargo => 4,
        armor => 1,
        hp => 160,
-       suit => 3, # armored
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        dps => [27.9, 30.2, 32.5, 34.8],
                        type => 'projectile',
                        cooldown => 0.86,
                },
-       },
-       speed => 2.25,
+       ],
+       speed => 2.95,
        creep => 1.3,
        sight => 10,
        special => [
@@ -1700,20 +2618,37 @@ use strict;
                        cargo => 0,
                        armor => 0,
                        hp => 65,
-                       suit => 1, # light
-                       organic => 1,
-                       attack => {
-                               ground => {
+                       attr => {
+                               light => 1,
+                               organic => 1,
+                       },
+                       attack => [
+                               {
+                                       anti => 1,
                                        damage => [12 .. 15],
                                        dps => [14.0, 15.2, 16.4, 17.6],
                                        type => 'projectile',
-                                       cooldown => 0.86,
+                                       cooldown => 0.6,
+                                       range => 3,
                                },
-                               range => 3,
-                       },
+                       ],
                        speed => 1.875,
                        creep => 1.4,
                        sight => 6,
+                       duration => 25,
+                       cooldown => 60,
+                       count => 2,
+               },
+       ],
+       upgrade => [
+               {
+                       name => 'Flying Locusts',
+                       min => 200,
+                       gas => 200,
+                       build => 160,
+                       attr => {
+                               flying => 1,
+                       },
                },
        ],
 },
@@ -1730,21 +2665,31 @@ use strict;
        cargo => 0,
        armor => 0,
        hp => 120,
-       suit => 1, # light
-       organic => 1,
-       attack => {
-               ground => {
+       attr => {
+               light => 1,
+               organic => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 3,
                        damage => [9 .. 12],
                        dps => [5.9, 6.6, 7.3, 8.0],
                        splash => 'bounce',
                        psionic => 1,
                        cooldown => 1.5246,
+                       range => 3,
                },
-               air => 'ground',
-               range => 3,
-       },
+       ],
        speed => 4,
        sight => 11,
+       upgrade => [
+               {
+                       name => 'Tissue Regeneration',
+                       abbr => 'tr',
+                       desc => 'health regeneration rate increased to 1 HP per second',
+               },
+       ],
 },
 
 {
@@ -1759,20 +2704,35 @@ use strict;
        cargo => 0,
        armor => 2,
        hp => 200,
-       suit => 3, # armored
-       organic => 1,
-       attack => {
-               air => {
+       attr => {
+               armored => 1,
+               organic => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 2,
                        damage => [14 .. 17],
-                       #bonus => +6 (+1)Ma,
+                       bonus => {
+                               massive => [6 .. 9],
+                       },
                        dps => [7.4, 7.9, 8.4, 8.9],
                        type => 'projectile',
                        cooldown => 1.9,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 2.9531,
        sight => 10,
+       special => [
+               {
+                       name => 'Corruption',
+                       desc => 'target unit takes 20% more damage for 30 seconds',
+                       cooldown => 45,
+                       range => 6,
+                       duration => 40,
+               },
+       ],
 },
 
 {
@@ -1788,43 +2748,59 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 225,
-       suit => 3, # armored
-       organic => 1,
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+               massive => 1,
+               flying => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [20, 22, 24, 26],
                        dps => [8.0, 8.8, 9.6, 10.4],
                        cooldown => 2.5,
+                       range => 9.5,
                },
-               range => 9.5,
-       },
+       ],
        speed => 1.4062,
        sight => 12,
        special => [
                {
+                       name => 'Swarm Seeds',
+                       abbr => 'ss',
+                       desc => 'Broodlings are spawned upon each attack',
+                       duration => -1,
                        alt => 'Broodling',
                        unit => 0,
-                       min => 0,
-                       build => 1,
+#                      build => 1,
                        size => 0.75,
                        cargo => 0,
                        armor => 0,
                        hp => 30,
-                       suit => 1, # light
-                       organic => 1,
-                       attack => {
-                               ground => {
+                       attr => {
+                               light => 1,
+                               organic => 1,
+                       },
+                       attack => [
+                               {
+                                       anti => 1,
                                        damage => [4 .. 7],
                                        dps => [6.2, 7.7, 9.2, 10.7],
                                        cooldown => 0.6455,
+                                       range => 0,
                                },
-                               range => 0,
-                       },
+                       ],
                        speed => 3.836,
                        creep => 1.0,
                        sight => 7,
                },
+               {
+                       name => 'Frenzied',
+                       abbr => 'fz',
+                       desc => 'immune to snare, stun, mind control, and movement altering effects',
+                       duration => -1,
+               },
        ],
 },
 
@@ -1840,11 +2816,42 @@ use strict;
        cargo => 0,
        armor => 1,
        hp => 150,
-       suit => 3, # armored
-       organic => 1,
-       psionic => 1,
+       attr => {
+               armored => 1,
+               organic => 1,
+               psionic => 1,
+               flying => 1,
+       },
        speed => 2.9531,
        sight => 11,
+       energy => 200,
+       special => [
+               {
+                       name => 'Blinding Cloud',
+                       abbr => 'bc',
+                       desc => 'all attacks from within cloud are reduced to melee range',
+                       cost => 100,
+                       range => 11,
+                       duration => 14,
+                       radius => 2,
+               },
+               {
+                       name => 'Abduct',
+                       abbr => 'ad',
+                       desc => 'pull target unit to Viper\'s location',
+                       cost => 75,
+                       range => 9,
+                       duration => 10,
+               },
+               {
+                       name => 'Consume',
+                       abbr => 'cs',
+                       desc => 'leaches 200 life of friendly building over 20s to gain 50 energy',
+                       duration => 20,
+                       range => 7,
+                       cooldown => 1,
+               },
+       ],
 },
 
 {
@@ -1859,23 +2866,38 @@ use strict;
        cargo => 8,
        armor => 1,
        hp => 500,
-       suit => 3, # armored
-       organic => 1,
-       massive => 1,
-       attack => {
-               ground => {
+       attr => {
+               armored => 1,
+               organic => 1,
+               massive => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
                        damage => [35, 38, 41, 44],
                        dps => [40.7, 44.2, 47.7, 51.2],
                        splash => 1,
                        cooldown => 0.861,
+                       range => 1,
                },
-               range => 1,
-       },
+       ],
        speed => 2.9531,
        creep => 1.3,
        sight => 9,
+       special => [
+               {
+                       name => 'Frenzied',
+                       abbr => 'fz',
+                       desc => 'immune to snare, stun, mind control, and movement altering effects',
+                       duration => -1,
+               },
+       ],
        upgrade => [
                {
+                       name => 'Chitinous Plating',
+                       min => 150,
+                       gas => 150,
+                       build => 110,
                        armor => 2,
                },
        ],