Respect storm sector for rides into mobile stronghold
Verify and publish checkpoint container / container (push) Failing after 10m28s
Verify and publish checkpoint container / container (push) Failing after 10m28s
This commit is contained in:
1 parent
0d55333d5d
commit
ac1f32c859
11 files changed
+324
-3
No files matched your search
+10
-1
@@ -665,6 +665,7 @@ import { choamGholaEvent, choamGholaSkillOfferEvent, choamGholaSkillSignature, c
|
||||
import { quoteAdvisorPreparationWindow, quoteAdvisorPreparation, validateAdvisorPreparation, projectAdvisorPreparationWindow, AdvisorPreparationError, type AdvisorPreparationWindow, type AdvisorPreparationSource } from './advisor-preparation-window';
|
||||
import { quoteFremenRevivalGrant, validateFremenRevivalGrant, projectFremenRevivalGrant, projectFremenGroupRevivalGrant, FremenRevivalGrantError, type FremenRevivalGrantSource } from './fremen-revival-grant';
|
||||
import { richeseRevealInterruptSupported } from './richese-reveal-interruption';
|
||||
import { wormRideDestinationBlock } from './worm-ride-destination';
|
||||
import { splitOrdinaryPayments, type OrdinaryPayment } from './ordinary-payment-plan';
|
||||
import {
|
||||
charityAmount,
|
||||
@@ -14655,7 +14656,11 @@ function greatMakerRideOptions(g: Game, owner: string) {
|
||||
if (frame?.stage !== 'ride' || p.faction !== 'fremen' ||
|
||||
p.fremenNexusWormBlockedTurn === g.turn) return null;
|
||||
const destinations = gameTerritories(g).flatMap(t => t.sectors.flatMap(sector => {
|
||||
try { allowedEntry(g,p,t.id,sector); return [{territory:t.id,name:t.name,sector}]; }
|
||||
try {
|
||||
allowedEntry(g,p,t.id,sector);
|
||||
if (wormRideDestinationBlock(g,t.id,sector)) return [];
|
||||
return [{territory:t.id,name:t.name,sector}];
|
||||
}
|
||||
catch (error) { if (error instanceof RuleError) return []; throw error; }
|
||||
}));
|
||||
return {max:p.reserves,eliteMax:p.elites?.reserves ?? 0,destinations};
|
||||
@@ -14758,6 +14763,8 @@ function decideGreatMakerRide(g: Game, p: Player, action: Action) {
|
||||
const amount = integer(action.amount,1,p.reserves,'Riding forces');
|
||||
const elite = eliteChoice(amount,p.reserves,p.elites?.reserves ?? 0,action.elite);
|
||||
allowedEntry(g,p,to,sector);
|
||||
const stormBlock = wormRideDestinationBlock(g,to,sector);
|
||||
requireRule(!stormBlock, stormBlock ?? 'That worm-ride destination is in storm.');
|
||||
withdrawNativeReserves(g,p,amount,elite);
|
||||
place(p,to,sector,amount,elite);
|
||||
frame.arrival = {territory:to,sector,amount,elite};
|
||||
@@ -45334,6 +45341,8 @@ function applyActionInner(
|
||||
'Choose another destination territory.',
|
||||
);
|
||||
allowedEntry(g, p, to, sector);
|
||||
const stormBlock = wormRideDestinationBlock(g, to, sector);
|
||||
requireRule(!stormBlock, stormBlock ?? 'That worm-ride destination is in storm.');
|
||||
const sandmaster = action.sandmasterCollect
|
||||
? sandmasterWormCollection(g, p.id, to, sector, decision, action.sandmasterPile as string | undefined) : null;
|
||||
if (action.sandmasterCollect) {
|
||||
|
||||
Reference in new issue
Block a user