The problem this solves
Start from the booster draft. It works, and then the stacks run out.
When a player draws the last card out of a stack, the stack itself is gone from their hand. Run the passing step after that and it does not fail. A seat with no stack to pass is simply skipped, so the sequence reports success, any round counter you are keeping ticks up, and nothing anywhere says the draft is over. The failure is silence, which is the hardest kind to notice while you are playing.
You want the sequence to stop on its own.
Detecting an empty stack
The stack a player is holding was created during play, by the deal that opened the round. It did not exist when you built the sequence, so you cannot point a condition at it directly.
Ask about the player's hand instead:
- Select by Filter -- set piece type to Stack and in hand of to Acting Player. Set Save Result
As to a key such as
myPack. - Count Selection -- set Source Context Entry to
myPack. Set Save Result As topackCount. - Stop If -- build a condition with subject Context Entry, key
packCount, operator equals, value 0.
That works because of the same behavior that made the problem invisible: an exhausted stack is removed from the hand. So "this player is holding no stack" and "this player's stack is used up" are the same statement, and the second one is answerable with primitives that never need to know the stack's identity.
Why not Stack Count
Stack Count is the obvious first reach and it is the wrong tool here. It needs you to choose a specific stack while you are authoring the sequence. Draft stacks are dealt during play, one per seat, and none of them exists yet at that moment, so there is nothing in the picker to choose. Counting what is in the hand is how you ask about a stack you cannot name in advance.
Stack Count is still the right subject when the stack is a fixture of the table, such as a shared draw pile or a discard stack you placed yourself.
The deterministic alternative
If your stacks are a fixed size, you can stop by counting rounds instead of by inspecting hands. Stacks of 15 cards mean 15 rounds, whatever the seat count.
- Put a counter on the table for the round number.
- Adjust Counter in increment mode, once per round, as the last step of the sequence.
- Stop If with subject Counter Value, operator greater or equal, value 15.
Which to use
They stop at different moments, and that is the whole basis for choosing:
- Counting the hand reacts to the real state of the table. It notices an empty stack however it got that way, including a player drawing two cards in a round or a stack that was dealt short. It stops after the stack is already gone.
- Counting rounds is predictable and can stop before a pointless final pass, because you know the number in advance. It does not notice if the table diverged from what you assumed.
For a draft that is always played the same way, count rounds. For one where players might not take exactly one card each, count the hand. Using both is reasonable: stop on the round count, and keep the hand check as the condition that catches an unexpected empty stack.