import { MOBILE_STRONGHOLD, territory } from '@/game/board'; import { faction } from '@/game/catalog'; import type { AmbassadorToken } from '@/game/ecaz-ambassadors'; /** Placed Ambassador faces are public. Unplaced custody never appears on the map. */ export function AmbassadorBoardMarkers({ tokens, }: { tokens: readonly AmbassadorToken[]; }) { return ( <> {tokens.flatMap((token) => { if (token.zone !== 'placed' || !token.location) return []; const place = territory(token.location); const identity = faction(token.effect); const label = `${identity.name} Ambassador in ${place.name}`; // Separate Ambassadors from the force row, spice and hidden Terror markers. // The HMS has its own wide box, with room beside its native force row. const offset = token.location === MOBILE_STRONGHOLD ? [65, 24] : [-22, -59]; return [ {label} {identity.sigil} Amb , ]; })} ); }