<(common.inc.plp)><:
use List::Util qw(max sum);
-my %scver = (
- id => 'bw',
- name => 'Brood War',
- title => 'starcraft',
- game => 'StarCraft',
- major => 1,
-);
-
-if ($Request and $Request eq '2') {
- %scver = (
- id => 'hots',
+my %scvers = (
+ bw => {
+ name => 'Brood War',
+ title => 'starcraft',
+ game => 'StarCraft',
+ major => 1,
+ },
+ hots => {
name => 'Heart of the Swarm',
title => 'starcraft2',
game => 'StarCraft II',
major => 2,
- );
-}
-my $datafile = "sc-units-$scver{id}.inc.pl";
+ },
+);
+
+$Request ||= 'bw';
+$Request = 'hots' if $Request eq '2';
+my %scver = %{ $scvers{$Request} }
+ or Abort("Requested version $Request not available", '404 unknown');
+
+my $datafile = "sc-units-$Request.inc.pl";
Html({
title => "$scver{title} unit cheat sheet",
keywords => [
qw'
starcraft game unit statistics stats comparison table sheet cheat
- reference software attributes properties
+ reference software attributes properties patch attribute multiplayer
',
$scver{major} < 2 ? qw' bw broodwar brood war ' : qw' starcraft2 hots ',
],
say "<p>Unit properties as seen or measured in $scver{name}\n$patch.";
say "Also see the $_ table." for join(', ',
- (showlink('StarCraft 2: HotS', '/sc/2')) x ($scver{major} < 2),
- (showlink('original SC: Brood War', '/sc')) x ($scver{major} > 1),
+ (showlink('StarCraft 2: HotS', '/sc/hots')) x ($Request ne 'hots'),
+ (showlink('original SC: Brood War', '/sc/bw')) x ($Request ne 'bw'),
);
say "</p>\n";
return (
'<td class="val min">' . ($_->{min} // ''),
'<td class="val gas">' . ($_->{gas} || ''),
- !defined $_->{build} ? '<td>' : sprintf('<td class="val time">%s%.0f',
- !!$_->{base} && '<span class="unit-composed">+</span>',
- $_->{build} || '0',
+ !defined $_->{build} ? '<td>' : sprintf('<td class="val time"%s>%s%.0f',
+ defined $_->{warp} && qq(title="$_->{build} without warpgate"),
+ !!$_->{base} && sprintf(
+ '<span class="unit-composed" title="%s">+</span>',
+ 'from '.join('+', @{ $_->{base} }),
+ ),
+ $_->{warp} // $_->{build} || '0',
),
sprintf('<td class="unit unit-%s" title="%4$s%3$s">%s',
$_-> {cargo} < 0 ? ('supply', T => 'transport') :