diff --git a/components/diplomat-defense.tsx b/components/diplomat-defense.tsx index b67d9f54..0331186f 100644 --- a/components/diplomat-defense.tsx +++ b/components/diplomat-defense.tsx @@ -1,7 +1,8 @@ 'use client'; import type { Action, GameView } from '@/game/engine'; -import { battleCardLabel } from '@/game/battle-cards'; +import { isPortableSnooper } from '@/game/battle-cards'; +import { copiedDefenseKind, diplomatDefenseLabel } from '@/game/diplomat-defense'; import { Button } from './ui/button'; export function DiplomatDefense({ @@ -20,7 +21,16 @@ export function DiplomatDefense({ const visibleCards = [...(game.battle?.cards ?? []), ...(me?.hand ?? [])]; const card = (id: string) => visibleCards.find((entry) => entry.id === id); const source = card(decision.source); - const copiedDefense = source ? battleCardLabel(source.kind) : 'defense'; + const copiedKind = + game.battle?.diplomatDefense?.kind ?? copiedDefenseKind(source); + const copiedDefense = copiedKind + ? diplomatDefenseLabel(copiedKind) + : 'defense'; + const interpretedRole = + copiedKind === 'shieldSnooper' || + copiedKind === 'weirdingWay' || + copiedKind === 'chemistry' || + isPortableSnooper(source); return (

@@ -34,6 +44,13 @@ export function DiplomatDefense({ must be discarded after this battle. Decline to proceed without a copied defense.

+ {interpretedRole && ( +

+ First-version interpretation: copy the defense role already used by + the opponent, not its activation, late-play opportunity or requirement + for another card in your own plan. +

+ )} {decision.cards.map((id) => (