Files
Dune/components/nexus-fremen-betrayal.tsx
T
Quintine b4157aaa9b Connect native Fremen Nexus effects across selected modules
Retain actual Cunning appearances, paid Karama and typed remote riding with optional Sandmaster collection and source-parent HMS entry. Preserve Betrayal movement sources and apply its declared worm restriction to Great Maker reserve riding without suppressing votes or casualties. Completed Maker history no longer blocks a later ordinary offer.

Validation: frozen 14-file86/86, types/lint/build, nine finite original-action/rendered-control programmes, four minimal legal policies. Discovery destination proof remains focused quotes pending actual arrival; full combinations, assurance and deployed acceptance remain required. No saved-game, restart or deployment operation.
2026-10-18 11:35:59 +11:00

38 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use client';
import type { Action, GameView } from '@/game/engine';
import { nexusCardReference } from '@/game/nexus-card-reference';
import { fremenBetrayalAction } from '@/game/nexus-fremen-betrayal-options';
import { Button } from './ui/button';
type Props = { game: GameView; act: (action: Action) => void; busy: boolean };
export function NexusFremenBetrayal({ game, act, busy }: Props) {
const offer = game.nexusFremenBetrayal;
if (!offer || game.nexusCards?.card !== 'fremen') return null;
const action = fremenBetrayalAction(game);
const fremen = game.players.find(player => player.id === offer.target);
return (
<section aria-label="Fremen Nexus Betrayal" className="space-y-3 rounded-lg border border-[#a88b60]/50 p-3">
<h3>Fremen Nexus · Betrayal</h3>
<p>{nexusCardReference('fremen').betrayal}</p>
{fremen && <p className="fine">
{offer.mode === 'worm'
? `Declare before the first spice blow: ${fremen.name} cannot take ordinary or Cunning worm rides this turn. Worm destruction, survival, protection and Nexus still resolve.`
: `This use suppresses ${fremen.name}’s native two-territory movement advantage for the rest of this turn. Independent ornithopters remain available.`}
</p>}
{offer.mode === 'worm' && game.discoveries && <p className="fine">
Provisional Great Maker interpretation: its reserve ride is also prevented;
the original vote, worm effects and Nexus continue.
</p>}
{offer.blocked && <p className="notice">{offer.blocked}</p>}
<Button className="game-action min-h-11 whitespace-normal" disabled={busy || !action}
onClick={() => { if (!busy && action) act(action); }}>
{offer.mode === 'worm'
? 'Use Betrayal: prevent worm riding this turn'
: 'Use Betrayal: suppress Fremen movement range'}
</Button>
</section>
);
}