@battle-racing/br-common-lib 6.2.0-rc.4 → 6.2.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/all-tutorial-steps.js +71 -18
- package/dist/domains/command/Command.schema.d.ts +80 -0
- package/dist/domains/damage/Damage.schema.d.ts +2 -0
- package/dist/domains/flow/Flow.schema.d.ts +39 -0
- package/dist/domains/hardware/screen/ScreenTutorial.schema.d.ts +37 -0
- package/dist/domains/hardware/screen/ScreenTutorial.schema.js +2 -0
- package/dist/domains/hardware/sound/Sound.schema.d.ts +2 -0
- package/dist/domains/powerUp/PowerUp.schema.d.ts +117 -0
- package/dist/domains/sounds/Sounds.const.d.ts +2 -0
- package/dist/domains/sounds/Sounds.const.js +2 -0
- package/dist/domains/sounds/Sounds.schema.d.ts +2 -0
- package/dist/domains/tutorial/Tutorial.const.d.ts +5 -0
- package/dist/domains/tutorial/Tutorial.const.js +19 -1
- package/dist/domains/tutorial/Tutorial.schema.d.ts +6 -0
- package/dist/domains/tutorial/Tutorial.schema.js +3 -0
- package/dist/domains/tutorial/TutorialConfig.schema.d.ts +128 -0
- package/package.json +1 -1
- package/src/data/all-tutorial-steps.ts +72 -18
- package/src/domains/hardware/screen/ScreenTutorial.schema.ts +2 -0
- package/src/domains/sounds/Sounds.const.ts +2 -0
- package/src/domains/tutorial/Tutorial.const.ts +19 -0
- package/src/domains/tutorial/Tutorial.schema.ts +3 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export declare const TUTORIAL_SCREEN_STEP: {
|
|
2
|
+
readonly COUNTDOWN: "Countdown";
|
|
2
3
|
readonly WELCOME: "Welcome";
|
|
3
4
|
readonly PERSONAL_ITEMS: "PersonalItems";
|
|
4
5
|
readonly SEAT_BELT: "SeatBelt";
|
|
5
6
|
readonly PEDAL: "Pedal";
|
|
7
|
+
readonly DRIVE_TO_CONTROLS: "DriveToControls";
|
|
6
8
|
readonly WHEEL_CONTROLS_0_OF_2: "WheelControls0Of2";
|
|
7
9
|
readonly WHEEL_CONTROLS_1_OF_2: "WheelControls1Of2";
|
|
8
10
|
readonly WHEEL_CONTROLS_COMPLETED: "WheelControlsCompleted";
|
|
@@ -44,7 +46,10 @@ export declare const TUTORIAL_CHECKPOINT_TARGET: {
|
|
|
44
46
|
readonly TRACK: "TRACK";
|
|
45
47
|
readonly POWER_UP: "POWER_UP";
|
|
46
48
|
readonly FINISH: "FINISH";
|
|
49
|
+
readonly ANY: "ANY";
|
|
47
50
|
};
|
|
48
51
|
export declare const TUTORIAL_INPUT_SIGNAL_TYPE: {
|
|
49
52
|
readonly STEERING_WHEEL_BUTTON_PRESSED: "SteeringWheelButtonPressed";
|
|
50
53
|
};
|
|
54
|
+
export declare const DRIVING_TUTORIAL_STEPS: readonly ["Pedal", "DriveToControls", "HudOverview", "PowerUpWaiting", "PowerUpNitroReady", "PowerUpReturnToHud"];
|
|
55
|
+
export declare const isDrivingTutorialStep: (step?: string | null) => boolean;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TUTORIAL_INPUT_SIGNAL_TYPE = exports.TUTORIAL_CHECKPOINT_TARGET = exports.TUTORIAL_STEERING_WHEEL_BUTTON = exports.TUTORIAL_LISTEN_EVENT_ON = exports.TUTORIAL_PHASE_ID = exports.TUTORIAL_STATUS = exports.TUTORIAL_SCREEN_STEP = void 0;
|
|
3
|
+
exports.isDrivingTutorialStep = exports.DRIVING_TUTORIAL_STEPS = exports.TUTORIAL_INPUT_SIGNAL_TYPE = exports.TUTORIAL_CHECKPOINT_TARGET = exports.TUTORIAL_STEERING_WHEEL_BUTTON = exports.TUTORIAL_LISTEN_EVENT_ON = exports.TUTORIAL_PHASE_ID = exports.TUTORIAL_STATUS = exports.TUTORIAL_SCREEN_STEP = void 0;
|
|
4
4
|
exports.TUTORIAL_SCREEN_STEP = {
|
|
5
|
+
COUNTDOWN: 'Countdown',
|
|
5
6
|
WELCOME: 'Welcome',
|
|
6
7
|
PERSONAL_ITEMS: 'PersonalItems',
|
|
7
8
|
SEAT_BELT: 'SeatBelt',
|
|
8
9
|
PEDAL: 'Pedal',
|
|
10
|
+
DRIVE_TO_CONTROLS: 'DriveToControls',
|
|
9
11
|
WHEEL_CONTROLS_0_OF_2: 'WheelControls0Of2',
|
|
10
12
|
WHEEL_CONTROLS_1_OF_2: 'WheelControls1Of2',
|
|
11
13
|
WHEEL_CONTROLS_COMPLETED: 'WheelControlsCompleted',
|
|
@@ -47,7 +49,23 @@ exports.TUTORIAL_CHECKPOINT_TARGET = {
|
|
|
47
49
|
TRACK: 'TRACK',
|
|
48
50
|
POWER_UP: 'POWER_UP',
|
|
49
51
|
FINISH: 'FINISH',
|
|
52
|
+
ANY: 'ANY',
|
|
50
53
|
};
|
|
51
54
|
exports.TUTORIAL_INPUT_SIGNAL_TYPE = {
|
|
52
55
|
STEERING_WHEEL_BUTTON_PRESSED: 'SteeringWheelButtonPressed',
|
|
53
56
|
};
|
|
57
|
+
exports.DRIVING_TUTORIAL_STEPS = [
|
|
58
|
+
exports.TUTORIAL_SCREEN_STEP.PEDAL,
|
|
59
|
+
exports.TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
60
|
+
exports.TUTORIAL_SCREEN_STEP.HUD_OVERVIEW,
|
|
61
|
+
exports.TUTORIAL_SCREEN_STEP.POWER_UP_WAITING,
|
|
62
|
+
exports.TUTORIAL_SCREEN_STEP.POWER_UP_NITRO_READY,
|
|
63
|
+
exports.TUTORIAL_SCREEN_STEP.POWER_UP_RETURN_TO_HUD,
|
|
64
|
+
];
|
|
65
|
+
const isDrivingTutorialStep = (step) => {
|
|
66
|
+
if (!step) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return exports.DRIVING_TUTORIAL_STEPS.includes(step);
|
|
70
|
+
};
|
|
71
|
+
exports.isDrivingTutorialStep = isDrivingTutorialStep;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const tutorialScreenStepSchema: z.ZodEnum<{
|
|
3
|
+
Countdown: "Countdown";
|
|
3
4
|
Welcome: "Welcome";
|
|
4
5
|
PersonalItems: "PersonalItems";
|
|
5
6
|
SeatBelt: "SeatBelt";
|
|
6
7
|
Pedal: "Pedal";
|
|
8
|
+
DriveToControls: "DriveToControls";
|
|
7
9
|
WheelControls0Of2: "WheelControls0Of2";
|
|
8
10
|
WheelControls1Of2: "WheelControls1Of2";
|
|
9
11
|
WheelControlsCompleted: "WheelControlsCompleted";
|
|
@@ -44,6 +46,7 @@ export declare const tutorialSteeringWheelButtonSchema: z.ZodEnum<{
|
|
|
44
46
|
export declare const tutorialCheckpointTargetSchema: z.ZodEnum<{
|
|
45
47
|
TRACK: "TRACK";
|
|
46
48
|
POWER_UP: "POWER_UP";
|
|
49
|
+
ANY: "ANY";
|
|
47
50
|
FINISH: "FINISH";
|
|
48
51
|
}>;
|
|
49
52
|
export declare const tutorialKartSnapshotSchema: z.ZodObject<{
|
|
@@ -64,10 +67,12 @@ export declare const tutorialKartSnapshotSchema: z.ZodObject<{
|
|
|
64
67
|
lap_completion: "lap_completion";
|
|
65
68
|
}>;
|
|
66
69
|
currentStep: z.ZodEnum<{
|
|
70
|
+
Countdown: "Countdown";
|
|
67
71
|
Welcome: "Welcome";
|
|
68
72
|
PersonalItems: "PersonalItems";
|
|
69
73
|
SeatBelt: "SeatBelt";
|
|
70
74
|
Pedal: "Pedal";
|
|
75
|
+
DriveToControls: "DriveToControls";
|
|
71
76
|
WheelControls0Of2: "WheelControls0Of2";
|
|
72
77
|
WheelControls1Of2: "WheelControls1Of2";
|
|
73
78
|
WheelControlsCompleted: "WheelControlsCompleted";
|
|
@@ -114,6 +119,7 @@ export declare const tutorialKartSnapshotSchema: z.ZodObject<{
|
|
|
114
119
|
awaitingCheckpointTarget: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
115
120
|
TRACK: "TRACK";
|
|
116
121
|
POWER_UP: "POWER_UP";
|
|
122
|
+
ANY: "ANY";
|
|
117
123
|
FINISH: "FINISH";
|
|
118
124
|
}>>>;
|
|
119
125
|
latestCheckpointId: z.ZodOptional<z.ZodString>;
|
|
@@ -5,10 +5,12 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const ScreenTutorial_schema_1 = require("../hardware/screen/ScreenTutorial.schema");
|
|
6
6
|
const Tutorial_const_1 = require("./Tutorial.const");
|
|
7
7
|
exports.tutorialScreenStepSchema = zod_1.z.enum([
|
|
8
|
+
Tutorial_const_1.TUTORIAL_SCREEN_STEP.COUNTDOWN,
|
|
8
9
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.WELCOME,
|
|
9
10
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
|
|
10
11
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.SEAT_BELT,
|
|
11
12
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.PEDAL,
|
|
13
|
+
Tutorial_const_1.TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
12
14
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_0_OF_2,
|
|
13
15
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_1_OF_2,
|
|
14
16
|
Tutorial_const_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_COMPLETED,
|
|
@@ -50,6 +52,7 @@ exports.tutorialCheckpointTargetSchema = zod_1.z.enum([
|
|
|
50
52
|
Tutorial_const_1.TUTORIAL_CHECKPOINT_TARGET.TRACK,
|
|
51
53
|
Tutorial_const_1.TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
|
|
52
54
|
Tutorial_const_1.TUTORIAL_CHECKPOINT_TARGET.FINISH,
|
|
55
|
+
Tutorial_const_1.TUTORIAL_CHECKPOINT_TARGET.ANY,
|
|
53
56
|
]);
|
|
54
57
|
exports.tutorialKartSnapshotSchema = zod_1.z.object({
|
|
55
58
|
tutorialSessionId: zod_1.z.string().min(1),
|
|
@@ -16,6 +16,7 @@ export declare const tutorialCheckpointListenEventSchema: z.ZodObject<{
|
|
|
16
16
|
target: z.ZodEnum<{
|
|
17
17
|
TRACK: "TRACK";
|
|
18
18
|
POWER_UP: "POWER_UP";
|
|
19
|
+
ANY: "ANY";
|
|
19
20
|
FINISH: "FINISH";
|
|
20
21
|
}>;
|
|
21
22
|
}, z.core.$strip>;
|
|
@@ -34,6 +35,7 @@ export declare const tutorialListenEventSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
34
35
|
target: z.ZodEnum<{
|
|
35
36
|
TRACK: "TRACK";
|
|
36
37
|
POWER_UP: "POWER_UP";
|
|
38
|
+
ANY: "ANY";
|
|
37
39
|
FINISH: "FINISH";
|
|
38
40
|
}>;
|
|
39
41
|
}, z.core.$strip>], "on">;
|
|
@@ -42,10 +44,12 @@ export declare const tutorialStepConfigSchema: z.ZodObject<{
|
|
|
42
44
|
index: z.ZodNumber;
|
|
43
45
|
name: z.ZodString;
|
|
44
46
|
screenStep: z.ZodEnum<{
|
|
47
|
+
Countdown: "Countdown";
|
|
45
48
|
Welcome: "Welcome";
|
|
46
49
|
PersonalItems: "PersonalItems";
|
|
47
50
|
SeatBelt: "SeatBelt";
|
|
48
51
|
Pedal: "Pedal";
|
|
52
|
+
DriveToControls: "DriveToControls";
|
|
49
53
|
WheelControls0Of2: "WheelControls0Of2";
|
|
50
54
|
WheelControls1Of2: "WheelControls1Of2";
|
|
51
55
|
WheelControlsCompleted: "WheelControlsCompleted";
|
|
@@ -75,6 +79,7 @@ export declare const tutorialStepConfigSchema: z.ZodObject<{
|
|
|
75
79
|
target: z.ZodEnum<{
|
|
76
80
|
TRACK: "TRACK";
|
|
77
81
|
POWER_UP: "POWER_UP";
|
|
82
|
+
ANY: "ANY";
|
|
78
83
|
FINISH: "FINISH";
|
|
79
84
|
}>;
|
|
80
85
|
}, z.core.$strip>], "on">;
|
|
@@ -594,6 +599,11 @@ export declare const tutorialStepConfigSchema: z.ZodObject<{
|
|
|
594
599
|
module: z.ZodLiteral<"screen">;
|
|
595
600
|
action: z.ZodLiteral<"showTutorialView">;
|
|
596
601
|
params: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
602
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
603
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
604
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
605
|
+
step: z.ZodLiteral<"Countdown">;
|
|
606
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
597
607
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
598
608
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
599
609
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -613,6 +623,38 @@ export declare const tutorialStepConfigSchema: z.ZodObject<{
|
|
|
613
623
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
614
624
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
615
625
|
step: z.ZodLiteral<"Pedal">;
|
|
626
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
627
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
628
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
629
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
630
|
+
step: z.ZodLiteral<"DriveToControls">;
|
|
631
|
+
hud: z.ZodObject<{
|
|
632
|
+
coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
633
|
+
position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
634
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
635
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
636
|
+
}, z.core.$strip>>>;
|
|
637
|
+
laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
638
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
639
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
640
|
+
}, z.core.$strip>>>;
|
|
641
|
+
gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
642
|
+
minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
643
|
+
seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
644
|
+
}, z.core.$strip>>>;
|
|
645
|
+
powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
|
|
646
|
+
readonly BATTLE_GOD: "Battle God";
|
|
647
|
+
readonly BATTLE_STAR: "Battle Star";
|
|
648
|
+
readonly BATTLE_SHOT: "Battle Shot";
|
|
649
|
+
readonly BATTLE_NITRO: "Battle Nitro";
|
|
650
|
+
readonly BATTLE_PULSE: "Battle Pulse";
|
|
651
|
+
readonly BATTLE_TRAP: "Battle Trap";
|
|
652
|
+
readonly BATTLE_SHIELD: "Battle Shield";
|
|
653
|
+
readonly BATTLE_TURBO: "Battle Turbo";
|
|
654
|
+
readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
|
|
655
|
+
}>, z.ZodLiteral<"Clear PowerUp">]>>>;
|
|
656
|
+
powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
657
|
+
}, z.core.$strip>;
|
|
616
658
|
}, z.core.$strip>, z.ZodObject<{
|
|
617
659
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
618
660
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -905,6 +947,8 @@ export declare const tutorialStepConfigSchema: z.ZodObject<{
|
|
|
905
947
|
readonly SYSTEM_STARTED: "system_started.mp3";
|
|
906
948
|
readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
|
|
907
949
|
readonly WINNER_LAUGH: "winner_laugh.mp3";
|
|
950
|
+
readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
|
|
951
|
+
readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
|
|
908
952
|
}>;
|
|
909
953
|
durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
|
|
910
954
|
}, z.core.$strip>;
|
|
@@ -957,10 +1001,12 @@ export declare const tutorialPhaseConfigSchema: z.ZodObject<{
|
|
|
957
1001
|
index: z.ZodNumber;
|
|
958
1002
|
name: z.ZodString;
|
|
959
1003
|
screenStep: z.ZodEnum<{
|
|
1004
|
+
Countdown: "Countdown";
|
|
960
1005
|
Welcome: "Welcome";
|
|
961
1006
|
PersonalItems: "PersonalItems";
|
|
962
1007
|
SeatBelt: "SeatBelt";
|
|
963
1008
|
Pedal: "Pedal";
|
|
1009
|
+
DriveToControls: "DriveToControls";
|
|
964
1010
|
WheelControls0Of2: "WheelControls0Of2";
|
|
965
1011
|
WheelControls1Of2: "WheelControls1Of2";
|
|
966
1012
|
WheelControlsCompleted: "WheelControlsCompleted";
|
|
@@ -990,6 +1036,7 @@ export declare const tutorialPhaseConfigSchema: z.ZodObject<{
|
|
|
990
1036
|
target: z.ZodEnum<{
|
|
991
1037
|
TRACK: "TRACK";
|
|
992
1038
|
POWER_UP: "POWER_UP";
|
|
1039
|
+
ANY: "ANY";
|
|
993
1040
|
FINISH: "FINISH";
|
|
994
1041
|
}>;
|
|
995
1042
|
}, z.core.$strip>], "on">;
|
|
@@ -1509,6 +1556,11 @@ export declare const tutorialPhaseConfigSchema: z.ZodObject<{
|
|
|
1509
1556
|
module: z.ZodLiteral<"screen">;
|
|
1510
1557
|
action: z.ZodLiteral<"showTutorialView">;
|
|
1511
1558
|
params: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1559
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
1560
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
1561
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
1562
|
+
step: z.ZodLiteral<"Countdown">;
|
|
1563
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1512
1564
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
1513
1565
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
1514
1566
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1528,6 +1580,38 @@ export declare const tutorialPhaseConfigSchema: z.ZodObject<{
|
|
|
1528
1580
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
1529
1581
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
1530
1582
|
step: z.ZodLiteral<"Pedal">;
|
|
1583
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1584
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
1585
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
1586
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
1587
|
+
step: z.ZodLiteral<"DriveToControls">;
|
|
1588
|
+
hud: z.ZodObject<{
|
|
1589
|
+
coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
1590
|
+
position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
1591
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1592
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
1593
|
+
}, z.core.$strip>>>;
|
|
1594
|
+
laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
1595
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
1596
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
1597
|
+
}, z.core.$strip>>>;
|
|
1598
|
+
gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
1599
|
+
minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1600
|
+
seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1601
|
+
}, z.core.$strip>>>;
|
|
1602
|
+
powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
|
|
1603
|
+
readonly BATTLE_GOD: "Battle God";
|
|
1604
|
+
readonly BATTLE_STAR: "Battle Star";
|
|
1605
|
+
readonly BATTLE_SHOT: "Battle Shot";
|
|
1606
|
+
readonly BATTLE_NITRO: "Battle Nitro";
|
|
1607
|
+
readonly BATTLE_PULSE: "Battle Pulse";
|
|
1608
|
+
readonly BATTLE_TRAP: "Battle Trap";
|
|
1609
|
+
readonly BATTLE_SHIELD: "Battle Shield";
|
|
1610
|
+
readonly BATTLE_TURBO: "Battle Turbo";
|
|
1611
|
+
readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
|
|
1612
|
+
}>, z.ZodLiteral<"Clear PowerUp">]>>>;
|
|
1613
|
+
powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1614
|
+
}, z.core.$strip>;
|
|
1531
1615
|
}, z.core.$strip>, z.ZodObject<{
|
|
1532
1616
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
1533
1617
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1820,6 +1904,8 @@ export declare const tutorialPhaseConfigSchema: z.ZodObject<{
|
|
|
1820
1904
|
readonly SYSTEM_STARTED: "system_started.mp3";
|
|
1821
1905
|
readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
|
|
1822
1906
|
readonly WINNER_LAUGH: "winner_laugh.mp3";
|
|
1907
|
+
readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
|
|
1908
|
+
readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
|
|
1823
1909
|
}>;
|
|
1824
1910
|
durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
|
|
1825
1911
|
}, z.core.$strip>;
|
|
@@ -1876,10 +1962,12 @@ export declare const tutorialMasterConfigSchema: z.ZodObject<{
|
|
|
1876
1962
|
index: z.ZodNumber;
|
|
1877
1963
|
name: z.ZodString;
|
|
1878
1964
|
screenStep: z.ZodEnum<{
|
|
1965
|
+
Countdown: "Countdown";
|
|
1879
1966
|
Welcome: "Welcome";
|
|
1880
1967
|
PersonalItems: "PersonalItems";
|
|
1881
1968
|
SeatBelt: "SeatBelt";
|
|
1882
1969
|
Pedal: "Pedal";
|
|
1970
|
+
DriveToControls: "DriveToControls";
|
|
1883
1971
|
WheelControls0Of2: "WheelControls0Of2";
|
|
1884
1972
|
WheelControls1Of2: "WheelControls1Of2";
|
|
1885
1973
|
WheelControlsCompleted: "WheelControlsCompleted";
|
|
@@ -1909,6 +1997,7 @@ export declare const tutorialMasterConfigSchema: z.ZodObject<{
|
|
|
1909
1997
|
target: z.ZodEnum<{
|
|
1910
1998
|
TRACK: "TRACK";
|
|
1911
1999
|
POWER_UP: "POWER_UP";
|
|
2000
|
+
ANY: "ANY";
|
|
1912
2001
|
FINISH: "FINISH";
|
|
1913
2002
|
}>;
|
|
1914
2003
|
}, z.core.$strip>], "on">;
|
|
@@ -2428,6 +2517,11 @@ export declare const tutorialMasterConfigSchema: z.ZodObject<{
|
|
|
2428
2517
|
module: z.ZodLiteral<"screen">;
|
|
2429
2518
|
action: z.ZodLiteral<"showTutorialView">;
|
|
2430
2519
|
params: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2520
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
2521
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
2522
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
2523
|
+
step: z.ZodLiteral<"Countdown">;
|
|
2524
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2431
2525
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
2432
2526
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
2433
2527
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -2447,6 +2541,38 @@ export declare const tutorialMasterConfigSchema: z.ZodObject<{
|
|
|
2447
2541
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
2448
2542
|
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
2449
2543
|
step: z.ZodLiteral<"Pedal">;
|
|
2544
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2545
|
+
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
2546
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
2547
|
+
presentationRevision: z.ZodOptional<z.ZodNumber>;
|
|
2548
|
+
step: z.ZodLiteral<"DriveToControls">;
|
|
2549
|
+
hud: z.ZodObject<{
|
|
2550
|
+
coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
2551
|
+
position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
2552
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
2553
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
2554
|
+
}, z.core.$strip>>>;
|
|
2555
|
+
laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
2556
|
+
current: z.ZodNullable<z.ZodNumber>;
|
|
2557
|
+
total: z.ZodNullable<z.ZodNumber>;
|
|
2558
|
+
}, z.core.$strip>>>;
|
|
2559
|
+
gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
|
|
2560
|
+
minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2561
|
+
seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2562
|
+
}, z.core.$strip>>>;
|
|
2563
|
+
powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
|
|
2564
|
+
readonly BATTLE_GOD: "Battle God";
|
|
2565
|
+
readonly BATTLE_STAR: "Battle Star";
|
|
2566
|
+
readonly BATTLE_SHOT: "Battle Shot";
|
|
2567
|
+
readonly BATTLE_NITRO: "Battle Nitro";
|
|
2568
|
+
readonly BATTLE_PULSE: "Battle Pulse";
|
|
2569
|
+
readonly BATTLE_TRAP: "Battle Trap";
|
|
2570
|
+
readonly BATTLE_SHIELD: "Battle Shield";
|
|
2571
|
+
readonly BATTLE_TURBO: "Battle Turbo";
|
|
2572
|
+
readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
|
|
2573
|
+
}>, z.ZodLiteral<"Clear PowerUp">]>>>;
|
|
2574
|
+
powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
2575
|
+
}, z.core.$strip>;
|
|
2450
2576
|
}, z.core.$strip>, z.ZodObject<{
|
|
2451
2577
|
tutorialSessionId: z.ZodOptional<z.ZodString>;
|
|
2452
2578
|
revision: z.ZodOptional<z.ZodNumber>;
|
|
@@ -2739,6 +2865,8 @@ export declare const tutorialMasterConfigSchema: z.ZodObject<{
|
|
|
2739
2865
|
readonly SYSTEM_STARTED: "system_started.mp3";
|
|
2740
2866
|
readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
|
|
2741
2867
|
readonly WINNER_LAUGH: "winner_laugh.mp3";
|
|
2868
|
+
readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
|
|
2869
|
+
readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
|
|
2742
2870
|
}>;
|
|
2743
2871
|
durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
|
|
2744
2872
|
}, z.core.$strip>;
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
POWER_UP_NAME,
|
|
3
|
+
SOUND_NAME,
|
|
3
4
|
ScreenTutorialHud,
|
|
4
5
|
TUTORIAL_LISTEN_EVENT_ON,
|
|
5
6
|
TUTORIAL_CHECKPOINT_TARGET,
|
|
@@ -33,13 +34,32 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
33
34
|
index: 0,
|
|
34
35
|
steps: [
|
|
35
36
|
{
|
|
36
|
-
id: '
|
|
37
|
+
id: 'step_countdown',
|
|
37
38
|
index: 0,
|
|
39
|
+
name: 'Race Countdown',
|
|
40
|
+
screenStep: TUTORIAL_SCREEN_STEP.COUNTDOWN,
|
|
41
|
+
listenEvent: {
|
|
42
|
+
on: TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
|
|
43
|
+
durationMs: 5000,
|
|
44
|
+
},
|
|
45
|
+
triggerCommands: [
|
|
46
|
+
{
|
|
47
|
+
module: 'screen',
|
|
48
|
+
action: 'showTutorialView',
|
|
49
|
+
params: {
|
|
50
|
+
step: TUTORIAL_SCREEN_STEP.COUNTDOWN,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 'step_welcome',
|
|
57
|
+
index: 1,
|
|
38
58
|
name: 'Welcome Screen',
|
|
39
59
|
screenStep: TUTORIAL_SCREEN_STEP.WELCOME,
|
|
40
60
|
listenEvent: {
|
|
41
61
|
on: TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
|
|
42
|
-
durationMs:
|
|
62
|
+
durationMs: 6000,
|
|
43
63
|
},
|
|
44
64
|
triggerCommands: [
|
|
45
65
|
{
|
|
@@ -49,16 +69,23 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
49
69
|
step: TUTORIAL_SCREEN_STEP.WELCOME,
|
|
50
70
|
},
|
|
51
71
|
},
|
|
72
|
+
{
|
|
73
|
+
module: 'sound',
|
|
74
|
+
action: 'play',
|
|
75
|
+
params: {
|
|
76
|
+
soundName: SOUND_NAME.TUTORIAL_WELCOME,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
52
79
|
],
|
|
53
80
|
},
|
|
54
81
|
{
|
|
55
82
|
id: 'step_personal_items',
|
|
56
|
-
index:
|
|
83
|
+
index: 2,
|
|
57
84
|
name: 'Personal Items Safety',
|
|
58
85
|
screenStep: TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
|
|
59
86
|
listenEvent: {
|
|
60
87
|
on: TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
|
|
61
|
-
durationMs:
|
|
88
|
+
durationMs: 4000,
|
|
62
89
|
},
|
|
63
90
|
triggerCommands: [
|
|
64
91
|
{
|
|
@@ -72,7 +99,7 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
72
99
|
},
|
|
73
100
|
{
|
|
74
101
|
id: 'step_seat_belt',
|
|
75
|
-
index:
|
|
102
|
+
index: 3,
|
|
76
103
|
name: 'Seat Belt Fastening',
|
|
77
104
|
screenStep: TUTORIAL_SCREEN_STEP.SEAT_BELT,
|
|
78
105
|
listenEvent: {
|
|
@@ -91,12 +118,12 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
91
118
|
},
|
|
92
119
|
{
|
|
93
120
|
id: 'step_pedal',
|
|
94
|
-
index:
|
|
121
|
+
index: 4,
|
|
95
122
|
name: 'Pedal Acceleration Check',
|
|
96
123
|
screenStep: TUTORIAL_SCREEN_STEP.PEDAL,
|
|
97
124
|
listenEvent: {
|
|
98
|
-
on: TUTORIAL_LISTEN_EVENT_ON.
|
|
99
|
-
|
|
125
|
+
on: TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
|
|
126
|
+
durationMs: 6000,
|
|
100
127
|
},
|
|
101
128
|
triggerCommands: [
|
|
102
129
|
{
|
|
@@ -106,6 +133,33 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
106
133
|
step: TUTORIAL_SCREEN_STEP.PEDAL,
|
|
107
134
|
},
|
|
108
135
|
},
|
|
136
|
+
{
|
|
137
|
+
module: 'sound',
|
|
138
|
+
action: 'play',
|
|
139
|
+
params: {
|
|
140
|
+
soundName: SOUND_NAME.TUTORIAL_GAS_PEDAL,
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'step_drive_to_controls',
|
|
147
|
+
index: 5,
|
|
148
|
+
name: 'Drive to Controls Checkpoint',
|
|
149
|
+
screenStep: TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
150
|
+
listenEvent: {
|
|
151
|
+
on: TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
|
|
152
|
+
target: TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
|
|
153
|
+
},
|
|
154
|
+
triggerCommands: [
|
|
155
|
+
{
|
|
156
|
+
module: 'screen',
|
|
157
|
+
action: 'showTutorialView',
|
|
158
|
+
params: {
|
|
159
|
+
step: TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
160
|
+
hud: defaultTutorialHud,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
109
163
|
],
|
|
110
164
|
},
|
|
111
165
|
],
|
|
@@ -160,7 +214,7 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
160
214
|
screenStep: TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_COMPLETED,
|
|
161
215
|
listenEvent: {
|
|
162
216
|
on: TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
|
|
163
|
-
durationMs:
|
|
217
|
+
durationMs: 4000,
|
|
164
218
|
},
|
|
165
219
|
triggerCommands: [
|
|
166
220
|
{
|
|
@@ -178,8 +232,8 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
178
232
|
name: 'HUD Overview Explanation',
|
|
179
233
|
screenStep: TUTORIAL_SCREEN_STEP.HUD_OVERVIEW,
|
|
180
234
|
listenEvent: {
|
|
181
|
-
on: TUTORIAL_LISTEN_EVENT_ON.
|
|
182
|
-
|
|
235
|
+
on: TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
|
|
236
|
+
target: TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
|
|
183
237
|
},
|
|
184
238
|
triggerCommands: [
|
|
185
239
|
{
|
|
@@ -255,11 +309,11 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
255
309
|
{
|
|
256
310
|
id: 'step_hud_coins',
|
|
257
311
|
index: 7,
|
|
258
|
-
name: 'HUD Coins
|
|
312
|
+
name: 'HUD Coins Explanation',
|
|
259
313
|
screenStep: TUTORIAL_SCREEN_STEP.HUD_COINS,
|
|
260
314
|
listenEvent: {
|
|
261
|
-
on: TUTORIAL_LISTEN_EVENT_ON.
|
|
262
|
-
|
|
315
|
+
on: TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
|
|
316
|
+
button: TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
|
|
263
317
|
},
|
|
264
318
|
triggerCommands: [
|
|
265
319
|
{
|
|
@@ -285,8 +339,8 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
285
339
|
name: 'Power Up Allocation Trigger',
|
|
286
340
|
screenStep: TUTORIAL_SCREEN_STEP.POWER_UP_WAITING,
|
|
287
341
|
listenEvent: {
|
|
288
|
-
on: TUTORIAL_LISTEN_EVENT_ON.
|
|
289
|
-
|
|
342
|
+
on: TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
|
|
343
|
+
target: TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
|
|
290
344
|
},
|
|
291
345
|
triggerCommands: [
|
|
292
346
|
{
|
|
@@ -304,8 +358,8 @@ export const allTutorialConfig: TutorialMasterConfig = {
|
|
|
304
358
|
name: 'Power Up Roulette Animation',
|
|
305
359
|
screenStep: TUTORIAL_SCREEN_STEP.POWER_UP_ROULETTE,
|
|
306
360
|
listenEvent: {
|
|
307
|
-
on: TUTORIAL_LISTEN_EVENT_ON.
|
|
308
|
-
|
|
361
|
+
on: TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
|
|
362
|
+
button: TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
|
|
309
363
|
},
|
|
310
364
|
triggerCommands: [
|
|
311
365
|
{
|
|
@@ -38,10 +38,12 @@ const createHudTutorialStepSchema = <T extends TutorialScreenStep>(step: T) =>
|
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
export const screenTutorialViewInputSchema = z.discriminatedUnion('step', [
|
|
41
|
+
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.COUNTDOWN),
|
|
41
42
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.WELCOME),
|
|
42
43
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS),
|
|
43
44
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.SEAT_BELT),
|
|
44
45
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.PEDAL),
|
|
46
|
+
createHudTutorialStepSchema(TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS),
|
|
45
47
|
|
|
46
48
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_0_OF_2),
|
|
47
49
|
createStaticTutorialStepSchema(TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_1_OF_2),
|
|
@@ -22,4 +22,6 @@ export const SOUND_NAME = {
|
|
|
22
22
|
SYSTEM_STARTED: 'system_started.mp3',
|
|
23
23
|
WARNING_ALERT_THIS_IS_NOT_A_TEST: 'warning_alert_this_is_not_a_test.mp3',
|
|
24
24
|
WINNER_LAUGH: 'winner_laugh.mp3',
|
|
25
|
+
TUTORIAL_WELCOME: 'tutorial/welcome_to_battle_racing.mp3',
|
|
26
|
+
TUTORIAL_GAS_PEDAL: 'tutorial/gas_pedal.mp3',
|
|
25
27
|
} as const;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export const TUTORIAL_SCREEN_STEP = {
|
|
2
|
+
COUNTDOWN: 'Countdown',
|
|
2
3
|
WELCOME: 'Welcome',
|
|
3
4
|
PERSONAL_ITEMS: 'PersonalItems',
|
|
4
5
|
SEAT_BELT: 'SeatBelt',
|
|
5
6
|
PEDAL: 'Pedal',
|
|
7
|
+
DRIVE_TO_CONTROLS: 'DriveToControls',
|
|
6
8
|
|
|
7
9
|
WHEEL_CONTROLS_0_OF_2: 'WheelControls0Of2',
|
|
8
10
|
WHEEL_CONTROLS_1_OF_2: 'WheelControls1Of2',
|
|
@@ -53,8 +55,25 @@ export const TUTORIAL_CHECKPOINT_TARGET = {
|
|
|
53
55
|
TRACK: 'TRACK',
|
|
54
56
|
POWER_UP: 'POWER_UP',
|
|
55
57
|
FINISH: 'FINISH',
|
|
58
|
+
ANY: 'ANY',
|
|
56
59
|
} as const;
|
|
57
60
|
|
|
58
61
|
export const TUTORIAL_INPUT_SIGNAL_TYPE = {
|
|
59
62
|
STEERING_WHEEL_BUTTON_PRESSED: 'SteeringWheelButtonPressed',
|
|
60
63
|
} as const;
|
|
64
|
+
|
|
65
|
+
export const DRIVING_TUTORIAL_STEPS = [
|
|
66
|
+
TUTORIAL_SCREEN_STEP.PEDAL,
|
|
67
|
+
TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
68
|
+
TUTORIAL_SCREEN_STEP.HUD_OVERVIEW,
|
|
69
|
+
TUTORIAL_SCREEN_STEP.POWER_UP_WAITING,
|
|
70
|
+
TUTORIAL_SCREEN_STEP.POWER_UP_NITRO_READY,
|
|
71
|
+
TUTORIAL_SCREEN_STEP.POWER_UP_RETURN_TO_HUD,
|
|
72
|
+
] as const;
|
|
73
|
+
|
|
74
|
+
export const isDrivingTutorialStep = (step?: string | null): boolean => {
|
|
75
|
+
if (!step) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return (DRIVING_TUTORIAL_STEPS as readonly string[]).includes(step);
|
|
79
|
+
};
|
|
@@ -11,10 +11,12 @@ import {
|
|
|
11
11
|
} from './Tutorial.const';
|
|
12
12
|
|
|
13
13
|
export const tutorialScreenStepSchema = z.enum([
|
|
14
|
+
TUTORIAL_SCREEN_STEP.COUNTDOWN,
|
|
14
15
|
TUTORIAL_SCREEN_STEP.WELCOME,
|
|
15
16
|
TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
|
|
16
17
|
TUTORIAL_SCREEN_STEP.SEAT_BELT,
|
|
17
18
|
TUTORIAL_SCREEN_STEP.PEDAL,
|
|
19
|
+
TUTORIAL_SCREEN_STEP.DRIVE_TO_CONTROLS,
|
|
18
20
|
TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_0_OF_2,
|
|
19
21
|
TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_1_OF_2,
|
|
20
22
|
TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_COMPLETED,
|
|
@@ -61,6 +63,7 @@ export const tutorialCheckpointTargetSchema = z.enum([
|
|
|
61
63
|
TUTORIAL_CHECKPOINT_TARGET.TRACK,
|
|
62
64
|
TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
|
|
63
65
|
TUTORIAL_CHECKPOINT_TARGET.FINISH,
|
|
66
|
+
TUTORIAL_CHECKPOINT_TARGET.ANY,
|
|
64
67
|
]);
|
|
65
68
|
|
|
66
69
|
export const tutorialKartSnapshotSchema = z.object({
|