Resolve direct advanced Sneak arrivals
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
8a39f5a172
commit
b79e448deb
8 files changed
+213
-8
No files matched your search
+8
-2
@@ -27887,6 +27887,9 @@ function sneakAttackOptions(
|
||||
let blocked: string | null = null;
|
||||
try {
|
||||
allowedEntry(g, owner, entry.territory, entry.sector);
|
||||
if (g.advanced && (entry.resume === 'wormRide' || g.pendingArrivalOverlap?.resume === 'wormRide' ||
|
||||
g.pendingAmbassador?.resume === 'wormRide'))
|
||||
blocked = 'Sneak Attack during a worm ride needs its original ride continuation; send no forces or leave the token hidden.';
|
||||
} catch (error) {
|
||||
if (!(error instanceof RuleError)) throw error;
|
||||
blocked = error.message;
|
||||
@@ -28168,7 +28171,10 @@ function decideTerror(g: Game, p: Player, action: Action) {
|
||||
const revivalArrival: RevivalEntryParent | undefined = amount > 0 && entry.revivalArrival
|
||||
? {event:entry.revivalArrival.event,terror:{event:entry.entrySignature!,owner:p.id,
|
||||
territory:entry.territory,sector:entry.sector,amount,elite:0}} : undefined;
|
||||
const advancedNativeOverlap = g.advanced && bareAdvancedNativeArrivalOverlap(g) && !!g.pendingArrivalOverlap;
|
||||
// Worm continuations can advance the phase synchronously; their child
|
||||
// arrival needs a separate retained worm cursor before it can be queued.
|
||||
const advancedNativeArrival = g.advanced && entry.resume !== 'wormRide' &&
|
||||
g.pendingArrivalOverlap?.resume !== 'wormRide' && g.pendingAmbassador?.resume !== 'wormRide';
|
||||
if (caladan) (g.homeworldVictoryReinforcement!.terrorArrivals ??= []).push(caladan.receipt);
|
||||
finishTerrorEntry(g);
|
||||
if (caladan) {
|
||||
@@ -28185,7 +28191,7 @@ function decideTerror(g: Game, p: Player, action: Action) {
|
||||
phase:g.phase,revivalArrival,revivalSneakAdvisor:true});
|
||||
return;
|
||||
}
|
||||
if (amount > 0 && (advancedNativeOverlap || !g.advanced &&
|
||||
if (amount > 0 && (advancedNativeArrival || !g.advanced &&
|
||||
(g.pendingArrivalOverlap || g.pendingAmbassador || g.pendingTerrorEntry || g.response || g.decision))) {
|
||||
// The child may have opened the original Terror decision. Let it finish
|
||||
// before offering advisor reactions for this already-committed group.
|
||||
|
||||
Reference in new issue
Block a user