X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/637b7a6936d2937561bdbcd44595384fc5cc14f3..6311c65d7397e07947d6cf38df772545a3fa296d:/sc.plp?ds=sidebyside
diff --git a/sc.plp b/sc.plp
index 87befbd..3c19fce 100644
--- a/sc.plp
+++ b/sc.plp
@@ -34,7 +34,7 @@ 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",
@@ -54,13 +54,12 @@ Html({
],
stylesheet => [qw( light dark )],
raw => '',
- data => [$datafile],
+ 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';
@@ -253,7 +253,7 @@ sub showrangeint {
sprintf '%s',
$_->{duration} < 0 && ' class="magic-perma"',
join('',
- $_->{name},
+ $_->{name} // $_->{alt},
$_->{desc} ? ": $_->{desc}" : '',
(map { $_ && " ($_)" } join ', ',
#TODO: apply upgrades
@@ -356,12 +356,11 @@ sub showrangeint {
$_->{attr}->{jump}
&& qq'â',
'' . showmagic($_),
- !$_->{attack}->[1] ? () : (
- ' | | ', showattack($_, 1), ' | '
- ),
- !$_->{attack}->[2] ? () : (
- ' |
---|
| ', showattack($_, 2), ' | '
- ),
+ (map {(
+ ' |
---|
| | ',
+ showattack($row, $_),
+ ' | ',
+ )} 1 .. $#{ $_->{attack} }),
"\n"
);
}
@@ -400,7 +399,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)
|
---|