BODY COUNT: dashes for never, names on the rack, and one seam too many

A record never set reads as a dash — "BEST GORE RUN 0" looks like a bad run
when what it means is that there has not been one. The weapon tiles name their
weapon: six unlabelled silhouettes was a guessing game about which one is the
flamer.

The doubled border was the row rule firing inside the grid: `.fig + .fig` gave
cell three a left border hard against the container's own. It is scoped to
single-row figure strips now, and the two-up grid draws its own seams. Less
padding inside the box, air above it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-31 16:06:15 +02:00
1 parent 84b1234012
commit 115c6089be
2 files changed
+19 -9

No files matched your search

+11 -5
View File
@@ -297,10 +297,13 @@ export function drawStats(period, v) {
const $ = id => document.getElementById(id);
// every body you have put down, in any mode — the climb's own record stands beside it, so it
// does not need adding twice (its opponents are counted in the same kill tally)
const figs = [['BODIES FELLED', n(all.kills)],
['BEST GORE RUN', n(gore.best)],
['DEEPEST CLIMB', n(match.longest)],
['RUNS', n(all.matches)]];
// a record never set reads as a DASH, not a zero: "BEST GORE RUN 0" looks like a bad run, when
// what it means is that there has not been one yet
const num = v => v > 0 ? n(v) : '—';
const figs = [['BODIES FELLED', num(all.kills)],
['BEST GORE RUN', num(gore.best)],
['DEEPEST CLIMB', num(match.longest)],
['RUNS', num(all.matches)]];
$('stFigs').innerHTML = figs.map(([k, val]) =>
`<div class="fig"><b>${k}</b><i>${val}</i></div>`).join('');
// sorted by count, and only bodies you have actually met — an empty roster of everything would
@@ -308,8 +311,11 @@ export function drawStats(period, v) {
const rows = Object.entries(all.z).filter(([, c]) => c > 0).sort((a, b) => b[1] - a[1]);
roster($('stZ'), rows, v, 'NOTHING YET. GO AND EARN A ROW.');
const ws = Object.entries(all.w).filter(([id, c]) => c > 0 && wIcon(id)).sort((a, b) => b[1] - a[1]);
// ...and a tile NAMES its weapon: six unlabelled icons is a guessing game about which silhouette
// is the flamer and which is the rocket
$('stW').innerHTML = ws.length ? ws.map(([id, c]) =>
`<div class="wtile"><img src="assets/${wIcon(id)}.png?v=${v}" alt=""><b>${n(c)}</b></div>`).join('')
`<div class="wtile"><img src="assets/${wIcon(id)}.png?v=${v}" alt=""><b>${n(c)}</b>`
+ `<i>${(WEAPONS[id] && WEAPONS[id].label) || id.toUpperCase()}</i></div>`).join('')
: '<p class="none">NO WEAPONS FIRED.</p>';
}