X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/a0cb024ea50865030512b67ad0a3cfaefc29b7f6..85cf1cbebe994484740a5471565f5859c49106c2:/sc.plp diff --git a/sc.plp b/sc.plp index 23d29ec..5607a9a 100644 --- a/sc.plp +++ b/sc.plp @@ -1,5 +1,10 @@ <(common.inc.plp)><: +my $datafile = 'sc-units.inc.pl'; +if ($ENV{PATH_INFO} and $ENV{PATH_INFO} eq '/2') { + $datafile = 'sc2-units.inc.pl'; +} + Html({ title => 'starcraft unit cheat sheet', version => 'v1.0', @@ -13,6 +18,7 @@ Html({ reference software attributes properties '], stylesheet => [qw'light'], + data => [$datafile], }); :> @@ -38,12 +44,12 @@ Unit properties as seen or measured in Brood War } tr.alt td { font-size: 70%; - border-top-style: dashed; + padding-left: 0.5em; } .units tr th:first-child { padding-left: 0; } - .units tr:hover:not(.race) { + .units tbody tr:hover:not(.race) { background: #EEE; } @@ -59,13 +65,9 @@ Unit properties as seen or measured in Brood War .unit-o {color: #C08} /* organic */ .unit-u {color: #44C} /* mechanic */ - img.unit-o, img.unit-u { - margin-left: 0.2em; - vertical-align: middle; - } - .unit { - text-align: center; - white-space: nowrap; + .unit-composed { + color: #C88; + font-size: 70%; } .unit.unit-s {color: #770} .unit.unit-m {color: #C70} @@ -98,8 +100,12 @@ Unit properties as seen or measured in Brood War .unit-magic { padding-left: 0.5em; } + .magic-perma { + text-decoration: underline; + } .units .val { + white-space: nowrap; text-align: right; } @@ -115,18 +121,18 @@ Unit properties as seen or measured in Brood War .legend dd { text-indent: -1em; margin-left: 1em; - break-before: avoid; - -webkit-column-break-before: avoid; } - .units, .legend { - display: table-cell; - } .legend { - min-width: 15em; - padding-left: 2em; + display: table-cell; + min-width: 20em; text-align: left; } + .units { + float: left; + padding-bottom: 1em; + margin-right: 2em; + } <: @@ -158,6 +164,12 @@ sub coltoggle { <: sub showrange { + my ($min, $max) = @_; + $_ = int($_ + .5) for $min, $max; # round halves up + return $min == $max ? $min : "$min-$max"; +} + +sub showval { my ($row, @elements) = @_; my ($min, $max); @@ -181,40 +193,51 @@ sub showrange { } } - if ($elements[0] eq 'attack' and $elements[1] ne 'range' and $elements[2] eq 'cmp') {{ - my $type = $row->{$elements[0]}->{$elements[1]}->{type} or next; + if ($elements[0] eq 'attack' and $elements[1] ne 'range' and $elements[2] eq 'dps') {{ + my $attack = $row->{ $elements[0] }->{ $elements[1] }; + ref $attack or $attack = $row->{ $elements[0] }->{$attack}; # follow + my $type = $attack->{type} or next; if ($type eq 'explosive') { $min /= 2; } elsif ($type eq 'implosive') { $min /= 4; } - $min = int($min + .5); # round halves up }} - - return $min == $max ? $min : "$min-$max"; + return showrange($min, $max); } sub showattack { my ($row, $area) = @_; - local $_ = $row->{attack}->{$area}; + my $attack = $row->{attack}->{$area}; + if (not ref $attack) { + # reference to another area + $area = $attack; + $attack = $row->{attack}->{$area}; + } - return '