Support native early Basic movement promises
Price native Once Around and Silent funding in early movement forecasts, retaining full sealed donor locks and exact paid-sale boundaries. Add current zero/pass guidance, fixed non-CHOAM preopening Charity entitlement and shared owned normal-revival projection while actual counters remain pending. Preserve the mandatory Ix phase-opening continuation. Validation: affected rules/control tests, types/lint, production build and six gameplay/control/table-rendering programmes with eight existing-profile native runs. Wider preparations, CHOAM own unresolved opening, modules/Advanced, full rules and deployed acceptance remain open. No saved-room, database, restart or deployment operation.
This commit is contained in:
1 parent
f995b6f4cd
commit
c311ed4251
16 files changed
+787
-54
No files matched your search
@@ -12,7 +12,7 @@ export function MovementPromises({ game, act, busy }: { game: GameView; act: (ac
|
||||
const next = game.phase >= 5 || paidDecision ||
|
||||
(game.phase === 2 && ['charity', 'ready'].includes(proposed?.type ?? '')) ||
|
||||
(game.phase === 4 && ['revive', 'ready'].includes(proposed?.type ?? '')) ||
|
||||
(game.phase === 3 && proposed?.type === 'passBid') ? proposed : undefined;
|
||||
(game.phase === 3 && ['passBid', 'richeseBid'].includes(proposed?.type ?? '')) ? proposed : undefined;
|
||||
const amount = next?.forces && typeof next.forces === 'object'
|
||||
? Object.values(next.forces as Record<string, number>).reduce((sum, count) => sum + count, 0) : typeof next?.amount === 'number' ? next.amount : 0;
|
||||
const destination = next && game.combatLocations.find(location => location.id === next.territory)?.name;
|
||||
@@ -27,6 +27,7 @@ export function MovementPromises({ game, act, busy }: { game: GameView; act: (ac
|
||||
: next?.type === 'revive' ? `Revive ${amount} forces for your later movement`
|
||||
: next?.type === 'ready' ? 'Finish this preparation phase while preserving your promises'
|
||||
: next?.type === 'passBid' ? 'Pass this bid and preserve later movement'
|
||||
: next?.type === 'richeseBid' ? next.amount === 0 ? 'Submit zero in this Silent auction and preserve later movement' : 'Pass this Richese bid and preserve later movement'
|
||||
: next?.type === 'card' && next.mode === 'shipment' ? `Use ${card?.name ?? 'your card'} for Guild shipment rates`
|
||||
: next?.type === 'card' && card?.effect === 'nullentropyBox' ? 'Pay 2 spice and search with Nullentropy Box'
|
||||
: next?.type === 'card' && next.mode === 'choam' ? 'Play Kulon to extend the required movement'
|
||||
|
||||
Reference in new issue
Block a user