From a244aeb5f8a128e495b4bc9e8d75077a480f4310 Mon Sep 17 00:00:00 2001 From: Quintine <15965533+Quintine@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:08:16 +1100 Subject: [PATCH] Support named ordinary cards in Advanced Voice --- components/battle-preparation.tsx | 14 +- components/turn-action-fields.tsx | 10 +- components/turn-action-promises.tsx | 4 +- docs/CURRENT_STATUS.md | 10 ++ docs/IMPLEMENTATION_STATUS.md | 11 ++ docs/PORTABLE_SNOOPER_ENGINE_AUDIT.md | 26 +++- docs/RULE_DECISIONS.md | 14 +- game/battle-cards.ts | 41 +++++- game/battle-power-question.ts | 4 +- game/bots.ts | 2 +- game/combat-response-quote.ts | 4 +- game/engine.ts | 28 ++-- game/nexus-borrowed-voice.ts | 4 +- game/reference.ts | 21 +++ tests/battle-power-question.test.ts | 3 + tests/nexus-borrowed-voice-runtime.test.ts | 16 ++ tests/nexus-borrowed-voice.test.ts | 2 +- tests/voice-named-card-controls.test.tsx | 103 +++++++++++++ tests/voice-named-card-runtime.test.ts | 164 +++++++++++++++++++++ tests/voice-named-card.test.ts | 74 ++++++++++ 20 files changed, 514 insertions(+), 41 deletions(-) create mode 100644 tests/voice-named-card-controls.test.tsx create mode 100644 tests/voice-named-card-runtime.test.ts create mode 100644 tests/voice-named-card.test.ts diff --git a/components/battle-preparation.tsx b/components/battle-preparation.tsx index 2ae92b38..ccbf47fb 100644 --- a/components/battle-preparation.tsx +++ b/components/battle-preparation.tsx @@ -7,7 +7,7 @@ import { isStoneBurner, isMirrorWeapon, isDefenseCard, - VOICE_KINDS, + voiceChoices, } from '@/game/battle-cards'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; @@ -150,15 +150,15 @@ export function BattlePreparation({

Both combatants continue in attacker order before Prescience or sealed plans. Only an unallied holder may spend the card.

{offer.blocked &&

{offer.blocked}

} {offer.canUse && <> -