X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/72b206b172f32b65161b0377ea01fb4e7afa4df3..85cf1cbebe994484740a5471565f5859c49106c2:/sc.plp diff --git a/sc.plp b/sc.plp index 8a63e8c..5607a9a 100644 --- a/sc.plp +++ b/sc.plp @@ -44,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; } @@ -65,18 +65,10 @@ 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-composed { color: #C88; font-size: 70%; } - .unit { - text-align: center; - white-space: nowrap; - } .unit.unit-s {color: #770} .unit.unit-m {color: #C70} .unit.unit-l {color: #D22} @@ -113,6 +105,7 @@ Unit properties as seen or measured in Brood War } .units .val { + white-space: nowrap; text-align: right; } @@ -128,14 +121,10 @@ 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 { + display: table-cell; min-width: 20em; text-align: left; } @@ -144,9 +133,6 @@ Unit properties as seen or measured in Brood War padding-bottom: 1em; margin-right: 2em; } - .footer { - clear: left; - } <: @@ -178,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); @@ -212,9 +204,7 @@ sub showrange { $min /= 4; } }} - $_ = int($_ + .5) for $min, $max; # round halves up - - return $min == $max ? $min : "$min-$max"; + return showrange($min, $max); } sub showattack { @@ -239,7 +229,7 @@ sub showrange { } $tagbase .= '">'; - my $out = showrange($row, 'attack', $area, 'damage'); + my $out = showval($row, 'attack', $area, 'damage'); $out .= '+' if $attack->{splash}; $attack->{dps} = $attack->{cooldown} && [ map { 24 * $_ / $attack->{cooldown} * ($attack->{count} // 1) } @@ -247,7 +237,7 @@ sub showrange { $attack->{damage} #TODO: upgrade (zergling) ]; - $out .= '' . showrange($row, 'attack', $area, 'dps'); + $out .= '' . showval($row, 'attack', $area, 'dps'); return $tagbase . $out; } @@ -301,15 +291,15 @@ sub showrange { '' . ( $_->{shield} ? sprintf('%.0f%%', 100 * $_->{shield} / $_->{hp}) : ' ' ), - '' . showrange($_, 'armor'), + '' . showval($_, 'armor'), showattack($_, 'ground'), showattack($_, 'air'), - '' . showrange($_, 'attack', 'range'), + '' . showval($_, 'attack', 'range'), '' . sprintf( $_->{detect} ? '%s' : '%s', - showrange($_, 'sight') + showval($_, 'sight') ), - '' . showrange($_, 'speed'), + '' . showval($_, 'speed'), '' . showmagic($_), "\n" ); @@ -317,8 +307,9 @@ sub showrange { my $units = do $datafile; die "Cannot open unit data: $_\n" for $@ || $! || (); - my $grouped = !exists $get{order}; + my $grouped = 1; # race headers if (exists $get{order}) { + $grouped = 0; $get{order} ||= ''; if ($get{order} eq 'size') { $_->{order} = $_->{unit}*8 + $_->{suit} + $_->{hp}/512 + $_->{min}/8192 for @$units; @@ -330,25 +321,34 @@ sub showrange { $units->[$_]->{order} = $_ for 0 .. $#$units; } } - my @rows = $grouped ? @$units : sort {$a->{order} <=> $b->{order}} @$units; + my @rows = @{$units}; + @rows = sort {$a->{order} <=> $b->{order}} @rows unless $grouped; my ($race, $cat) = ('', ''); for (@rows) { - $race = $_->{race}, - printf '

%s

'."\n", $race, ucfirst $race - if $grouped and $race ne $_->{race}; - $_->{cat} = $_->{race} if not $grouped; + if ($grouped) { + printf '

%s

'."\n", + $race = $_->{race}, ucfirst $race + unless $race eq $_->{race}; + } + else { + $_->{cat} = $_->{race}; + } + print( '', - sprintf('%s', $cat ne $_->{cat} ? ('h', $cat = $_->{cat}) : ('d', ' ')), + sprintf('%s', + $cat ne $_->{cat} ? ('h', $cat = $_->{cat}) : ('d', ' ') + ), '' . $_->{name}, showunitcols($_), ); - for my $alt (grep { $_->{alt} } @{ $_->{special} }) { + for my $subrow (@{ $_->{special} }) { + $subrow->{alt} or next; print( - '' . $alt->{alt}, - showunitcols($alt), + '' . $subrow->{alt}, + showunitcols($subrow), ); } }