Prototype native Homeworld No-Field return
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 04:55:44 +11:00
1 parent 89569e92a1
commit 7e3d745807
17 files changed
+540 -32

No files matched your search

+7 -4
View File
@@ -26,8 +26,10 @@ export function HomeworldNoFieldShipment({ game, act, busy }: {
const deployed = info.private.deployed;
const source = deployed && 'homeworld' in deployed.location ? deployed.location.homeworld : undefined;
const targets = (game.homeworlds?.worlds ?? []).filter(world =>
world.native !== me.id && world.native !== me.ally && world.id !== source);
const destination = targets.find(world => world.id === selectedDestination) ?? targets[0];
(world.native !== me.id || !!source && game.advanced) &&
world.native !== me.ally && world.id !== source);
const destination = targets.find(world => world.id === selectedDestination) ??
targets.find(world => world.native !== me.id) ?? targets[0];
const tokens = info.private.tokens.filter(token => source ? token.id === deployed?.tokenId : token.id !== info.private!.lastShipped);
const token = tokens.find(candidate => candidate.id === selectedToken) ?? tokens[0];
const pool = source ? game.homeworlds?.worlds?.find(world => world.id === source)?.forces[me.id] :
@@ -39,8 +41,9 @@ export function HomeworldNoFieldShipment({ game, act, busy }: {
<legend>Ship a concealed No-Field</legend>
<p className="fine">Provisional Homeworld rule: ship one concealed marker {source ? `from ${homeworldName(game, source)}` : 'from your supply'} to
another non-allied Homeworld. Its value stays private and its represented forces
remain in your reserves until the marker is revealed. This uses your normal shipment.
{' Physical forces from the same source may accompany it.'}</p>
remain in your reserves until the marker is revealed. On your own Homeworld,
the represented forces are already in those reserves and are not added again.
This uses your normal shipment. Physical forces from the same source may accompany it.</p>
<label className="block space-y-1">Destination Homeworld for No-Field
<select aria-label="No-Field destination Homeworld" value={destination?.id ?? ''}
onChange={event => setSelectedDestination(event.target.value)}>