@battle-racing/br-common-lib 6.2.0-rc.1 → 6.2.0-rc.3

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.
Files changed (44) hide show
  1. package/dist/__deprecated__/constants/kart-status.d.ts +1 -0
  2. package/dist/__deprecated__/constants/kart-status.js +1 -0
  3. package/dist/data/all-tutorial-steps.d.ts +2 -0
  4. package/dist/data/all-tutorial-steps.js +379 -0
  5. package/dist/data/index.d.ts +1 -0
  6. package/dist/data/index.js +1 -0
  7. package/dist/domains/game/Game.schema.d.ts +1 -0
  8. package/dist/domains/game/Game.schema.js +1 -0
  9. package/dist/domains/game/battle/Battle.schema.d.ts +2 -0
  10. package/dist/domains/game/battle/Battle.schema.js +1 -0
  11. package/dist/domains/game/race/Race.schema.d.ts +3 -0
  12. package/dist/domains/game/race/Race.schema.js +1 -0
  13. package/dist/domains/kart/Kart.const.d.ts +1 -0
  14. package/dist/domains/kart/Kart.const.js +1 -0
  15. package/dist/domains/kart/Kart.schema.d.ts +2 -0
  16. package/dist/domains/socket/clientToServer/SocketKartClientToServerEventsParams.d.ts +3 -0
  17. package/dist/domains/socket/serverToClient/SocketKartServerToClientEventsParams.d.ts +3 -0
  18. package/dist/domains/tutorial/Tutorial.const.d.ts +31 -0
  19. package/dist/domains/tutorial/Tutorial.const.js +32 -1
  20. package/dist/domains/tutorial/Tutorial.schema.d.ts +141 -0
  21. package/dist/domains/tutorial/Tutorial.schema.js +57 -1
  22. package/dist/domains/tutorial/Tutorial.types.d.ts +10 -1
  23. package/dist/domains/tutorial/TutorialConfig.schema.d.ts +2781 -0
  24. package/dist/domains/tutorial/TutorialConfig.schema.js +43 -0
  25. package/dist/domains/tutorial/TutorialConfig.types.d.ts +9 -0
  26. package/dist/domains/tutorial/TutorialConfig.types.js +2 -0
  27. package/dist/domains/tutorial/index.d.ts +2 -0
  28. package/dist/domains/tutorial/index.js +2 -0
  29. package/package.json +1 -1
  30. package/src/__deprecated__/constants/kart-status.ts +1 -0
  31. package/src/data/all-tutorial-steps.ts +388 -0
  32. package/src/data/index.ts +1 -1
  33. package/src/domains/game/Game.schema.ts +1 -0
  34. package/src/domains/game/battle/Battle.schema.ts +1 -0
  35. package/src/domains/game/race/Race.schema.ts +1 -0
  36. package/src/domains/kart/Kart.const.ts +1 -0
  37. package/src/domains/socket/clientToServer/SocketKartClientToServerEventsParams.ts +3 -0
  38. package/src/domains/socket/serverToClient/SocketKartServerToClientEventsParams.ts +3 -0
  39. package/src/domains/tutorial/Tutorial.const.ts +37 -0
  40. package/src/domains/tutorial/Tutorial.schema.ts +75 -1
  41. package/src/domains/tutorial/Tutorial.types.ts +21 -1
  42. package/src/domains/tutorial/TutorialConfig.schema.ts +52 -0
  43. package/src/domains/tutorial/TutorialConfig.types.ts +18 -0
  44. package/src/domains/tutorial/index.ts +2 -0
@@ -1,5 +1,6 @@
1
1
  export declare const KART_STATUS: {
2
2
  readonly STAND_BY: "standBy";
3
+ readonly TUTORIAL: "tutorial";
3
4
  readonly IN_GAME: "in-game";
4
5
  readonly YELLOW_FLAG: "yellow-flag";
5
6
  readonly EMERGENCY: "emergency";
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KART_FINAL_STATE = exports.KART_STATUS = void 0;
4
4
  exports.KART_STATUS = {
5
5
  STAND_BY: 'standBy',
6
+ TUTORIAL: 'tutorial',
6
7
  IN_GAME: 'in-game',
7
8
  YELLOW_FLAG: 'yellow-flag',
8
9
  EMERGENCY: 'emergency',
@@ -0,0 +1,2 @@
1
+ import { TutorialMasterConfig } from '../domains';
2
+ export declare const allTutorialConfig: TutorialMasterConfig;
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allTutorialConfig = void 0;
4
+ const domains_1 = require("../domains");
5
+ const defaultTutorialHud = {
6
+ position: { current: 1, total: 6 },
7
+ coins: 0,
8
+ gameTimeLeft: { minutes: 3, seconds: 0 },
9
+ laps: { current: 1, total: 1 },
10
+ powerUp: null,
11
+ powerUpAnimationTimeSeconds: null,
12
+ };
13
+ const nitroTutorialHud = {
14
+ ...defaultTutorialHud,
15
+ powerUp: domains_1.POWER_UP_NAME.BATTLE_NITRO,
16
+ };
17
+ exports.allTutorialConfig = {
18
+ id: 'tutorial-master-v1',
19
+ name: 'Standard Circuit Induction Tutorial',
20
+ phases: [
21
+ {
22
+ id: domains_1.TUTORIAL_PHASE_ID.STARTING_POINT,
23
+ name: 'Starting Point',
24
+ index: 0,
25
+ steps: [
26
+ {
27
+ id: 'step_welcome',
28
+ index: 0,
29
+ name: 'Welcome Screen',
30
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.WELCOME,
31
+ listenEvent: {
32
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
33
+ durationMs: 5000,
34
+ },
35
+ triggerCommands: [
36
+ {
37
+ module: 'screen',
38
+ action: 'showTutorialView',
39
+ params: {
40
+ step: domains_1.TUTORIAL_SCREEN_STEP.WELCOME,
41
+ },
42
+ },
43
+ ],
44
+ },
45
+ {
46
+ id: 'step_personal_items',
47
+ index: 1,
48
+ name: 'Personal Items Safety',
49
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
50
+ listenEvent: {
51
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
52
+ durationMs: 5000,
53
+ },
54
+ triggerCommands: [
55
+ {
56
+ module: 'screen',
57
+ action: 'showTutorialView',
58
+ params: {
59
+ step: domains_1.TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
60
+ },
61
+ },
62
+ ],
63
+ },
64
+ {
65
+ id: 'step_seat_belt',
66
+ index: 2,
67
+ name: 'Seat Belt Fastening',
68
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.SEAT_BELT,
69
+ listenEvent: {
70
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
71
+ durationMs: 5000,
72
+ },
73
+ triggerCommands: [
74
+ {
75
+ module: 'screen',
76
+ action: 'showTutorialView',
77
+ params: {
78
+ step: domains_1.TUTORIAL_SCREEN_STEP.SEAT_BELT,
79
+ },
80
+ },
81
+ ],
82
+ },
83
+ {
84
+ id: 'step_pedal',
85
+ index: 3,
86
+ name: 'Pedal Acceleration Check',
87
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.PEDAL,
88
+ listenEvent: {
89
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
90
+ checkpoint: domains_1.TUTORIAL_LOGICAL_CHECKPOINT.CHECKPOINT_1,
91
+ },
92
+ triggerCommands: [
93
+ {
94
+ module: 'screen',
95
+ action: 'showTutorialView',
96
+ params: {
97
+ step: domains_1.TUTORIAL_SCREEN_STEP.PEDAL,
98
+ },
99
+ },
100
+ ],
101
+ },
102
+ ],
103
+ },
104
+ {
105
+ id: domains_1.TUTORIAL_PHASE_ID.CHECKPOINT_1,
106
+ name: 'Checkpoint 1 - Controls and HUD',
107
+ index: 1,
108
+ steps: [
109
+ {
110
+ id: 'step_wheel_0_of_2',
111
+ index: 0,
112
+ name: 'Wheel Button Right Check',
113
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_0_OF_2,
114
+ listenEvent: {
115
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
116
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.RIGHT,
117
+ },
118
+ triggerCommands: [
119
+ {
120
+ module: 'screen',
121
+ action: 'showTutorialView',
122
+ params: {
123
+ step: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_0_OF_2,
124
+ },
125
+ },
126
+ ],
127
+ },
128
+ {
129
+ id: 'step_wheel_1_of_2',
130
+ index: 1,
131
+ name: 'Wheel Button Left Check',
132
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_1_OF_2,
133
+ listenEvent: {
134
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
135
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.LEFT,
136
+ },
137
+ triggerCommands: [
138
+ {
139
+ module: 'screen',
140
+ action: 'showTutorialView',
141
+ params: {
142
+ step: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_1_OF_2,
143
+ },
144
+ },
145
+ ],
146
+ },
147
+ {
148
+ id: 'step_wheel_completed',
149
+ index: 2,
150
+ name: 'Wheel Controls Success',
151
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_COMPLETED,
152
+ listenEvent: {
153
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
154
+ durationMs: 5000,
155
+ },
156
+ triggerCommands: [
157
+ {
158
+ module: 'screen',
159
+ action: 'showTutorialView',
160
+ params: {
161
+ step: domains_1.TUTORIAL_SCREEN_STEP.WHEEL_CONTROLS_COMPLETED,
162
+ },
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ id: 'step_hud_overview',
168
+ index: 3,
169
+ name: 'HUD Overview Explanation',
170
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.HUD_OVERVIEW,
171
+ listenEvent: {
172
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
173
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
174
+ },
175
+ triggerCommands: [
176
+ {
177
+ module: 'screen',
178
+ action: 'showTutorialView',
179
+ params: {
180
+ step: domains_1.TUTORIAL_SCREEN_STEP.HUD_OVERVIEW,
181
+ hud: defaultTutorialHud,
182
+ },
183
+ },
184
+ ],
185
+ },
186
+ {
187
+ id: 'step_hud_position',
188
+ index: 4,
189
+ name: 'HUD Position Indicator',
190
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.HUD_POSITION,
191
+ listenEvent: {
192
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
193
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
194
+ },
195
+ triggerCommands: [
196
+ {
197
+ module: 'screen',
198
+ action: 'showTutorialView',
199
+ params: {
200
+ step: domains_1.TUTORIAL_SCREEN_STEP.HUD_POSITION,
201
+ hud: defaultTutorialHud,
202
+ },
203
+ },
204
+ ],
205
+ },
206
+ {
207
+ id: 'step_hud_laps',
208
+ index: 5,
209
+ name: 'HUD Lap Counter',
210
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.HUD_LAPS,
211
+ listenEvent: {
212
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
213
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
214
+ },
215
+ triggerCommands: [
216
+ {
217
+ module: 'screen',
218
+ action: 'showTutorialView',
219
+ params: {
220
+ step: domains_1.TUTORIAL_SCREEN_STEP.HUD_LAPS,
221
+ hud: defaultTutorialHud,
222
+ },
223
+ },
224
+ ],
225
+ },
226
+ {
227
+ id: 'step_hud_time_left',
228
+ index: 6,
229
+ name: 'HUD Time Left',
230
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.HUD_TIME_LEFT,
231
+ listenEvent: {
232
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
233
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
234
+ },
235
+ triggerCommands: [
236
+ {
237
+ module: 'screen',
238
+ action: 'showTutorialView',
239
+ params: {
240
+ step: domains_1.TUTORIAL_SCREEN_STEP.HUD_TIME_LEFT,
241
+ hud: defaultTutorialHud,
242
+ },
243
+ },
244
+ ],
245
+ },
246
+ {
247
+ id: 'step_hud_coins',
248
+ index: 7,
249
+ name: 'HUD Coins and Checkpoint 2 Target',
250
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.HUD_COINS,
251
+ listenEvent: {
252
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
253
+ checkpoint: domains_1.TUTORIAL_LOGICAL_CHECKPOINT.CHECKPOINT_2,
254
+ },
255
+ triggerCommands: [
256
+ {
257
+ module: 'screen',
258
+ action: 'showTutorialView',
259
+ params: {
260
+ step: domains_1.TUTORIAL_SCREEN_STEP.HUD_COINS,
261
+ hud: defaultTutorialHud,
262
+ },
263
+ },
264
+ ],
265
+ },
266
+ ],
267
+ },
268
+ {
269
+ id: domains_1.TUTORIAL_PHASE_ID.CHECKPOINT_2,
270
+ name: 'Checkpoint 2 - Power Up Preview',
271
+ index: 2,
272
+ steps: [
273
+ {
274
+ id: 'step_power_up_waiting',
275
+ index: 0,
276
+ name: 'Power Up Allocation Trigger',
277
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_WAITING,
278
+ listenEvent: {
279
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
280
+ durationMs: 1000,
281
+ },
282
+ triggerCommands: [
283
+ {
284
+ module: 'screen',
285
+ action: 'showTutorialView',
286
+ params: {
287
+ step: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_WAITING,
288
+ },
289
+ },
290
+ ],
291
+ },
292
+ {
293
+ id: 'step_power_up_roulette',
294
+ index: 1,
295
+ name: 'Power Up Roulette Animation',
296
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_ROULETTE,
297
+ listenEvent: {
298
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
299
+ durationMs: 3000,
300
+ },
301
+ triggerCommands: [
302
+ {
303
+ module: 'screen',
304
+ action: 'showTutorialView',
305
+ params: {
306
+ step: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_ROULETTE,
307
+ },
308
+ },
309
+ ],
310
+ },
311
+ {
312
+ id: 'step_power_up_nitro_ready',
313
+ index: 2,
314
+ name: 'Power Up Nitro Ready To Fire',
315
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_NITRO_READY,
316
+ listenEvent: {
317
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.WHEEL_BUTTON,
318
+ button: domains_1.TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
319
+ },
320
+ triggerCommands: [
321
+ {
322
+ module: 'screen',
323
+ action: 'showTutorialView',
324
+ params: {
325
+ step: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_NITRO_READY,
326
+ },
327
+ },
328
+ ],
329
+ },
330
+ {
331
+ id: 'step_power_up_return_to_hud',
332
+ index: 3,
333
+ name: 'Nitro Fired - Return to HUD',
334
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_RETURN_TO_HUD,
335
+ listenEvent: {
336
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
337
+ checkpoint: domains_1.TUTORIAL_LOGICAL_CHECKPOINT.CHECKPOINT_3_FINISH,
338
+ },
339
+ triggerCommands: [
340
+ {
341
+ module: 'screen',
342
+ action: 'showTutorialView',
343
+ params: {
344
+ step: domains_1.TUTORIAL_SCREEN_STEP.POWER_UP_RETURN_TO_HUD,
345
+ hud: nitroTutorialHud,
346
+ },
347
+ },
348
+ ],
349
+ },
350
+ ],
351
+ },
352
+ {
353
+ id: domains_1.TUTORIAL_PHASE_ID.LAP_COMPLETION,
354
+ name: 'Lap Completion',
355
+ index: 3,
356
+ steps: [
357
+ {
358
+ id: 'step_tutorial_completed',
359
+ index: 0,
360
+ name: 'Tutorial Completed Screen',
361
+ screenStep: domains_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED,
362
+ listenEvent: {
363
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
364
+ durationMs: 5000,
365
+ },
366
+ triggerCommands: [
367
+ {
368
+ module: 'screen',
369
+ action: 'showTutorialView',
370
+ params: {
371
+ step: domains_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED,
372
+ },
373
+ },
374
+ ],
375
+ },
376
+ ],
377
+ },
378
+ ],
379
+ };
@@ -1,3 +1,4 @@
1
1
  export * from './all-damages';
2
2
  export * from './all-power-ups';
3
+ export * from './all-tutorial-steps';
3
4
  export * from './role-definitions';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./all-damages"), exports);
18
18
  __exportStar(require("./all-power-ups"), exports);
19
+ __exportStar(require("./all-tutorial-steps"), exports);
19
20
  __exportStar(require("./role-definitions"), exports);
@@ -69,6 +69,7 @@ export declare const gameSchema: z.ZodObject<{
69
69
  position: z.ZodNumber;
70
70
  time: z.ZodNumber;
71
71
  }, z.core.$strip>>;
72
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
72
73
  }, z.core.$strip>;
73
74
  export declare const assignKartSchema: z.ZodObject<{
74
75
  playerId: z.ZodString;
@@ -34,6 +34,7 @@ exports.gameSchema = zod_1.z.object({
34
34
  finishedReason: exports.gameFinishedReasonSchema.optional(),
35
35
  kartsState: zod_1.z.record(zod_1.z.string(), exports.gameKartStateSchema),
36
36
  gameRanking: zod_1.z.array(exports.kartRankingItemSchema),
37
+ tutorialConfigId: zod_1.z.string().optional(),
37
38
  });
38
39
  exports.assignKartSchema = zod_1.z.object({
39
40
  playerId: zod_1.z.string(),
@@ -36,6 +36,7 @@ export declare const battleSchema: z.ZodObject<{
36
36
  position: z.ZodNumber;
37
37
  time: z.ZodNumber;
38
38
  }, z.core.$strip>>;
39
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
39
40
  type: z.ZodLiteral<"Battle">;
40
41
  lives: z.ZodNumber;
41
42
  kartsState: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -56,4 +57,5 @@ export declare const createBattleSchema: z.ZodObject<{
56
57
  gameTrackId: z.ZodString;
57
58
  gameTurnId: z.ZodOptional<z.ZodString>;
58
59
  isOfficial: z.ZodOptional<z.ZodBoolean>;
60
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
59
61
  }, z.core.$strip>;
@@ -27,4 +27,5 @@ exports.createBattleSchema = zod_1.z.object({
27
27
  gameTrackId: zod_1.z.string(),
28
28
  gameTurnId: zod_1.z.string().optional(),
29
29
  isOfficial: zod_1.z.boolean().optional(),
30
+ tutorialConfigId: zod_1.z.string().optional(),
30
31
  });
@@ -106,6 +106,7 @@ export declare const raceSchema: z.ZodObject<{
106
106
  readonly EMERGENCY: "EMERGENCY";
107
107
  readonly BY_CONTROLLER: "BY_CONTROLLER";
108
108
  }>>;
109
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
109
110
  type: z.ZodLiteral<"Race">;
110
111
  laps: z.ZodNumber;
111
112
  kartsState: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -165,6 +166,7 @@ export declare const raceWithDetailedRankingSchema: z.ZodObject<{
165
166
  readonly EMERGENCY: "EMERGENCY";
166
167
  readonly BY_CONTROLLER: "BY_CONTROLLER";
167
168
  }>>;
169
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
168
170
  type: z.ZodLiteral<"Race">;
169
171
  laps: z.ZodNumber;
170
172
  kartsState: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -233,4 +235,5 @@ export declare const createRaceSchema: z.ZodObject<{
233
235
  gameTrackId: z.ZodString;
234
236
  gameTurnId: z.ZodOptional<z.ZodString>;
235
237
  isOfficial: z.ZodOptional<z.ZodBoolean>;
238
+ tutorialConfigId: z.ZodOptional<z.ZodString>;
236
239
  }, z.core.$strip>;
@@ -70,4 +70,5 @@ exports.createRaceSchema = exports.startRaceSchema.partial().extend({
70
70
  gameTrackId: zod_1.z.string(),
71
71
  gameTurnId: zod_1.z.string().optional(),
72
72
  isOfficial: zod_1.z.boolean().optional(),
73
+ tutorialConfigId: zod_1.z.string().optional(),
73
74
  });
@@ -1,5 +1,6 @@
1
1
  export declare const KART_STATUS: {
2
2
  readonly STAND_BY: "standBy";
3
+ readonly TUTORIAL: "tutorial";
3
4
  readonly IN_GAME: "in-game";
4
5
  readonly YELLOW_FLAG: "yellow-flag";
5
6
  readonly EMERGENCY: "emergency";
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KART_FINAL_STATE = exports.KART_STATUS = void 0;
4
4
  exports.KART_STATUS = {
5
5
  STAND_BY: 'standBy',
6
+ TUTORIAL: 'tutorial',
6
7
  IN_GAME: 'in-game',
7
8
  YELLOW_FLAG: 'yellow-flag',
8
9
  EMERGENCY: 'emergency',
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const kartStatusSchema: z.ZodEnum<{
3
3
  readonly STAND_BY: "standBy";
4
+ readonly TUTORIAL: "tutorial";
4
5
  readonly IN_GAME: "in-game";
5
6
  readonly YELLOW_FLAG: "yellow-flag";
6
7
  readonly EMERGENCY: "emergency";
@@ -27,6 +28,7 @@ export declare const kartSchema: z.ZodObject<{
27
28
  isConnected: z.ZodBoolean;
28
29
  status: z.ZodEnum<{
29
30
  readonly STAND_BY: "standBy";
31
+ readonly TUTORIAL: "tutorial";
30
32
  readonly IN_GAME: "in-game";
31
33
  readonly YELLOW_FLAG: "yellow-flag";
32
34
  readonly EMERGENCY: "emergency";
@@ -1,9 +1,12 @@
1
1
  import type { DamageEffectName } from '../../damage';
2
2
  import type { Kart } from '../../kart';
3
+ import type { TutorialInputSignal } from '../../tutorial';
3
4
  import type { SocketInitKartInput, SocketRegisterKartCheckpointInput } from '../inputs';
4
5
  export interface SocketKartClientToServerEventsParams {
5
6
  'kart:init': SocketInitKartInput;
6
7
  'kart:checkpoint': SocketRegisterKartCheckpointInput;
8
+ /** Report tutorial input signal from Kart (e.g. steering wheel button) */
9
+ 'kart:tutorial:input': TutorialInputSignal;
7
10
  /** Activate the damage of a powerUp */
8
11
  'kart:damage:sent': {
9
12
  damageName: DamageEffectName;
@@ -3,6 +3,7 @@ import type { GameTrack, GameTrackKartConfig } from '../../gameTrack';
3
3
  import type { Kart, KartStatus } from '../../kart';
4
4
  import type { Response } from '../../response';
5
5
  import type { SocketPowerUpEventsParams } from '../SocketPowerUpEventsParams';
6
+ import type { TutorialKartSnapshot } from '../../tutorial';
6
7
  interface BaseGameEventParams {
7
8
  gameId: Game['id'];
8
9
  gameType: GameType;
@@ -28,6 +29,8 @@ export interface SocketKartEventsParams {
28
29
  'kart:status:change': {
29
30
  status: KartStatus;
30
31
  };
32
+ /** Synchronize authoritative tutorial state snapshot to Kart */
33
+ 'kart:tutorial:sync': TutorialKartSnapshot;
31
34
  }
32
35
  export interface SocketGameEventParams {
33
36
  /** Kart is selected for a game */
@@ -17,3 +17,34 @@ export declare const TUTORIAL_SCREEN_STEP: {
17
17
  readonly POWER_UP_RETURN_TO_HUD: "PowerUpReturnToHud";
18
18
  readonly TUTORIAL_COMPLETED: "TutorialCompleted";
19
19
  };
20
+ export declare const TUTORIAL_STATUS: {
21
+ readonly PENDING: "PENDING";
22
+ readonly IN_PROGRESS: "IN_PROGRESS";
23
+ readonly COMPLETED: "COMPLETED";
24
+ readonly SKIPPED: "SKIPPED";
25
+ readonly CANCELLED: "CANCELLED";
26
+ };
27
+ export declare const TUTORIAL_PHASE_ID: {
28
+ readonly STARTING_POINT: "starting_point";
29
+ readonly CHECKPOINT_1: "checkpoint_1";
30
+ readonly CHECKPOINT_2: "checkpoint_2";
31
+ readonly LAP_COMPLETION: "lap_completion";
32
+ };
33
+ export declare const TUTORIAL_LISTEN_EVENT_ON: {
34
+ readonly TIMEOUT: "timeout";
35
+ readonly WHEEL_BUTTON: "wheelButton";
36
+ readonly CHECKPOINT: "checkpoint";
37
+ };
38
+ export declare const TUTORIAL_STEERING_WHEEL_BUTTON: {
39
+ readonly RIGHT: "right";
40
+ readonly LEFT: "left";
41
+ readonly ANY: "any";
42
+ };
43
+ export declare const TUTORIAL_LOGICAL_CHECKPOINT: {
44
+ readonly CHECKPOINT_1: "checkpoint_1";
45
+ readonly CHECKPOINT_2: "checkpoint_2";
46
+ readonly CHECKPOINT_3_FINISH: "checkpoint_3_finish";
47
+ };
48
+ export declare const TUTORIAL_INPUT_SIGNAL_TYPE: {
49
+ readonly STEERING_WHEEL_BUTTON_PRESSED: "SteeringWheelButtonPressed";
50
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TUTORIAL_SCREEN_STEP = void 0;
3
+ exports.TUTORIAL_INPUT_SIGNAL_TYPE = exports.TUTORIAL_LOGICAL_CHECKPOINT = 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
5
  WELCOME: 'Welcome',
6
6
  PERSONAL_ITEMS: 'PersonalItems',
@@ -20,3 +20,34 @@ exports.TUTORIAL_SCREEN_STEP = {
20
20
  POWER_UP_RETURN_TO_HUD: 'PowerUpReturnToHud',
21
21
  TUTORIAL_COMPLETED: 'TutorialCompleted',
22
22
  };
23
+ exports.TUTORIAL_STATUS = {
24
+ PENDING: 'PENDING',
25
+ IN_PROGRESS: 'IN_PROGRESS',
26
+ COMPLETED: 'COMPLETED',
27
+ SKIPPED: 'SKIPPED',
28
+ CANCELLED: 'CANCELLED',
29
+ };
30
+ exports.TUTORIAL_PHASE_ID = {
31
+ STARTING_POINT: 'starting_point',
32
+ CHECKPOINT_1: 'checkpoint_1',
33
+ CHECKPOINT_2: 'checkpoint_2',
34
+ LAP_COMPLETION: 'lap_completion',
35
+ };
36
+ exports.TUTORIAL_LISTEN_EVENT_ON = {
37
+ TIMEOUT: 'timeout',
38
+ WHEEL_BUTTON: 'wheelButton',
39
+ CHECKPOINT: 'checkpoint',
40
+ };
41
+ exports.TUTORIAL_STEERING_WHEEL_BUTTON = {
42
+ RIGHT: 'right',
43
+ LEFT: 'left',
44
+ ANY: 'any',
45
+ };
46
+ exports.TUTORIAL_LOGICAL_CHECKPOINT = {
47
+ CHECKPOINT_1: 'checkpoint_1',
48
+ CHECKPOINT_2: 'checkpoint_2',
49
+ CHECKPOINT_3_FINISH: 'checkpoint_3_finish',
50
+ };
51
+ exports.TUTORIAL_INPUT_SIGNAL_TYPE = {
52
+ STEERING_WHEEL_BUTTON_PRESSED: 'SteeringWheelButtonPressed',
53
+ };