sc: indicate flying upgrade for locusts
[sheet.git] / sc.plp
diff --git a/sc.plp b/sc.plp
index 78eebc43bc8fa648c3f768ba8a4b818d6e16a895..c7aec309352f933ba9c2348fd7fe56aac4e320a9 100644 (file)
--- a/sc.plp
+++ b/sc.plp
@@ -5,19 +5,25 @@ my %scvers = (
        bw => {
                name => 'Brood War',
                title => 'starcraft',
-               game => 'StarCraft',
+               game => 'StarCraft BW',
                major => 1,
        },
        hots => {
                name => 'Heart of the Swarm',
-               title => 'starcraft2',
-               game => 'StarCraft II',
+               title => 'starcraft2 hots',
+               game => 'StarCraft II HotS',
+               major => 2,
+       },
+       lotv => {
+               name => 'Legacy of the Void',
+               title => 'starcraft2 lotv',
+               game => 'StarCraft II LotV',
                major => 2,
        },
 );
 
 $Request ||= 'bw';
-$Request = 'hots' if $Request eq '2';
+$Request = 'lotv' if $Request eq '2';
 my %scver = %{ $scvers{$Request} }
        or Abort("Requested version $Request not available", '404 unknown');
 
@@ -36,7 +42,8 @@ Html({
                starcraft game unit statistics stats comparison table sheet cheat
                reference software attributes properties patch attribute multiplayer
                ',
-               $scver{major} < 2 ? qw' bw broodwar brood war ' : qw' starcraft2 hots ',
+               $scver{major} < 2 ? qw' bw broodwar brood war ' :
+               qw' starcraft2 lotv hots wol ',
        ],
        stylesheet => [qw'light'],
        raw => '<link rel="stylesheet" type="text/css" media="all" href="/sc.css?1.1" title="light">',
@@ -51,8 +58,9 @@ my $patch = shift @{$units}
        or Abort("Cannot open unit data: metadata not found", 501);
 
 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/hots'))    x ($Request ne 'hots'),
+say "Also see the $_ tables." for join(' and ',
+       (showlink('StarCraft 2: LotV', '/sc/lotv'))    x ($Request ne 'lotv'),
+       (showlink(             'HotS', '/sc/hots'))    x ($Request ne 'hots'),
        (showlink('original SC: Brood War', '/sc/bw')) x ($Request ne 'bw'),
 );
 say "</p>\n";
@@ -258,6 +266,9 @@ sub showrangeint {
                return (
                        '<td class="val min">' . ($_->{min} // ''),
                        '<td class="val gas">' . ($_->{gas} || ''),
+                       defined $_->{transform} ? sprintf('<td class="val time">%.0f',
+                               $_->{transform},
+                       ) :
                        !defined $_->{build} ? '<td>' : sprintf('<td class="val time"%s>%s%.0f',
                                defined $_->{warp} && qq(title="$_->{build} without warpgate"),
                                !!$_->{base} && sprintf(
@@ -269,7 +280,8 @@ sub showrangeint {
                        sprintf('<td class="unit unit-%s" title="%4$s%3$s">%s',
                                $_->            {cargo} < 0 ? ('supply',           T => 'transport') :
                                $_->{upgraded}->{cargo} < 0 ? ('supply magic-opt', T => 'optional transport') :
-                               $_->{attr}->{flying}    ? ('air', F => 'flying') :
+                               $_->            {attr}->{flying} ? ('air',           F => 'flying') :
+                               $_->{upgraded}->{attr}->{flying} ? ('air magic-opt', F => 'potentially flying') :
                                $_->{attr}->{structure} ? ('x',   B => 'building') :
                                (
                                        [qw( x s m l l h h h h )]->[ $_->{cargo} ],
@@ -307,7 +319,8 @@ sub showrangeint {
                                $_->{attr}->{massive}
                                        && '<span class="unit-massive" title="massive">⚓</span>',
                        ),
-                       '<td class="val unit-hp">' . $_->{hp} // '',
+                       $_->{hp} < 0 ? '<td class="val unit-hp" title="invulnerable">∞' :
+                       '<td class="val unit-hp">' . showrangeint($_->{hp}, $_->{upgraded}->{hp}),
                        $_->{shield} ? sprintf('<td class="val unit-shield">%.0f%%<td',
                                100 * $_->{shield} / $_->{hp}
                        ) : '<td colspan=2',