X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e2979f68e1958ee38dbe6fa58bd1897518258946..5c3baccaf899618ba93abdb136d1183456d13bbb:/sc-units-lotv.inc.pl?ds=inline diff --git a/sc-units-lotv.inc.pl b/sc-units-lotv.inc.pl index c0fb81e..9dce802 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.13; 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 @@ -26,10 +27,73 @@ $unit{photon_cannon}, { %{ $unit{mothership} }, - speed => 2.62, + pop => $V ge v5.0.12 ? 6 : 8, + min => $V ge v5.0.12 ? 300 : 400, + gas => $V ge v5.0.12 ? 300 : 400, + build => $V ge v5.0.12 ? 79 : 114, + size => $V ge v5.0.12 ? 2.475 : 2.75, + hp => $V ge v5.0.12 ? 250 : 350, + shield => $V ge v5.0.12 ? 250 : 350, + speed => $V ge v5.0.12 ? 2.83 : 2.62, # rotation speed also increased + energy => $V ge v5.0.12 ? 0 : 50, + special => [ + { + %{ $unit{mothership}->{special}->[0] }, # cf + $V lt v5.0.12 ? () : ( + cooldown => 50, + duration => 20, + desc => $unit{mothership}->{special}->[0]->{desc} . ' for 20s', + ), + }, + { + %{ $unit{mothership}->{special}->[1] }, # mr + cost => $V ge v5.0.12 ? 0 : 100, + cooldown => $V ge v5.0.12 ? 89 : 0, + radius => $V ge v5.0.12 ? 5 : 6.5, + }, + { + %{ $unit{mothership}->{special}->[2] }, # tw + desc => $V lt v4.11.0 ? 'create a temporal field which slows ground units by 50%' : + $V lt v5.0.12 ? 'create a temporal field which slows ground and air units by 50%' : + 'create a temporal field which slows ground and air units by 40%', + cost => $V ge v5.0.12 ? 0 : 100, + cooldown => $V ge v5.0.12 ? 60 : 0, + radius => $V ge v5.0.12 ? 3.75 : 4, + delay => $V ge v5.0.12 ? .71 : 1.79, + }, + ], }, -$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 +114,40 @@ $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, + attr => { + %{ $unit{sentry}->{attr} }, + light => $V ge v5.0.13 ? 0 : 1, + }, + attack => [ + { + %{ $unit{sentry}->{attack}->[0] }, # beam + bonus => { + $V ge v5.0.13 ? (shields => 4) : (), + }, + }, + ], + special => [ + $unit{sentry}->{special}->[0], # ff + { + %{ $unit{sentry}->{special}->[1] }, # gs + radius => $V lt v4.7.1 ? 4 : 4.5, + duration => $V ge v5.0.12 ? 12.86 : 10.71, + }, + { + %{ $unit{sentry}->{special}->[2] }, # hl + cost => $V lt v4.7.1 ? 100 : 75, + }, + ], +}, { %{ $unit{stalker} }, @@ -79,7 +171,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 +210,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 +225,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 +234,7 @@ $unit{sentry}, { %{ $unit{high_templar} }, + speed => $V ge v5.0.11 ? 2.82 : 2.63, attack => [ { anti => 1, @@ -154,15 +245,58 @@ $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} }, + build => $V ge v5.0.13 ? 17.9 : 21.4, + shield => $V ge v5.0.13 ? 30 : 20, + 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.13 ? 1 : $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 @@ -171,7 +305,19 @@ $unit{observer}, ], }, -$unit{immortal}, +{ + %{ $unit{immortal} }, + min => $V ge v4.8.2 ? 275 : 250, + special => [ + { + name => 'Barrier', + abbr => 'br', + desc => 'block initial damage, then absorb up to 100 damage for 2s', + duration => 2, + cooldown => $V ge v3.8.0 ? 32 : 43, + }, + ], +}, { %{ $unit{colossus} }, @@ -193,11 +339,11 @@ $unit{immortal}, race => 'protoss', cat => 'robotic', name => 'Disruptor', - pop => 3, + pop => $V ge v5.0.12 ? 4 : 3, min => 150, gas => 150, build => 36, - size => 1, + size => $V ge v5.0.12 ? 1.25 : 1, # much larger model cargo => 4, armor => 1, hp => 100, @@ -215,7 +361,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 +374,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 +410,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', @@ -269,7 +433,7 @@ $unit{phoenix}, light => 1, structure => 1, }, - sight => 0, + sight => $V ge v5.0.12 ? 7 : 4, speed => 0, special => [ { @@ -290,8 +454,14 @@ $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, + # acceleration increased in v5.0.12 + size => $V ge v5.0.12 ? 2.25 : 2.5, attack => [ { %{ $unit{tempest}->{attack}->[0] }, # kinetic overload @@ -299,24 +469,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 +526,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, }, }, ], @@ -359,15 +552,33 @@ $unit{marine}, # replaces Sniper Round name => 'Steady Targeting', abbr => 'st', - desc => '170 damage ignoring armor to a biological unit after 1.43s without damage', + desc => ($V ge v5.0.12 ? '130 damage (+40 psionic)' : '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.12 || $V lt v4.10.1 ? 1.5 : $V lt v5.0.11 ? 2 : 1.75, + }, $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 + {}, + {}, + ], + }, + ], }, { @@ -396,6 +607,19 @@ $unit{marine}, transform => -1.43, # halve #TODO: alter special duration? }, ], + upgrade => [ + { + %{ $unit{hellbat}->{upgrade}->[0] }, # Pre-Igniter + attack => [ + { + bonus => { + light => 12, + -light => $V ge v5.0.12 ? 0 : 1, + }, + }, + ], + }, + ], }, { @@ -404,9 +628,18 @@ $unit{marine}, attack => [ { %{ $unit{widow_mine}->{attack}->[0] }, # Sentinel Missiles + splash => $V ge v5.0.13 ? 1.5 : 1.75, # radius bonus => { shields => 25, }, + transform => $V lt v5.0.9 ? .71 : 1.07, + }, + ], + upgrade => [ + { + %{ $unit{widow_mine}->{upgrade}->[0] }, # drilling claws + desc => 'halves burrow/unburrow time from upto 2½/1 to 1½/½ seconds' . + ($V ge v5.0.13 && ', and cloaks while reloading'), }, ], }, @@ -438,13 +671,13 @@ $unit{marine}, cat => 'factory', name => 'Cyclone', pop => 3, - min => 150, - gas => 100, + min => $V ge v5.0.12 ? 125 : 150, + gas => $V ge v5.0.12 ? 50 : 100, build => 32, size => 1.5, - cargo => 3, - armor => 1, - hp => 180, + cargo => $V ge v5.0.12 ? 2 : 3, + armor => $V ge v5.0.12 ? 0 : 1, + hp => $V ge v5.0.13 ? 130 : $V ge v5.0.12 ? 110 : $V ge v4.7.1 ? 120 : 180, attr => { armored => 1, mech => 1, @@ -452,29 +685,35 @@ $unit{marine}, attack => [ { anti => 1, - name => 'Typhoon Blaster', - damage => 3, - upgrade => 1, - bonus => { - armored => 2, + name => $V lt v4.7.1 ? 'Tornado Blaster' : 'Typhoon Missile Pod', + damage => $V ge v5.0.12 ? 11 : $V ge v4.7.1 ? 18 : 3, + upgrade => $V lt v4.7.1 ? 1 : 2, + bonus => $V ge v4.7.1 ? {} : { + armored => $V ge v5.0.12 ? 0 : 2, -armored => 0, + mech => $V ge v5.0.12 ? 3 : 0, }, - cooldown => .1, - range => 6, + cooldown => $V ge v5.0.13 ? .58 : $V ge v5.0.12 ? .481 : $V ge v4.7.1 ? .71 : .1, + range => $V ge v5.0.12 || $V lt v4.7.1 ? 6 : 5, }, ], - speed => 4.13, + speed => $V ge v5.0.12 ? 3.94 : $V ge v4.7.1 ? 4.73 : 4.13, sight => 11, special => [ { name => 'Lock On', abbr => 'lo', - desc => 'target air for 160 damage ignoring armor while visible and within 15 range', - range => 7, - duration => 14, - cooldown => 4, + desc => ( + $V ge v5.0.12 ? 'attack single target while within 9 range' : + $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 => $V lt v5.0.12 ? 7 : 6, + duration => $V lt v5.0.12 ? 14.3 : 0, + cooldown => $V ge v5.0.13 ? 2.86 : $V ge v5.0.12 ? 0 : 4, }, - { + $V ge v4.7.1 ? () : { name => 'Rapid Fire Launchers', abbr => 'rf', desc => 'rapid first 12 Lock On shots', @@ -483,30 +722,80 @@ $unit{marine}, build => 79, }, ], + upgrade => [ + $V ge v5.0.12 || $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'), + }, + $V lt v5.0.12 ? () : { + name => 'Hurricane Engines', + speed => .79, + min => 100, + gas => 100, + build => 100, + }, + ], }, { %{ $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 => [ + $V ge v5.0.12 ? { + name => 'Caduceus Reactor', + desc => 'double energy regeneration rate', + min => 100, + gas => 100, + build => 53.57, + } : { + name => 'Rapid Reignition System', + min => 100, + gas => 100, + build => 57, + speed => .63, + }, + ], +}, { race => 'terran', @@ -515,7 +804,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 +830,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 => [ { @@ -564,7 +853,7 @@ $unit{medivac}, build => 79, attack => [ { - range => 4, + range => $V ge v5.0.13 ? 2 : $V ge v4.11.0 ? 3 : 4, }, ], sight => 4, @@ -576,11 +865,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 +897,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 +911,27 @@ $unit{banshee}, name => 'Interference Matrix', abbr => 'im', desc => 'disable target mech or psionic unit rendering it unable to attack or cast', - cost => 50, + $V lt v5.0.12 ? () : ( + min => 50, + gas => 50, + build => 57.14, + ), + 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 +941,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 +983,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, @@ -647,17 +991,61 @@ $unit{drone}, { %{ $unit{overlord} }, - speed => .902, # changed in 4.0.0 + speed => .9023, # changed in 4.0.0 + # deceleration speed increased in v5.0.12 upgrade => [ { %{ $unit{overlord}->{upgrade}->[0] }, # carapace - speed => 2.63-.902, + speed => ($V ge v5.0.12 ? 2.83 : 2.63)-.9023, }, - $unit{overlord}->{upgrade}->[1], # sacs + # ventral sacs became an individual mutation ], }, -$unit{overseer}, +{ + race => 'zerg', + cat => 'base', + req => 'lair', + name => 'Transporterlord', + base => ['Overlord'], + pop => -9, + min => 100+25, + gas => 25, + build => 15, + size => 0, + cargo => -8, + armor => 0, + hp => 200, + attr => { + armored => 1, + organic => 1, + flying => 1, + }, + speed => $V ge v5.0.13 ? 1.28 : $V ge v5.0.12 ? 1.099 : .9023, + sight => 11, + special => $unit{overlord}->{special}, # generate creep + upgrade => [ + { + %{ $unit{overlord}->{upgrade}->[0] }, # carapace + speed => $V ge v5.0.13 ? 3-1.28 : $V ge v5.0.12 ? 2.83-1.099 : 2.63-.9023, + }, + ], +}, + +{ + %{ $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,15 +1069,50 @@ $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 => $V ge v5.0.12 ? 0 : 2, + structure => 80, + -structure => 5, + }, + splash => 1, + range => 0, + }, + ], upgrade => [ { %{ $unit{baneling}->{upgrade}->[0] }, # centrifugal hooks - hp => 5, + $V ge v5.0.12 ? ( + min => 100, + gas => 100, + build => 71, + ) : ( + hp => 5, + ), }, ], }, -$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 +1122,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, @@ -729,13 +1152,19 @@ $unit{roach}, upgrade => [ { %{ $unit{hydralisk}->{upgrade}->[0] }, # grooved spines + min => $V ge v5.0.12 ? 75 : 100, + gas => $V ge v5.0.12 ? 75 : 100, + build => $V ge v5.0.12 ? 50 : 71, attack => [ { range => 2, }, ], }, - $unit{hydralisk}->{upgrade}->[1], # muscular augments + { + %{ $unit{hydralisk}->{upgrade}->[1] }, # muscular augments + build => $V ge v5.0.12 ? 64 : 71, + }, ], }, @@ -758,25 +1187,95 @@ $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 => $V ge v5.0.12 ? 'halves burrow time from 2 seconds to 1' : + 'halves burrow time and increases movement speed', + speed => $V ge v5.0.12 ? 0 : .413, + transform => $V lt v5.0.9 ? .71 : 1.07, + min => $V ge v5.0.12 ? 100 : 150, + gas => $V ge v5.0.12 ? 100 : 150, + build => 57, + }, + ], speed => 4.13, creep => 1.3, sight => 10, }, -$unit{infestor}, -$unit{nydus_worm}, +{ + %{ $unit{infestor} }, + energy => $V ge v5.0.12 ? 75 : 50, + special => [ + { + %{ $unit{infestor}->{special}->[0] }, # neural parasite + range => $V lt v4.11.0 ? 9 : 8, + }, + { + %{ $unit{infestor}->{special}->[1] }, # fungal growth + desc => 'for 4 seconds, immobilize enemy units in target area and deal '.($V lt v5.0.12 ? 30 : 25).' damage', + range => $V ge v5.0.13 || $V lt v5.0.12 ? 10 : 9, + }, + { + 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, + }, + ], + }, + ], + upgrade => [ + $V lt v5.0.12 ? $unit{infestor}->{upgrade}->[0] : (), # Pathogen Glands + ], +}, + +{ + % {$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 +1284,7 @@ $unit{nydus_worm}, { %{ $unit{swarm_host}->{special}->[0] }, # locust hp => 50, + upgrade => [], # no flying }, ], upgrade => [], @@ -792,12 +1292,54 @@ $unit{nydus_worm}, $unit{mutalisk}, $unit{corruptor}, -$unit{brood_lord}, -$unit{viper}, + +{ + %{ $unit{brood_lord} }, + speed => $V ge v5.0.12 ? 2.62 : $V ge v5.0.11 ? 2.24 : 1.97, + special => [ + { + %{ $unit{brood_lord}->{special}->[0] }, # broodling + attack => [ + { + %{ $unit{brood_lord}->{special}->[0]->{attack}->[0] }, # claws + cooldown => $V ge v5.0.12 ? .57 : .46, + }, + ], + hp => $V ge v5.0.12 ? 20 : 30, + speed => $V ge v5.0.12 ? 4.13 : 5.37, + }, + $unit{brood_lord}->{special}->[1], # fz + ], +}, + +{ + %{ $unit{viper} }, + special => [ + $unit{viper}->{special}->[0], # bc + $unit{viper}->{special}->[1], # ad + { + %{ $unit{viper}->{special}->[2] }, # consume + desc => 'leaches '.($V ge v5.0.12 ? 150 : 200).' life of friendly building over 20s to gain 50 energy', + }, + ], +}, { %{ $unit{ultralisk} }, + min => $V ge v5.0.12 ? 275 : 300, 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 + }, + ], }, ]