SpinPresets
pixi-wheels
pixi-wheels / index / SpinPresets
Variable: SpinPresets
const SpinPresets: {
CINEMATIC: {
accelerationEase: "power2.in";
accelerationMs: 1400;
maxTurns: 6;
minCruiseMs: 800;
minimumSpinTime: 2200;
minTurns: 1;
skipDuration: 600;
spinSpeed: 450;
stopDuration: 8000;
stopEase: "power4.out";
};
NORMAL: {
accelerationEase: "power2.in";
accelerationMs: 900;
maxTurns: 8;
minCruiseMs: 400;
minimumSpinTime: 1400;
minTurns: 1;
skipDuration: 450;
spinSpeed: 540;
stopDuration: 4200;
stopEase: "power3.out";
};
QUICK: {
accelerationEase: "power1.in";
accelerationMs: 250;
maxTurns: 3;
minCruiseMs: 100;
minimumSpinTime: 400;
minTurns: 1;
skipDuration: 250;
spinSpeed: 900;
stopDuration: 1300;
stopEase: "power2.out";
};
TURBO: {
accelerationEase: "power2.in";
accelerationMs: 400;
maxTurns: 4;
minCruiseMs: 150;
minimumSpinTime: 600;
minTurns: 1;
skipDuration: 300;
spinSpeed: 720;
stopDuration: 2000;
stopEase: "power3.out";
};
};
Defined in: config/SpinPresets.ts:19
Ready-made spin feels. Register them by name and switch at run time.
Each preset’s stopDuration is reachable inside its turn range: a stop
leg with the ease’s start slope matched to the cruise speed lasts
turns * 360 * slope / spinSpeed seconds, so the planner can only pick
among those durations. tests/unit/SpinPresets.test.ts holds them to it.
new WheelBuilder()
.speed('normal', SpinPresets.NORMAL)
.speed('turbo', SpinPresets.TURBO)
// ...
wheel.setSpeed('turbo');
Type Declaration#
| Name | Type | Default value | Description | Defined in |
|---|
CINEMATIC | { accelerationEase: "power2.in"; accelerationMs: 1400; maxTurns: 6; minCruiseMs: 800; minimumSpinTime: 2200; minTurns: 1; skipDuration: 600; spinSpeed: 450; stopDuration: 8000; stopEase: "power4.out"; } | - | Long, heavy, for a jackpot wheel that is the whole screen: an eight-second stop. | config/SpinPresets.ts:47 |
CINEMATIC.accelerationEase | "power2.in" | 'power2.in' | - | config/SpinPresets.ts:50 |
CINEMATIC.accelerationMs | 1400 | 1400 | - | config/SpinPresets.ts:49 |
CINEMATIC.maxTurns | 6 | 6 | - | config/SpinPresets.ts:56 |
CINEMATIC.minCruiseMs | 800 | 800 | - | config/SpinPresets.ts:52 |
CINEMATIC.minimumSpinTime | 2200 | 2200 | - | config/SpinPresets.ts:51 |
CINEMATIC.minTurns | 1 | 1 | - | config/SpinPresets.ts:55 |
CINEMATIC.skipDuration | 600 | 600 | - | config/SpinPresets.ts:57 |
CINEMATIC.spinSpeed | 450 | 450 | - | config/SpinPresets.ts:48 |
CINEMATIC.stopDuration | 8000 | 8000 | - | config/SpinPresets.ts:53 |
CINEMATIC.stopEase | "power4.out" | 'power4.out' | - | config/SpinPresets.ts:54 |
NORMAL | { accelerationEase: "power2.in"; accelerationMs: 900; maxTurns: 8; minCruiseMs: 400; minimumSpinTime: 1400; minTurns: 1; skipDuration: 450; spinSpeed: 540; stopDuration: 4200; stopEase: "power3.out"; } | - | The default bonus-wheel feel: a second of wind-up, a four-to-five-second stop. | config/SpinPresets.ts:21 |
NORMAL.accelerationEase | "power2.in" | 'power2.in' | - | config/SpinPresets.ts:24 |
NORMAL.accelerationMs | 900 | 900 | - | config/SpinPresets.ts:23 |
NORMAL.maxTurns | 8 | 8 | - | config/SpinPresets.ts:30 |
NORMAL.minCruiseMs | 400 | 400 | - | config/SpinPresets.ts:26 |
NORMAL.minimumSpinTime | 1400 | 1400 | - | config/SpinPresets.ts:25 |
NORMAL.minTurns | 1 | 1 | - | config/SpinPresets.ts:29 |
NORMAL.skipDuration | 450 | 450 | - | config/SpinPresets.ts:31 |
NORMAL.spinSpeed | 540 | 540 | - | config/SpinPresets.ts:22 |
NORMAL.stopDuration | 4200 | 4200 | - | config/SpinPresets.ts:27 |
NORMAL.stopEase | "power3.out" | 'power3.out' | - | config/SpinPresets.ts:28 |
QUICK | { accelerationEase: "power1.in"; accelerationMs: 250; maxTurns: 3; minCruiseMs: 100; minimumSpinTime: 400; minTurns: 1; skipDuration: 250; spinSpeed: 900; stopDuration: 1300; stopEase: "power2.out"; } | - | For a gamble wheel that is spun over and over: quick in, quick out. | config/SpinPresets.ts:60 |
QUICK.accelerationEase | "power1.in" | 'power1.in' | - | config/SpinPresets.ts:63 |
QUICK.accelerationMs | 250 | 250 | - | config/SpinPresets.ts:62 |
QUICK.maxTurns | 3 | 3 | - | config/SpinPresets.ts:69 |
QUICK.minCruiseMs | 100 | 100 | - | config/SpinPresets.ts:65 |
QUICK.minimumSpinTime | 400 | 400 | - | config/SpinPresets.ts:64 |
QUICK.minTurns | 1 | 1 | - | config/SpinPresets.ts:68 |
QUICK.skipDuration | 250 | 250 | - | config/SpinPresets.ts:70 |
QUICK.spinSpeed | 900 | 900 | - | config/SpinPresets.ts:61 |
QUICK.stopDuration | 1300 | 1300 | - | config/SpinPresets.ts:66 |
QUICK.stopEase | "power2.out" | 'power2.out' | - | config/SpinPresets.ts:67 |
TURBO | { accelerationEase: "power2.in"; accelerationMs: 400; maxTurns: 4; minCruiseMs: 150; minimumSpinTime: 600; minTurns: 1; skipDuration: 300; spinSpeed: 720; stopDuration: 2000; stopEase: "power3.out"; } | - | Everything shorter. The player has seen this wheel a hundred times. | config/SpinPresets.ts:34 |
TURBO.accelerationEase | "power2.in" | 'power2.in' | - | config/SpinPresets.ts:37 |
TURBO.accelerationMs | 400 | 400 | - | config/SpinPresets.ts:36 |
TURBO.maxTurns | 4 | 4 | - | config/SpinPresets.ts:43 |
TURBO.minCruiseMs | 150 | 150 | - | config/SpinPresets.ts:39 |
TURBO.minimumSpinTime | 600 | 600 | - | config/SpinPresets.ts:38 |
TURBO.minTurns | 1 | 1 | - | config/SpinPresets.ts:42 |
TURBO.skipDuration | 300 | 300 | - | config/SpinPresets.ts:44 |
TURBO.spinSpeed | 720 | 720 | - | config/SpinPresets.ts:35 |
TURBO.stopDuration | 2000 | 2000 | - | config/SpinPresets.ts:40 |
TURBO.stopEase | "power3.out" | 'power3.out' | - | config/SpinPresets.ts:41 |