Monsters ride the wormhole; mental force fails loudly (rules rev 5)
Two findings from the first human-vs-Claude duel (room 9UA6). A creature standing on a DIMENSIONAL WARP token had no way through it — warpStep obeys only wizards. The new creatureWarpStep command steps a commanded creature through the tokens under the walker's rules: one move spent, solid stone refuses it, FEAR holds the beast, touch effects greet whoever shares the landing; the board taps the paired token like a rim mouth. Replay-safe ungated — a new command widens nothing that was recorded. MENTAL FORCE ate its card silently when the destination lay beyond the victim's three walked spaces — the caster spent an attack and learned nothing (ask me how I know). Rev 5 refuses the impossible destination up front with the card kept; when the victim slips out of range between cast and resolution, a mentalForceFizzled event tells the table what happened instead of nothing. All 20 production ledgers verified, the duel's own among them; 283 tests. 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
df2913f366
commit
dd87f1d843
@@ -716,6 +716,15 @@
|
||||
dispatch({ type: "moveCreature", creatureId: selectedCreature, direction: w.from.side });
|
||||
return;
|
||||
}
|
||||
// Standing on a DIMENSIONAL WARP token: clicking the paired token
|
||||
// steps it through.
|
||||
const dw = view.dimWarps.find((d) =>
|
||||
(cellKey(d.a) === cellKey(creature.position) && cellKey(d.b) === cellKey(cell)) ||
|
||||
(cellKey(d.b) === cellKey(creature.position) && cellKey(d.a) === cellKey(cell)));
|
||||
if (dw) {
|
||||
dispatch({ type: "creatureWarpStep", creatureId: selectedCreature });
|
||||
return;
|
||||
}
|
||||
}
|
||||
selectedCreature = null;
|
||||
return;
|
||||
|
||||
@@ -103,6 +103,8 @@ export function humanize(e: GameEvent): string | null {
|
||||
case "doorHeld": return `${e.player} holds the door open.`;
|
||||
case "doorReleased": return `The held door swings shut.`;
|
||||
case "doorsRelocked": return `The door swings shut and relocks.`;
|
||||
case "creatureWarpStepped": return `The creature slips through the dimensional warp!`;
|
||||
case "mentalForceFizzled": return `${e.attacker}'s mental force strains at ${e.defender} — and fails to find a path.`;
|
||||
case "doorJammed": return `${e.player} jams a door's lock solid.`;
|
||||
case "lockRemoved": return `${e.player} removes a door's lock for good.`;
|
||||
case "cardDisplayed": return `${e.player} displays ${cardDef(e.card.cardId).name}.`;
|
||||
|
||||
Reference in New Issue
Block a user