From 88994f18a27cfdfb359c25951de43b783feacb92 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Sun, 23 Aug 2026 21:15:03 -0400 Subject: [PATCH] The winning line always wears the eye MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One instant-replay eye per turn keeps the chronicle uncluttered — but the turn that WINS the game is the turn people want to relive, and if its wizard did something notable earlier, the eye had already been spent by the time the crown line printed. The game-winning line now carries its own eye regardless, fireworks and all. Co-Authored-By: Claude Fable 5 --- packages/web/src/net.svelte.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/web/src/net.svelte.ts b/packages/web/src/net.svelte.ts index de39fd6..57f8666 100644 --- a/packages/web/src/net.svelte.ts +++ b/packages/web/src/net.svelte.ts @@ -442,7 +442,11 @@ class Net { if (TURN_BOUNDARY.has(e.type)) this.turnCounter++; const line = humanize(e); if (line) { - const notable = this.turnCounter >= 0 && this.turnCounter !== this.eyeTurn && isNotableEvent(e); + // One eye per turn — except the crown: the game-winning + // line always carries its own, whatever came before it. + const notable = this.turnCounter >= 0 && + (e.type === "gameWon" || + (this.turnCounter !== this.eyeTurn && isNotableEvent(e))); if (notable) this.eyeTurn = this.turnCounter; this.log = [...this.log, { text: line, turn: this.turnCounter >= 0 ? this.turnCounter : null, notable }]; }