'use client'; import type { Action, GameView } from '@/game/engine'; import { recruitsPlayAction } from '@/game/recruits'; import { faction } from '@/game/catalog'; import { Button } from '@/components/ui/button'; export function Recruits({ game, act, busy }: { game: GameView; act: (action: Action) => void; busy: boolean; }) { const offer = game.recruitsPreview; if (!offer || game.status !== 'playing' || game.phase !== 4 || (!offer.active && !offer.play)) return null; const action = recruitsPlayAction(offer); return (

Recruits{offer.active ? ' · Active this turn' : ''}

{offer.active ? 'Free revival rates are doubled for this turn. The ordinary force limit is seven; factions with unlimited revival keep that advantage.' : 'Play this card to double every faction’s free revival rate and raise the ordinary force limit to seven for this turn. Factions with unlimited revival keep that advantage.'}

Already completed revivals still count. Paid forces retain their normal prices, and special-force revival limits still apply.

{offer.rates.map((rate) => ( ))}
Current revival rates
FactionFree rateForce limit
{faction(game.players.find((p) => p.id === rate.player)!.faction).name} {rate.freeRate} {rate.limit === 20 ? 'Unlimited' : rate.limit}
{offer.play && ( <> {offer.play.blocked &&

{offer.play.blocked}

} )}
); }