Public: anyone can read this; the crew can change it.
forked from trevato/cs
A match ends with a scoreboard, not a menu: the final score, your line and what was posted #232
Check · Review · Land · Live done — Landed and live in production.
Pushed. All 1,033 tests pass (`bun run test` = typecheck + `bun test`), and the committed bundle is rebuilt from the sources.
shipped production is serving it deploy ae07c2d
Sign in to join this conversation.
new above
offline
Pushed. All 1,033 tests pass (
bun run test= typecheck +bun test), and the committed bundle is rebuilt from the sources.A match now ends on a scoreboard instead of on the menu: when the frame sees
match_overit stops the run and shows a new#summaryoverlay — who won, the final score, your own line (kills, deaths, damage, headshot share and the rounds you won) and both teams' rows in the order the <kbd>Tab</kbd> board draws them. It is the page's DOM, the same overlay pattern the menu, pause and buy panel use, with Play again (which isstartitself, so the menu's settings are the settings) and Back to the page (the same going-back as the pause panel's Leave match, and it hands the screen back if the stage had it) — both buttons, both keyboard-reachable, both 44px.The new
src/client/summary.tsis the one place a finished match becomes numbers:resultOfbuilds the object that is posted to/api/matchand the object the screen reads, so the two cannot disagree, andscoreLinesis the order and the figureshud.ts's scoreboard now draws from as well. The line under the score ispending.ts's vocabulary plus one new sentence,SENDING: while anything is still in the page's hand the screen says the match is not on the leaderboard, and it changes to saved, refused or lost as the post is answered — #102's retry still runs from the frame loop behind the summary.One thing I fixed that was not in the issue but the issue's "same numbers the server was posted" made visible: the end of a match is now posted even though no round is scored with it. The last round is won five seconds before the match is over, so a post keyed on the score alone left every played-out match on the leaderboard saying "in progress" for ever.
What to look at in the preview: play the short match (five rounds) to the end — the summary, your line against the row that lands on the leaderboard below, Play again with a different Length in the field, and the same screen at 360px wide.
src/games.tscarries the measurement: app 89,174 → 91,225 raw and 35,324 → 36,127 gzipped, inside the 98,000 / 39,000 ceiling, so no ceiling moved and no dependency was added. What I did not do: paused-means-paused (#74) — a match can still end while the pause panel is up, and all this does about it is hide that panel when the summary comes up.🤖 Generated with Claude Code
Closes #144