X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e2979f68e1958ee38dbe6fa58bd1897518258946..HEAD:/sc-units-lotv.inc.pl diff --git a/sc-units-lotv.inc.pl b/sc-units-lotv.inc.pl index c0fb81e..9a2433d 100644 --- a/sc-units-lotv.inc.pl +++ b/sc-units-lotv.inc.pl @@ -1,6 +1,7 @@ use utf8; use strict; +my $V = v5.0.11; my $RT = 1.4; # real-time speed factor to faster my $hots = do 'sc-units-hots.inc.pl' or die $!; @@ -9,14 +10,14 @@ for my $row (@{$hots}) { ref $row eq 'HASH' or next; for ($row, @{ $row->{special} }, @{ $row->{upgrade} }) { $_ *= $RT for $_->{speed} // (); - $_ /= $RT for $_->{build} // (), $_->{warp} // (), $_->{cooldown} // (); + $_ /= $RT for $_->{build} // (), $_->{transform} // (), $_->{warp} // (), $_->{cooldown} // (); $_->{cooldown} and $_->{cooldown} /= $RT for @{ $_->{attack} // [] }; } $unit{ lc $row->{name} =~ tr/ /_/r } = $row; } [ -'patch 4.1.4', +sprintf('patch %vd', $V), # protoss @@ -27,9 +28,47 @@ $unit{photon_cannon}, { %{ $unit{mothership} }, speed => 2.62, + special => [ + $unit{mothership}->{special}->[0], # cf + $unit{mothership}->{special}->[1], # mr + { + %{ $unit{mothership}->{special}->[2] }, # tw + desc => $V lt v4.11.0 ? 'create a temporal field which slows ground units by 50%' + : 'create a temporal field which slows ground and air units by 50%', + }, + ], }, -$unit{nexus}, +{ + %{ $unit{nexus} }, + attack => [], + energy => 50, + capacity => 200, + special => [ + $unit{nexus}->{special}->[0], # chrono boost + { + name => $V lt v4.7.1 ? 'Mass Recall' : 'Strategic Recall', + abbr => 'sr', + desc => 'recalls units owned by the player in the target area to the Nexus', + cost => 50, + cooldown => $V lt v4.7.1 || $V ge v4.10.1 ? 130 : 85, + radius => $V lt v4.7.1 ? 6.5 : 2.5, + duration => 3.6, # +.7 warp in + }, + $V lt v4.12.0 ? () : { + name => 'Battery Overcharge', + abbr => 'bo', + desc => sprintf( + 'increase target Shield Battery restoration rate by %d%% and function without consuming energy for 14s', + $V ge v5.0.11 ? 50 : 100, + ), + cost => 50, + duration => 14, + cooldown => 60, # shared by all nexuses + range => 8, # within any friendly nexus + }, + ], +}, { %{ $unit{zealot} }, @@ -50,12 +89,27 @@ $unit{nexus}, upgrade => [ { name => 'Charge', - speed => .98, + speed => $V lt v4.11.0 ? .98 : 1.57, }, ], }, -$unit{sentry}, +{ + %{ $unit{sentry} }, + build => $V ge v5.0.11 ? 22.9 : 26.4, + speed => $V ge v5.0.11 ? 3.5 : 3.15, + special => [ + $unit{sentry}->{special}->[0], # ff + { + %{ $unit{sentry}->{special}->[1] }, # gs + radius => $V lt v4.7.1 ? 4 : 4.5, + }, + { + %{ $unit{sentry}->{special}->[2] }, # hl + cost => $V lt v4.7.1 ? 100 : 75, + }, + ], +}, { %{ $unit{stalker} }, @@ -79,7 +133,7 @@ $unit{sentry}, pop => 2, min => 100, gas => 25, - build => 27, + build => $V lt v4.8.2 ? 27 : 30, warp => 20, size => 1, cargo => 2, @@ -118,9 +172,7 @@ $unit{sentry}, build => 0, size => 0, cargo => 0, - attr => { - trans => 1, - }, + hp => -1, attack => [], #TODO: indicate diff from parent speed => 5, #XXX: faster than 3.5 range => 7, #XXX: calculate from speed @@ -135,7 +187,7 @@ $unit{sentry}, build => 100, attack => [ { - cooldown => -.5, # +45% + cooldown => $V lt v4.11.0 || $V ge v4.11.3 ? -.5 : -.6, # +45%/60% }, ], }, @@ -144,6 +196,7 @@ $unit{sentry}, { %{ $unit{high_templar} }, + speed => $V ge v5.0.11 ? 2.82 : 2.63, attack => [ { anti => 1, @@ -154,15 +207,56 @@ $unit{sentry}, range => 6, }, ], + special => [ + { + $unit{high_templar}->{special}->[0], # fb + range => $V lt v4.12.0 ? 9 : 10, + }, + $unit{high_templar}->{special}->[1], # ps + ], +}, + +{ + %{ $unit{dark_templar} }, + special => [ + $unit{dark_templar}->{special}->[0], # cl + { + name => 'Shadow Stride', + abbr => 'bl', + desc => sprintf('teleport to visible location, %.2fs attack delay afterwards', $V ge v5.0.11 ? .71 : .75), + min => 100, + gas => 100, + build => $V lt v4.7.1 ? 121 : 100, + range => 8, + cooldown => $V lt v4.7.1 ? 21 : 14, + }, + ], }, -$unit{dark_templar}, $unit{archon}, -$unit{observer}, + +{ + %{ $unit{observer} }, + speed => $V ge v5.0.11 ? 2.82 : $V lt v4.8.2 || $V ge v4.11.0 ? 2.63 : 3.01, + size => $V ge v5.0.11 ? 1.1 : 1, + special => [ + $unit{observer}->{special}->[0], # cloak + { + name => 'Surveillance Mode', + abbr => 'sm', + desc => 'gain 25% vision while immobilized', + speed => 0, + sight => 2.75, # +25% + transform => .54, + }, + ], +}, { %{ $unit{warp_prism} }, hp => 80, + min => $V lt v4.10.1 ? 200 : 250, + range => $V lt v4.10.1 ? 6 : 5, # pickup upgrade => [ { %{ $unit{warp_prism}->{special}->[0] }, # gravitic drive @@ -215,7 +309,7 @@ $unit{immortal}, shields => 55, }, type => 'trans', #TODO: indicate - splash => 1.5, + splash => $V ge v5.0.11 ? 1.375 : 1.5, cooldown => 14.3, range => 13, # 2s }, @@ -228,12 +322,29 @@ $unit{phoenix}, { %{ $unit{void_ray} }, - speed => 3.5, + min => $V lt v5.0.9 && $V ge v5.0.2 ? 200 : 250, + speed => $V lt v5.0.2 ? 3.5 : 3.85, + build => $V lt v5.0.9 && $V ge v5.0.2 ? 37 : 43, + upgrade => [ + { + name => 'Flux Vanes', + min => 100, + gas => 100, + build => 57, + speed => $V lt v5.0.2 ? 1.15 : .798, + }, + ], }, { %{ $unit{oracle} }, build => 37, + attr => { + $V lt v4.8.2 ? 'light' : 'armored' => 1, + mech => 1, + psionic => 1, + flying => 1, + }, attack => [ { %{ $unit{oracle}->{attack}->[0] }, # pulsar beam @@ -247,11 +358,12 @@ $unit{phoenix}, name => 'Revelation', abbr => 'rv', desc => 'hit enemy units and buildings are revealed for ½ minute', - cost => 50, + cost => $V lt v4.12.0 ? 50 : 25, range => 9, - cooldown => 2.2, - duration => 30, + cooldown => $V lt v4.12.0 ? 2 : 10, + duration => $V lt v4.12.0 ? 30 : $V lt v5.0.2 ? 15 : 20, radius => 6, + detect => 1, }, { name => 'Stasis Ward', @@ -290,8 +402,12 @@ $unit{phoenix}, { %{ $unit{tempest} }, - hp => 300, - shield => 150, + hp => $V lt v4.7.1 ? 300 : $V lt v4.11.0 ? 150 : 200, + shield => $V lt v4.7.1 ? 150 : $V lt v4.11.0 ? 125 : 100, + min => $V lt v4.7.1 ? 300 : 250, + gas => $V lt v4.7.1 ? 200 : 175, + pop => $V lt v4.7.1 ? 6 : 5, + speed => $V lt v4.7.1 ? 2.63 : $V lt v4.8.2 ? 3.5 : 3.15, attack => [ { %{ $unit{tempest}->{attack}->[0] }, # kinetic overload @@ -299,24 +415,47 @@ $unit{phoenix}, massive => 22, -massive => 2, }, + range => $V lt v4.11.0 ? 15 : 14, }, { %{ $unit{tempest}->{attack}->[1] }, # resonance coil + bonus => { + structure => 0, + }, damage => 40, upgrade => 4, }, ], + upgrade => [ + $V lt v5.0.2 ? () : { + name => 'Tectonic Destabilizers', + attack => [ + {}, + { + bonus => { + structure => 40, + }, + }, + ], + min => 150, + gas => 150, + build => 100, + }, + ], }, { %{ $unit{carrier} }, - hp => 250, + hp => $V lt v4.7.1 ? 250 : 300, + build => $V lt v4.7.1 ? 86 : 64, special => [ { %{ $unit{carrier}->{special}->[0] }, # interceptor min => 5, + build => $V lt v4.7.1 ? 6 : $V lt v4.10.1 ? 11 : 9, }, ], + $V lt v4.7.1 ? () : (upgrade => []), # remove Graviton Catapult }, # terran @@ -333,12 +472,12 @@ $unit{marine}, attack => [ { %{ $unit{marauder}->{attack}->[0] }, # punisher grenades - count => 2, - damage => 5, + count => $V lt v4.3.0 ? 2 : 1, + damage => $V lt v4.3.0 ? 5 : 10, upgrade => 1, bonus => { - armored => 5, - -armored => 0, + armored => $V lt v4.3.0 ? 5 : 10, + -armored => $V lt v4.3.0 ? 0 : 1, }, }, ], @@ -361,13 +500,30 @@ $unit{marine}, abbr => 'st', desc => '170 damage ignoring armor to a biological unit after 1.43s without damage', cost => 50, - range => 10, + range => 10, # kept until 14 duration => 1.43, }, - $unit{ghost}->{special}->[1], # emp round + { + %{ $unit{ghost}->{special}->[1] }, # emp round + radius => $V ge v5.0.11 ? 1.75 : $V lt v4.10.1 ? 1.5 : 2, + }, $unit{ghost}->{special}->[2], # cloak $unit{ghost}->{special}->[3], # tac nuke strike ], + upgrade => [ + $V ge v5.0.11 || $V lt v4.10.1 ? () : { + name => 'Enhanced Shockwaves', + min => 150, + gas => 150, + build => 79, + special => [ + {}, + { radius => .5 }, # emp + {}, + {}, + ], + }, + ], }, { @@ -407,6 +563,7 @@ $unit{marine}, bonus => { shields => 25, }, + transform => $V lt v5.0.9 ? .71 : 1.07, }, ], }, @@ -444,7 +601,7 @@ $unit{marine}, size => 1.5, cargo => 3, armor => 1, - hp => 180, + hp => $V lt v4.7.1 ? 180 : 120, attr => { armored => 1, mech => 1, @@ -452,29 +609,33 @@ $unit{marine}, attack => [ { anti => 1, - name => 'Typhoon Blaster', - damage => 3, - upgrade => 1, - bonus => { + name => $V lt v4.7.1 ? 'Tornado Blaster' : 'Typhoon Missile Pod', + damage => $V lt v4.7.1 ? 3 : 18, + upgrade => $V lt v4.7.1 ? 1 : 2, + bonus => $V ge v4.7.1 ? {} : { armored => 2, -armored => 0, }, - cooldown => .1, - range => 6, + cooldown => $V lt v4.7.1 ? .1 : .71, + range => $V lt v4.7.1 ? 6 : 5, }, ], - speed => 4.13, + speed => $V lt v4.7.1 ? 4.13 : 4.73, sight => 11, special => [ { name => 'Lock On', abbr => 'lo', - desc => 'target air for 160 damage ignoring armor while visible and within 15 range', + desc => ( + $V ge v5.0.11 ? 'deal 400 damage (600 after upgrade) over 14 seconds' : + $V ge v4.7.1 ? 'deal 400 damage (double to armored after upgrade) over 14 seconds' : + 'target air for 160 damage ignoring armor while visible and within 15 range' + ), range => 7, - duration => 14, + duration => 14.3, cooldown => 4, }, - { + $V ge v4.7.1 ? () : { name => 'Rapid Fire Launchers', abbr => 'rf', desc => 'rapid first 12 Lock On shots', @@ -483,30 +644,67 @@ $unit{marine}, build => 79, }, ], + upgrade => [ + $V lt v4.7.1 ? () : { + name => 'Mag-Field Accelerator', + min => 100, + gas => 100, + build => $V lt v4.8.2 ? 79 : 100, + desc => 'increases lock-on damage by '.($V ge v5.0.11 ? '50%' : '100% vs armored'), + }, + ], }, { %{ $unit{thor} }, - armor => 2, + armor => $V ge v3.14.0 && $V lt v4.7.1 ? 2 : 1, attack => [ - $unit{thor}->{attack}->[0], - $unit{thor}->{attack}->[1], + $unit{thor}->{attack}->[0], # thor's hammer + $unit{thor}->{attack}->[1], # javelin missiles { - %{ $unit{thor}->{attack}->[2] }, # high impact - damage => 35, + %{ $unit{thor}->{attack}->[2] }, # punisher cannons + name => 'High Impact Payload', + damage => $V lt v4.7.1 ? 35 : $V lt v4.11.0 ? 40 : 25, upgrade => 3, bonus => { - armored => 15, - -armored => 2, + $V lt v4.7.1 ? 'armored' : 'massive' => $V lt v4.11.0 ? 15 : 10, + $V lt v4.7.1 ? '-armored' : '-massive' => 2, }, - cooldown => 2.14, + cooldown => $V lt v4.7.1 ? 2.14 : $V lt v4.11.0 ? 1.71 : .9, + range => $V lt v4.8.2 ? 10 : 11, }, ], #TODO smart servos }, -$unit{viking}, -$unit{medivac}, +{ + %{ $unit{viking} }, + hp => $V lt v4.3.0 ? 125 : 135, +}, + +{ + %{ $unit{medivac} }, + special => [ + $unit{medivac}->{special}->[0], # heal + { + %{ $unit{medivac}->{special}->[1] }, # ignite afterburners + desc => 'boost speed and accelleration to 4.25 for 8s', + speed => 5.94, + duration => $V lt v4.7.1 ? 6.43 : 4.29, + cooldown => $V lt v4.11.0 ? 20 : 14, + -cooldown => 9, + }, + ], + upgrade => [ + { + name => 'Rapid Reignition System', + min => 100, + gas => 100, + build => 57, + speed => .63, + }, + ], +}, { race => 'terran', @@ -515,7 +713,7 @@ $unit{medivac}, pop => 3, min => 150, - gas => 150, + gas => $V ge v5.0.11 ? 125 : 150, build => 43, size => 1.5, armor => 0, @@ -541,7 +739,7 @@ $unit{medivac}, { name => 'Defender Mode', abbr => 'dm', - build => 2.88, # transformation time, 1.46s to revert + transform => 2.88, # 1.46s to revert alt => 'Defender Liberator', attack => [ { @@ -576,11 +774,26 @@ $unit{medivac}, sight => 10, }, -$unit{banshee}, +{ + %{ $unit{banshee} }, + speed => 3.85, + upgrade => [ + { + name => 'Hyperflight Rotors', + speed => 1.4, + min => $V ge v5.0.11 ? 125 : $V ge v4.7.1 ? 150 : 200, + gas => $V ge v5.0.11 ? 125 : $V ge v4.7.1 ? 150 : 200, + build => $V ge v5.0.11 ? 100 : 121.4, + }, + ], +}, { %{ $unit{raven} }, - speed => 3.85, + gas => $V ge v5.0.11 ? 150 : 200, + build => $V ge v5.0.11 ? 34.3 : 42.9, + speed => $V lt v4.11.0 ? 3.85 : 4.13, + upgrade => $V ge v5.0.11 ? [] : $unit{raven}->{upgrade}, # corvid reactor special => [ { %{ $unit{raven}->{special}->[0] }, # auto-turret @@ -593,8 +806,10 @@ $unit{banshee}, range => 6, }, ], - range => 1, - duration => 10, + hp => $V ge v5.0.11 ? 100 : 150, + armor => $V ge v5.0.11 ? 0 : 1, + range => $V lt v4.3.0 ? 1 : 2, + duration => $V ge v5.0.11 ? 7.9 : 10, upgrade => [ $unit{raven}->{special}->[0]->{upgrade}->[0], # hi-sec auto tracking $unit{raven}->{special}->[0]->{upgrade}->[1], # structure armor @@ -605,19 +820,22 @@ $unit{banshee}, name => 'Interference Matrix', abbr => 'im', desc => 'disable target mech or psionic unit rendering it unable to attack or cast', - cost => 50, + cost => $V lt v4.11.0 ? 50 : 75, range => 9, - duration => 7.9, + duration => $V lt v4.11.0 ? 7.9 : 11, }, { name => 'Anti-Armor Missile', abbr => 'aa', - desc => 'launches missile to do 30 splash damage and reduces armor by 3', + desc => sprintf('launches missile %s reduce armor by %d', + $V lt v4.7.1 ? 'to do splash damage and' : 'to', + $V ge v5.0.11 ? 2 : 3, + ), range => 10, size => 2.88, attack => [ { - damage => 30, + damage => $V lt v4.3.0 ? 30 : $V lt v4.7.1 ? 15 : 0, splash => 1, }, ], @@ -627,7 +845,37 @@ $unit{banshee}, ], }, -$unit{battlecruiser}, +{ + %{ $unit{battlecruiser} }, + attack => [ + $unit{battlecruiser}->{attack}->[0], # ats laser + { + %{ $unit{battlecruiser}->{attack}->[1] }, # ata laser + damage => $V lt v4.7.1 ? 6 : 5, + }, + ], + special => [ + { + name => 'Tactical Jump', + abbr => 'tj', + desc => 'warps to the target location after 5s (invulnerable after 1s)', + duration => 4, + cooldown => 71, + }, + { + %{ $unit{battlecruiser}->{special}->[0] }, # yc + desc => '240 damage to a single target', + attack => [ + { + damage => 240, + }, + ], + cost => undef, + cooldown => 71, + }, + ], + upgrade => [], +}, # zerg @@ -639,7 +887,7 @@ $unit{drone}, $unit{queen}->{attack}->[0], # claws { %{ $unit{queen}->{attack}->[1] }, # acid spines - range => 8, + range => $V lt v4.12.0 ? 8 : 7, }, ], range => 8, @@ -657,7 +905,20 @@ $unit{drone}, ], }, -$unit{overseer}, +{ + %{ $unit{overseer} }, + special => [ + { + name => 'Oversight Mode', + abbr => 'om', + desc => 'gain 25% vision while immobilized', + speed => 0, + sight => 11 * 1.25, + transform => .54, + }, + @{ $unit{overseer}->{special} }, # changeling, contaminate + ], +}, $unit{larva}, $unit{spine_crawler}, @@ -681,6 +942,20 @@ $unit{zergling}, { %{ $unit{baneling} }, min => 25, + attack => [ + { + %{ $unit{baneling}->{attack}->[0] }, # volatile burst + damage => $V lt v4.12.0 ? 20 : $V lt v5.0.2 ? 18 : 15, + bonus => { + light => $V lt v4.12.0 ? 15 : $V lt v5.0.2 ? 17 : 20, + -light => 2, + structure => 80, + -structure => 5, + }, + splash => 1, + range => 0, + }, + ], upgrade => [ { %{ $unit{baneling}->{upgrade}->[0] }, # centrifugal hooks @@ -689,7 +964,22 @@ $unit{zergling}, ], }, -$unit{roach}, +{ + %{ $unit{roach} }, + special => [ + { + %{ $unit{roach}->{special}->[0] }, # rapid regeneration + desc => 'regenerates health at 7 HP/s while burrowed', + }, + { + %{ $unit{roach}->{special}->[1] }, # tunneling claws + min => $V lt v4.7.1 ? 150 : 100, + gas => $V lt v4.7.1 ? 150 : 100, + build => 79, + desc => 'move while burrowed at speed of 2.8', + }, + ], +}, { race => 'zerg', @@ -699,7 +989,7 @@ $unit{roach}, pop => 3, min => 25, gas => 75, - build => 9, + build => $V ge v5.0.11 ? 12.14 : 8.57+.36, # added max random size => 1.5, cargo => 4, armor => 1, @@ -758,25 +1048,83 @@ $unit{roach}, attack => [ { anti => 1, - name => '?', + name => 'Spines', damage => 20, upgrade => 2, splash => 'line', cooldown => 1.43, - range => 9, + range => $V lt v4.11.0 ? 9 : 8, bonus => { armored => 10, -armored => 1, }, }, ], + transform => 2.0, + upgrade => [ + $V lt v4.11.0 ? () : { + name => 'Seismic Spines', + attack => [ + { + range => 2, + }, + ], + req => 'Hive', + min => 150, + gas => 150, + build => 57, + }, + { + name => 'Adaptive Talons', + desc => 'halves burrow time and increases movement speed', + speed => .413, + transform => $V lt v5.0.9 ? .71 : 1.07, + }, + ], speed => 4.13, creep => 1.3, sight => 10, }, -$unit{infestor}, -$unit{nydus_worm}, +{ + %{ $unit{infestor} }, + special => [ + { + %{ $unit{infestor}->{special}->[0] }, # neural parasite + range => $V lt v4.11.0 ? 9 : 8, + }, + $unit{infestor}->{special}->[1], # fungal growth + { + name => 'Microbial Shroud', + abbr => 'ms', + desc => 'reduce damage from air by 50% to ground units in target area', + cost => $V lt v4.11.3 ? 100 : 75, + min => $V lt v4.11.3 ? 150 : undef, + gas => $V lt v4.11.3 ? 150 : undef, + build => $V lt v4.11.3 ? 79 : undef, + req => $V lt v4.11.3 ? 'Hive' : undef, + range => 9, + duration => 11, + radius => $V lt v4.11.3 ? 3 : 3.5, + }, + $V ge v4.11.0 ? () : { + %{ $unit{infestor}->{special}->[2] }, # infested terran + attack => [ + { + %{ $unit{infestor}->{special}->[2]->{attack}->[0] }, # rockets + cooldown => $V lt v4.10.1 ? .95 : 1.14, + }, + ], + }, + ], +}, + +{ + % {$unit{nydus_worm} }, + min => $V lt v4.7.1 ? 100 : $V lt v4.11.0 ? 50 : 75, # Nydus Network costs 150/150 + gas => $V lt v4.7.1 ? 100 : $V lt v4.11.0 ? 50 : 75, + cooldown => $V lt v4.11.0 ? 0 : 14, # Summon Nydus Worm +}, { %{ $unit{swarm_host} }, @@ -785,6 +1133,7 @@ $unit{nydus_worm}, { %{ $unit{swarm_host}->{special}->[0] }, # locust hp => 50, + upgrade => [], # no flying }, ], upgrade => [], @@ -792,12 +1141,29 @@ $unit{nydus_worm}, $unit{mutalisk}, $unit{corruptor}, -$unit{brood_lord}, + +{ + %{ $unit{brood_lord} }, + speed => $V ge v5.0.11 ? 2.24 : 1.97, +}, + $unit{viper}, { %{ $unit{ultralisk} }, armor => 2, + size => $V ge v5.0.11 ? 1.75 : 2, + upgrade => [ + $unit{ultralisk}->{upgrade}->[0], # chitinous plating + { + name => 'Anabolic Synthesis', + min => 150, + gas => 150, + build => 42.85, + speed => $V lt v4.8.2 ? .41 : .82, + creep => -.215, # reverse speed increase + }, + ], }, ]