X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/637b7a6936d2937561bdbcd44595384fc5cc14f3..2c71866982200bc4c9be7c9dbb63f1a3fded70d4:/sc.plp?ds=inline
diff --git a/sc.plp b/sc.plp
index 87befbd..753ea4c 100644
--- a/sc.plp
+++ b/sc.plp
@@ -34,11 +34,11 @@ if (ref $requestver ne 'HASH') {
}
my %scver = %{$requestver};
-my $datafile = "sc-units-$Request.inc.pl";
+my $datafile = "sc-units-$Request";
Html({
title => "$scver{title} unit cheat sheet",
- version => '1.3',
+ version => '1.4',
description => [
"Reference of $scver{game} unit properties,"
. " comparing various statistics of all the units in $scver{name}"
@@ -52,15 +52,14 @@ Html({
$scver{major} < 2 ? qw' bw broodwar brood war ' :
qw' starcraft2 lotv hots wol ',
],
- stylesheet => [qw( light dark )],
- raw => '',
- data => [$datafile],
+ stylesheet => [qw( light dark mono )],
+ raw => '',
+ data => ["$datafile.inc.pl"],
});
say "
$scver{game} units
\n";
-my $units = do $datafile;
-Abort("Cannot open unit data", 501, $_) for $@ || $! || ();
+my $units = Data($datafile);
my $patch = shift @{$units}
or Abort("Cannot open unit data: metadata not found", 501);
@@ -179,15 +178,16 @@ sub showrangeint {
if $attack->{type} eq 'implosive';
if (my @bonus = sort grep { !/^-/ } keys %{ $attack->{bonus} }) {
$out .= sprintf('≥',
- (map {
+ (
$_ eq 'light' ? 'unit-s' :
$_ eq 'armored' ? 'unit-l' :
$_ eq 'organic' ? 'unit-o' :
$_ eq 'massive' ? 'unit-h' :
$_ eq 'shields' ? 'unit-shield' :
+ $_ eq 'structure' ? 'unit-x' :
'',
- } join '_', @bonus),
- join(', ', map {(
+ ),
+ (
sprintf('+%s vs %s',
showrangeint(
$attack->{bonus}->{$_},
@@ -196,8 +196,8 @@ sub showrangeint {
),
$_,
),
- )} @bonus),
- );
+ ),
+ ) for @bonus;
}
$out .= 'â¢'
if $attack->{type} eq 'projectile';
@@ -251,9 +251,12 @@ sub showrangeint {
my $specials = $row->{special} or return '';
return join ' ', map {
sprintf '%s',
- $_->{duration} < 0 && ' class="magic-perma"',
join('',
- $_->{name},
+ $_->{duration} < 0 && ' class="magic-perma"',
+ $_->{detect} && ' class="unit-detect"',
+ ),
+ join('',
+ $_->{name} // $_->{alt},
$_->{desc} ? ": $_->{desc}" : '',
(map { $_ && " ($_)" } join ', ',
#TODO: apply upgrades
@@ -278,7 +281,7 @@ sub showrangeint {
$_->{transform},
) :
!defined $_->{build} ? '' : sprintf(' | %s%.0f',
- defined $_->{warp} && qq(title="$_->{build} without warpgate"),
+ defined $_->{warp} && sprintf(' title="%.0f without warpgate"', $_->{build}),
!!$_->{base} && sprintf(
'+',
'from '.join('+', @{ $_->{base} }),
@@ -356,12 +359,11 @@ sub showrangeint {
$_->{attr}->{jump}
&& qq'â',
' | ' . showmagic($_),
- !$_->{attack}->[1] ? () : (
- ' | | ', showattack($_, 1), ' | '
- ),
- !$_->{attack}->[2] ? () : (
- ' |
---|
| ', showattack($_, 2), ' | '
- ),
+ (map {(
+ ' |
---|
| | ',
+ showattack($row, $_),
+ ' | ',
+ )} 1 .. $#{ $_->{attack} }),
"\n"
);
}
@@ -400,7 +402,7 @@ sub showrangeint {
) for @rows;
}
elsif ($get{order} eq 'attack') {
- $_->{order} = $_->{hp} / 1024 + $_->{shield} / 1008 + max(
+ $_->{order} = $_->{hp} / 16384 + max(
map {
($_->{dps} ? $_->{dps}->[-1] :
($_->{damage} + $_->{upgrade} * 3)
|
---|