AnticipationProtect
pixi-reels / index / AnticipationProtect
Type Alias: AnticipationProtect
type AnticipationProtect = boolean | "once" | "stepwise" | "always";
Defined in: config/types.ts:262
How a tease resists a skip press. Skip granularity is otherwise all-or-nothing:
a slam force-completes every phase including AnticipationPhase, so a player
who presses skip never sees that the spin was teasing at all.
false(default) — no protection. A skip press lands every reel, tease included. This is the pre-2.3 behaviour.'once'(ortrue) — the first skip press of the round lands every NON-tease reel immediately and leaves the tease reels running, so the trigger symbols are on screen and the tease is visibly under way. The next press lands the tease too. Protection is spent after that first press, hence “once”.'stepwise'— the first press lands every non-tease reel, and each press after that releases the NEXT tease reel on its own, in tease order. The player keeps pressing to walk the tension forward one reel at a time instead of ending it in one go. The press that releases the last tease reel is the round-ending press and carries the round’s side effect.'always'— a skip press never ends a tease. Non-tease reels land immediately on every press; tease reels always play out in full.
For any grouping other than these, drive it from game code with
slamStop({ reels }): 'always' keeps a press from ending a tease, and
your own handler lands whichever group it wants per press.
Protection applies to the player-facing entry points skip() and
requestSkip(). slamStop() stays an unconditional land-now (pass its
reels / except options for a deliberate partial slam).
Protection is inert when the tease would not play anyway — an effective hold
of 0 ms, as in the Turbo / SuperTurbo profiles with no duration override.
There is no tease to protect there, so every press lands everything, and a
protected spin is indistinguishable from an ordinary one.