A laden clockwork delivers before it avenges
Game five's automaton stood four steps from a winning drop and instead warped across the board to chase the bot carrying its other treasure — two compounding brain faults. First, the thief-chase rung outranked delivery even while carrying; a carrier now never chases. Second, the pathing ladder fell back to "march on any enemy with a clean corridor" before trying the true objective through hazards, so one thornbush on the road to the thief rerouted the whole campaign toward a bystander. The objective now exhausts its hazard-waded route before any generic enemy march. Replayed the FRP3 moment: the brain marches E,N,E straight home instead of W through the warp. Brains ship ungated; ledgers verified. The duel skill gains game-five scars: the captured-treasures elimination clock, FEAR as a self-cast aura, key-cutters without keys, and Kestrel's two-players-per-card table play. 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
825a73b154
commit
37a390ebbf
@@ -113,6 +113,38 @@ probing legality is free, so when unsure, try it and read the error.
|
|||||||
- Grab-turn-one openings feel great and prove nothing: deliveries are
|
- Grab-turn-one openings feel great and prove nothing: deliveries are
|
||||||
the only score. He banked quietly both times while I showboated.
|
the only score. He banked quietly both times while I showboated.
|
||||||
|
|
||||||
|
## Game-five scars (eliminated by a rule I implemented myself)
|
||||||
|
|
||||||
|
- **THE ELIMINATION CLOCK**: the moment BOTH treasures you protect sit
|
||||||
|
on living opponents' home bases, you are OUT — points, life, and
|
||||||
|
position notwithstanding. In multiplayer this clock starts ticking
|
||||||
|
the instant your second chest is picked up by anyone. From then on,
|
||||||
|
every turn must either recover a chest or end the game first. I spent
|
||||||
|
three turns optimizing deliveries while two bots quietly carried my
|
||||||
|
death certificate.
|
||||||
|
- **FEAR IS A SELF-CAST AURA** — read the card, not your assumptions:
|
||||||
|
"no player or monster will move to within 3 spaces of you," walls
|
||||||
|
irrelevant, and anyone already within 3 MUST flee on their turn. It
|
||||||
|
is armor for carriers and a hearth-denial tool: a feared wizard
|
||||||
|
standing 2 from your home makes delivery impossible. I invented an
|
||||||
|
elaborate theory about enemy goalkeeping instead of reading my own
|
||||||
|
engine's card text. Check `data/cards.json` when a rule surprises —
|
||||||
|
it is one grep away and it is verbatim.
|
||||||
|
- In four-player, Kestrel plays the TABLE, not the duel: his SWAP
|
||||||
|
yanked a bot off its own doorstep mid-delivery and parked himself by
|
||||||
|
unclaimed treasures — one card, two tempo hits. Expect every card he
|
||||||
|
plays to hurt two players at once, and ask which two before deciding
|
||||||
|
it wasn't aimed at you.
|
||||||
|
- CREATE WALL can sever your announced return route the turn after you
|
||||||
|
telegraph it. If your road home is unique, either don't stand at the
|
||||||
|
far end of it, or carry the picks/doors to re-open it. And CREATE
|
||||||
|
DOOR makes LOCKED doors — it is a key-cutter, worthless without picks.
|
||||||
|
- Bot threat model: archmage automatons DO deliver, but their brains
|
||||||
|
can dither inexplicably (one toured the map for two rounds carrying
|
||||||
|
my elimination). Never count on bot incompetence — count turns to
|
||||||
|
their delivery square as if they play perfectly, and treat every
|
||||||
|
reprieve as a gift, not a pattern.
|
||||||
|
|
||||||
## 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
|
||||||
|
|||||||
@@ -1541,7 +1541,10 @@ export function automatonCommand(
|
|||||||
// ends the march); otherwise the gold has its legs for the turn.
|
// ends the march); otherwise the gold has its legs for the turn.
|
||||||
const strikeLive = !view.turn.attackUsed && !view.turn.attackForbidden &&
|
const strikeLive = !view.turn.attackUsed && !view.turn.attackForbidden &&
|
||||||
!view.turn.actionsEnded && view.yourHand.some((c) => ATTACKS[c.cardId] != null);
|
!view.turn.actionsEnded && view.yourHand.some((c) => ATTACKS[c.cardId] != null);
|
||||||
const chasing = thief !== null && strikeLive;
|
// A carrier never chases: the delivery in hand outranks the gold in
|
||||||
|
// someone else's. Chasing while laden once marched a bot across the
|
||||||
|
// whole board, four steps from a winning drop.
|
||||||
|
const chasing = thief !== null && strikeLive && !self.carriedTreasureId;
|
||||||
// BANK GUARD: enemy gold delivered to my home is my scoreboard, and
|
// BANK GUARD: enemy gold delivered to my home is my scoreboard, and
|
||||||
// anyone may snatch it off the floor. A raider nearer my bank than I
|
// anyone may snatch it off the floor. A raider nearer my bank than I
|
||||||
// am, with the bank stocked, outranks the next grab — run home.
|
// am, with the bank stocked, outranks the next grab — run home.
|
||||||
@@ -1565,10 +1568,13 @@ export function automatonCommand(
|
|||||||
const path =
|
const path =
|
||||||
pathToward(view, self.position, objectives, { avoidNearEnemies: style === "worrier" && !chasing, canUnlock }) ??
|
pathToward(view, self.position, objectives, { avoidNearEnemies: style === "worrier" && !chasing, canUnlock }) ??
|
||||||
pathToward(view, self.position, objectives, { canUnlock }) ??
|
pathToward(view, self.position, objectives, { canUnlock }) ??
|
||||||
|
// The true objective, hazards waded, comes before any generic march
|
||||||
|
// on enemies: one thornbush on the road must not reroute the whole
|
||||||
|
// campaign toward whoever happens to have a clean corridor.
|
||||||
|
pathToward(view, self.position, objectives, { canUnlock, throughHazards: true }) ??
|
||||||
pathToward(view, self.position, enemyCells, { canUnlock }) ??
|
pathToward(view, self.position, enemyCells, { canUnlock }) ??
|
||||||
// No clean road to anything: grit the teeth and wade the hazards,
|
// No clean road to anything: grit the teeth and wade the hazards,
|
||||||
// as any wizard would rather than stand in a pocket forever.
|
// as any wizard would rather than stand in a pocket forever.
|
||||||
pathToward(view, self.position, objectives, { canUnlock, throughHazards: true }) ??
|
|
||||||
pathToward(view, self.position, enemyCells, { canUnlock, throughHazards: true });
|
pathToward(view, self.position, enemyCells, { canUnlock, throughHazards: true });
|
||||||
// A shimmering illusion on the best crossing costs nothing to doubt:
|
// A shimmering illusion on the best crossing costs nothing to doubt:
|
||||||
// roll the free test before spending any card on that wall.
|
// roll the free test before spending any card on that wall.
|
||||||
|
|||||||
Reference in New Issue
Block a user