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:
co-authored by
Claude Fable 5
parent
063cd2a78c
commit
4c7633097b
@@ -93,6 +93,25 @@ probing legality is free, so when unsure, try it and read the error.
|
|||||||
- In 4p with automatons: the bots are chaos agents — they stun, exile,
|
- In 4p with automatons: the bots are chaos agents — they stun, exile,
|
||||||
disease, and con. Herd them at Eric; never assume they're on script.
|
disease, and con. Herd them at Eric; never assume they're on script.
|
||||||
|
|
||||||
|
## Game-three scars (lost in four rounds)
|
||||||
|
|
||||||
|
- **CHECK `dimWarps` EVERY SINGLE VIEW** — Kestrel has won two games
|
||||||
|
with quietly-placed wormholes ending beside his home. The client now
|
||||||
|
prints a !! line for them; treat any new token pair as a five-alarm
|
||||||
|
fire and recompute both players' delivery distances through it.
|
||||||
|
- **Never lead the attack against Kestrel.** Three games, three saved
|
||||||
|
counters sprung at the perfect moment (anti-anti, full-shield bait,
|
||||||
|
full-reflection held three rounds for my lightning). Force his
|
||||||
|
counters out with throwaways or positional threats before committing
|
||||||
|
a real spell; his patience is perfect and he telegraphs nothing.
|
||||||
|
- DESTROY WALL showers the ADJACENT caster with rubble (4 damage) —
|
||||||
|
cast it from range, never on your own square's edge.
|
||||||
|
- Wading a rosebush costs 3. A reflected LIGHTNING BLAST still stuns
|
||||||
|
its caster even at 1 reflected damage — the stun is the payload, and
|
||||||
|
a lost turn against Kestrel is a lost game.
|
||||||
|
- Grab-turn-one openings feel great and prove nothing: deliveries are
|
||||||
|
the only score. He banked quietly both times while I showboated.
|
||||||
|
|
||||||
## Playing well
|
## Playing well
|
||||||
|
|
||||||
- Kestrel (Eric) is EXCELLENT: he baited my thief, saved anti-anti for
|
- Kestrel (Eric) is EXCELLENT: he baited my thief, saved anti-anti for
|
||||||
|
|||||||
@@ -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(`ROOM ${seat?.roomId} — you are ${v.you} (round ${v.turn.round}, ${v.activePlayerId}'s turn)`);
|
||||||
out.push(lines.join("\n"));
|
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(" "));
|
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) {
|
for (const p of v.players) {
|
||||||
const t = p.carriedTreasureId ? " CARRYING TREASURE" : "";
|
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(",")}]`);
|
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(",")}]`);
|
||||||
|
|||||||
Reference in New Issue
Block a user