Allow Distrans between completed auction bids
Verify and publish checkpoint container / container (push) Successful in 10m44s
Verify and publish checkpoint container / container (push) Successful in 10m44s
This commit is contained in:
1 parent
ab7a947833
commit
ccc4c7bb40
16 files changed
+250
-80
No files matched your search
+13
-1
@@ -5476,6 +5476,18 @@ function distransBlock(g: Game, owner: Player, card: Card): string | null {
|
||||
if (promised) return promised;
|
||||
const reserved = transferCardBlock(g, owner, card);
|
||||
if (reserved) return reserved;
|
||||
// A started lot is only open between complete actions, not while a bid or
|
||||
// its resulting interaction is still waiting for a decision.
|
||||
const special = g.richeseAuction;
|
||||
const started = !g.currentAuctionSale && (g.auction
|
||||
? g.auction.bid > 0 || g.auction.passed.length > 0
|
||||
: !!special && (special.bid > 0 || special.passed.length > 0 ||
|
||||
special.acted.length > 0 || Object.keys(special.sealed).length > 0));
|
||||
if (started && (g.response || g.decision || g.pendingKarama || g.phaseOpening || g.pendingTreacheryDiscard))
|
||||
return 'Finish the pending auction interaction before playing Distrans.';
|
||||
// A special-lot Semuta continuation still needs an auction-bound resume.
|
||||
if (started && special && (g.semutaPreview || g.semutaAdvancedOrdinaryPreview || g.semutaRecruitsPreview))
|
||||
return 'Distrans between special-auction bids is unavailable with the Semuta preview.';
|
||||
return distransAuctionBlock(g);
|
||||
}
|
||||
function validateDistrans(
|
||||
@@ -9681,7 +9693,7 @@ function semutaOfferSupported(
|
||||
entries[0].card.id === continuation.card;
|
||||
// These completed public costs retain the original ordinary lot through the
|
||||
// existing signed continuation. Semuta itself has no during-bid exception;
|
||||
// native Distrans still cannot produce a transfer after that bid starts.
|
||||
// Distrans can also produce this discard between completed ordinary bids.
|
||||
const ordinaryAuctionDiscard = g.phase === 3 && !!g.auction && !g.richeseAuction && !g.currentAuctionSale &&
|
||||
(continuation.kind === 'truthtranceDiscard' || continuation.kind === 'distransDiscard' ||
|
||||
continuation.kind === 'saphoTruthOrderDiscard' ||
|
||||
|
||||
Reference in new issue
Block a user