The cruel draw gets its modal, and its own words
GIFT FROM BELOW bit for three in the middle of end-of-turn noise and nobody saw it — not live, not in the replay, where its log line even claimed "lose a turn" (the other trap's fate). The trapSprung event now names its card; drawing a trap YOURSELF raises the full modal — the card, what it did, "Curse the deck" — and the chronicle tells each trap's true consequence. The amplify narration was already fixed; replays re-derive events, so both now show in old games' reels too. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
028ff813f3
commit
bed7d849eb
@@ -602,7 +602,7 @@ export type GameEvent =
|
||||
| { type: "cardDisplayed"; player: PlayerId; card: CardInstance }
|
||||
| { type: "extraTurnGranted"; player: PlayerId }
|
||||
| { type: "lifeTraded"; player: PlayerId; points: number; newAllowance: number }
|
||||
| { type: "trapSprung"; player: PlayerId }
|
||||
| { type: "trapSprung"; player: PlayerId; cardId?: string }
|
||||
| { type: "died"; player: PlayerId; killedBy: PlayerId | null }
|
||||
| { type: "handTaken"; from: PlayerId; to: PlayerId; count: number }
|
||||
| { type: "handTakenPrivate"; visibleTo: PlayerId; cards: CardInstance[] }
|
||||
@@ -5639,13 +5639,13 @@ function doEndTurn(prev: GameState, draw: number): CommandResult {
|
||||
if (isTrap(card.cardId)) {
|
||||
state.discard.push(card);
|
||||
p.lostTurns++;
|
||||
events.push({ type: "trapSprung", player: p.id });
|
||||
events.push({ type: "trapSprung", player: p.id, cardId: card.cardId });
|
||||
continue;
|
||||
}
|
||||
if (card.cardId === "gift-from-below") {
|
||||
// "You lose 3 points to magical damage, now ... then discard and redraw."
|
||||
state.discard.push(card);
|
||||
events.push({ type: "trapSprung", player: p.id });
|
||||
events.push({ type: "trapSprung", player: p.id, cardId: card.cardId });
|
||||
applyDamage(state, events, p, 3, "gift from below", null);
|
||||
checkVictory(state, events);
|
||||
if (!p.alive) break;
|
||||
|
||||
Reference in New Issue
Block a user