Support Semuta after market Ghola
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 08:34:18 +11:00
1 parent 6ecd26c8d1
commit 79fc12c1c1
11 files changed
+557 -5

No files matched your search

+6 -2
View File
@@ -551,6 +551,7 @@ import {
import { transferDistrans } from './distrans';
import { distransAuctionBlock } from './distrans-timing';
import { SEMUTA_DRUG_ID, committedSemutaCandidates, resolveSemutaDrug, type FreshDiscardBatch, type SemutaContext } from './semuta-drug';
import { semutaMarketGholaSupported } from './semuta-market-ghola';
import {
prepareRicheseGift,
transferRicheseGift,
@@ -9614,6 +9615,9 @@ function semutaOfferSupported(
['alliance', 'allianceExpression', 'mixedAlliance'].includes(continuation.record.question.kind) &&
(!continuation.allianceBinding || !bareBasicSemutaProfile(g) || !alliancePromiseModeSupported(g))) return false;
const richeseGiftDiscard = continuation.kind === 'karamaRicheseGiftDiscard';
const marketGholaDiscard = continuation.kind === 'ordinaryCardDiscard' && continuation.effect === 'ghola' &&
g.semutaPreview === true && bareBasicSemutaProfile(g) && ordinaryDiscardIncomeMatches(g, continuation) &&
semutaMarketGholaSupported(g, continuation, entries);
const richeseDiscard = richeseGiftDiscard || continuation.kind === 'karamaRicheseAuctionDiscard';
const auctionAdvantageDiscard = continuation.kind === 'karamaAuctionAdvantageDiscard';
const terminalDiscard = continuation.kind === 'karamaTerminalDiscard';
@@ -10046,13 +10050,13 @@ function semutaOfferSupported(
(richeseGiftDiscard || !g.pendingRicheseGift) &&
(richeseGiftDiscard || (continuation.kind === 'karamaIncomeDiscard' &&
continuation.use.response.kind === 'richesePurchaseIncome') || !g.pendingRichesePurchaseIncome) &&
(richeseGiftDiscard || saleCostDiscard || (continuation.kind === 'choamSaleDiscard'
(richeseGiftDiscard || saleCostDiscard || marketGholaDiscard || (continuation.kind === 'choamSaleDiscard'
? !!g.choamMarket && !g.choamMarket.sale &&
!g.choamMarket.trade && !g.biddingEnd && !g.currentAuctionSale
: continuation.kind === 'kaitainDiscard'
? g.biddingEnd?.event === continuation.event && biddingEndError(g) === null
: !g.choamMarket)) &&
(richeseGiftDiscard || !g.pendingChoamMarketGhola);
(richeseGiftDiscard || marketGholaDiscard || !g.pendingChoamMarketGhola);
}
function semutaContext(g: Game, owner: Player): SemutaContext {
const pending = g.pendingTreacheryDiscard!;