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
@@ -85,10 +85,6 @@ export function finishMovementPromises<T extends MovementPromise>(
|
||||
* in the engine. Truthtrance and an ordinary active Ornithopter may remain. */
|
||||
export function movementPromiseModeSupported(g: Game): boolean {
|
||||
return g.advanced === false &&
|
||||
// Early owned-stage forecasts currently price ordinary classic invoices.
|
||||
// Native phase5 coverage does not establish Richese/CHOAM bidding prices.
|
||||
(g.phase >= 5 || (!g.expansions.length && g.players.every(player =>
|
||||
FACTIONS.find(entry => entry.id === player.faction)?.expansion === 'base'))) &&
|
||||
g.players.length >= 2 && g.players.length <= 6 &&
|
||||
g.expansions.every(id => ['ix', 'choam', 'ecaz'].includes(id)) &&
|
||||
new Set(g.expansions).size === g.expansions.length &&
|
||||
|
||||
Reference in new issue
Block a user