index: release v1.18 with only altgr index linked
[sheet.git] / sc-units-hots.inc.pl
index c0b74529c2b6078dba9f57da3e95c5bab864a33f..9b49af2d5460315abd9f883b9123dc19f1ba3ec2 100644 (file)
@@ -1,8 +1,11 @@
 use utf8;
 use strict;
 
+my $V = v5.0.2; # some patch data for invisible attributes
+my $GATHER = "gather 5 minerals (7 gold) after 4s (upto 60/minute)\n  or 4 gas (8 rich) after 3s (53/min)"; # lotv time scale
+
 [
-'patch 2.1.10',
+'patch 2.1.9+',
 # 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
@@ -11,7 +14,7 @@ use strict;
        race => 'protoss',
        cat => 'base',
        name => 'Probe',
-       unit => 1,
+       pop => 1,
        min => 50,
        gas => 0,
        build => 17,
@@ -24,16 +27,24 @@ use strict;
                light => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Particle Beam',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
+       special => [
+               {
+                       name => 'worker',
+                       abbr => '⚒',
+                       desc => "warp-in buildings\n- $GATHER",
+               },
+       ],
 },
 
 {
@@ -51,16 +62,16 @@ use strict;
                armored => 1,
                structure => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Phase Disruptor',
                        damage => 20,
-                       dps => 16,
                        cooldown => 1.25,
                        type => 'projectile',
+                       range => 7,
                },
-               air => 'ground',
-               range => 7,
-       },
+       ],
        speed => 0,
        sight => 11,
        detect => 1,
@@ -70,7 +81,7 @@ use strict;
        race => 'protoss',
        cat => 'base',
        name => 'Mothership Core',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 100,
        build => 30,
@@ -85,18 +96,21 @@ use strict;
                psionic => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [8 .. 11],
-                       dps => [9.4, 10.6, 11.8, 13.0],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Repulsor Cannon',
+                       damage => 8,
+                       upgrade => 1,
                        type => 'projectile',
                        cooldown => 0.85,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 1.875,
        sight => 9,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Photon Overcharge',
@@ -120,7 +134,7 @@ use strict;
                        cost => 100,
                        radius => 3.5,
                        range => 9,
-                       duration => 30,
+                       duration => 10,
                },
        ],
 },
@@ -129,7 +143,7 @@ use strict;
        race => 'protoss',
        cat => 'base',
        name => 'Mothership',
-       unit => 8,
+       pop => 8,
        min => 300,
        gas => 300,
        build => 100,
@@ -143,20 +157,23 @@ use strict;
                psionic => 1,
                massive => 1,
                flying => 1,
+               heroic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [6 .. 9],
-                       dps => [16.3, 19.0, 21.7, 24.4],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Purifier Beams',
+                       damage => 6,
+                       upgrade => 1,
                        cooldown => 2.21,
                        count => 6,
+                       range => 7,
                },
-               air => 'ground',
-               range => 7,
-       },
+       ],
        speed => 1.4062,
        sight => 14,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Cloaking Field',
@@ -189,6 +206,7 @@ use strict;
        race => 'protoss',
        cat => 'base',
        name => 'Nexus',
+       pop => -10,
        min => 400,
        gas => 0,
        build => 100,
@@ -201,19 +219,20 @@ use strict;
                armored => 1,
                structure => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Photon Overcharge',
                        damage => 20,
-                       dps => 16,
                        cooldown => 1.25,
                        type => 'projectile',
+                       range => 13,
                },
-               air => 'ground',
-               range => 13,
-       },
+       ],
        speed => 0,
        sight => 11,
-       energy => 100,
+       energy => 0,
+       capacity => 100,
        special => [
                {
                        name => 'Chrono Boost',
@@ -229,7 +248,7 @@ use strict;
        race => 'protoss',
        cat => 'gateway',
        name => 'Zealot',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 0,
        build => 38,
@@ -243,15 +262,17 @@ use strict;
                light => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [8 .. 11],
-                       dps => [13.3, 15.0, 16.7, 18.4],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Psi Blades',
+                       damage => 8,
+                       upgrade => 1,
                        cooldown => 1.2,
                        count => 2,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.25,
        sight => 9,
        special => [
@@ -262,19 +283,24 @@ use strict;
                        min => 200,
                        gas => 200,
                        build => 140,
-                       speed => .5,
                        range => 4,
                        duration => 3.5,
                        cooldown => 10,
                },
        ],
+       upgrade => [
+               {
+                       name => 'Charge',
+                       speed => .5,
+               },
+       ],
 },
 
 {
        race => 'protoss',
        cat => 'gateway',
        name => 'Sentry',
-       unit => 2,
+       pop => 2,
        min => 50,
        gas => 100,
        build => 37,
@@ -289,18 +315,20 @@ use strict;
                mech => 1,
                psionic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [6 .. 9],
-                       dps => [6 .. 9],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Disruption Beam',
+                       damage => 6,
+                       upgrade => 1,
                        cooldown => 1.0,
+                       range => 5,
                },
-               air => 'ground',
-       },
+       ],
        speed => 2.25,
-       range => 5,
        sight => 10,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Force Field',
@@ -334,7 +362,7 @@ use strict;
        race => 'protoss',
        cat => 'gateway',
        name => 'Stalker',
-       unit => 2,
+       pop => 2,
        min => 125,
        gas => 50,
        build => 42,
@@ -348,17 +376,20 @@ use strict;
                armored => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
-                       damage => [10 .. 13],
-                       dps => [6.9, 7.6, 8.3, 9.0],
-                       #bonus => +4 A,
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Particle Disruptors',
+                       damage => 10,
+                       upgrade => 1,
+                       bonus => {
+                               armored => 4,
+                       },
                        type => 'projectile',
                        cooldown => 1.44,
+                       range => 6,
                },
-               air => 'ground',
-               range => 6,
-       },
+       ],
        speed => 2.9531,
        sight => 10,
        special => [
@@ -379,7 +410,7 @@ use strict;
        race => 'protoss',
        cat => 'gateway',
        name => 'High Templar',
-       unit => 2,
+       pop => 2,
        min => 50,
        gas => 150,
        build => 55,
@@ -396,7 +427,8 @@ use strict;
        },
        speed => 1.875,
        sight => 10,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Feedback',
@@ -425,7 +457,7 @@ use strict;
        race => 'protoss',
        cat => 'gateway',
        name => 'Dark Templar',
-       unit => 2,
+       pop => 2,
        min => 125,
        gas => 125,
        build => 55,
@@ -440,14 +472,16 @@ use strict;
                organic => 1,
                psionic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [45, 50, 55, 60],
-                       dps => [26.6, 29.6, 32.6, 35.6],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Warp Blade',
+                       damage => 45,
+                       upgrade => 5,
                        cooldown => 1.694,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
        special => [
@@ -466,7 +500,7 @@ use strict;
        name => 'Archon',
        min => 100, # or 175 or 250
        gas => 300, # or 275 or 250
-       unit => 4,
+       pop => 4,
        build => 12,
        base => ['Templar', 'Templar'],
        size => 1.5,
@@ -478,108 +512,30 @@ use strict;
                psionic => 1,
                massive => 1,
        },
-       attack => {
-               ground => {
-                       damage => [25, 28, 31, 34],
-                       dps => [14.3, 16.0, 17.7, 19.4],
-                       #bonus => +10 (+1) B,
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Psionic Shockwave',
+                       damage => 25,
+                       upgrade => 3,
+                       bonus => {
+                               organic => 10,
+                               -organic => 1,
+                       },
                        splash => 1,
                        cooldown => 1.754,
+                       range => 3,
                },
-               air => 'ground',
-               range => 3,
-       },
+       ],
        speed => 2.8125,
        sight => 9,
 },
 
-{
-       race => 'protoss',
-       cat => 'robotic',
-       name => 'Immortal',
-       unit => 4,
-       min => 250,
-       gas => 100,
-       build => 55,
-       size => 1.5,
-       cargo => 4,
-       armor => 1,
-       hp => 200,
-       shield => 100,
-       attr => {
-               armored => 1,
-               mech => 1,
-       },
-       attack => {
-               ground => {
-                       damage => [20, 22, 24, 26],
-                       #bonus => +30 (+3) A,
-                       dps => [13.8, 15.2, 16.6, 18.0],
-                       cooldown => 1.45,
-               },
-               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,
-               },
-       ],
-},
-
-{
-       race => 'protoss',
-       cat => 'robotic',
-       name => 'Colossus',
-       unit => 6,
-       min => 300,
-       gas => 200,
-       build => 75,
-       size => 2,
-       cargo => 8,
-       armor => 1,
-       hp => 200,
-       shield => 150,
-       attr => {
-               armored => 1,
-               mech => 1,
-               massive => 1,
-               jump => 'Cliff Walk',
-       },
-       attack => {
-               ground => {
-                       damage => [15, 17, 19, 21],
-                       dps => [18.2, 20.6, 23.0, 25.4],
-                       splash => 'line',
-                       cooldown => 1.65,
-                       count => 2,
-               },
-               range => 6,
-       },
-       speed => 2.25,
-       sight => 10,
-       upgrade => [
-               {
-                       name => 'Extended Thermal Lance',
-                       min => 200,
-                       gas => 200,
-                       build => 140,
-                       attack => {
-                               range => 3,
-                       },
-               },
-       ],
-},
-
 {
        race => 'protoss',
        cat => 'robotic',
        name => 'Observer',
-       unit => 1,
+       pop => 1,
        min => 25,
        gas => 75,
        build => 30,
@@ -610,7 +566,7 @@ use strict;
                        min => 100,
                        gas => 100,
                        build => 80,
-                       speed => 0.9375,
+                       speed => $V ge v5.0.11 ? 1 : 0.9375, # 50% increase
                },
        ],
 },
@@ -619,7 +575,7 @@ use strict;
        race => 'protoss',
        cat => 'robotic',
        name => 'Warp Prism',
-       unit => 2,
+       pop => 2,
        min => 200,
        gas => 0,
        build => 50,
@@ -654,11 +610,102 @@ use strict;
        ],
 },
 
+{
+       race => 'protoss',
+       cat => 'robotic',
+       name => 'Immortal',
+       pop => 4,
+       min => 250,
+       gas => 100,
+       build => 55,
+       size => 1.5,
+       cargo => 4,
+       armor => 1,
+       hp => 200,
+       shield => 100,
+       attr => {
+               armored => 1,
+               mech => 1,
+       },
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Phase Disruptors',
+                       damage => 20,
+                       upgrade => 2,
+                       bonus => {
+                               armored => 30,
+                               -armored => 3,
+                       },
+                       cooldown => 1.45,
+                       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,
+               },
+       ],
+},
+
+{
+       race => 'protoss',
+       cat => 'robotic',
+       name => 'Colossus',
+       pop => 6,
+       min => 300,
+       gas => 200,
+       build => 75,
+       size => 2,
+       cargo => 8,
+       armor => 1,
+       hp => 200,
+       shield => 150,
+       attr => {
+               armored => 1,
+               mech => 1,
+               massive => 1,
+               jump => 'Cliff Walk',
+       },
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Thermal Lances',
+                       damage => 15,
+                       upgrade => 2,
+                       splash => 'line',
+                       cooldown => 1.65,
+                       count => 2,
+                       range => 6,
+               },
+       ],
+       speed => 2.25,
+       sight => 10,
+       upgrade => [
+               {
+                       name => 'Extended Thermal Lance',
+                       min => 200,
+                       gas => 200,
+                       build => 140,
+                       attack => [
+                               {
+                                       range => 3,
+                               },
+                       ],
+               },
+       ],
+},
+
 {
        race => 'protoss',
        cat => 'stargate',
        name => 'Phoenix',
-       unit => 2,
+       pop => 2,
        min => 150,
        gas => 100,
        build => 35,
@@ -672,20 +719,25 @@ use strict;
                mech => 1,
                flying => 1,
        },
-       attack => {
-               air => {
-                       damage => [5 .. 8],
-                       dps => [9, 10.8, 12.6, 14.4],
-                       #bonus => +5 L,
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Ion Cannons',
+                       damage => 5,
+                       upgrade => 1,
+                       bonus => {
+                               light => 5,
+                       },
                        type => 'projectile',
                        cooldown => 1.11,
                        count => 2,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 4.25,
        sight => 10,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Graviton Beam',
@@ -702,9 +754,11 @@ use strict;
                        min => 150,
                        gas => 150,
                        build => 90,
-                       attack => {
-                               range => 2,
-                       },
+                       attack => [
+                               {
+                                       range => 2,
+                               },
+                       ],
                },
        ],
 },
@@ -713,7 +767,7 @@ use strict;
        race => 'protoss',
        cat => 'stargate',
        name => 'Void Ray',
-       unit => 4,
+       pop => 4,
        min => 250,
        gas => 150,
        build => 60,
@@ -727,16 +781,20 @@ use strict;
                mech => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [6 .. 9],
-                       #bonus => +4 (+1), +10 (+1) A,
-                       dps => [12, 14, 16, 18],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Prismatic Beam',
+                       damage => 6,
+                       upgrade => 1,
+                       bonus => {
+                               armored => 4,
+                               -armored => 1,
+                       },
                        cooldown => 0.5,
+                       range => 6, # keeps firing until range 8
                },
-               air => 'ground',
-               range => 6, # keeps firing until range 8
-       },
+       ],
        speed => 2.25,
        sight => 10,
        special => [
@@ -746,6 +804,13 @@ use strict;
                        desc => 'increases damage to armored by 6 for 20 seconds',
                        duration => 20,
                        cooldown => 60,
+                       attack => [
+                               {
+                                       bonus => {
+                                               armored => 6,
+                                       },
+                               },
+                       ],
                },
        ],
 },
@@ -754,7 +819,7 @@ use strict;
        race => 'protoss',
        cat => 'stargate',
        name => 'Oracle',
-       unit => 3,
+       pop => 3,
        min => 150,
        gas => 150,
        build => 50,
@@ -769,22 +834,25 @@ use strict;
                psionic => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
                        name => 'Pulsar Beam',
                        damage => 15,
                        # costs energy
-                       #bonus => +10 L,
-                       dps => 17.4,
+                       bonus => {
+                               light => 10,
+                       },
                        cooldown => 0.86,
                        cost => 25,
                        maint => 1.4,
+                       range => 5, #XXX 4?
                },
-               range => 5, #XXX 4?
-       },
+       ],
        speed => 4,
        sight => 10,
-       energy => 200,
+       energy => 50, #XXX
+       capacity => 200,
        special => [
                {
                        name => 'Revelation',
@@ -811,7 +879,7 @@ use strict;
        race => 'protoss',
        cat => 'stargate',
        name => 'Tempest',
-       unit => 4,
+       pop => 4,
        min => 300,
        gas => 200,
        build => 60,
@@ -826,17 +894,30 @@ use strict;
                massive => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [30, 33, 36, 39],
-                       #bonus => +14 Ma Air,
-                       dps => [9.1, 10.0, 10.9, 11.8],
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Kinetic Overload',
+                       damage => 30,
+                       upgrade => 3,
+                       bonus => {
+                               massive => 14,
+                               -massive => 2,
+                       },
                        type => 'projectile',
                        cooldown => 3.3,
+                       range => 15,
                },
-               air => 'ground',
-               range => 15,
-       },
+               {
+                       anti => 1,
+                       name => 'Resonance Coil',
+                       damage => 30,
+                       upgrade => 3,
+                       type => 'projectile',
+                       cooldown => 3.3,
+                       range => 15,
+               },
+       ],
        speed => 1.875,
        sight => 12,
 },
@@ -845,7 +926,7 @@ use strict;
        race => 'protoss',
        cat => 'stargate',
        name => 'Carrier',
-       unit => 6,
+       pop => 6,
        min => 350,
        gas => 250,
        build => 120,
@@ -860,15 +941,21 @@ use strict;
                massive => 1,
                flying => 1,
        },
-       attack => {
-               range => 8, # leash range 14
-       },
+       attack => [
+               {
+                       anti => 3,
+                       count => 8,
+                       range => 8, # leash range 14
+                       dps => [26.7, undef, undef, 42.6],
+                       cooldown => 0.5,
+               },
+       ],
        speed => 1.875,
        sight => 12,
        special => [
                {
                        alt => 'Interceptor',
-                       unit => 0,
+                       pop => 0,
                        min => 25,
                        gas => 0,
                        build => 8,
@@ -882,29 +969,33 @@ use strict;
                                mech => 1,
                                flying => 1,
                        },
-                       attack => {
-                               ground => {
-                                       damage => [5 .. 8],
-#                                      dps => 26.7 (+5.3),
-                                       dps => [3.3, 4.0, 4.7, 5.4],
-#                                      cooldown => 0.5 (0.125/ 0.25),
+                       attack => [
+                               {
+                                       anti => 3,
+                                       name => 'Interceptor Beams',
+                                       damage => 5,
+                                       upgrade => 1,
                                        cooldown => 3.0,
                                        count => 2,
+                                       range => 2,
                                },
-                               air => 'ground',
-                               range => 2,
-                       },
+                       ],
                        speed => 7.5,
                        sight => 7,
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Graviton Catapult',
                        min => 150,
                        gas => 150,
                        build => 80,
                        desc => 'increases Interceptor launch speed from 2/s to 4-8/s',
+                       attack => [
+                               {
+                                       cooldown => -0.375, # -0.25
+                               },
+                       ],
                },
        ],
 },
@@ -914,8 +1005,8 @@ use strict;
 {
        race => 'terran',
        cat => 'base',
-       name => 'SCV',
-       unit => 1,
+       name => 'SCV', # T-280 Space Construction Vehicle
+       pop => 1,
        min => 50,
        gas => 0,
        build => 17,
@@ -928,23 +1019,36 @@ use strict;
                organic => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Fusion Cutter',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        sight => 8,
+       special => [
+               {
+                       name => 'worker',
+                       abbr => '⚒',
+                       desc => join("\n- ",
+                               'construct buildings',
+                               'repair mechanical units and buildings (speed as build time but 25% cost)',
+                               $GATHER,
+                       ),
+               },
+       ],
 },
 
 {
        race => 'terran',
        cat => 'base',
        name => 'Mule',
-       unit => 0,
+       pop => 0,
+       cargo => 0,
        min => 0,
        build => 0,
        size => 0.75,
@@ -956,6 +1060,18 @@ use strict;
        },
        speed => 2.8,
        sight => 8,
+       special => [
+               {
+                       name => 'limited worker',
+                       abbr => '⛏',
+                       desc => join("\n- ",
+                               'repair like an SCV (but cannot build)',
+                               'gather 25 minerals after 6s: 200-225 over its 64s lifetime (equilavent to 3½ SCVs)',
+                       ),
+                       duration => 64,
+                       energy => 50,
+               },
+       ],
 },
 
 {
@@ -974,16 +1090,17 @@ use strict;
                mech => 1,
                structure => 1,
        },
-       attack => {
-               air => {
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Longbolt Missiles',
                        damage => 12,
-                       dps => 27.9,
                        cooldown => 0.8608,
                        count => 2,
                        type => 'projectile',
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => 0,
        sight => 11,
        detect => 1,
@@ -993,9 +1110,11 @@ use strict;
                        min => 100,
                        gas => 100,
                        build => 80,
-                       attack => {
-                               range => 1,
-                       },
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
                },
                {
                        name => 'Building Armor',
@@ -1012,7 +1131,7 @@ use strict;
        cat => 'base',
        name => 'Planetary Fortress',
        base => ['Command Center'],
-       unit => -11,
+       pop => -11,
        min => 150,
        gas => 150,
        build => 50,
@@ -1025,15 +1144,16 @@ use strict;
                mech => 1,
                structure => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Ibiks Cannon',
                        damage => 40,
-                       dps => 20,
                        splash => 1,
                        cooldown => 2,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 0,
        sight => 11,
        upgrade => [
@@ -1056,9 +1176,11 @@ use strict;
                        min => 100,
                        gas => 100,
                        build => 80,
-                       attack => {
-                               range => 1,
-                       },
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
                },
        ],
 },
@@ -1067,7 +1189,7 @@ use strict;
        race => 'terran',
        cat => 'barracks',
        name => 'Marine',
-       unit => 1,
+       pop => 1,
        min => 50,
        gas => 0,
        build => 25,
@@ -1079,16 +1201,16 @@ use strict;
                light => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       name => 'C-14 rifle',
-                       damage => [6 .. 9],
-                       dps => [7, 8.2, 9.4, 10.6],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'C-14 Rifle',
+                       damage => 6,
+                       upgrade => 1,
                        cooldown => 0.8608,
+                       range => 5,
                },
-               air => 'ground',
-               range => 5,
-       },
+       ],
        speed => 2.25,
        upgrade => [
                {
@@ -1103,19 +1225,20 @@ use strict;
                {
                        name => 'Stim Pack',
                        abbr => 'sp',
-                       alt => 'Stimmed Marine',
                        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 => {
-                               ground => {
-                                       dps => [10.5, 12.2, 13.9, 15.6],
+                       attack => [
+                               {
+                                       anti => 3,
+                                       damage => 6,
+                                       upgrade => 1,
                                        cooldown => 0.5739,
+                                       range => 5,
                                },
-                               air => 'ground',
-                       },
+                       ],
                        duration => 15,
                },
        ],
@@ -1126,7 +1249,7 @@ use strict;
        race => 'terran',
        cat => 'barracks',
        name => 'Marauder',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 25,
        build => 30,
@@ -1138,37 +1261,46 @@ use strict;
                armored => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [10 .. 13],
-                       #bonus => +10 (+1) A,
-                       dps => [6.7, 7.4, 8.1, 8.8],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Punisher Grenades',
+                       damage => 10,
+                       upgrade => 1,
+                       bonus => {
+                               armored => 10,
+                               -armored => 1,
+                       },
                        type => 'projectile',
                        cooldown => 1.5,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        special => [
                {
                        name => 'Stim Pack',
                        abbr => 'sp',
-                       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 => {
-                               ground => {
-                                       dps => [10 .. 13],
+                       attack => [
+                               {
+                                       anti => 1,
+                                       damage => 10,
+                                       upgrade => 1,
+                                       bonus => {
+                                               armored => 10,
+                                               -armored => 1,
+                                       },
+                                       type => 'projectile',
                                        cooldown => 1.0,
+                                       range => 6,
                                },
-                               air => 'ground',
-                       },
+                       ],
                        duration => 15,
                },
-       ],
-       update => [
                {
                        name => 'Concussive Shells',
                        abbr => 'cs',
@@ -1187,7 +1319,7 @@ use strict;
        race => 'terran',
        cat => 'barracks',
        name => 'Reaper',
-       unit => 1,
+       pop => 1,
        min => 50,
        gas => 50,
        build => 40,
@@ -1200,15 +1332,17 @@ use strict;
                organic => 1,
                jump => 'Jet Pack',
        },
-       attack => {
-               ground => {
-                       damage => [4 .. 7],
-                       dps => [7.3, 9.1, 10.9, 12.7],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'P-45 Reaper Pistol',
+                       damage => 4,
+                       upgrade => 1,
                        cooldown => 1.1,
                        count => 2,
+                       range => 4.5,
                },
-               range => 4.5,
-       },
+       ],
        speed => 3.75,
        sight => 9,
        special => [
@@ -1225,7 +1359,7 @@ use strict;
        race => 'terran',
        cat => 'barracks',
        name => 'Ghost',
-       unit => 2,
+       pop => 2,
        min => 200,
        gas => 100,
        build => 40,
@@ -1237,19 +1371,33 @@ use strict;
                organic => 1,
                psionic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [10 .. 13],
-                       #bonus => +10 (+1) L,
-                       dps => [6.7, 7.4, 8.1, 8.8],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'C-10 Rifle',
+                       damage => 10,
+                       upgrade => 1,
+                       bonus => {
+                               light => 10,
+                               -light => 1,
+                       },
                        cooldown => 1.5,
+                       range => 6,
                },
-               air => 'ground',
-               range => 6,
-       },
+       ],
        speed => 2.25,
        sight => 11,
-       energy => 200,
+       energy => $V ge v4.1.4 || $V lt v4.0.0 ? 75 : 50,
+       upgrade => [
+               $V ge v4.1.4 || $V lt v4.0.0 ? () : {
+                       name => 'Moebius Reactor',
+                       min => 100,
+                       gas => 100,
+                       build => 80,
+                       energy => 25,
+               },
+       ],
+       capacity => 200,
        special => [
                {
                        name => 'Sniper Round',
@@ -1264,7 +1412,8 @@ use strict;
                        desc => 'reveals cloaked units and removes up to 100 shields and energy',
                        cost => 75,
                        range => 10,
-                       radius => 1.5,
+                       radius => 1.5, # 2 after upgrade
+                       detect => 1,
                },
                {
                        name => 'Personal Cloaking',
@@ -1279,8 +1428,9 @@ use strict;
                {
                        name => 'Nuclear Strike',
                        abbr => 'ns',
-                       desc => 'guides a nuclear missile which will do 300 damage plus 200 to buildings',
+                       desc => 'guides a missile which will do 300 damage plus 200 to buildings',
                        duration => 20,
+                       cooldown => 20,
                        range => 12,
                },
        ],
@@ -1290,7 +1440,7 @@ use strict;
        race => 'terran',
        cat => 'factory',
        name => 'Hellion',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 0,
        build => 30,
@@ -1302,15 +1452,21 @@ use strict;
                light => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
-                       damage => [8 .. 11],
-                       dps => [3.2, 3.6, 4.0, 4.4],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Infernal Flamethrower',
+                       damage => 8,
+                       upgrade => 1,
+                       bonus => {
+                               light => 6,
+                               -light => 1,
+                       },
                        splash => 'line',
                        cooldown => 2.5,
+                       range => 5,
                },
-               range => 5,
-       },
+       ],
        speed => 4.25,
        sight => 10,
        special => [
@@ -1321,17 +1477,22 @@ use strict;
                        duration => 4,
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Infernal Pre-Igniter',
-                       min => 150,
-                       gas => 150,
+                       min => $V lt v4.11.0 ? 150 : 100,
+                       gas => $V lt v4.11.0 ? 150 : 100,
                        build => 110,
-                       attack => {
-                               ground => {
-                                       #bonus => +6 (+1), +11 (+1) L,
+                       attack => [
+                               {
+                                       damage => 6,
+                                       upgrade => 1,
+                                       bonus => {
+                                               light => 5,
+                                               -light => 0,
+                                       },
                                },
-                       },
+                       ],
                },
        ],
 },
@@ -1340,7 +1501,7 @@ use strict;
        race => 'terran',
        cat => 'factory',
        name => 'Hellbat',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 0,
        build => 30,
@@ -1353,15 +1514,20 @@ use strict;
                organic => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
-                       damage => [18, 20, 22, 24],
-                       dps => [9 .. 12],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Napalm Spray',
+                       damage => 18,
+                       upgrade => 2,
+                       bonus => {
+                               light => 0, # visibility for upgrade
+                       },
                        splash => 1,
                        cooldown => 2,
+                       range => 2,
                },
-               range => 2,
-       },
+       ],
        speed => 2.25,
        sight => 10,
        special => [
@@ -1369,20 +1535,23 @@ use strict;
                        name => 'Hellion Mode',
                        abbr => 'hm',
                        desc => 'transform to Hellion',
-                       duration => 4,
+                       transform => 4,
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Infernal Pre-Igniter',
-                       min => 150,
-                       gas => 150,
+                       min => $V lt v4.11.0 ? 150 : 100,
+                       gas => $V lt v4.11.0 ? 150 : 100,
                        build => 110,
-                       attack => {
-                               ground => {
-                                       #bonus => +12 (+1) L,
+                       attack => [
+                               {
+                                       bonus => {
+                                               light => 12,
+                                               -light => 1,
+                                       },
                                },
-                       },
+                       ],
                },
        ],
 },
@@ -1391,7 +1560,7 @@ use strict;
        race => 'terran',
        cat => 'factory',
        name => 'Widow Mine',
-       unit => 2,
+       pop => 2,
        min => 75,
        gas => 25,
        build => 40,
@@ -1403,18 +1572,23 @@ use strict;
                light => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Sentinel Missiles',
                        damage => 125,
-                       #bonus => +35 Shield,
+                       bonus => {
+                               shields => 40,
+                       },
                        splash => 1,
                        cooldown => 40,
+                       range => 5,
+                       transform => 1.0, # time to burrow
                },
-               range => 5,
-       },
+       ],
        speed => 2.8125,
        sight => 7,
-       update => [
+       upgrade => [
                {
                        name => 'Drilling Claws',
                        abbr => 'dc',
@@ -1430,7 +1604,7 @@ use strict;
        race => 'terran',
        cat => 'factory',
        name => 'Siege Tank',
-       unit => 3,
+       pop => 3,
        min => 150,
        gas => 125,
        build => 45,
@@ -1442,33 +1616,43 @@ use strict;
                armored => 1,
                mech => 1,
        },
-       attack => {
-               ground => {
-                       damage => [15, 17, 19, 21],
-                       #bonus => +10 (+1)A,
-                       dps => [14.4, 16.3, 18.2, 20.1],
+       attack => [
+               {
+                       anti => 1,
+                       name => '90 mm Twin Cannon',
+                       damage => 15,
+                       upgrade => 2,
+                       bonus => {
+                               armored => 10,
+                               -armored => 1,
+                       },
                        cooldown => 1.04,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        special => [
                {
-                       name => 'siege mode',
-                       abbr => 'sg',
+                       name => 'Siege Mode',
+                       abbr => 'sm',
                        alt => 'Sieged Tank',
                        cargo => 0,
-                       attack => {
-                               ground => {
-                                       damage => [35, 38, 41, 44],
-                                       #bonus => 15 (+2)A,
-                                       dps => [11.7, 12.7, 13.7, 14.7],
+                       attack => [
+                               {
+                                       anti => 1,
+                                       name => '120 mm Shock Cannon',
+                                       damage => 35,
+                                       upgrade => 3,
+                                       bonus => {
+                                               armored => 15,
+                                               -armored => 2,
+                                       },
                                        splash => 1,
                                        cooldown => 3,
+                                       range => 13,
                                },
-                               range => 13,
-                       },
+                       ],
                        speed => 0,
-                       duration => 4,
+                       transform => 4,
                },
        ],
        speed => 2.25,
@@ -1479,7 +1663,7 @@ use strict;
        race => 'terran',
        cat => 'factory',
        name => 'Thor',
-       unit => 6,
+       pop => 6,
        min => 300,
        gas => 200,
        build => 60,
@@ -1492,33 +1676,43 @@ use strict;
                mech => 1,
                massive => 1,
        },
-       attack => {
-               ground => {
-                       damage => [30, 33, 36, 39],
-                       dps => [46.9, 51.6, 56.3, 61.0],
+       attack => [
+               {
+                       anti => 1,
+                       name => "Thor's Hammer",
+                       damage => 30,
+                       upgrade => 3,
                        cooldown => 1.28,
                        range => 7,
                        count => 2,
                },
-               air => {
-                       name => 'Explosive Payload',
-                       damage => [6 .. 9],
-                       #bonus => +6 (+1) L Air,
-                       dps => [8, 9.3, 10.6, 11.9],
+               {
+                       anti => 2,
+                       name => 'Javelin Missiles',
+#                      name => 'Explosive Payload',
+                       damage => 6,
+                       upgrade => 1,
+                       bonus => {
+                               light => 6,
+                               -light => 1,
+                       },
                        splash => 1,
                        type => 'projectile',
                        cooldown => 3,
                        range => 10,
                        count => 4,
                },
-               air => {
-                       name => 'High Impact Payload',
-                       damage => [24, 26, 28, 30],
-                       dps => [12 .. 15],
+               {
+                       anti => 2,
+                       name => 'Punisher Cannons',
+#                      name => 'High Impact Payload',
+                       damage => 24,
+                       upgrade => 2,
+                       type => 'projectile',
                        cooldown => 2,
                        range => 10,
                },
-       },
+       ],
        speed => 1.875,
        sight => 11,
 },
@@ -1527,7 +1721,7 @@ use strict;
        race => 'terran',
        cat => 'starport',
        name => 'Viking',
-       unit => 2,
+       pop => 2,
        min => 150,
        gas => 75,
        build => 42,
@@ -1540,32 +1734,38 @@ use strict;
                mech => 1,
                flying => 1,
        },
-       attack => {
-               air => {
-                       damage => [10 .. 13],
-                       #bonus => +4A,
-                       dps => [10 .. 13],
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Lanzer Torpedoes',
+                       damage => 10,
+                       upgrade => 1,
+                       bonus => {
+                               armored => 4,
+                       },
                        type => 'projectile',
                        cooldown => 2,
                        count => 2,
+                       range => 9,
                },
-               range => 9,
-       },
+       ],
        special => [
                {
+                       name => 'Assault Mode',
+                       abbr => 'am',
+                       transform => 3,
+                       alt => 'Landed Viking',
                        cargo => 2,
-                       attack => {
-                               name => 'Assault Mode',
-                               abbr => 'am',
-                               build => 3, # transformation time
-                               alt => 'Landed Viking',
-                               ground => {
-                                       damage => [12 .. 15],
-                                       dps => [12 .. 15],
+                       attack => [
+                               {
+                                       anti => 1,
+                                       name => 'Twin Gatling Cannon',
+                                       damage => 12,
+                                       upgrade => 1,
                                        cooldown => 1,
+                                       range => 6,
                                },
-                               range => 6,
-                       },
+                       ],
                },
        ],
        speed => 2.75,
@@ -1576,7 +1776,7 @@ use strict;
        race => 'terran',
        cat => 'starport',
        name => 'Medivac',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 100,
        build => 42,
@@ -1590,7 +1790,8 @@ use strict;
                flying => 1,
        },
        speed => 2.5,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Heal',
@@ -1615,7 +1816,7 @@ use strict;
                        min => 100,
                        gas => 100,
                        build => 80,
-                       starting_energy => 25,
+                       energy => 25,
                },
        ],
 },
@@ -1623,8 +1824,8 @@ use strict;
 {
        race => 'terran',
        cat => 'starport',
-       name => 'Banshee',
-       unit => 3,
+       name => 'Banshee', # AH/G-24
+       pop => 3,
        min => 150,
        gas => 100,
        build => 60,
@@ -1637,19 +1838,22 @@ use strict;
                mech => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [12 .. 15],
-                       dps => [19.2, 20.8, 22.4, 24.0],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Backlash Rockets',
+                       damage => 12,
+                       upgrade => 1,
                        type => 'projectile',
                        cooldown => 1.25,
                        count => 2,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 2.75,
        sight => 10,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Cloak',
@@ -1668,7 +1872,7 @@ use strict;
        race => 'terran',
        cat => 'starport',
        name => 'Raven',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 200,
        build => 60,
@@ -1684,11 +1888,12 @@ use strict;
        speed => 2.25,
        sight => 11,
        detect => 1,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        alt => 'Auto-Turret',
-#                      abbr => 'at',
+                       abbr => 'at',
                        cost => 50,
                        size => 2,
                        cargo => 0,
@@ -1699,15 +1904,15 @@ use strict;
                                mech => 1,
                                structure => 1,
                        },
-                       attack => {
-                               ground => {
+                       attack => [
+                               {
+                                       anti => 3,
+                                       name => '12 mm Gauss Cannon',
                                        damage => 8,
-                                       dps => 10,
                                        cooldown => 0.8,
+                                       range => 6,
                                },
-                               air => 'ground',
-                               range => 6,
-                       },
+                       ],
                        speed => 0,
                        sight => 7,
                        upgrade => [
@@ -1716,9 +1921,11 @@ use strict;
                                        min => 100,
                                        gas => 100,
                                        build => 80,
-                                       attack => {
-                                               range => 1,
-                                       },
+                                       attack => [
+                                               {
+                                                       range => 1,
+                                               },
+                                       ],
                                },
                                {
                                        name => 'Building Armor',
@@ -1727,7 +1934,15 @@ use strict;
                                        build => 140,
                                        armor => 2,
                                },
+                               {
+                                       name => 'Durable Materials',
+                                       min => 150,
+                                       gas => 150,
+                                       build => 110,
+                                       duration => 60,
+                               },
                        ],
+                       duration => 180,
                },
                {
                        alt => 'Point Defense Drone',
@@ -1744,9 +1959,12 @@ use strict;
                                flying => 1,
                        },
                        cooldown => 0,
-                       attack => {
-                               range => 8,
-                       },
+                       attack => [
+                               {
+                                       name => 'Point Defense Laser',
+                                       range => 8,
+                               },
+                       ],
                        sight => 7,
                        upgrade => [
                                {
@@ -1754,9 +1972,11 @@ use strict;
                                        min => 100,
                                        gas => 100,
                                        build => 80,
-                                       attack => {
-                                               range => 1,
-                                       },
+                                       attack => [
+                                               {
+                                                       range => 1,
+                                               },
+                                       ],
                                },
                                {
                                        name => 'Building Armor',
@@ -1765,6 +1985,13 @@ use strict;
                                        build => 140,
                                        armor => 2,
                                },
+                               {
+                                       name => 'Durable Materials',
+                                       min => 150,
+                                       gas => 150,
+                                       build => 110,
+                                       duration => 10,
+                               },
                        ],
                        duration => 20,
                },
@@ -1774,34 +2001,22 @@ use strict;
                        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,
-                       },
+                       attack => [
+                               {
+                                       damage => 100,
+                                       splash => 1,
+                               },
+                       ],
                        cost => 75,
                },
        ],
-       update => [
-               {
-                       name => 'Durable Materials',
-                       min => 150,
-                       gas => 150,
-                       build => 110,
-                       special => {
-                               at => {
-                                       duration => 240,
-                               },
-                               pd => {
-                                       duration => 30,
-                               },
-                       },
-               },
+       upgrade => [
                {
                        name => 'Corvid Reactor',
                        min => 150,
                        gas => 150,
                        build => 110,
-                       starting_energy => 25,
+                       energy => 25,
                },
        ],
 },
@@ -1810,7 +2025,7 @@ use strict;
        race => 'terran',
        cat => 'starport',
        name => 'Battlecruiser',
-       unit => 6,
+       pop => 6,
        min => 400,
        gas => 300,
        build => 90,
@@ -1824,24 +2039,30 @@ use strict;
                massive => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [8 .. 11],
-                       dps => [35.6, 40.0, 44.4, 48.8],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'ATS Laser Batteries',
+                       damage => 8,
+                       upgrade => 1,
                        cooldown => 0.225,
                        type => 'projectile',
+                       range => 6,
                },
-               air => {
-                       damage => [6 .. 9],
-                       dps => [26.7, 31.1, 35.5, 39.9],
+               {
+                       anti => 2,
+                       name => 'ATA Laser Batteries',
+                       damage => 6,
+                       upgrade => 1,
                        cooldown => 0.225,
                        type => 'projectile',
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 1.875,
        sight => 12,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Yamato Cannon',
@@ -1853,18 +2074,20 @@ use strict;
                        duration => 3,
                        range => 10,
                        cost => 100,
-                       attack => {
-                               damage => 300,
-                       },
+                       attack => [
+                               {
+                                       damage => 300,
+                               },
+                       ],
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Behemoth Reactor',
                        min => 150,
                        gas => 150,
                        build => 80,
-                       starting_energy => 25,
+                       energy => 25,
                },
        ],
 },
@@ -1875,7 +2098,7 @@ use strict;
        race => 'zerg',
        cat => 'base',
        name => 'Drone',
-       unit => 1,
+       pop => 1,
        min => 50,
        gas => 0,
        build => 17,
@@ -1887,24 +2110,32 @@ use strict;
                light => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Claws',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.8125,
        creep => 1.0,
        sight => 8,
+       special => [
+               {
+                       name => 'worker',
+                       abbr => '⚒',
+                       desc => "morph into buildings\n- $GATHER",
+               },
+       ],
 },
 
 {
        race => 'zerg',
        cat => 'base',
        name => 'Queen',
-       unit => 2,
+       pop => 2,
        min => 150,
        gas => 0,
        build => 50,
@@ -1916,27 +2147,32 @@ use strict;
                organic => 1,
                psionic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [4 .. 7],
-                       dps => [8, 10, 12, 14],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Claws',
+                       damage => 4,
+                       upgrade => 1,
                        cooldown => 1.0,
                        type => 'projectile', # except if range < 3
                        range => 5,
                        count => 2,
                },
-               air => {
-                       damage => [9 .. 12],
-                       dps => [9 .. 12],
+               {
+                       anti => 2,
+                       name => 'Acid Spines',
+                       damage => 9,
+                       upgrade => 1,
                        cooldown => 1.0,
                        type => 'projectile', # except if range < 3
                        range => 7,
                },
-       },
+       ],
        speed => 0.9375,
        creep => 2.7,
        sight => 9,
-       energy => 200,
+       energy => 25,
+       capacity => 200,
        special => [
                {
                        name => 'Spawn Larva',
@@ -1970,7 +2206,7 @@ use strict;
        race => 'zerg',
        cat => 'base',
        name => 'Overlord',
-       unit => -9,
+       pop => -9,
        min => 100,
        gas => 0,
        build => 25,
@@ -1984,7 +2220,6 @@ use strict;
                flying => 1,
        },
        speed => 0.586,
-       creep => 0,
        sight => 11,
        special => [
                {
@@ -1999,8 +2234,8 @@ use strict;
        upgrade => [
                {
                        name => 'Pneumatized Carapace',
-                       min => 100,
-                       gas => 100,
+                       min => $V lt v4.10.1 || $V ge v4.11.0 ? 100 : 75,
+                       gas => $V lt v4.10.1 || $V ge v4.11.0 ? 100 : 75,
                        build => 60,
                        speed => 1.294,
                },
@@ -2020,7 +2255,7 @@ use strict;
        cat => 'base',
        name => 'Overseer',
        base => ['Overlord'],
-       unit => -9,
+       pop => -9,
        min => 100+50,
        gas => 50,
        build => 17,
@@ -2034,13 +2269,14 @@ use strict;
                flying => 1,
        },
        speed => 1.875,
-       creep => 0,
        sight => 11,
        detect => 1,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Spawn Changeling',
+                       abbr => 'sc',
                        alt => 'Changeling',
                        cost => 50,
                        duration => 150,
@@ -2056,6 +2292,7 @@ use strict;
                        speed => 2.25,
                        creep => 1.0,
                        sight => 8,
+                       range => 0,
                },
                {
                        name => 'Contaminate',
@@ -2069,10 +2306,10 @@ use strict;
        upgrade => [
                {
                        name => 'Pneumatized Carapace',
-                       min => 100,
-                       gas => 100,
+                       min => $V lt v4.10.1 || $V ge v4.11.0 ? 100 : 75,
+                       gas => $V lt v4.10.1 || $V ge v4.11.0 ? 100 : 75,
                        build => 60,
-                       speed => 0.875,
+                       speed => 3.375 - 1.875,
                },
        ],
 },
@@ -2081,7 +2318,7 @@ use strict;
        race => 'zerg',
        cat => 'creep',
        name => 'Larva',
-       unit => 0,
+       pop => 0,
        build => 15,
        size => 0.25,
        cargo => 0,
@@ -2125,15 +2362,18 @@ use strict;
                organic => 1,
                structure => 1,
        },
-       attack => {
-               ground => {
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Impaler Tentacle',
                        damage => 25,
-                       #bonus => +5A,
-                       dps => 13.5,
+                       bonus => {
+                               armored => 5,
+                       },
                        cooldown => 1.85,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => (1.0),
        creep => 2.5,
        sight => 11,
@@ -2155,16 +2395,19 @@ use strict;
                organic => 1,
                structure => 1,
        },
-       attack => {
-               air => {
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Seeker Spores',
                        damage => 15,
-                       #bonus => + 30 B,
-                       dps => 17.4,
+                       bonus => {
+                               organic => 30,
+                       },
                        type => 'projectile',
                        cooldown => 0.8608,
+                       range => 7,
                },
-               range => 7,
-       },
+       ],
        speed => (1.0),
        creep => 2.5,
        sight => 11,
@@ -2175,7 +2418,7 @@ use strict;
        race => 'zerg',
        cat => 'hatchery',
        name => 'Zergling',
-       unit => 0.5,
+       pop => 0.5,
        min => 25,
        gas => 0,
        build => 24,
@@ -2187,13 +2430,15 @@ use strict;
                light => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [5 .. 8],
-                       dps => [7.2, 8.6, 10.0, 11.4],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Claws',
+                       damage => 5,
+                       upgrade => 1,
                        cooldown => 0.696,
                },
-       },
+       ],
        speed => 2.9531,
        creep => 1.3,
        range => 0,
@@ -2204,12 +2449,12 @@ use strict;
                        min => 200,
                        gas => 200,
                        build => 130,
-                       attack => {
-                               ground => {
-                                       dps => [8.5, 10.2, 11.9, 13.6],
+                       attack => [
+                               {
+                                       anti => 1,
                                        cooldown => -0.109,
                                },
-                       },
+                       ],
                        req => 'Hive',
                },
                {
@@ -2227,7 +2472,7 @@ use strict;
        cat => 'hatchery',
        name => 'Baneling',
        base => ['Zergling'],
-       unit => 0.5,
+       pop => 0.5,
        min => 25+25,
        gas => 25,
        build => 20,
@@ -2238,14 +2483,22 @@ use strict;
        attr => {
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [20, 22, 24, 26],
-                       #bonus => +15 (+2)L / +60 (+3)S,
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Volatile Burst',
+                       damage => 20,
+                       upgrade => 2,
+                       bonus => {
+                               light => 15,
+                               -light => 2,
+                               structure => 60,
+                               -structure => 3,
+                       },
                        splash => 1,
+                       range => 0,
                },
-               range => 0,
-       },
+       ],
        speed => 2.5,
        creep => 1.3,
        sight => 8,
@@ -2265,7 +2518,7 @@ use strict;
        race => 'zerg',
        cat => 'hatchery',
        name => 'Roach',
-       unit => 2,
+       pop => 2,
        min => 75,
        gas => 25,
        build => 27,
@@ -2277,13 +2530,16 @@ use strict;
                armored => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [16, 18, 20, 22],
-                       dps => [8 .. 11],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Acid Saliva', # Claws melee
+                       damage => 16,
+                       upgrade => 2,
                        cooldown => 2.0,
+                       range => 4,
                },
-       },
+       ],
        speed => 2.25,
        creep => 1.3,
        range => 4,
@@ -2322,7 +2578,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Hydralisk',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 50,
        build => 33,
@@ -2334,16 +2590,17 @@ use strict;
                light => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       damage => [12 .. 15],
-                       dps => [16, 17.3, 18.6, 19.9],
-                       type => 'projectile', # except meelee
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Needle Spines', # Scythe melee
+                       damage => 12,
+                       upgrade => 1,
+                       type => 'projectile', # except melee
                        cooldown => 0.75,
+                       range => 5,
                },
-               air => 'ground',
-               range => 5,
-       },
+       ],
        speed => 2.25,
        creep => 1.5,
        sight => 9,
@@ -2353,9 +2610,11 @@ use strict;
                        min => 150,
                        gas => 150,
                        build => 80,
-                       attack => {
-                               range => 1,
-                       },
+                       attack => [
+                               {
+                                       range => 1,
+                               },
+                       ],
                },
                {
                        name => 'Muscular Augments',
@@ -2364,6 +2623,7 @@ use strict;
                        build => 100,
                        speed => 0.5625,
                        creep => -0.302,
+                       speed => $V ge v5.0.11 ? .98 : .79, #TODO
                },
        ],
 },
@@ -2372,7 +2632,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Infestor',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 150,
        build => 50,
@@ -2388,7 +2648,8 @@ use strict;
        speed => 2.25,
        creep => 1.3,
        sight => 10,
-       energy => 200,
+       energy => 50,
+       capacity => 200,
        special => [
                {
                        name => 'Neural Parasite',
@@ -2409,13 +2670,14 @@ use strict;
                        range => 10,
                        duration => 4,
                        radius => 2.0,
+                       detect => 1,
                },
                {
                        alt => 'Infested Terran',
                        cost => 25,
                        range => 9,
                        duration => 30,
-                       build => 5,
+                       build => 4.8, # 5 normal but 3 faster
                        size => 0.75,
                        cargo => 0,
                        armor => 0,
@@ -2424,27 +2686,27 @@ use strict;
                                light => 1,
                                organic => 1,
                        },
-                       attack => {
-                               ground => {
+                       attack => [
+                               {
+                                       name => 'Infested Rockets',
+                                       anti => 3,
                                        damage => 8,
-                                       dps => 9.3,
                                        cooldown => 0.8608,
+                                       range => 5,
                                },
-                               air => 'ground',
-                               range => 5,
-                       },
+                       ],
                        speed => 0.9375,
                        creep => 1.3,
                        sight => 9,
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Pathogen Glands',
                        min => 150,
                        gas => 150,
                        build => 80,
-                       starting_energy => 25,
+                       energy => 25,
                },
        ],
 },
@@ -2453,7 +2715,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Nydus Worm',
-       min => 100,
+       min => 100, # Nydus Network costs 150/200
        gas => 100,
        build => 20,
        size => 3,
@@ -2473,7 +2735,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Swarm Host',
-       unit => 4,
+       pop => 4,
        min => 100,
        gas => 200,
        build => 40,
@@ -2485,20 +2747,24 @@ use strict;
                armored => 1,
                organic => 1,
        },
-       attack => {
-               ground => {
-                       dps => [27.9, 30.2, 32.5, 34.8],
+       attack => [
+               {
+                       anti => 1,
+                       dps => [16.7, undef, undef, 20.8], # 20/.6 * 2 /60*25
                        type => 'projectile',
-                       cooldown => 0.86,
+                       count => 2,
+                       cooldown => 60,
+                       duration => 25,
+                       range => 3*25, # locust speed * duration = theoretical walk limit
                },
-       },
+       ],
        speed => 2.95,
        creep => 1.3,
        sight => 10,
        special => [
                {
                        alt => 'Locust',
-                       build => 5,
+                       build => 4.8, # 5 normal but 3 faster
                        size => 0.75,
                        cargo => 0,
                        armor => 0,
@@ -2507,32 +2773,39 @@ use strict;
                                light => 1,
                                organic => 1,
                        },
-                       attack => {
-                               ground => {
-                                       damage => [12 .. 15],
-                                       dps => [14.0, 15.2, 16.4, 17.6],
+                       attack => [
+                               {
+                                       anti => 1,
+                                       name => 'Acid Spit',
+                                       damage => 12,
+                                       upgrade => 1,
                                        type => 'projectile',
                                        cooldown => 0.6,
+                                       range => 3,
                                },
-                               range => 3,
-                       },
+                       ],
                        speed => 1.875,
                        creep => 1.4,
                        sight => 6,
                        duration => 25,
                        cooldown => 60,
                        count => 2,
+                       upgrade => [
+                               {
+                                       # Flying Locusts
+                                       attr => {
+                                               flying => 1,
+                                       },
+                               },
+                       ],
                },
        ],
-       update => [
+       upgrade => [
                {
                        name => 'Flying Locusts',
                        min => 200,
                        gas => 200,
                        build => 160,
-                       attr => {
-                               flying => 1,
-                       },
                },
        ],
 },
@@ -2541,7 +2814,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Mutalisk',
-       unit => 2,
+       pop => 2,
        min => 100,
        gas => 100,
        build => 33,
@@ -2554,20 +2827,22 @@ use strict;
                organic => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [9 .. 12],
-                       dps => [5.9, 6.6, 7.3, 8.0],
+       attack => [
+               {
+                       anti => 3,
+                       name => 'Glaive Wurm',
+                       damage => 9,
+                       upgrade => 1,
                        splash => 'bounce',
+                       type => 'projectile',
                        psionic => 1,
                        cooldown => 1.5246,
+                       range => 3,
                },
-               air => 'ground',
-               range => 3,
-       },
+       ],
        speed => 4,
        sight => 11,
-       update => [
+       upgrade => [
                {
                        name => 'Tissue Regeneration',
                        abbr => 'tr',
@@ -2580,7 +2855,7 @@ use strict;
        race => 'zerg',
        cat => 'lair',
        name => 'Corruptor',
-       unit => 2,
+       pop => 2,
        min => 150,
        gas => 100,
        build => 40,
@@ -2593,16 +2868,21 @@ use strict;
                organic => 1,
                flying => 1,
        },
-       attack => {
-               air => {
-                       damage => [14 .. 17],
-                       #bonus => +6 (+1)Ma,
-                       dps => [7.4, 7.9, 8.4, 8.9],
+       attack => [
+               {
+                       anti => 2,
+                       name => 'Parasite Spores',
+                       damage => 14,
+                       upgrade => 1,
+                       bonus => {
+                               massive => 6,
+                               -massive => 1,
+                       },
                        type => 'projectile',
                        cooldown => 1.9,
+                       range => 6,
                },
-               range => 6,
-       },
+       ],
        speed => 2.9531,
        sight => 10,
        special => [
@@ -2621,7 +2901,7 @@ use strict;
        cat => 'hive',
        name => 'Brood Lord',
        base => ['Corruptor'],
-       unit => 4,
+       pop => 4,
        min => 150+150,
        gas => 100+150,
        build => 34,
@@ -2635,24 +2915,25 @@ use strict;
                massive => 1,
                flying => 1,
        },
-       attack => {
-               ground => {
-                       damage => [20, 22, 24, 26],
-                       dps => [8.0, 8.8, 9.6, 10.4],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Broodling Strike',
+                       damage => 20,
+                       upgrade => 2,
                        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,
+                       duration => $V ge v5.0.11 ? 2.55 : 4,
                        alt => 'Broodling',
-                       unit => 0,
+                       pop => 0,
 #                      build => 1,
                        size => 0.75,
                        cargo => 0,
@@ -2662,14 +2943,16 @@ use strict;
                                light => 1,
                                organic => 1,
                        },
-                       attack => {
-                               ground => {
-                                       damage => [4 .. 7],
-                                       dps => [6.2, 7.7, 9.2, 10.7],
+                       attack => [
+                               {
+                                       anti => 1,
+                                       name => 'Claws',
+                                       damage => 4,
+                                       upgrade => 1,
                                        cooldown => 0.6455,
+                                       range => 0,
                                },
-                               range => 0,
-                       },
+                       ],
                        speed => 3.836,
                        creep => 1.0,
                        sight => 7,
@@ -2687,7 +2970,7 @@ use strict;
        race => 'zerg',
        cat => 'hive',
        name => 'Viper',
-       unit => 3,
+       pop => 3,
        min => 100,
        gas => 200,
        build => 40,
@@ -2703,7 +2986,8 @@ use strict;
        },
        speed => 2.9531,
        sight => 11,
-       energy => 200,
+       energy => 50, #XXX
+       capacity => 200,
        special => [
                {
                        name => 'Blinding Cloud',
@@ -2726,6 +3010,7 @@ use strict;
                        name => 'Consume',
                        abbr => 'cs',
                        desc => 'leaches 200 life of friendly building over 20s to gain 50 energy',
+                       cost => -50,
                        duration => 20,
                        range => 7,
                        cooldown => 1,
@@ -2737,7 +3022,7 @@ use strict;
        race => 'zerg',
        cat => 'hive',
        name => 'Ultralisk',
-       unit => 6,
+       pop => 6,
        min => 300,
        gas => 200,
        build => 55,
@@ -2750,15 +3035,17 @@ use strict;
                organic => 1,
                massive => 1,
        },
-       attack => {
-               ground => {
-                       damage => [35, 38, 41, 44],
-                       dps => [40.7, 44.2, 47.7, 51.2],
+       attack => [
+               {
+                       anti => 1,
+                       name => 'Kaiser Blades',
+                       damage => 35,
+                       upgrade => 3,
                        splash => 1,
                        cooldown => 0.861,
+                       range => 1,
                },
-               range => 1,
-       },
+       ],
        speed => 2.9531,
        creep => 1.3,
        sight => 9,