use utf8;
use strict;
-my $V = v5.0.2;
+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 $!;
{
%{ $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
- $unit{mothership}->{special}->[1], # mr
+ {
+ %{ $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%'
- : 'create a temporal field which slows ground and air units by 50%',
+ 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,
},
],
},
$V lt v4.12.0 ? () : {
name => 'Battery Overcharge',
abbr => 'bo',
- desc => 'increase target Shield Battery restoration rate by 100% and function without consuming energy for 14s',
+ 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
{
%{ $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
{
%{ $unit{high_templar} },
+ speed => $V ge v5.0.11 ? 2.82 : 2.63,
attack => [
{
anti => 1,
{
name => 'Shadow Stride',
abbr => 'bl',
- desc => 'teleport to visible location',
+ 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,
{
%{ $unit{observer} },
- speed => $V lt v4.8.2 || $V ge v4.11.0 ? 2.63 : 3.01,
+ 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
{
],
},
-$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} },
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,
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
},
{
%{ $unit{void_ray} },
- min => $V lt v5.0.2 ? 250 : 200,
+ 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.2 ? 43 : 37,
+ build => $V lt v5.0.9 && $V ge v5.0.2 ? 37 : 43,
upgrade => [
{
name => 'Flux Vanes',
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',
light => 1,
structure => 1,
},
- sight => 0,
+ sight => $V ge v5.0.12 ? 7 : 4,
speed => 0,
special => [
{
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
# 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
- radius => $V lt v4.10.1 ? 1.5 : 2,
+ 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
+ {},
+ {},
+ ],
+ },
+ ],
},
{
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,
+ },
+ },
+ ],
+ },
+ ],
},
{
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'),
},
],
},
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 => $V lt v4.7.1 ? 180 : 120,
+ 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,
{
anti => 1,
name => $V lt v4.7.1 ? 'Tornado Blaster' : 'Typhoon Missile Pod',
- damage => $V lt v4.7.1 ? 3 : 18,
+ 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 => 2,
+ armored => $V ge v5.0.12 ? 0 : 2,
-armored => 0,
+ mech => $V ge v5.0.12 ? 3 : 0,
},
- cooldown => $V lt v4.7.1 ? .1 : .71,
- range => $V lt v4.7.1 ? 6 : 5,
+ 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 => $V lt v4.7.1 ? 4.13 : 4.73,
+ 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 => $V lt v4.7.1 ? 'target air for 160 damage ignoring armor while visible and within 15 range'
- : 'deal 400 damage (double to armored after upgrade) over 14 seconds',
- range => 7,
- duration => 14.3,
- 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',
},
],
upgrade => [
- $V lt v4.7.1 ? () : {
+ $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 to ',
+ 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,
},
],
},
},
],
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,
pop => 3,
min => 150,
- gas => 150,
+ gas => $V ge v5.0.11 ? 125 : 150,
build => 43,
size => 1.5,
armor => 0,
build => 79,
attack => [
{
- range => 4,
+ range => $V ge v5.0.13 ? 2 : $V ge v4.11.0 ? 3 : 4,
},
],
sight => 4,
{
name => 'Hyperflight Rotors',
speed => 1.4,
- min => $V lt v4.7.1 ? 200 : 150,
- gas => $V lt v4.7.1 ? 200 : 150,
- build => 121,
+ 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} },
+ 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
range => 6,
},
],
+ 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 => 10,
+ 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
name => 'Interference Matrix',
abbr => 'im',
desc => 'disable target mech or psionic unit rendering it unable to attack or cast',
+ $V lt v5.0.12 ? () : (
+ min => 50,
+ gas => 50,
+ build => 57.14,
+ ),
cost => $V lt v4.11.0 ? 50 : 75,
range => 9,
duration => $V lt v4.11.0 ? 7.9 : 11,
{
name => 'Anti-Armor Missile',
abbr => 'aa',
- desc => $V lt v4.7.1 ? 'launches missile to do splash damage and reduce armor by 3'
- : 'launches missile to reduce 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 => [
{
%{ $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 => ($V ge v5.0.12 ? 2.83 : 2.63)-.9023,
+ },
+ # ventral sacs became an individual mutation
+ ],
+},
+
+{
+ 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 => 2.63-.902,
+ speed => $V ge v5.0.13 ? 3-1.28 : $V ge v5.0.12 ? 2.83-1.099 : 2.63-.9023,
},
- $unit{overlord}->{upgrade}->[1], # sacs
],
},
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,
+ -light => $V ge v5.0.12 ? 0 : 2,
structure => 80,
-structure => 5,
},
upgrade => [
{
%{ $unit{baneling}->{upgrade}->[0] }, # centrifugal hooks
- hp => 5,
+ $V ge v5.0.12 ? (
+ min => 100,
+ gas => 100,
+ build => 71,
+ ) : (
+ hp => 5,
+ ),
},
],
},
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,
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,
+ },
],
},
attack => [
{
anti => 1,
- name => '?',
+ name => 'Spines',
damage => 20,
upgrade => 2,
splash => 'line',
},
},
],
+ transform => 2.0,
upgrade => [
$V lt v4.11.0 ? () : {
name => 'Seismic Spines',
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,
{
%{ $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
+ {
+ %{ $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',
],
},
],
+ upgrade => [
+ $V lt v5.0.12 ? $unit{infestor}->{upgrade}->[0] : (), # Pathogen Glands
+ ],
},
{
$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
{