Support Basic No-Field Guild Ambassador shipments

Connect native concealment and allied supplier/recipient consent to the independent grant, with explicit provisional cap and transport-fee policy. Preserve actual tokens, ordinary allowances, source-scoped Karama prevention and original income/arrival continuation.

Add genuine three/four-seat sources, focused quote/control/engine cases and bounded runtime/minimal-bot proof. Advanced and optional profiles retain their existing guards.
This commit is contained in:
Quintine committed 2026-10-24 17:36:12 +11:00
1 parent 4b2f4f3fa3
commit 659e2a4a9a
19 files changed
+2221 -56

No files matched your search

+5 -3
View File
@@ -11,6 +11,7 @@ import {
import { presenceAt } from './force-presence';
import { territoryEntryBlock } from './occupancy';
import { homeworldSpiritualAdvisorQuote } from './homeworld-mobility';
import type { GuildAmbassadorMarker } from './guild-ambassador-no-field';
export class GuildAmbassadorShipmentError extends Error {
constructor(message: string) {
@@ -25,8 +26,9 @@ export type GuildAmbassadorShipment = {
territory: string;
sector: number;
advisors: boolean;
cost: 0;
cost: 0 | 1 | 2;
allyPayment: 0;
marker?: GuildAmbassadorMarker;
};
export type GuildAmbassadorShipments = {
maximum: number;
@@ -283,11 +285,11 @@ export function quoteGuildAmbassadorAdvisor(
shipper.faction !== 'fremen' &&
record(shipment) &&
count(shipment.amount) &&
shipment.amount >= 1 &&
(shipment.amount >= 1 || shipment.marker?.mode === 'allied') &&
shipment.amount <= 4 &&
count(shipment.elite) &&
shipment.elite <= shipment.amount &&
shipment.cost === 0 &&
(shipment.marker ? [0,1,2].includes(shipment.cost) : shipment.cost === 0) &&
shipment.allyPayment === 0 &&
typeof shipment.advisors === 'boolean' &&
typeof shipment.territory === 'string' &&