Connect Semuta with native allied retention
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 03:17:07 +11:00
1 parent 4ee4d9fa10
commit 59579486a4
7 files changed
+297 -6

No files matched your search

+8 -4
View File
@@ -9668,7 +9668,8 @@ function semutaOfferSupported(
((g.pendingWinnerDiscards && continuation.kind !== 'battleResolved') ||
(g.moritaniRetention && (g.advanced || g.moritaniRetention.source !== undefined ||
g.moritaniRetention.stage !== 'choose' ||
(continuation.kind === 'battleResolved' && !bareBasicSemutaProfile(g)))) ||
(continuation.kind === 'battleResolved' && !bareBasicSemutaProfile(g) &&
!basicIndependentRecruitsSemutaProfile(g)))) ||
g.pendingIxSubstitution)) return false;
if (continuation.kind === 'terrorDiscard' &&
(!childTerrorDiscard && (continuation.entry.resume !== 'none' ||
@@ -9710,7 +9711,8 @@ function semutaOfferSupported(
(continuation.kind === 'ordinaryCardDiscard' &&
['hajr', 'ghola', 'harvester', 'weather', 'atomics'].includes(continuation.effect) ||
continuation.kind === 'battleResolved' || continuation.kind === 'winnerMandatoryDiscard' ||
continuation.kind === 'battleCleanup' && continuation.source === 'winner' ||
continuation.kind === 'battleCleanup' && (continuation.source === 'winner' ||
continuation.source === 'moritani' && !g.advanced && continuation.retention?.source === undefined) ||
continuation.kind === 'nullentropyDiscard' || continuation.kind === 'distransDiscard' ||
continuation.kind === 'truthtranceDiscard' && continuation.promise === null &&
(continuation.record.question.kind === 'fact' || continuation.record.question.kind === 'freeform') ||
@@ -9720,7 +9722,8 @@ function semutaOfferSupported(
(continuation.kind === 'ordinaryCardDiscard' &&
['hajr', 'ghola', 'harvester', 'weather', 'atomics'].includes(continuation.effect) ||
continuation.kind === 'battleResolved' || continuation.kind === 'winnerMandatoryDiscard' ||
continuation.kind === 'battleCleanup' && continuation.source === 'winner' ||
continuation.kind === 'battleCleanup' && (continuation.source === 'winner' ||
continuation.source === 'moritani' && !g.advanced && continuation.retention?.source === undefined) ||
continuation.kind === 'residualPoisonDiscard' ||
continuation.kind === 'nullentropyDiscard' || continuation.kind === 'distransDiscard' ||
continuation.kind === 'truthtranceDiscard' && continuation.promise === null &&
@@ -33507,7 +33510,8 @@ function currentBattleResolutionInput(g: Game, canceledVoter?: string): BattleRe
physicalCards: physicalTreacheryCards(g),
pendingAuditorPresent: !!g.pendingAuditor,
pendingRetentionPresent: !!g.moritaniRetention,
nativeMoritaniEarlyMandatoryDiscard: !!g.semutaPreview && bareBasicSemutaProfile(g),
nativeMoritaniEarlyMandatoryDiscard: !!g.semutaPreview && bareBasicSemutaProfile(g) ||
!!g.semutaRecruitsPreview && basicIndependentRecruitsSemutaProfile(g),
nexusMoritani: !!g.nexusCards?.cards && !byFaction(g, 'moritani'),
...(b.stoneAllocation ? { stoneAllocations: b.stoneAllocation.selections } : {}),
};