Live interrupts announce themselves

Interrupt and Opportunity Fire were fully playable out of turn — tap
the card while another wizard acts — but nothing said so, and cards
are otherwise inert out of turn, so playtesters never tried. Now,
whenever the moment is live (someone else's turn, no attack or chaos
pending, past round one, not hotseat), those cards wear a pulsing
golden glow in your hand and the rail says to tap one. The glow
respects prefers-reduced-motion.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Eric Wagoner
2026-08-16 13:07:22 -04:00
co-authored by Claude Fable 5
parent b210cffa76
commit 45803a2664
2 changed files with 29 additions and 0 deletions
+13
View File
@@ -8,6 +8,7 @@
attached = false,
marked = false,
displayed = false,
glowing = false,
charges = null,
onclick,
}: {
@@ -16,6 +17,8 @@
attached?: boolean;
marked?: boolean;
displayed?: boolean;
/** Playable RIGHT NOW out of turn — a golden pulse invites the tap. */
glowing?: boolean;
charges?: number | null;
onclick?: () => void;
} = $props();
@@ -40,6 +43,7 @@
class="card"
class:selected
class:attached
class:glowing
class:marked
class:number={isNumber}
{onclick}
@@ -192,7 +196,16 @@
white-space: nowrap;
}
.card.glowing {
box-shadow: 0 0 0 2px #c9a72a, 0 0 14px 3px rgba(201, 167, 42, 0.55);
animation: card-glow 1.4s ease-in-out infinite;
}
@keyframes card-glow {
0%, 100% { box-shadow: 0 0 0 2px #c9a72a, 0 0 14px 3px rgba(201, 167, 42, 0.55); }
50% { box-shadow: 0 0 0 2px #c9a72a, 0 0 6px 1px rgba(201, 167, 42, 0.3); }
}
@media (prefers-reduced-motion: reduce) {
.card.glowing { animation: none; }
.card { transition: none; }
.card:hover, .card.selected, .card.attached { transform: none; }
}