unicode: one set of barb arrows from unicode 7.0
[sheet.git] / sc-units-lotv.inc.pl
1 use utf8;
2 use strict;
3
4 my $V = v5.0.2;
5 my $RT = 1.4;  # real-time speed factor to faster
6
7 my $hots = do 'sc-units-hots.inc.pl' or die $!;
8 my %unit;
9 for my $row (@{$hots}) {
10         ref $row eq 'HASH' or next;
11         for ($row, @{ $row->{special} }, @{ $row->{upgrade} }) {
12                 $_ *= $RT for $_->{speed} // ();
13                 $_ /= $RT for $_->{build} // (), $_->{transform} // (), $_->{warp} // (), $_->{cooldown} // ();
14                 $_->{cooldown} and $_->{cooldown} /= $RT for @{ $_->{attack} // [] };
15         }
16         $unit{ lc $row->{name} =~ tr/ /_/r } = $row;
17 }
18
19 [
20 sprintf('patch %vd', $V),
21
22 # protoss
23
24 $unit{probe},
25
26 $unit{photon_cannon},
27
28 {
29         %{ $unit{mothership} },
30         speed => 2.62,
31         special => [
32                 $unit{mothership}->{special}->[0], # cf
33                 $unit{mothership}->{special}->[1], # mr
34                 {
35                         %{ $unit{mothership}->{special}->[2] }, # tw
36                         desc => $V lt v4.11.0 ? 'create a temporal field which slows ground units by 50%'
37                                               : 'create a temporal field which slows ground and air units by 50%',
38                 },
39         ],
40 },
41
42 {
43         %{ $unit{nexus} },
44         attack => [],
45         energy => 50,
46         capacity => 200,
47         special => [
48                 $unit{nexus}->{special}->[0], # chrono boost
49                 {
50                         name => $V lt v4.7.1 ? 'Mass Recall' : 'Strategic Recall',
51                         abbr => 'sr',
52                         desc => 'recalls units owned by the player in the target area to the Nexus',
53                         cost => 50,
54                         cooldown => $V lt v4.7.1 || $V ge v4.10.1 ? 130 : 85,
55                         radius => $V lt v4.7.1 ? 6.5 : 2.5,
56                         duration => 3.6, # +.7 warp in
57                 },
58                 $V lt v4.12.0 ? () : {
59                         name => 'Battery Overcharge',
60                         abbr => 'bo',
61                         desc => 'increase target Shield Battery restoration rate by 100% and function without consuming energy for 14s',
62                         cost => 50,
63                         duration => 14,
64                         cooldown => 60, # shared by all nexuses
65                         range => 8, # within any friendly nexus
66                 },
67         ],
68 },
69
70 {
71         %{ $unit{zealot} },
72         special => [
73                 {
74                         name => 'Charge',
75                         abbr => 'ch',
76                         desc => 'on attack, increases movement speed to 8.47 for 2.5s and deals 8 damage on hit',
77                         min => 100, # changed in 3.14.0
78                         gas => 100,
79                         build => 100,
80                         speed => .5,
81                         range => 4,
82                         duration => 2.5,
83                         cooldown => 7,
84                 },
85         ],
86         upgrade => [
87                 {
88                         name => 'Charge',
89                         speed => $V lt v4.11.0 ? .98 : 1.57,
90                 },
91         ],
92 },
93
94 {
95         %{ $unit{sentry} },
96         special => [
97                 $unit{sentry}->{special}->[0], # ff
98                 {
99                         %{ $unit{sentry}->{special}->[1] }, # gs
100                         radius => $V lt v4.7.1 ? 4 : 4.5,
101                 },
102                 {
103                         %{ $unit{sentry}->{special}->[2] }, # hl
104                         cost => $V lt v4.7.1 ? 100 : 75,
105                 },
106         ],
107 },
108
109 {
110         %{ $unit{stalker} },
111         attack => [
112                 {
113                         %{ $unit{stalker}->{attack}->[0] }, # particle disruptors
114                         damage => 13,
115                         bonus => {
116                                 armored => 5,
117                                 -armored => 1,
118                         },
119                         cooldown => 1.34,
120                 },
121         ],
122 },
123
124 {
125         race => 'protoss',
126         cat => 'gateway',
127         name => 'Adept',
128         pop => 2,
129         min => 100,
130         gas => 25,
131         build => $V lt v4.8.2 ? 27 : 30,
132         warp => 20,
133         size => 1,
134         cargo => 2,
135         armor => 1,
136         hp => 70,
137         shield => 70,
138         attr => {
139                 light => 1,
140                 organic => 1,
141         },
142         attack => [
143                 {
144                         anti => 1,
145                         name => undef, #TODO
146                         damage => 10,
147                         upgrade => 1,
148                         bonus => {
149                                 light => 12,
150                                 -light => 1,
151                         },
152                         type => 'projectile', #XXX: assumption
153                         cooldown => 1.61,
154                         range => 4,
155                 },
156         ],
157         speed => 3.5,
158         sight => 9,
159         special => [
160                 {
161                         name => 'Psionic Transfer',
162                         abbr => 'pt',
163                         desc => 'project shade, teleport after 7s',
164                         cooldown => 11,
165
166                         alt => 'Shade',
167                         build => 0,
168                         size => 0,
169                         cargo => 0,
170                         hp => -1,
171                         attack => [], #TODO: indicate diff from parent
172                         speed => 5, #XXX: faster than 3.5
173                         range => 7, #XXX: calculate from speed
174                         sight => 4,
175                 },
176         ],
177         upgrade => [
178                 {
179                         name => 'Resonating Glaives',
180                         min => 100,
181                         gas => 100,
182                         build => 100,
183                         attack => [
184                                 {
185                                         cooldown => $V lt v4.11.0 || $V ge v4.11.3 ? -.5 : -.6, # +45%/60%
186                                 },
187                         ],
188                 },
189         ],
190 },
191
192 {
193         %{ $unit{high_templar} },
194         attack => [
195                 {
196                         anti => 1,
197                         name => '?', #XXX
198                         damage => 4,
199                         upgrade => 1,
200                         cooldown => 1.25,
201                         range => 6,
202                 },
203         ],
204         special => [
205                 {
206                         $unit{high_templar}->{special}->[0], # fb
207                         range => $V lt v4.12.0 ? 9 : 10,
208                 },
209                 $unit{high_templar}->{special}->[1], # ps
210         ],
211 },
212
213 {
214         %{ $unit{dark_templar} },
215         special => [
216                 $unit{dark_templar}->{special}->[0], # cl
217                 {
218                         name => 'Shadow Stride',
219                         abbr => 'bl',
220                         desc => 'teleport to visible location',
221                         min => 100,
222                         gas => 100,
223                         build => $V lt v4.7.1 ? 121 : 100,
224                         range => 8,
225                         cooldown => $V lt v4.7.1 ? 21 : 14,
226                 },
227         ],
228 },
229
230 $unit{archon},
231
232 {
233         %{ $unit{observer} },
234         speed => $V lt v4.8.2 || $V ge v4.11.0 ? 2.63 : 3.01,
235         special => [
236                 $unit{observer}->{special}->[0], # cloak
237                 {
238                         name => 'Surveillance Mode',
239                         abbr => 'sm',
240                         desc => 'gain 25% vision while immobilized',
241                         sight => 2.75, # +25%
242                         transform => .54,
243                 },
244         ],
245 },
246
247 {
248         %{ $unit{warp_prism} },
249         hp => 80,
250         min => $V lt v4.10.1 ? 200 : 250,
251         range => $V lt v4.10.1 ? 6 : 5, # pickup
252         upgrade => [
253                 {
254                         %{ $unit{warp_prism}->{special}->[0] }, # gravitic drive
255                         speed => 1.23,
256                 },
257         ],
258 },
259
260 $unit{immortal},
261
262 {
263         %{ $unit{colossus} },
264         attack => [
265                 {
266                         %{ $unit{colossus}->{attack}->[0] }, # thermal lances
267                         damage => 10,
268                         upgrade => 1,
269                         bonus => {
270                                 light => 5,
271                                 -light => 1,
272                         },
273 #                       cooldown => 1.18, #XXX
274                 },
275         ],
276 },
277
278 {
279         race => 'protoss',
280         cat => 'robotic',
281         name => 'Disruptor',
282         pop => 3,
283         min => 150,
284         gas => 150,
285         build => 36,
286         size => 1,
287         cargo => 4,
288         armor => 1,
289         hp => 100,
290         shield => 100,
291         attr => {
292                 armored => 1,
293                 mech => 1,
294         },
295         attack => [
296                 {
297                         anti => 1,
298                         name => 'Purification Nova',
299                         damage => 145,
300                         bonus => {
301                                 shields => 55,
302                         },
303                         type => 'trans', #TODO: indicate
304                         splash => 1.5,
305                         cooldown => 14.3,
306                         range => 13, # 2s
307                 },
308         ],
309         speed => 3.15,
310         sight => 9,
311 },
312
313 $unit{phoenix},
314
315 {
316         %{ $unit{void_ray} },
317         min => $V lt v5.0.2 ? 250 : 200,
318         speed => $V lt v5.0.2 ? 3.5 : 3.85,
319         build => $V lt v5.0.2 ? 43 : 37,
320         upgrade => [
321                 {
322                         name => 'Flux Vanes',
323                         min => 100,
324                         gas => 100,
325                         build => 57,
326                         speed => $V lt v5.0.2 ? 1.15 : .798,
327                 },
328         ],
329 },
330
331 {
332         %{ $unit{oracle} },
333         build => 37,
334         attr => {
335                 $V lt v4.8.2 ? 'light' : 'armored' => 1,
336                 mech => 1,
337                 psionic => 1,
338                 flying => 1,
339         },
340         attack => [
341                 {
342                         %{ $unit{oracle}->{attack}->[0] }, # pulsar beam
343                         bonus => {
344                                 light => 7,
345                         },
346                 },
347         ],
348         special => [
349                 {
350                         name => 'Revelation',
351                         abbr => 'rv',
352                         desc => 'hit enemy units and buildings are revealed for Â½ minute',
353                         cost => $V lt v4.12.0 ? 50 : 25,
354                         range => 9,
355                         cooldown => $V lt v4.12.0 ? 2 : 10,
356                         duration => $V lt v4.12.0 ? 30 : $V lt v5.0.2 ? 15 : 20,
357                         radius => 6,
358                 },
359                 {
360                         name => 'Stasis Ward',
361                         abbr => 'sw',
362                         desc => 'places ward for 170s',
363                         cost => 50,
364                         range => 6,
365                         build => 3.58,
366                         duration => 170,
367                         alt => 'Stasis Ward',
368                         hp => 30,
369                         shield => 30,
370                         armor => 0,
371                         attr => {
372                                 light => 1,
373                                 structure => 1,
374                         },
375                         sight => 0,
376                         speed => 0,
377                         special => [
378                                 {
379                                         name => 'Permanent Cloak',
380                                         abbr => 'cl',
381                                         desc => 'cloaked at all times',
382                                         duration => -1,
383                                 },
384                                 {
385                                         name => 'Stasis Trap',
386                                         abbr => 'st',
387                                         desc => 'triggered by nearby ground units, trapping them for 21½s',
388                                 },
389                         ],
390                 },
391         ],
392 },
393
394 {
395         %{ $unit{tempest} },
396         hp => $V lt v4.7.1 ? 300 : $V lt v4.11.0 ? 150 : 200,
397         shield => $V lt v4.7.1 ? 150 : $V lt v4.11.0 ? 125 : 100,
398         min => $V lt v4.7.1 ? 300 : 250,
399         gas => $V lt v4.7.1 ? 200 : 175,
400         pop => $V lt v4.7.1 ? 6 : 5,
401         speed => $V lt v4.7.1 ? 2.63 : $V lt v4.8.2 ? 3.5 : 3.15,
402         attack => [
403                 {
404                         %{ $unit{tempest}->{attack}->[0] }, # kinetic overload
405                         bonus => {
406                                 massive => 22,
407                                 -massive => 2,
408                         },
409                         range => $V lt v4.11.0 ? 15 : 14,
410                 },
411                 {
412                         %{ $unit{tempest}->{attack}->[1] }, # resonance coil
413                         bonus => {
414                                 structure => 0,
415                         },
416                         damage => 40,
417                         upgrade => 4,
418                 },
419         ],
420         upgrade => [
421                 $V lt v5.0.2 ? () : {
422                         name => 'Tectonic Destabilizers',
423                         attack => [
424                                 {},
425                                 {
426                                         bonus => {
427                                                 structure => 40,
428                                         },
429                                 },
430                         ],
431                         min => 150,
432                         gas => 150,
433                         build => 100,
434                 },
435         ],
436 },
437
438 {
439         %{ $unit{carrier} },
440         hp => $V lt v4.7.1 ? 250 : 300,
441         build => $V lt v4.7.1 ? 86 : 64,
442         special => [
443                 {
444                         %{ $unit{carrier}->{special}->[0] }, # interceptor
445                         min => 5,
446                         build => $V lt v4.7.1 ? 6 : $V lt v4.10.1 ? 11 : 9,
447                 },
448         ],
449         $V lt v4.7.1 ? () : (upgrade => []), # remove Graviton Catapult
450 },
451
452 # terran
453
454 $unit{scv},
455 $unit{mule},
456 $unit{missile_turret},
457 $unit{planetary_fortress},
458
459 $unit{marine},
460
461 {
462         %{ $unit{marauder} },
463         attack => [
464                 {
465                         %{ $unit{marauder}->{attack}->[0] }, # punisher grenades
466                         count => $V lt v4.3.0 ? 2 : 1,
467                         damage => $V lt v4.3.0 ? 5 : 10,
468                         upgrade => 1,
469                         bonus => {
470                                 armored => $V lt v4.3.0 ? 5 : 10,
471                                 -armored => $V lt v4.3.0 ? 0 : 1,
472                         },
473                 },
474         ],
475 },
476
477 {
478         %{ $unit{reaper} },
479         build => 32,
480 },
481
482 {
483         %{ $unit{ghost} },
484         min => 150,
485         gas => 125,
486         speed => 3.94,
487         special => [
488                 {
489                         # replaces Sniper Round
490                         name => 'Steady Targeting',
491                         abbr => 'st',
492                         desc => '170 damage ignoring armor to a biological unit after 1.43s without damage',
493                         cost => 50,
494                         range => 10,
495                         duration => 1.43,
496                 },
497                 {
498                         %{ $unit{ghost}->{special}->[1] }, # emp round
499                         radius => $V lt v4.10.1 ? 1.5 : 2,
500                 },
501                 $unit{ghost}->{special}->[2], # cloak
502                 $unit{ghost}->{special}->[3], # tac nuke strike
503         ],
504 },
505
506 {
507         %{ $unit{hellion} },
508         attack => [
509                 {
510                         %{ $unit{hellion}->{attack}->[0] }, # infernal flamethrower
511                         bonus => {
512                                 light => 5,
513                                 -light => 0,
514                         },
515                 },
516         ],
517         #TODO smart servos
518 },
519
520 {
521         %{ $unit{hellbat} },
522         special => [
523                 $unit{hellbat}->{special}->[0], # Hellion Mode
524                 {
525                         name => 'Smart Servos',
526                         min => 100,
527                         gas => 100,
528                         build => 79,
529                         transform => -1.43, # halve #TODO: alter special duration?
530                 },
531         ],
532 },
533
534 {
535         %{ $unit{widow_mine} },
536         build => 21,
537         attack => [
538                 {
539                         %{ $unit{widow_mine}->{attack}->[0] }, # Sentinel Missiles
540                         bonus => {
541                                 shields => 25,
542                         },
543                 },
544         ],
545 },
546
547 {
548         %{ $unit{siege_tank} },
549         hp => 175,
550         special => [
551                 {
552                         %{ $unit{siege_tank}->{special}->[0] }, # siege mode
553                         attack => [
554                                 {
555                                         %{ $unit{siege_tank}->{special}->[0]->{attack}->[0] }, # shock cannon
556                                         damage => 40,
557                                         upgrade => 4,
558                                         bonus => {
559                                                 armored => 30,
560                                                 -armored => 1,
561                                         },
562                                         cooldown => 2.14,
563                                 },
564                         ],
565                 },
566         ],
567 },
568
569 {
570         race => 'terran',
571         cat => 'factory',
572         name => 'Cyclone',
573         pop => 3,
574         min => 150,
575         gas => 100,
576         build => 32,
577         size => 1.5,
578         cargo => 3,
579         armor => 1,
580         hp => $V lt v4.7.1 ? 180 : 120,
581         attr => {
582                 armored => 1,
583                 mech => 1,
584         },
585         attack => [
586                 {
587                         anti => 1,
588                         name => $V lt v4.7.1 ? 'Tornado Blaster' : 'Typhoon Missile Pod',
589                         damage => $V lt v4.7.1 ? 3 : 18,
590                         upgrade => $V lt v4.7.1 ? 1 : 2,
591                         bonus => $V ge v4.7.1 ? {} : {
592                                 armored => 2,
593                                 -armored => 0,
594                         },
595                         cooldown => $V lt v4.7.1 ? .1 : .71,
596                         range => $V lt v4.7.1 ? 6 : 5,
597                 },
598         ],
599         speed => $V lt v4.7.1 ? 4.13 : 4.73,
600         sight => 11,
601         special => [
602                 {
603                         name => 'Lock On',
604                         abbr => 'lo',
605                         desc => $V lt v4.7.1 ? 'target air for 160 damage ignoring armor while visible and within 15 range'
606                                              : 'deal 400 damage (double to armored after upgrade) over 14 seconds',
607                         range => 7,
608                         duration => 14.3,
609                         cooldown => 4,
610                 },
611                 $V ge v4.7.1 ? () : {
612                         name => 'Rapid Fire Launchers',
613                         abbr => 'rf',
614                         desc => 'rapid first 12 Lock On shots',
615                         min => 75,
616                         gas => 75,
617                         build => 79,
618                 },
619         ],
620         upgrade => [
621                 $V lt v4.7.1 ? () : {
622                         name => 'Mag-Field Accelerator',
623                         min => 100,
624                         gas => 100,
625                         build => $V lt v4.8.2 ? 79 : 100,
626                         desc => 'increases lock-on damage to ',
627                 },
628         ],
629 },
630
631 {
632         %{ $unit{thor} },
633         armor => $V ge v3.14.0 && $V lt v4.7.1 ? 2 : 1,
634         attack => [
635                 $unit{thor}->{attack}->[0], # thor's hammer
636                 $unit{thor}->{attack}->[1], # javelin missiles
637                 {
638                         %{ $unit{thor}->{attack}->[2] }, # punisher cannons
639                         name => 'High Impact Payload',
640                         damage => $V lt v4.7.1 ? 35 : $V lt v4.11.0 ? 40 : 25,
641                         upgrade => 3,
642                         bonus => {
643                                 $V lt v4.7.1 ? 'armored' : 'massive' => $V lt v4.11.0 ? 15 : 10,
644                                 $V lt v4.7.1 ? '-armored' : '-massive' => 2,
645                         },
646                         cooldown => $V lt v4.7.1 ? 2.14 : $V lt v4.11.0 ? 1.71 : .9,
647                         range => $V lt v4.8.2 ? 10 : 11,
648                 },
649         ],
650         #TODO smart servos
651 },
652
653 {
654         %{ $unit{viking} },
655         hp => $V lt v4.3.0 ? 125 : 135,
656 },
657
658 {
659         %{ $unit{medivac} },
660         special => [
661                 $unit{medivac}->{special}->[0], # heal
662                 {
663                         %{ $unit{medivac}->{special}->[1] }, # ignite afterburners
664                         desc => 'boost speed and accelleration to 4.25 for 8s',
665                         speed => 5.94,
666                         duration => $V lt v4.7.1 ? 6.43 : 4.29,
667                         cooldown => $V lt v4.11.0 ? 20 : 14,
668                         -cooldown => 9,
669                 },
670         ],
671         upgrade => [
672                 {
673                         name => 'Rapid Reignition System',
674                         min => 100,
675                         gas => 100,
676                         build => 57,
677                         speed => .63,
678                 },
679         ],
680 },
681
682 {
683         race => 'terran',
684         cat => 'starport',
685         name => 'Liberator',
686
687         pop => 3,
688         min => 150,
689         gas => 150,
690         build => 43,
691         size => 1.5,
692         armor => 0,
693         hp => 180,
694         attr => {
695                 armored => 1,
696                 mech => 1,
697                 flying => 1,
698         },
699         attack => [
700                 {
701                         anti => 2,
702                         name => 'Lexington Rockets',
703                         damage => 5,
704                         upgrade => 1,
705                         type => 'projectile',
706                         cooldown => 1.29,
707                         count => 2,
708                         range => 5,
709                 },
710         ],
711         special => [
712                 {
713                         name => 'Defender Mode',
714                         abbr => 'dm',
715                         transform => 2.88, # 1.46s to revert
716                         alt => 'Defender Liberator',
717                         attack => [
718                                 {
719                                         anti => 1,
720                                         name => 'Concord Cannon',
721                                         desc => 'within 5 diameter circle',
722                                         damage => 75,
723                                         upgrade => 5,
724                                         cooldown => 1.14,
725                                         range => 10,
726                                 },
727                         ],
728                         speed => 0,
729                         sight => 15, # only targeted area
730                         upgrade => [
731                                 {
732                                         name => 'Advanced Ballistics',
733                                         min => 150,
734                                         gas => 150,
735                                         build => 79,
736                                         attack => [
737                                                 {
738                                                         range => 4,
739                                                 },
740                                         ],
741                                         sight => 4,
742                                 },
743                         ],
744                 },
745         ],
746         speed => 4.72,
747         sight => 10,
748 },
749
750 {
751         %{ $unit{banshee} },
752         speed => 3.85,
753         upgrade => [
754                 {
755                         name => 'Hyperflight Rotors',
756                         speed => 1.4,
757                         min => $V lt v4.7.1 ? 200 : 150,
758                         gas => $V lt v4.7.1 ? 200 : 150,
759                         build => 121,
760                 },
761         ],
762 },
763
764 {
765         %{ $unit{raven} },
766         speed => $V lt v4.11.0 ? 3.85 : 4.13,
767         special => [
768                 {
769                         %{ $unit{raven}->{special}->[0] }, # auto-turret
770                         attack => [
771                                 {
772                                         anti => 3,
773                                         name => '12 mm Gauss Cannon',
774                                         damage => 18,
775                                         cooldown => .57,
776                                         range => 6,
777                                 },
778                         ],
779                         range => $V lt v4.3.0 ? 1 : 2,
780                         duration => 10,
781                         upgrade => [
782                                 $unit{raven}->{special}->[0]->{upgrade}->[0], # hi-sec auto tracking
783                                 $unit{raven}->{special}->[0]->{upgrade}->[1], # structure armor
784                                 # no more durable materials
785                         ],
786                 },
787                 {
788                         name => 'Interference Matrix',
789                         abbr => 'im',
790                         desc => 'disable target mech or psionic unit rendering it unable to attack or cast',
791                         cost => $V lt v4.11.0 ? 50 : 75,
792                         range => 9,
793                         duration => $V lt v4.11.0 ? 7.9 : 11,
794                 },
795                 {
796                         name => 'Anti-Armor Missile',
797                         abbr => 'aa',
798                         desc => $V lt v4.7.1 ? 'launches missile to do splash damage and reduce armor by 3'
799                                              : 'launches missile to reduce armor by 3',
800                         range => 10,
801                         size => 2.88,
802                         attack => [
803                                 {
804                                         damage => $V lt v4.3.0 ? 30 : $V lt v4.7.1 ? 15 : 0,
805                                         splash => 1,
806                                 },
807                         ],
808                         cost => 75,
809                         duration => 21,
810                 },
811         ],
812 },
813
814 {
815         %{ $unit{battlecruiser} },
816         attack => [
817                 $unit{battlecruiser}->{attack}->[0], # ats laser
818                 {
819                         %{ $unit{battlecruiser}->{attack}->[1] }, # ata laser
820                         damage => $V lt v4.7.1 ? 6 : 5,
821                 },
822         ],
823         special => [
824                 {
825                         name => 'Tactical Jump',
826                         abbr => 'tj',
827                         desc => 'warps to the target location after 5s (invulnerable after 1s)',
828                         duration => 4,
829                         cooldown => 71,
830                 },
831                 {
832                         %{ $unit{battlecruiser}->{special}->[0] }, # yc
833                         desc => '240 damage to a single target',
834                         attack => [
835                                 {
836                                         damage => 240,
837                                 },
838                         ],
839                         cost => undef,
840                         cooldown => 71,
841                 },
842         ],
843         upgrade => [],
844 },
845
846 # zerg
847
848 $unit{drone},
849
850 {
851         %{ $unit{queen} },
852         attack => [
853                 $unit{queen}->{attack}->[0], # claws
854                 {
855                         %{ $unit{queen}->{attack}->[1] }, # acid spines
856                         range => $V lt v4.12.0 ? 8 : 7,
857                 },
858         ],
859         range => 8,
860 },
861
862 {
863         %{ $unit{overlord} },
864         speed => .902, # changed in 4.0.0
865         upgrade => [
866                 {
867                         %{ $unit{overlord}->{upgrade}->[0] }, # carapace
868                         speed => 2.63-.902,
869                 },
870                 $unit{overlord}->{upgrade}->[1], # sacs
871         ],
872 },
873
874 $unit{overseer},
875
876 $unit{larva},
877 $unit{spine_crawler},
878
879 {
880         %{ $unit{spore_crawler} },
881         attack => [
882                 {
883                         %{ $unit{spore_crawler}->{attack}->[0] }, # seeker spores
884                         bonus => {
885                                 organic => 15,
886                         },
887                 },
888         ],
889         speed => (1.5),
890         creep => 2.6,
891 },
892
893 $unit{zergling},
894
895 {
896         %{ $unit{baneling} },
897         min => 25,
898         attack => [
899                 {
900                         %{ $unit{baneling}->{attack}->[0] }, # volatile burst
901                         damage => $V lt v4.12.0 ? 20 : $V lt v5.0.2 ? 18 : 15,
902                         bonus => {
903                                 light => $V lt v4.12.0 ? 15 : $V lt v5.0.2 ? 17 : 20,
904                                 -light => 2,
905                                 structure => 80,
906                                 -structure => 5,
907                         },
908                         splash => 1,
909                         range => 0,
910                 },
911         ],
912         upgrade => [
913                 {
914                         %{ $unit{baneling}->{upgrade}->[0] }, # centrifugal hooks
915                         hp => 5,
916                 },
917         ],
918 },
919
920 {
921         %{ $unit{roach} },
922         special => [
923                 {
924                         %{ $unit{roach}->{special}->[0] }, # rapid regeneration
925                         desc => 'regenerates health at 7 HP/s while burrowed',
926                 },
927                 {
928                         %{ $unit{roach}->{special}->[1] }, # tunneling claws
929                         min => $V lt v4.7.1 ? 150 : 100,
930                         gas => $V lt v4.7.1 ? 150 : 100,
931                         build => 79,
932                         desc => 'move while burrowed at speed of 2.8',
933                 },
934         ],
935 },
936
937 {
938         race => 'zerg',
939         cat => 'hatchery',
940         name => 'Ravager',
941         base => ['Roach'],
942         pop => 3,
943         min => 25,
944         gas => 75,
945         build => 9,
946         size => 1.5,
947         cargo => 4,
948         armor => 1,
949         hp => 120,
950         attr => {
951                 organic => 1,
952         },
953         attack => [
954                 {
955                         anti => 1,
956                         name => '?',
957                         damage => 16,
958                         upgrade => 2,
959                         type => 'projectile',
960                         cooldown => 1.14,
961                         range => 6,
962                 },
963         ],
964         speed => 3.85,
965         creep => 1.3,
966         sight => 9,
967 },
968
969 {
970         %{ $unit{hydralisk} },
971         hp => 90,
972         upgrade => [
973                 {
974                         %{ $unit{hydralisk}->{upgrade}->[0] }, # grooved spines
975                         attack => [
976                                 {
977                                         range => 2,
978                                 },
979                         ],
980                 },
981                 $unit{hydralisk}->{upgrade}->[1], # muscular augments
982         ],
983 },
984
985 {
986         race => 'zerg',
987         cat => 'lair',
988         name => 'Lurker',
989         base => ['Hydralisk'],
990         pop => 3,
991         min => 50,
992         gas => 100,
993         build => 18,
994         cargo => 4,
995         armor => 1,
996         hp => 200,
997         attr => {
998                 armored => 1,
999                 organic => 1,
1000         },
1001         attack => [
1002                 {
1003                         anti => 1,
1004                         name => '?',
1005                         damage => 20,
1006                         upgrade => 2,
1007                         splash => 'line',
1008                         cooldown => 1.43,
1009                         range => $V lt v4.11.0 ? 9 : 8,
1010                         bonus => {
1011                                 armored => 10,
1012                                 -armored => 1,
1013                         },
1014                 },
1015         ],
1016         upgrade => [
1017                 $V lt v4.11.0 ? () : {
1018                         name => 'Seismic Spines',
1019                         attack => [
1020                                 {
1021                                         range => 2,
1022                                 },
1023                         ],
1024                         req => 'Hive',
1025                         min => 150,
1026                         gas => 150,
1027                         build => 57,
1028                 },
1029         ],
1030         speed => 4.13,
1031         creep => 1.3,
1032         sight => 10,
1033 },
1034
1035 {
1036         %{ $unit{infestor} },
1037         special => [
1038                 {
1039                         %{ $unit{infestor}->{special}->[0] }, # neural parasite
1040                         range => $V lt v4.11.0 ? 9 : 8,
1041                 },
1042                 $unit{infestor}->{special}->[1], # fungal growth
1043                 {
1044                         name => 'Microbial Shroud',
1045                         abbr => 'ms',
1046                         desc => 'reduce damage from air by 50% to ground units in target area',
1047                         cost => $V lt v4.11.3 ? 100 : 75,
1048                         min => $V lt v4.11.3 ? 150 : undef,
1049                         gas => $V lt v4.11.3 ? 150 : undef,
1050                         build => $V lt v4.11.3 ? 79 : undef,
1051                         req => $V lt v4.11.3 ? 'Hive' : undef,
1052                         range => 9,
1053                         duration => 11,
1054                         radius => $V lt v4.11.3 ? 3 : 3.5,
1055                 },
1056                 $V ge v4.11.0 ? () : {
1057                         %{ $unit{infestor}->{special}->[2] }, # infested terran
1058                         attack => [
1059                                 {
1060                                         %{ $unit{infestor}->{special}->[2]->{attack}->[0] }, # rockets
1061                                         cooldown => $V lt v4.10.1 ? .95 : 1.14,
1062                                 },
1063                         ],
1064                 },
1065         ],
1066 },
1067
1068 {
1069         % {$unit{nydus_worm} },
1070         min => $V lt v4.7.1 ? 100 : $V lt v4.11.0 ? 50 : 75, # Nydus Network costs 150/150
1071         gas => $V lt v4.7.1 ? 100 : $V lt v4.11.0 ? 50 : 75,
1072         cooldown => $V lt v4.11.0 ? 0 : 14, # Summon Nydus Worm
1073 },
1074
1075 {
1076         %{ $unit{swarm_host} },
1077         gas => 75,
1078         special => [
1079                 {
1080                         %{ $unit{swarm_host}->{special}->[0] }, # locust
1081                         hp => 50,
1082                         upgrade => [], # no flying
1083                 },
1084         ],
1085         upgrade => [],
1086 },
1087
1088 $unit{mutalisk},
1089 $unit{corruptor},
1090 $unit{brood_lord},
1091 $unit{viper},
1092
1093 {
1094         %{ $unit{ultralisk} },
1095         armor => 2,
1096         upgrade => [
1097                 $unit{ultralisk}->{upgrade}->[0], # chitinous plating
1098                 {
1099                         name => 'Anabolic Synthesis',
1100                         min => 150,
1101                         gas => 150,
1102                         build => 42.85,
1103                         speed => $V lt v4.8.2 ? .41 : .82,
1104                         creep => -.215, # reverse speed increase
1105                 },
1106         ],
1107 },
1108
1109 ]