sc: prefer precalculated dps for aggregate attacks
[sheet.git] / sc-units-hots.inc.pl
index bba333134e4ebb418b7102146b9b53ed8c16376c..6b230d90be347c1e1d73c23d57603f745bfd3a83 100644 (file)
@@ -27,8 +27,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Particle beam',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
                        range => 0,
                },
@@ -55,8 +55,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Phase disruptor',
                        damage => 20,
-                       dps => 16,
                        cooldown => 1.25,
                        type => 'projectile',
                        range => 7,
@@ -89,8 +89,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Repulsor Cannon',
                        damage => [8 .. 11],
-                       dps => [9.4, 10.6, 11.8, 13.0],
                        type => 'projectile',
                        cooldown => 0.85,
                        range => 5,
@@ -149,8 +149,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Purifier beams',
                        damage => [6 .. 9],
-                       dps => [16.3, 19.0, 21.7, 24.4],
                        cooldown => 2.21,
                        count => 6,
                        range => 7,
@@ -206,8 +206,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Photon overcharge',
                        damage => 20,
-                       dps => 16,
                        cooldown => 1.25,
                        type => 'projectile',
                        range => 13,
@@ -248,8 +248,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Psi blades',
                        damage => [8 .. 11],
-                       dps => [13.3, 15.0, 16.7, 18.4],
                        cooldown => 1.2,
                        count => 2,
                        range => 0,
@@ -295,8 +295,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Disruption beam',
                        damage => [6 .. 9],
-                       dps => [6 .. 9],
                        cooldown => 1.0,
                        range => 5,
                },
@@ -354,8 +354,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Particle disruptors',
                        damage => [10 .. 13],
-                       dps => [6.9, 7.6, 8.3, 9.0],
                        bonus => {
                                armored => 4,
                        },
@@ -448,8 +448,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Warp blade',
                        damage => [45, 50, 55, 60],
-                       dps => [26.6, 29.6, 32.6, 35.6],
                        cooldown => 1.694,
                        range => 0,
                },
@@ -487,8 +487,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Psionic shockwave',
                        damage => [25, 28, 31, 34],
-                       dps => [14.3, 16.0, 17.7, 19.4],
                        bonus => {
                                organic => [10 .. 13],
                        },
@@ -521,11 +521,11 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Phase disruptors',
                        damage => [20, 22, 24, 26],
                        bonus => {
                                armored => [30, 33, 36, 39],
                        },
-                       dps => [13.8, 15.2, 16.6, 18.0],
                        cooldown => 1.45,
                        range => 6,
                },
@@ -564,8 +564,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Thermal Lances',
                        damage => [15, 17, 19, 21],
-                       dps => [18.2, 20.6, 23.0, 25.4],
                        splash => 'line',
                        cooldown => 1.65,
                        count => 2,
@@ -689,8 +689,8 @@ use strict;
        attack => [
                {
                        anti => 2,
+                       name => 'Ion Cannons',
                        damage => [5 .. 8],
-                       dps => [9, 10.8, 12.6, 14.4],
                        bonus => {
                                light => 5,
                        },
@@ -749,11 +749,11 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Prismatic beam',
                        damage => [6 .. 9],
                        bonus => {
                                armored => [4 .. 7],
                        },
-                       dps => [12, 14, 16, 18],
                        cooldown => 0.5,
                        range => 6, # keeps firing until range 8
                },
@@ -806,7 +806,6 @@ use strict;
                        bonus => {
                                light => 10,
                        },
-                       dps => 17.4,
                        cooldown => 0.86,
                        cost => 25,
                        maint => 1.4,
@@ -859,12 +858,20 @@ use strict;
        },
        attack => [
                {
-                       anti => 3,
+                       anti => 2,
+                       name => 'Kinetic Overload',
                        damage => [30, 33, 36, 39],
                        bonus => {
-                               'massive air' => 14,
+                               massive => [14, 16, 18, 20],
                        },
-                       dps => [9.1, 10.0, 10.9, 11.8],
+                       type => 'projectile',
+                       cooldown => 3.3,
+                       range => 15,
+               },
+               {
+                       anti => 1,
+                       name => 'Resonance Coil',
+                       damage => [30, 33, 36, 39],
                        type => 'projectile',
                        cooldown => 3.3,
                        range => 15,
@@ -895,7 +902,11 @@ use strict;
        },
        attack => [
                {
+                       anti => 3,
+                       count => 8,
                        range => 8, # leash range 14
+                       dps => [26.7, undef, undef, 42.6],
+                       cooldown => 0.5,
                },
        ],
        speed => 1.875,
@@ -920,10 +931,8 @@ use strict;
                        attack => [
                                {
                                        anti => 3,
+                                       name => 'Interceptor Beams',
                                        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,
@@ -940,6 +949,11 @@ use strict;
                        gas => 150,
                        build => 80,
                        desc => 'increases Interceptor launch speed from 2/s to 4-8/s',
+                       attack => [
+                               {
+                                       cooldown => -0.375, # -0.25
+                               },
+                       ],
                },
        ],
 },
@@ -949,7 +963,7 @@ use strict;
 {
        race => 'terran',
        cat => 'base',
-       name => 'SCV',
+       name => 'SCV', # T-280 Space Construction Vehicle
        unit => 1,
        min => 50,
        gas => 0,
@@ -966,8 +980,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Fusion cutter',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
                        range => 0,
                },
@@ -1013,8 +1027,8 @@ use strict;
        attack => [
                {
                        anti => 2,
+                       name => 'Longbolt missiles',
                        damage => 12,
-                       dps => 27.9,
                        cooldown => 0.8608,
                        count => 2,
                        type => 'projectile',
@@ -1067,8 +1081,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Ibiks cannon',
                        damage => 40,
-                       dps => 20,
                        splash => 1,
                        cooldown => 2,
                        range => 6,
@@ -1126,7 +1140,6 @@ use strict;
                        anti => 3,
                        name => 'C-14 rifle',
                        damage => [6 .. 9],
-                       dps => [7, 8.2, 9.4, 10.6],
                        cooldown => 0.8608,
                        range => 5,
                },
@@ -1154,7 +1167,6 @@ use strict;
                                {
                                        anti => 3,
                                        damage => [6 .. 9],
-                                       dps => [10.5, 12.2, 13.9, 15.6],
                                        cooldown => 0.5739,
                                        range => 5,
                                },
@@ -1184,11 +1196,11 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Punisher grenades',
                        damage => [10 .. 13],
                        bonus => {
                                armored => [10 .. 13],
                        },
-                       dps => [6.7, 7.4, 8.1, 8.8],
                        type => 'projectile',
                        cooldown => 1.5,
                        range => 6,
@@ -1210,7 +1222,6 @@ use strict;
                                        bonus => {
                                                armored => [10 .. 13],
                                        },
-                                       dps => [10 .. 13],
                                        type => 'projectile',
                                        cooldown => 1.0,
                                        range => 6,
@@ -1254,8 +1265,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'P-45 Reaper pistol',
                        damage => [4 .. 7],
-                       dps => [7.3, 9.1, 10.9, 12.7],
                        cooldown => 1.1,
                        count => 2,
                        range => 4.5,
@@ -1292,11 +1303,11 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'C-10 rifle',
                        damage => [10 .. 13],
                        bonus => {
                                light => [10 .. 13],
                        },
-                       dps => [6.7, 7.4, 8.1, 8.8],
                        cooldown => 1.5,
                        range => 6,
                },
@@ -1359,11 +1370,11 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Infernal flamethrower',
                        damage => [8 .. 11],
                        bonus => {
                                light => [6 .. 9],
                        },
-                       dps => [3.2, 3.6, 4.0, 4.4],
                        splash => 'line',
                        cooldown => 2.5,
                        range => 5,
@@ -1417,8 +1428,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Napalm Spray',
                        damage => [18, 20, 22, 24],
-                       dps => [9 .. 12],
                        splash => 1,
                        cooldown => 2,
                        range => 2,
@@ -1470,6 +1481,7 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Sentinel Missiles',
                        damage => 125,
                        bonus => {
                                shields => 40,
@@ -1512,11 +1524,11 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => '90 mm twin cannon',
                        damage => [15, 17, 19, 21],
                        bonus => {
                                armored => [10 .. 13],
                        },
-                       dps => [14.4, 16.3, 18.2, 20.1],
                        cooldown => 1.04,
                        range => 7,
                },
@@ -1530,11 +1542,11 @@ use strict;
                        attack => [
                                {
                                        anti => 1,
+                                       name => '120 mm shock cannon',
                                        damage => [35, 38, 41, 44],
                                        bonus => {
                                                armored => [15, 17, 19, 21],
                                        },
-                                       dps => [11.7, 12.7, 13.7, 14.7],
                                        splash => 1,
                                        cooldown => 3,
                                        range => 13,
@@ -1568,20 +1580,20 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => "Thor's Hammer",
                        damage => [30, 33, 36, 39],
-                       dps => [46.9, 51.6, 56.3, 61.0],
                        cooldown => 1.28,
                        range => 7,
                        count => 2,
                },
                {
                        anti => 2,
-                       name => 'Explosive Payload',
+                       name => 'Javelin Missiles',
+#                      name => 'Explosive Payload',
                        damage => [6 .. 9],
                        bonus => {
                                'light air' => [6 .. 9],
                        },
-                       dps => [8, 9.3, 10.6, 11.9],
                        splash => 1,
                        type => 'projectile',
                        cooldown => 3,
@@ -1590,9 +1602,9 @@ use strict;
                },
                {
                        anti => 2,
-                       name => 'High Impact Payload',
+                       name => 'Punisher Cannons',
+#                      name => 'High Impact Payload',
                        damage => [24, 26, 28, 30],
-                       dps => [12 .. 15],
                        cooldown => 2,
                        range => 10,
                },
@@ -1621,11 +1633,11 @@ use strict;
        attack => [
                {
                        anti => 2,
+                       name => 'Lanzer torpedoes',
                        damage => [10 .. 13],
                        bonus => {
                                armored => 4,
                        },
-                       dps => [10 .. 13],
                        type => 'projectile',
                        cooldown => 2,
                        count => 2,
@@ -1642,8 +1654,8 @@ use strict;
                        attack => [
                                {
                                        anti => 1,
+                                       name => 'Twin gatling cannon',
                                        damage => [12 .. 15],
-                                       dps => [12 .. 15],
                                        cooldown => 1,
                                        range => 6,
                                },
@@ -1705,7 +1717,7 @@ use strict;
 {
        race => 'terran',
        cat => 'starport',
-       name => 'Banshee',
+       name => 'Banshee', # AH/G-24
        unit => 3,
        min => 150,
        gas => 100,
@@ -1722,8 +1734,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Backlash rockets',
                        damage => [12 .. 15],
-                       dps => [19.2, 20.8, 22.4, 24.0],
                        type => 'projectile',
                        cooldown => 1.25,
                        count => 2,
@@ -1785,8 +1797,8 @@ use strict;
                        attack => [
                                {
                                        anti => 3,
+                                       name => '12 mm gauss cannon',
                                        damage => 8,
-                                       dps => 10,
                                        cooldown => 0.8,
                                        range => 6,
                                },
@@ -1831,6 +1843,7 @@ use strict;
                        cooldown => 0,
                        attack => [
                                {
+                                       name => 'Point defense laser',
                                        range => 8,
                                },
                        ],
@@ -1918,16 +1931,16 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'ATS laser batteries',
                        damage => [8 .. 11],
-                       dps => [35.6, 40.0, 44.4, 48.8],
                        cooldown => 0.225,
                        type => 'projectile',
                        range => 6,
                },
                {
                        anti => 2,
+                       name => 'ATS laser batteries',
                        damage => [6 .. 9],
-                       dps => [26.7, 31.1, 35.5, 39.9],
                        cooldown => 0.225,
                        type => 'projectile',
                        range => 6,
@@ -1986,8 +1999,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Claws',
                        damage => 5,
-                       dps => 3.3,
                        cooldown => 1.5,
                        range => 0,
                },
@@ -2016,8 +2029,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Claws',
                        damage => [4 .. 7],
-                       dps => [8, 10, 12, 14],
                        cooldown => 1.0,
                        type => 'projectile', # except if range < 3
                        range => 5,
@@ -2025,8 +2038,8 @@ use strict;
                },
                {
                        anti => 2,
+                       name => 'Acid Spines',
                        damage => [9 .. 12],
-                       dps => [9 .. 12],
                        cooldown => 1.0,
                        type => 'projectile', # except if range < 3
                        range => 7,
@@ -2227,11 +2240,11 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Impaler Tentacle',
                        damage => 25,
                        bonus => {
                                armored => 5,
                        },
-                       dps => 13.5,
                        cooldown => 1.85,
                        range => 7,
                },
@@ -2260,11 +2273,11 @@ use strict;
        attack => [
                {
                        anti => 2,
+                       name => 'Seeker Spores',
                        damage => 15,
                        bonus => {
                                organic => 30,
                        },
-                       dps => 17.4,
                        type => 'projectile',
                        cooldown => 0.8608,
                        range => 7,
@@ -2295,8 +2308,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Claws',
                        damage => [5 .. 8],
-                       dps => [7.2, 8.6, 10.0, 11.4],
                        cooldown => 0.696,
                },
        ],
@@ -2313,7 +2326,6 @@ use strict;
                        attack => [
                                {
                                        anti => 1,
-                                       dps => [8.5, 10.2, 11.9, 13.6],
                                        cooldown => -0.109,
                                },
                        ],
@@ -2348,6 +2360,7 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Volatile Burst',
                        damage => [20, 22, 24, 26],
                        bonus => {
                                light => [15, 17, 19, 21],
@@ -2391,8 +2404,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Acid Saliva', # Claws melee
                        damage => [16, 18, 20, 22],
-                       dps => [8 .. 11],
                        cooldown => 2.0,
                },
        ],
@@ -2449,9 +2462,9 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Needle spines', # Scythe melee
                        damage => [12 .. 15],
-                       dps => [16, 17.3, 18.6, 19.9],
-                       type => 'projectile', # except meelee
+                       type => 'projectile', # except melee
                        cooldown => 0.75,
                        range => 5,
                },
@@ -2542,7 +2555,6 @@ use strict;
                                {
                                        anti => 3,
                                        damage => 8,
-                                       dps => 9.3,
                                        cooldown => 0.8608,
                                        range => 5,
                                },
@@ -2602,9 +2614,12 @@ use strict;
        attack => [
                {
                        anti => 1,
-                       dps => [27.9, 30.2, 32.5, 34.8],
+                       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,
@@ -2625,8 +2640,8 @@ use strict;
                        attack => [
                                {
                                        anti => 1,
+                                       name => 'Acid Spit',
                                        damage => [12 .. 15],
-                                       dps => [14.0, 15.2, 16.4, 17.6],
                                        type => 'projectile',
                                        cooldown => 0.6,
                                        range => 3,
@@ -2673,8 +2688,8 @@ use strict;
        attack => [
                {
                        anti => 3,
+                       name => 'Glaive Wurm',
                        damage => [9 .. 12],
-                       dps => [5.9, 6.6, 7.3, 8.0],
                        splash => 'bounce',
                        psionic => 1,
                        cooldown => 1.5246,
@@ -2712,11 +2727,11 @@ use strict;
        attack => [
                {
                        anti => 2,
+                       name => 'Parasite Spores',
                        damage => [14 .. 17],
                        bonus => {
                                massive => [6 .. 9],
                        },
-                       dps => [7.4, 7.9, 8.4, 8.9],
                        type => 'projectile',
                        cooldown => 1.9,
                        range => 6,
@@ -2757,8 +2772,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Broodling Strike',
                        damage => [20, 22, 24, 26],
-                       dps => [8.0, 8.8, 9.6, 10.4],
                        cooldown => 2.5,
                        range => 9.5,
                },
@@ -2785,8 +2800,8 @@ use strict;
                        attack => [
                                {
                                        anti => 1,
+                                       name => 'Claws',
                                        damage => [4 .. 7],
-                                       dps => [6.2, 7.7, 9.2, 10.7],
                                        cooldown => 0.6455,
                                        range => 0,
                                },
@@ -2847,6 +2862,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,
@@ -2874,8 +2890,8 @@ use strict;
        attack => [
                {
                        anti => 1,
+                       name => 'Kaiser Blades',
                        damage => [35, 38, 41, 44],
-                       dps => [40.7, 44.2, 47.7, 51.2],
                        splash => 1,
                        cooldown => 0.861,
                        range => 1,