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

+3 -2
View File
@@ -117,9 +117,10 @@ const cancellationSources = {
: auctionSource(g),
richesePurchaseIncome: (g) => g.pendingRichesePurchaseIncome ?? null,
richeseGift: (g) => g.pendingRicheseGift ?? null,
richeseNoField: (g) => ({
richeseNoField: (g, response) => ({
...movementSource(g),
shipment: g.pendingShipment ?? null,
...(response.source === 'ambassadorNoField' ? { ambassador: g.pendingAmbassador ?? null } : {}),
}),
harkonnenBonus: (g, response) =>
response.source === 'ambassador'
@@ -133,7 +134,7 @@ const cancellationSources = {
plans: g.battle?.plans ?? null,
calls: g.battle?.traitorCalls ?? null,
}),
guildIncome: () => null,
guildIncome: (g,response) => response.source === 'ambassadorNoFieldIncome' ? {ambassador:g.pendingAmbassador ?? null} : null,
guildTransportPermission: g => ({
...(g.pendingGuildTransport ? { transport: g.pendingGuildTransport } : {}),
...(g.pendingHomeworldShipment ? { homeworld: g.pendingHomeworldShipment } : {}),