Enforce Atomics shipment ban across transport
Verify and publish checkpoint container / container (push) Successful in 10m7s

This commit is contained in:
Quintine committed 2026-10-29 03:03:18 +11:00
1 parent 4feb418488
commit 0f8e0b4153
17 files changed
+477 -19

No files matched your search

+4 -3
View File
@@ -1,6 +1,7 @@
import type { Action, Game, Player } from './engine';
import { arrivalAsAdvisor } from './advisors';
import { spiritualAdvisorTargetBlock, spiritualAdvisorArrival } from './spiritual-advisor';
import { atomicsShipmentBlocked } from './moritani-atomics';
import {
gameTerritories,
location,
@@ -162,9 +163,7 @@ function validateDestinationOccupancy(
/** E3's independent free reserve shipment. No ordinary shipment turn, funding,
* faction distance, reserve-region or incoming accompaniment is resolved here.
* No-Field substitution is deliberately not admitted by this physical quote.
* E3 Atomics Aftermath also forbids this shipment. The current Game has no
* Aftermath location state: its eventual producer must supply that public
* exclusion here before the unfinished Atomics module can be enabled. */
* E3 Atomics Aftermath also forbids this independent shipment. */
export function quoteGuildAmbassadorShipment(
g: Game,
beneficiaryId: string,
@@ -197,6 +196,8 @@ export function quoteGuildAmbassadorShipment(
usableLocation(g, location(to, sector)),
'Choose a sector of an available board territory.',
);
requireShipment(!atomicsShipmentBlocked(g.moritaniAtomics, to),
'Atomics Aftermath permanently blocks shipments into this territory.');
requireShipment(
sector === 0 || sector !== g.storm,
'The shipment destination is in storm.',