Support earlier classic Basic movement promises

Allow current-round classic Basic questions before Movement, with owned Charity, ordinary auction payment and Revival preparation. Reopen readiness, retain combined shipment obligations, reset stale allowances and release forced storm impossibility. Current-phase guidance and minimal bots preserve the route; held Karama now prepares its actual Guild shipment rate.

Validation: affected rules/control tests, types/lint, production build and four gameplay/control/table-rendering programmes. Native early invoices, wider preparations/modules, full rules and deployed acceptance remain open. No saved-game, database, restart or deployment operation.
This commit is contained in:
Quintine committed 2026-10-24 15:49:35 +11:00
1 parent 49586efd2f
commit f995b6f4cd
18 files changed
+708 -46

No files matched your search

+3 -2
View File
@@ -21,9 +21,10 @@ export function ShipmentPromises({
if (!promises.length) return null;
const me = g.players.find((p) => p.id === g.me)!;
const early = g.phase < 5;
const jointMovement = liveMovementPromises(g.movementPromises ?? [], g.me, g.turn).length > 0;
const movement = liveMovementPromises(g.movementPromises ?? [], g.me, g.turn);
const jointMovement = movement.length > 0;
const next = g.phase === 5 && !jointMovement ? g.shipmentCompletion?.actions[0] : undefined;
const preparation = early ? g.shipmentPreparation?.actions[0] : undefined;
const preparation = early && !movement.some(promise => promise.answer) ? g.shipmentPreparation?.actions[0] : undefined;
const preparationCard = preparation?.type === 'card'
? me.hand?.find(card => card.id === preparation.card) : undefined;
const preparationLabel = preparation?.type === 'charity'