Prepare allied shipment quotes for larger alliances
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-28 22:01:51 +11:00
1 parent cea310b030
commit 77376c39d6
5 files changed
+210 -28

No files matched your search

+8 -13
View File
@@ -747,7 +747,7 @@ import {
settleAdvisors,
arrivalAsAdvisor,
} from './advisors';
import { quoteAlliedSeparation, isAlliedShipmentVisit, alliedShipmentPhysicalPool,
import { quoteAlliedSeparation, isAlliedShipmentVisit, makeBasicAlliedShipment, quoteBasicAlliedShipment,
type BasicAlliedShipment } from './allied-separation';
import { casualtyOptions, maxCombatDial, maxCombatSupport, validCombatForces, type Casualties, type CombatForces } from './combat';
import { FACTIONS, faction, type FactionId } from './catalog';
@@ -23086,13 +23086,9 @@ function basicAlliedShipmentView(g: Game, p: Player) {
const visit = g.basicAlliedShipment;
if (g.advanced || g.phase !== 5 || !visit || visit.player !== p.id ||
visit.turn !== g.turn || p.ally !== visit.ally) return null;
const ally = getPlayer(g, visit.ally);
if (ally.ally !== p.id || !at(ally, visit.territory) ||
sharesEcazOccupation(g, p, visit.territory)) return null;
const pool = alliedShipmentPhysicalPool(p, visit.territory);
const normal = Math.max(0, pool.normal - visit.baseline.normal);
const elite = Math.max(0, pool.elite - visit.baseline.elite);
return normal + elite ? { territory: territory(visit.territory).name, normal, elite } : null;
getPlayer(g, visit.ally);
const quote = occupancyRule(() => quoteBasicAlliedShipment(g, p, visit));
return quote ? { ...quote, territory: territory(quote.territory).name } : null;
}
/** Provisional no-exit policy: only the excess physical visitors go to Tanks. */
@@ -38445,11 +38441,10 @@ function commitShipment(g: Game, shipment: PendingShipment, settlement?: {recipi
}
let homeworldOrigins = '';
if (!shipment.noField) {
if (!g.advanced && !shipment.alliedNoField && n > 0 && isAlliedShipmentVisit(g, p, to))
g.basicAlliedShipment = {
player: p.id, ally: p.ally!, turn: g.turn, territory: to,
baseline: alliedShipmentPhysicalPool(p, to),
};
if (!g.advanced && !shipment.alliedNoField && n > 0) {
const visit = occupancyRule(() => makeBasicAlliedShipment(g, p, to));
if (visit) g.basicAlliedShipment = visit;
}
const receipts = withdrawNativeReserves(
g,
p,