Preserve Ghola promises during Box selection
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 17:52:25 +11:00
1 parent bdd5aaf18c
commit 4224bb3e2a
4 files changed
+34 -2

No files matched your search

+7
View File
@@ -5229,6 +5229,13 @@ function finishNullentropy(
requireRule(!hasMovementPromises(g, player, true) ||
groundMovementCompletion(movementPreview, player) !== null,
'Choose a card that preserves your accepted ground-movement promises. The paid search remains available.');
// The owner has paid for this search but has not yet committed a selection.
// A different recovered card must not consume the Box and erase the last
// owned route to an accepted named Ghola return. Quote the selected outcome
// before shuffling, with the original suspended controls restored.
requireRule(!liveGholaLeaderPromises(g.gholaLeaderPromises ?? [], player, g.turn).some(promise => promise.answer) ||
!!turnActionCompletion(movementPreview, player),
'Choose a card that preserves your named Ghola Truthtrance answers. The paid search remains available.');
// All rejection paths precede this single server shuffle. The paid record and
// final shuffled order are each persisted by the room's normal CAS fence.
const order = shuffle(remaining).map((c) => c.id);