'use client'; import { ArrowRight } from 'lucide-react'; import { Button } from '@/components/ui/button'; import type { Action, GameView } from '@/game/engine'; export function FremenRevivalGrant({ game, act, busy, }: { game: GameView; act: (action: Action) => void; busy: boolean; }) { const grant = game.fremenRevivalGrant; const me = game.players.find((player) => player.id === game.me); if (!grant || game.status !== 'playing' || game.phase !== 4 || me?.faction !== 'fremen' || me.ally !== grant.recipient) return null; const recipient = game.players.find((player) => player.id === grant.recipient)?.name ?? 'your ally'; const disabled = busy || !!game.truthtrance || !!game.nexusTraitors?.pending || !!grant.blocked || grant.granted; return (

Fremen ally revival

Grant {recipient} an ordinary free force revival rate of three this phase. This replaces their native ordinary rate rather than adding three. Ordinary total revival and special-force limits still apply.

Provisional current-rate policy: Recruits doubles the current granted rate, including applicable bonuses, before caps. Without other bonuses, three becomes six. Later grants use the same current-rate calculation; your ally’s revival controls show the actual remaining allowance. Previously recorded free returns use the allowance. Earlier paid returns keep their payments and count toward the total revival limit; there is no refund or retroactive reclassification.

Another player may use Karama before the original alliance grant takes effect. Canceling blocks this Fremen grant to the current ally for this Revival; the ally retains its intrinsic rate and Recruits. Completed revivals and payments stay unchanged. This response timing and prevention scope are provisional.

{grant.granted && (

Free revival has been granted to {recipient} for this phase.

)} {grant.blocked && (

{grant.blocked}

)}
); }