The seat client sees wormholes; the skill records defeat three

Kestrel has won two of three duels through dimensional-warp tokens
the ASCII view never rendered — a !! line now names every token pair.
The skill's game-three scars: never lead the attack against him,
destroy walls from range, and count deliveries, not flourishes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF
This commit is contained in:
Eric Wagoner
2026-08-26 10:58:59 -04:00
co-authored by Claude Fable 5
parent 063cd2a78c
commit 4c7633097b
2 changed files with 23 additions and 0 deletions
+4
View File
@@ -72,6 +72,10 @@ function renderView(v) {
out.push(`ROOM ${seat?.roomId} — you are ${v.you} (round ${v.turn.round}, ${v.activePlayerId}'s turn)`);
out.push(lines.join("\n"));
out.push("WARPS (rim passages): " + B.warps.map((w) => `${cellK(w.from.cell)}${w.from.side}${cellK(w.to.cell)}`).join(" "));
if (v.dimWarps.length) {
out.push("!! DIMENSIONAL WARP TOKENS (player wormholes — CHECK EVERY TURN): " +
v.dimWarps.map((w) => `${cellK(w.a)}${cellK(w.b)}`).join(" "));
}
for (const p of v.players) {
const t = p.carriedTreasureId ? " CARRYING TREASURE" : "";
out.push(` ${p.id === v.you ? "ME " : " "}${p.id}: ${p.life} life @${cellK(p.position)} home@${cellK(p.home)} hand:${p.handCount}${t}${p.alive ? "" : " DEAD"} displayed:[${p.displayed.map((c) => c.cardId).join(",")}]`);