Support Basic allied No-Field transit
Verify and publish checkpoint container / container (push) Canceled after 0s
Verify and publish checkpoint container / container (push) Canceled after 0s
This commit is contained in:
1 parent
50c6201d33
commit
8083598cef
9 files changed
+282
-14
No files matched your search
+11
-3
@@ -1,4 +1,5 @@
|
||||
import { liveMovementExpressionPromises } from './movement-expression-promises';
|
||||
import { isAlliedShipmentVisit } from './allied-separation';
|
||||
import { discoveryBotActions } from './discovery-options';
|
||||
import { normalAuctionHandBlock } from './normal-auction';
|
||||
import { atreidesFullPlanAction } from './atreides-full-plan';
|
||||
@@ -3565,6 +3566,9 @@ function policyActions(g: GameView): Action[] {
|
||||
to.t !== MOBILE_STRONGHOLD &&
|
||||
!territoryEntryBlock(g.players, me.id, to.t),
|
||||
);
|
||||
const markerShipmentTargets = targets.filter(to => to.t !== MOBILE_STRONGHOLD &&
|
||||
!territoryEntryBlock(g.players, me.id, to.t, false,
|
||||
!g.advanced && isAlliedShipmentVisit(g, me, to.t)));
|
||||
if (noField?.canShip && ownNoField && !deployed && !me.shipped) {
|
||||
const tokens = ownNoField.tokens.filter(
|
||||
(token) => token.id !== ownNoField.lastShipped,
|
||||
@@ -3594,10 +3598,11 @@ function policyActions(g: GameView): Action[] {
|
||||
}
|
||||
}
|
||||
if (selected)
|
||||
for (const to of markerTargets.slice(0, 24)) {
|
||||
for (const to of markerShipmentTargets.slice(0, 24)) {
|
||||
const smuggler = !!quoteSmugglerNoField(g, me.id, to.t);
|
||||
const companions = noField.homeworldForcesEnabled && me.reserves > (smuggler ? 1 : 0) ? [1, 0] : [0];
|
||||
for (const amount of companions) {
|
||||
if ((amount > 0 || smuggler) && isAlliedShipmentVisit(g, me, to.t)) continue;
|
||||
const group = quoteRicheseHomeworldForces({ enabled: !!noField.homeworldForcesEnabled,
|
||||
reserves: me.reserves, amount, smuggler });
|
||||
if (Math.min(selected.value, me.reserves) + group.physical === 0 && to.enemy > 0) continue;
|
||||
@@ -4505,10 +4510,13 @@ export function botActions(g: GameView): Action[] {
|
||||
g.phase === 5 && g.active === me.id && me.shipped && me.moved === 0) {
|
||||
// Depart from shared groups before unrelated moves; do not retain a
|
||||
// sentinel that the ending alliance constraint would send to Tanks.
|
||||
const departures = actions.filter(action => action.type === 'move' &&
|
||||
const marker = g.richeseNoField?.private?.deployed;
|
||||
const markerTerritory = marker && isBoardNoFieldLocation(marker.location) ? territory(marker.location.territory).name : null;
|
||||
const departures = actions.filter(action => action.type === 'move' && (
|
||||
typeof action.from === 'string' &&
|
||||
(territory(splitLocation(action.from).territory).name === g.basicAlliedShipment?.territory ||
|
||||
advancedDepartures?.includes(territory(splitLocation(action.from).territory).name)));
|
||||
advancedDepartures?.includes(territory(splitLocation(action.from).territory).name)) ||
|
||||
!!action.noField && !!g.basicAlliedShipment?.noField && markerTerritory === g.basicAlliedShipment.territory));
|
||||
if (departures.length) return departures;
|
||||
}
|
||||
const ghola = standaloneGholaAction(g, actions);
|
||||
|
||||
Reference in new issue
Block a user