Add a persistent high score table

Retiring writes each player's closing balance to a top-ten table in
localStorage, reachable from the title screen and the standings, with
the summer just finished picked out in yellow.

Stored rows are user-editable, so every field is validated on load and
malformed entries are dropped. Storage being unavailable is a normal
case, not an error: the game plays on with an empty table.

Also stops the status line claiming DAY 00 on screens that have no day.
This commit is contained in:
2026-09-08 15:29:35 -07:00
parent 08b2cc5391
commit 71cbb02353
9 changed files with 280 additions and 5 deletions
+3
View File
@@ -6,10 +6,12 @@ const BANNER = bannerRows('LEMONADE')
export function TitleScreen({
onStart,
onInstructions,
onScores,
seed,
}: {
onStart: () => void
onInstructions: () => void
onScores: () => void
seed: number
}) {
return (
@@ -29,6 +31,7 @@ export function TitleScreen({
START
</Btn>
<Btn onClick={onInstructions}>INSTRUCTIONS</Btn>
<Btn onClick={onScores}>HIGH SCORES</Btn>
</div>
</div>
)