Connect independent-card battle and arrival reactions
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
4d769af8c7
commit
6719245f40
10 files changed
+464
-9
No files matched your search
+12
-4
@@ -9520,9 +9520,16 @@ function semutaOfferSupported(
|
||||
if (continuation.kind === 'thumperDiscard' &&
|
||||
(g.summonedBeforeBlow || g.summonedWorm || g.wormRides.length > 0 ||
|
||||
g.pendingFremenMove || g.pendingIxMove || g.pendingChoamMove)) return false;
|
||||
// A discard saved before this preview expansion may already be pending
|
||||
// without a reaction. Keep its original automatic continuation; newly
|
||||
// staged offers and already-saved reactions retain the current rules.
|
||||
return (g.semutaPreview === true || g.semutaRecruitsPreview === true &&
|
||||
basicIndependentSemutaProfile(g) && continuation.kind === 'ordinaryCardDiscard' &&
|
||||
['hajr', 'ghola', 'harvester', 'weather', 'atomics'].includes(continuation.effect)) &&
|
||||
(!g.pendingTreacheryDiscard || !!g.pendingTreacheryDiscard.reaction) &&
|
||||
basicIndependentSemutaProfile(g) &&
|
||||
(continuation.kind === 'ordinaryCardDiscard' &&
|
||||
['hajr', 'ghola', 'harvester', 'weather', 'atomics'].includes(continuation.effect) ||
|
||||
continuation.kind === 'battleResolved' || continuation.kind === 'winnerMandatoryDiscard' ||
|
||||
continuation.kind === 'battleCleanup' && continuation.source === 'winner')) &&
|
||||
g.status === 'playing' &&
|
||||
g.players.some(p => p.faction === 'richese') &&
|
||||
entries.length > 0 &&
|
||||
@@ -23252,7 +23259,7 @@ function ambassadorEffectBlock(
|
||||
): string | null {
|
||||
if (g.pendingArrivalOverlap && (effect === 'fremen' || effect === 'guild') &&
|
||||
!bareBasicNativeArrivalOverlap(g))
|
||||
return 'This overlapping Ambassador-created arrival is only available in the bare Basic faction preview.';
|
||||
return 'This overlapping Ambassador-created arrival is available in the supported Basic faction and independent-card previews.';
|
||||
if (!implementedAmbassadorEffects.includes(effect))
|
||||
return 'This Ambassador effect is still being implemented.';
|
||||
if (effect === 'ecaz') {
|
||||
@@ -23283,7 +23290,8 @@ function bareBasicNativeArrivalOverlap(g: Game): boolean {
|
||||
// selection alone is not an optional phase module or a new arrival effect.
|
||||
return !g.advanced && selectedPhaseModuleRoster(g) && !!byFaction(g, 'ecaz') && !!byFaction(g, 'moritani') &&
|
||||
!g.homeworlds && !g.nexusCards && !g.leaderSkills && !g.techTokens && !g.strongholdCards &&
|
||||
!g.discoveryEnabled && !g.discoveries && !g.discoveryStash && !g.greatMaker && !g.ecazTreachery;
|
||||
!g.discoveryEnabled && !g.discoveries && !g.discoveryStash && !g.greatMaker &&
|
||||
(!g.ecazTreachery || selectedIndependentCardsProfile(g));
|
||||
}
|
||||
function arrivalOverlapModeSupported(g: Game, revivalArrival?: RevivalEntryParent): boolean {
|
||||
if (bareBasicNativeArrivalOverlap(g)) return true;
|
||||
|
||||
Reference in new issue
Block a user