git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
word/finder: .large images with multiple subcategories
[sheet.git]
/
sc.plp
diff --git
a/sc.plp
b/sc.plp
index c7aec309352f933ba9c2348fd7fe56aac4e320a9..b3c27fc6c8705c02786aa3bba48350b380af8e5f 100644
(file)
--- a/
sc.plp
+++ b/
sc.plp
@@
-20,18
+20,25
@@
my %scvers = (
game => 'StarCraft II LotV',
major => 2,
},
game => 'StarCraft II LotV',
major => 2,
},
+ index => 'bw',
+ 1 => 'bw',
+ 2 => 'lotv',
);
);
-$Request ||= 'bw';
-$Request = 'lotv' if $Request eq '2';
-my %scver = %{ $scvers{$Request} }
- or Abort("Requested version $Request not available", '404 unknown');
+my $requestver = $scvers{$Request ||= 'index'}
+ or Html(), Abort("Requested version <q>$Request</q> not available", '404 request not found');
+if (ref $requestver ne 'HASH') {
+ $header{Location} = $requestver;
+ Abort("Canonical URL for $Request is at $requestver", '302 subpage alias');
+}
+
+my %scver = %{$requestver};
my $datafile = "sc-units-$Request.inc.pl";
Html({
title => "$scver{title} unit cheat sheet",
my $datafile = "sc-units-$Request.inc.pl";
Html({
title => "$scver{title} unit cheat sheet",
- version => '1.
1
',
+ version => '1.
2
',
description => [
"Reference of $scver{game} unit properties,"
. " comparing various statistics of all the units in $scver{name}"
description => [
"Reference of $scver{game} unit properties,"
. " comparing various statistics of all the units in $scver{name}"
@@
-45,8
+52,8
@@
Html({
$scver{major} < 2 ? qw' bw broodwar brood war ' :
qw' starcraft2 lotv hots wol ',
],
$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
">',
+ stylesheet => [qw
( light dark )
],
+ raw => '<link rel="stylesheet" type="text/css" media="all" href="/sc.css?1.
2
">',
data => [$datafile],
});
data => [$datafile],
});
@@
-103,12
+110,12
@@
sub coltoggle {
:><table class="units">
<thead><tr>
<th><:= coltoggle(exists $get{order} ? 'race' : 'source' => '') :></th>
:><table class="units">
<thead><tr>
<th><:= coltoggle(exists $get{order} ? 'race' : 'source' => '') :></th>
- <th><:= coltoggle(name => 'name') :></th>
- <th class="val min" title=minerals><:= coltoggle(cost => 'cost') :></th>
- <th class="val gas">gas</th>
+ <th
class="unit-name"
><:= coltoggle(name => 'name') :></th>
+ <th class="val
unit-
min" title=minerals><:= coltoggle(cost => 'cost') :></th>
+ <th class="val
unit-
gas">gas</th>
<th class="val time"><:= coltoggle(build => 'build') :></th>
<th class="unit" colspan="2"><:= coltoggle(qw'size size') :></th>
<th class="val time"><:= coltoggle(build => 'build') :></th>
<th class="unit" colspan="2"><:= coltoggle(qw'size size') :></th>
- <th class="unit" colspan="2">attr</th>
+ <th class="unit
unit-attr
" colspan="2">attr</th>
<th class="val unit-hp"><:= coltoggle(HP => 'hp') :></th>
<th class="val unit-shield">shield</th>
<th class="val unit-armor" title="armor">⛨</th>
<th class="val unit-hp"><:= coltoggle(HP => 'hp') :></th>
<th class="val unit-shield">shield</th>
<th class="val unit-armor" title="armor">⛨</th>
@@
-184,7
+191,8
@@
sub showrangeint {
sprintf('+%s vs %s',
showrangeint(
$attack->{bonus}->{$_},
sprintf('+%s vs %s',
showrangeint(
$attack->{bonus}->{$_},
- $attack->{bonus}->{$_} + $attack->{bonus}->{"-$_"} * 3,
+ ($upattack->{bonus} // $attack->{bonus})->{$_}
+ + ($upattack->{bonus} // $attack->{bonus})->{"-$_"} * 3,
),
$_,
),
),
$_,
),
@@
-264,8
+272,8
@@
sub showrangeint {
$_->{hp} += $_->{shield} if $_->{shield};
return (
$_->{hp} += $_->{shield} if $_->{shield};
return (
- '<td class="val min">' . ($_->{min} // ''),
- '<td class="val gas">' . ($_->{gas} || ''),
+ '<td class="val
unit-
min">' . ($_->{min} // ''),
+ '<td class="val
unit-
gas">' . ($_->{gas} || ''),
defined $_->{transform} ? sprintf('<td class="val time">%.0f',
$_->{transform},
) :
defined $_->{transform} ? sprintf('<td class="val time">%.0f',
$_->{transform},
) :
@@
-290,7
+298,7
@@
sub showrangeint {
),
defined $_->{size} && sprintf('⌀%.1f ', $_->{size}),
),
),
defined $_->{size} && sprintf('⌀%.1f ', $_->{size}),
),
- sprintf('<td class="val unit%s">%s',
+ sprintf('<td class="val unit
unit-pop
%s">%s',
defined $_->{pop} && $_->{pop} < 0 && ' unit-supply',
defined $_->{pop} && $_->{pop} == .5 ? '½' : $_->{pop},
),
defined $_->{pop} && $_->{pop} < 0 && ' unit-supply',
defined $_->{pop} && $_->{pop} == .5 ? '½' : $_->{pop},
),
@@
-349,10
+357,10
@@
sub showrangeint {
&& qq'<span class="unit unit-jump" title="$_->{attr}->{jump}">↕</span>',
'<td class="unit-magic">' . showmagic($_),
!$_->{attack}->[1] ? () : (
&& qq'<span class="unit unit-jump" title="$_->{attr}->{jump}">↕</span>',
'<td class="unit-magic">' . showmagic($_),
!$_->{attack}->[1] ? () : (
- '<tr><t
d colspan=12
>', showattack($_, 1), '<td colspan=3>'
+ '<tr><t
h class="cat" colspan="2"><td colspan=10
>', showattack($_, 1), '<td colspan=3>'
),
!$_->{attack}->[2] ? () : (
),
!$_->{attack}->[2] ? () : (
- '<tr><t
d colspan=12
>', showattack($_, 2), '<td colspan=3>'
+ '<tr><t
h class="cat" colspan="2"><td colspan=10
>', showattack($_, 2), '<td colspan=3>'
),
"\n"
);
),
"\n"
);
@@
-366,11
+374,6
@@
sub showrangeint {
if ($get{order} eq 'name') {
@rows = sort {$a->{name} cmp $b->{name}} @rows;
}
if ($get{order} eq 'name') {
@rows = sort {$a->{name} cmp $b->{name}} @rows;
}
- elsif ($get{order} eq 'hp') {
- $_->{order} = (
- $_->{hp}*1.01 + $_->{armor} + $_->{shield} + $_->{size}/1024,
- ) for @rows;
- }
elsif ($get{order} eq 'cost') {
$_->{order} = (
$_->{gas}*1.5 + $_->{min} + $_->{pop}/8 + $_->{build}/256/8
elsif ($get{order} eq 'cost') {
$_->{order} = (
$_->{gas}*1.5 + $_->{min} + $_->{pop}/8 + $_->{build}/256/8
@@
-391,6
+394,11
@@
sub showrangeint {
+ $_->{hp}/512 + $_->{min}/8192
) for @rows;
}
+ $_->{hp}/512 + $_->{min}/8192
) for @rows;
}
+ elsif ($get{order} eq 'hp') {
+ $_->{order} = (
+ $_->{hp}*1.01 + $_->{armor} + $_->{shield} + $_->{size}/1024,
+ ) for @rows;
+ }
elsif ($get{order} eq 'attack') {
$_->{order} = $_->{hp} / 1024 + $_->{shield} / 1008 + max(
map {
elsif ($get{order} eq 'attack') {
$_->{order} = $_->{hp} / 1024 + $_->{shield} / 1008 + max(
map {
@@
-447,7
+455,8
@@
sub showrangeint {
<dl>
<dt>cost
<dl>
<dt>cost
- <dd>minerals and gas required to create one unit
+ <dd><span class="unit-min">minerals</span> and
+ <span class="unit-gas">gas</span> required to create one unit
<dd>includes total expenses if based on existing units
<dt>build
<dd>relative time needed to create at least one unit
<dd>includes total expenses if based on existing units
<dt>build
<dd>relative time needed to create at least one unit