@battle-racing/br-common-lib 6.2.1-rc.0 → 6.2.1-rc.2

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 (47) hide show
  1. package/dist/data/all-tutorial-steps.js +44 -4
  2. package/dist/domains/command/Command.schema.d.ts +100 -3
  3. package/dist/domains/command/Command.schema.js +1 -1
  4. package/dist/domains/damage/Damage.schema.d.ts +5 -0
  5. package/dist/domains/flow/Flow.schema.d.ts +45 -1
  6. package/dist/domains/hardware/KartHardwareState.schema.d.ts +4 -1
  7. package/dist/domains/hardware/KartHardwareState.schema.js +2 -1
  8. package/dist/domains/hardware/ModuleStatus.schema.d.ts +5 -0
  9. package/dist/domains/hardware/rgb/RGB.const.d.ts +4 -0
  10. package/dist/domains/hardware/rgb/RGB.const.js +5 -1
  11. package/dist/domains/hardware/rgb/RGB.schema.d.ts +21 -0
  12. package/dist/domains/hardware/rgb/RGB.schema.js +8 -1
  13. package/dist/domains/hardware/rgb/RGB.types.d.ts +3 -1
  14. package/dist/domains/hardware/screen/ScreenDebug.schema.d.ts +4 -1
  15. package/dist/domains/hardware/screen/ScreenTutorial.schema.d.ts +27 -0
  16. package/dist/domains/hardware/screen/ScreenTutorial.schema.js +3 -1
  17. package/dist/domains/hardware/sound/Sound.const.d.ts +4 -0
  18. package/dist/domains/hardware/sound/Sound.const.js +5 -1
  19. package/dist/domains/hardware/sound/Sound.schema.d.ts +9 -0
  20. package/dist/domains/hardware/sound/Sound.schema.js +1 -0
  21. package/dist/domains/kart/Kart.schema.d.ts +4 -1
  22. package/dist/domains/powerUp/PowerUp.schema.d.ts +135 -3
  23. package/dist/domains/sounds/Sounds.const.d.ts +5 -0
  24. package/dist/domains/sounds/Sounds.const.js +5 -0
  25. package/dist/domains/sounds/Sounds.schema.d.ts +5 -0
  26. package/dist/domains/tutorial/Tutorial.const.d.ts +1 -0
  27. package/dist/domains/tutorial/Tutorial.const.js +1 -0
  28. package/dist/domains/tutorial/Tutorial.schema.d.ts +10 -0
  29. package/dist/domains/tutorial/Tutorial.schema.js +9 -2
  30. package/dist/domains/tutorial/Tutorial.types.d.ts +2 -1
  31. package/dist/domains/tutorial/TutorialConfig.schema.d.ts +224 -3
  32. package/dist/domains/tutorial/TutorialConfig.schema.js +7 -1
  33. package/package.json +1 -1
  34. package/src/data/all-tutorial-steps.ts +46 -4
  35. package/src/domains/command/Command.schema.ts +1 -1
  36. package/src/domains/hardware/KartHardwareState.schema.ts +3 -2
  37. package/src/domains/hardware/rgb/RGB.const.ts +5 -0
  38. package/src/domains/hardware/rgb/RGB.schema.ts +10 -1
  39. package/src/domains/hardware/rgb/RGB.types.ts +4 -0
  40. package/src/domains/hardware/screen/ScreenTutorial.schema.ts +3 -1
  41. package/src/domains/hardware/sound/Sound.const.ts +5 -0
  42. package/src/domains/hardware/sound/Sound.schema.ts +2 -1
  43. package/src/domains/sounds/Sounds.const.ts +5 -0
  44. package/src/domains/tutorial/Tutorial.const.ts +1 -0
  45. package/src/domains/tutorial/Tutorial.schema.ts +9 -1
  46. package/src/domains/tutorial/Tutorial.types.ts +2 -0
  47. package/src/domains/tutorial/TutorialConfig.schema.ts +7 -0
@@ -58,6 +58,13 @@ exports.allTutorialConfig = {
58
58
  step: domains_1.TUTORIAL_SCREEN_STEP.COUNTDOWN,
59
59
  },
60
60
  },
61
+ {
62
+ module: 'sound',
63
+ action: 'play',
64
+ params: {
65
+ soundName: domains_1.SOUND_NAME.TUTORIAL_COUNTDOWN,
66
+ },
67
+ },
61
68
  ],
62
69
  },
63
70
  {
@@ -67,7 +74,7 @@ exports.allTutorialConfig = {
67
74
  screenStep: domains_1.TUTORIAL_SCREEN_STEP.WELCOME,
68
75
  listenEvent: {
69
76
  on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
70
- durationMs: 6000,
77
+ durationMs: 5000,
71
78
  },
72
79
  triggerCommands: [
73
80
  ...stopKartCommands,
@@ -94,7 +101,7 @@ exports.allTutorialConfig = {
94
101
  screenStep: domains_1.TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
95
102
  listenEvent: {
96
103
  on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
97
- durationMs: 4000,
104
+ durationMs: 5000,
98
105
  },
99
106
  triggerCommands: [
100
107
  ...stopKartCommands,
@@ -105,6 +112,13 @@ exports.allTutorialConfig = {
105
112
  step: domains_1.TUTORIAL_SCREEN_STEP.PERSONAL_ITEMS,
106
113
  },
107
114
  },
115
+ {
116
+ module: 'sound',
117
+ action: 'play',
118
+ params: {
119
+ soundName: domains_1.SOUND_NAME.TUTORIAL_SECURE_BELONGINGS,
120
+ },
121
+ },
108
122
  ],
109
123
  },
110
124
  {
@@ -125,6 +139,13 @@ exports.allTutorialConfig = {
125
139
  step: domains_1.TUTORIAL_SCREEN_STEP.SEAT_BELT,
126
140
  },
127
141
  },
142
+ {
143
+ module: 'sound',
144
+ action: 'play',
145
+ params: {
146
+ soundName: domains_1.SOUND_NAME.TUTORIAL_BUCKLE_UP,
147
+ },
148
+ },
128
149
  ],
129
150
  },
130
151
  {
@@ -181,6 +202,10 @@ exports.allTutorialConfig = {
181
202
  id: domains_1.TUTORIAL_PHASE_ID.CONTROLS_AND_HUD,
182
203
  name: 'Controls and HUD',
183
204
  index: 1,
205
+ inputFeedbackSound: {
206
+ soundName: domains_1.SOUND_NAME.TUTORIAL_BUTTON_PRESS,
207
+ channel: domains_1.SOUND_CHANNEL.EFFECT,
208
+ },
184
209
  steps: [
185
210
  {
186
211
  id: 'step_wheel_0_of_2',
@@ -415,6 +440,13 @@ exports.allTutorialConfig = {
415
440
  hud: defaultTutorialHud,
416
441
  },
417
442
  },
443
+ {
444
+ module: 'sound',
445
+ action: 'play',
446
+ params: {
447
+ soundName: domains_1.SOUND_NAME.POWER_UP_SELECTION,
448
+ },
449
+ },
418
450
  ],
419
451
  },
420
452
  {
@@ -452,8 +484,7 @@ exports.allTutorialConfig = {
452
484
  name: 'Tutorial Completed Screen',
453
485
  screenStep: domains_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED,
454
486
  listenEvent: {
455
- on: domains_1.TUTORIAL_LISTEN_EVENT_ON.TIMEOUT,
456
- durationMs: 5000,
487
+ on: domains_1.TUTORIAL_LISTEN_EVENT_ON.OPERATOR,
457
488
  },
458
489
  triggerCommands: [
459
490
  ...stopKartCommands,
@@ -462,6 +493,15 @@ exports.allTutorialConfig = {
462
493
  action: 'showTutorialView',
463
494
  params: {
464
495
  step: domains_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED,
496
+ hud: defaultTutorialHud,
497
+ },
498
+ },
499
+ {
500
+ module: 'sound',
501
+ action: 'play',
502
+ params: {
503
+ soundName: domains_1.SOUND_NAME.TUTORIAL_FINAL,
504
+ durationMs: domains_1.PLAY_SOUND_DURATION.INFINITE,
465
505
  },
466
506
  },
467
507
  ],
@@ -53,10 +53,19 @@ export declare const playSoundActionCommandOptionsSchema: z.ZodObject<{
53
53
  readonly SYSTEM_STARTED: "system_started.mp3";
54
54
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
55
55
  readonly WINNER_LAUGH: "winner_laugh.mp3";
56
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
56
57
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
58
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
59
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
57
60
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
61
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
62
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
58
63
  }>;
59
- durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
64
+ channel: z.ZodOptional<z.ZodEnum<{
65
+ readonly MAIN: "main";
66
+ readonly EFFECT: "effect";
67
+ }>>;
68
+ durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
60
69
  }, z.core.$strip>;
61
70
  export declare const soundModuleCommandSchema: z.ZodObject<{
62
71
  module: z.ZodLiteral<"sound">;
@@ -86,10 +95,19 @@ export declare const soundModuleCommandSchema: z.ZodObject<{
86
95
  readonly SYSTEM_STARTED: "system_started.mp3";
87
96
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
88
97
  readonly WINNER_LAUGH: "winner_laugh.mp3";
98
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
89
99
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
100
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
101
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
90
102
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
103
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
104
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
91
105
  }>;
92
- durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
106
+ channel: z.ZodOptional<z.ZodEnum<{
107
+ readonly MAIN: "main";
108
+ readonly EFFECT: "effect";
109
+ }>>;
110
+ durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
93
111
  }, z.core.$strip>;
94
112
  }, z.core.$strip>;
95
113
  export declare const ballSensorDiskThrowerModuleCommandSchema: z.ZodUnion<readonly [z.ZodObject<{
@@ -336,6 +354,10 @@ export declare const rgbModuleCommandSchema: z.ZodUnion<readonly [z.ZodObject<{
336
354
  }>;
337
355
  brightness: z.ZodNumber;
338
356
  effectTime: z.ZodNumber;
357
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
358
+ readonly FRONT: "front";
359
+ readonly BACK: "back";
360
+ }>>>;
339
361
  }, z.core.$strip>;
340
362
  }, z.core.$strip>, z.ZodObject<{
341
363
  module: z.ZodLiteral<"rgb">;
@@ -361,6 +383,10 @@ export declare const rgbModuleCommandSchema: z.ZodUnion<readonly [z.ZodObject<{
361
383
  readonly EMERGENCY_EFFECT: "Emergency Effect";
362
384
  readonly WAIT_EFFECT: "Wait Effect";
363
385
  }>;
386
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
387
+ readonly FRONT: "front";
388
+ readonly BACK: "back";
389
+ }>>>;
364
390
  }, z.core.$strip>;
365
391
  }, z.core.$strip>]>;
366
392
  export declare const leftStarBackLaserModuleCommandSchema: z.ZodUnion<readonly [z.ZodObject<{
@@ -958,6 +984,33 @@ export declare const screenModuleCommandSchema: z.ZodUnion<readonly [z.ZodObject
958
984
  revision: z.ZodOptional<z.ZodNumber>;
959
985
  presentationRevision: z.ZodOptional<z.ZodNumber>;
960
986
  step: z.ZodLiteral<"TutorialCompleted">;
987
+ hud: z.ZodOptional<z.ZodObject<{
988
+ coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
989
+ position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
990
+ current: z.ZodNullable<z.ZodNumber>;
991
+ total: z.ZodNullable<z.ZodNumber>;
992
+ }, z.core.$strip>>>;
993
+ laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
994
+ current: z.ZodNullable<z.ZodNumber>;
995
+ total: z.ZodNullable<z.ZodNumber>;
996
+ }, z.core.$strip>>>;
997
+ gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
998
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
999
+ seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1000
+ }, z.core.$strip>>>;
1001
+ powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
1002
+ readonly BATTLE_GOD: "Battle God";
1003
+ readonly BATTLE_STAR: "Battle Star";
1004
+ readonly BATTLE_SHOT: "Battle Shot";
1005
+ readonly BATTLE_NITRO: "Battle Nitro";
1006
+ readonly BATTLE_PULSE: "Battle Pulse";
1007
+ readonly BATTLE_TRAP: "Battle Trap";
1008
+ readonly BATTLE_SHIELD: "Battle Shield";
1009
+ readonly BATTLE_TURBO: "Battle Turbo";
1010
+ readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
1011
+ }>, z.ZodLiteral<"Clear PowerUp">]>>>;
1012
+ powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1013
+ }, z.core.$strip>>;
961
1014
  }, z.core.$strip>], "step">;
962
1015
  }, z.core.$strip>, z.ZodObject<{
963
1016
  module: z.ZodLiteral<"screen">;
@@ -1271,6 +1324,10 @@ export declare const allCommandsConfigSchema: z.ZodIntersection<z.ZodUnion<reado
1271
1324
  }>;
1272
1325
  brightness: z.ZodNumber;
1273
1326
  effectTime: z.ZodNumber;
1327
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1328
+ readonly FRONT: "front";
1329
+ readonly BACK: "back";
1330
+ }>>>;
1274
1331
  }, z.core.$strip>;
1275
1332
  }, z.core.$strip>, z.ZodObject<{
1276
1333
  module: z.ZodLiteral<"rgb">;
@@ -1296,6 +1353,10 @@ export declare const allCommandsConfigSchema: z.ZodIntersection<z.ZodUnion<reado
1296
1353
  readonly EMERGENCY_EFFECT: "Emergency Effect";
1297
1354
  readonly WAIT_EFFECT: "Wait Effect";
1298
1355
  }>;
1356
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1357
+ readonly FRONT: "front";
1358
+ readonly BACK: "back";
1359
+ }>>>;
1299
1360
  }, z.core.$strip>;
1300
1361
  }, z.core.$strip>]>, z.ZodUnion<readonly [z.ZodObject<{
1301
1362
  module: z.ZodLiteral<"speed">;
@@ -1910,6 +1971,33 @@ export declare const allCommandsConfigSchema: z.ZodIntersection<z.ZodUnion<reado
1910
1971
  revision: z.ZodOptional<z.ZodNumber>;
1911
1972
  presentationRevision: z.ZodOptional<z.ZodNumber>;
1912
1973
  step: z.ZodLiteral<"TutorialCompleted">;
1974
+ hud: z.ZodOptional<z.ZodObject<{
1975
+ coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
1976
+ position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
1977
+ current: z.ZodNullable<z.ZodNumber>;
1978
+ total: z.ZodNullable<z.ZodNumber>;
1979
+ }, z.core.$strip>>>;
1980
+ laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
1981
+ current: z.ZodNullable<z.ZodNumber>;
1982
+ total: z.ZodNullable<z.ZodNumber>;
1983
+ }, z.core.$strip>>>;
1984
+ gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
1985
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1986
+ seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1987
+ }, z.core.$strip>>>;
1988
+ powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
1989
+ readonly BATTLE_GOD: "Battle God";
1990
+ readonly BATTLE_STAR: "Battle Star";
1991
+ readonly BATTLE_SHOT: "Battle Shot";
1992
+ readonly BATTLE_NITRO: "Battle Nitro";
1993
+ readonly BATTLE_PULSE: "Battle Pulse";
1994
+ readonly BATTLE_TRAP: "Battle Trap";
1995
+ readonly BATTLE_SHIELD: "Battle Shield";
1996
+ readonly BATTLE_TURBO: "Battle Turbo";
1997
+ readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
1998
+ }>, z.ZodLiteral<"Clear PowerUp">]>>>;
1999
+ powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2000
+ }, z.core.$strip>>;
1913
2001
  }, z.core.$strip>], "step">;
1914
2002
  }, z.core.$strip>, z.ZodObject<{
1915
2003
  module: z.ZodLiteral<"screen">;
@@ -1975,10 +2063,19 @@ export declare const allCommandsConfigSchema: z.ZodIntersection<z.ZodUnion<reado
1975
2063
  readonly SYSTEM_STARTED: "system_started.mp3";
1976
2064
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
1977
2065
  readonly WINNER_LAUGH: "winner_laugh.mp3";
2066
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
1978
2067
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
2068
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
2069
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
1979
2070
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
2071
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
2072
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
1980
2073
  }>;
1981
- durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
2074
+ channel: z.ZodOptional<z.ZodEnum<{
2075
+ readonly MAIN: "main";
2076
+ readonly EFFECT: "effect";
2077
+ }>>;
2078
+ durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
1982
2079
  }, z.core.$strip>;
1983
2080
  }, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
1984
2081
  module: z.ZodLiteral<"emergency">;
@@ -26,7 +26,7 @@ exports.speedModuleCommandSchema = zod_1.z.union([
26
26
  ]);
27
27
  // --- Sound Commands ---
28
28
  exports.playSoundActionCommandOptionsSchema = hardware_1.playSoundOptionsSchema.omit({ durationMs: true }).extend({
29
- durationMs: arithmeticOrNumberSchema.optional(),
29
+ durationMs: zod_1.z.union([hardware_1.playSoundOptionsSchema.shape.durationMs.unwrap(), utils_1.arithmeticExpressionSchema]).optional(),
30
30
  });
31
31
  exports.soundModuleCommandSchema = zod_1.z.object({
32
32
  module: zod_1.z.literal('sound'),
@@ -60,8 +60,13 @@ export declare const damageSchema: z.ZodObject<{
60
60
  readonly SYSTEM_STARTED: "system_started.mp3";
61
61
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
62
62
  readonly WINNER_LAUGH: "winner_laugh.mp3";
63
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
63
64
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
65
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
66
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
64
67
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
68
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
69
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
65
70
  }>;
66
71
  rgbEffect: z.ZodEnum<{
67
72
  readonly SHOW_COLOR_KART: "Show Color Kart";
@@ -244,6 +244,10 @@ export declare const flowSchema: z.ZodObject<{
244
244
  }>;
245
245
  brightness: z.ZodNumber;
246
246
  effectTime: z.ZodNumber;
247
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
248
+ readonly FRONT: "front";
249
+ readonly BACK: "back";
250
+ }>>>;
247
251
  }, z.core.$strip>;
248
252
  }, z.core.$strip>, z.ZodObject<{
249
253
  module: z.ZodLiteral<"rgb">;
@@ -269,6 +273,10 @@ export declare const flowSchema: z.ZodObject<{
269
273
  readonly EMERGENCY_EFFECT: "Emergency Effect";
270
274
  readonly WAIT_EFFECT: "Wait Effect";
271
275
  }>;
276
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
277
+ readonly FRONT: "front";
278
+ readonly BACK: "back";
279
+ }>>>;
272
280
  }, z.core.$strip>;
273
281
  }, z.core.$strip>]>, z.ZodUnion<readonly [z.ZodObject<{
274
282
  module: z.ZodLiteral<"speed">;
@@ -883,6 +891,33 @@ export declare const flowSchema: z.ZodObject<{
883
891
  revision: z.ZodOptional<z.ZodNumber>;
884
892
  presentationRevision: z.ZodOptional<z.ZodNumber>;
885
893
  step: z.ZodLiteral<"TutorialCompleted">;
894
+ hud: z.ZodOptional<z.ZodObject<{
895
+ coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
896
+ position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
897
+ current: z.ZodNullable<z.ZodNumber>;
898
+ total: z.ZodNullable<z.ZodNumber>;
899
+ }, z.core.$strip>>>;
900
+ laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
901
+ current: z.ZodNullable<z.ZodNumber>;
902
+ total: z.ZodNullable<z.ZodNumber>;
903
+ }, z.core.$strip>>>;
904
+ gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
905
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
906
+ seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
907
+ }, z.core.$strip>>>;
908
+ powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
909
+ readonly BATTLE_GOD: "Battle God";
910
+ readonly BATTLE_STAR: "Battle Star";
911
+ readonly BATTLE_SHOT: "Battle Shot";
912
+ readonly BATTLE_NITRO: "Battle Nitro";
913
+ readonly BATTLE_PULSE: "Battle Pulse";
914
+ readonly BATTLE_TRAP: "Battle Trap";
915
+ readonly BATTLE_SHIELD: "Battle Shield";
916
+ readonly BATTLE_TURBO: "Battle Turbo";
917
+ readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
918
+ }>, z.ZodLiteral<"Clear PowerUp">]>>>;
919
+ powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
920
+ }, z.core.$strip>>;
886
921
  }, z.core.$strip>], "step">;
887
922
  }, z.core.$strip>, z.ZodObject<{
888
923
  module: z.ZodLiteral<"screen">;
@@ -948,10 +983,19 @@ export declare const flowSchema: z.ZodObject<{
948
983
  readonly SYSTEM_STARTED: "system_started.mp3";
949
984
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
950
985
  readonly WINNER_LAUGH: "winner_laugh.mp3";
986
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
951
987
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
988
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
989
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
952
990
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
991
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
992
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
953
993
  }>;
954
- durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
994
+ channel: z.ZodOptional<z.ZodEnum<{
995
+ readonly MAIN: "main";
996
+ readonly EFFECT: "effect";
997
+ }>>;
998
+ durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodString]>]>>;
955
999
  }, z.core.$strip>;
956
1000
  }, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
957
1001
  module: z.ZodLiteral<"emergency">;
@@ -13,7 +13,10 @@ export declare const kartHardwareStateSchema: z.ZodObject<{
13
13
  current: z.ZodNumber;
14
14
  configured: z.ZodNumber;
15
15
  }, z.core.$strip>>;
16
- rgb: z.ZodNullable<z.ZodEnum<{
16
+ rgb: z.ZodRecord<z.ZodEnum<{
17
+ readonly FRONT: "front";
18
+ readonly BACK: "back";
19
+ }> & z.core.$partial, z.ZodEnum<{
17
20
  readonly SHOWING_COLOR: "Showing Color";
18
21
  readonly NOT_CONFIGURED: "Not Configured";
19
22
  readonly CONFIGURING_RGB: "Configuring RGB";
@@ -16,7 +16,8 @@ exports.kartHardwareStateSchema = zod_1.z.object({
16
16
  configured: zod_1.z.number(),
17
17
  })
18
18
  .nullable(),
19
- rgb: rgb_1.rgbStatusSchema.nullable(),
19
+ // Only the configured RGB modules have a key
20
+ rgb: zod_1.z.partialRecord(rgb_1.rgbModuleLabelSchema, rgb_1.rgbStatusSchema),
20
21
  flag: zod_1.z
21
22
  .object({
22
23
  status: flag_1.flagStatusSchema,
@@ -28,6 +28,11 @@ export declare const moduleStatusSchema: z.ZodUnion<readonly [z.ZodObject<{
28
28
  DACVoltage: z.ZodNumber;
29
29
  currentDefaultSpeedConfig: z.ZodNumber;
30
30
  }, z.core.$strip>, z.ZodObject<{
31
+ label: z.ZodEnum<{
32
+ readonly FRONT: "front";
33
+ readonly BACK: "back";
34
+ }>;
35
+ address: z.ZodNumber;
31
36
  rgbStatus: z.ZodEnum<{
32
37
  readonly SHOWING_COLOR: "Showing Color";
33
38
  readonly NOT_CONFIGURED: "Not Configured";
@@ -10,3 +10,7 @@ export declare const RGB_ACTION_COMMANDS: {
10
10
  readonly EXEC: "Exec";
11
11
  readonly CONFIGURE: "Configure";
12
12
  };
13
+ export declare const RGB_MODULE_LABEL: {
14
+ readonly FRONT: "front";
15
+ readonly BACK: "back";
16
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RGB_ACTION_COMMANDS = exports.RGB_STATUS = void 0;
3
+ exports.RGB_MODULE_LABEL = exports.RGB_ACTION_COMMANDS = exports.RGB_STATUS = void 0;
4
4
  exports.RGB_STATUS = {
5
5
  SHOWING_COLOR: 'Showing Color',
6
6
  NOT_CONFIGURED: 'Not Configured',
@@ -13,3 +13,7 @@ exports.RGB_ACTION_COMMANDS = {
13
13
  EXEC: 'Exec',
14
14
  CONFIGURE: 'Configure',
15
15
  };
16
+ exports.RGB_MODULE_LABEL = {
17
+ FRONT: 'front',
18
+ BACK: 'back',
19
+ };
@@ -11,7 +11,20 @@ export declare const rgbActionCommandSchema: z.ZodEnum<{
11
11
  readonly EXEC: "Exec";
12
12
  readonly CONFIGURE: "Configure";
13
13
  }>;
14
+ export declare const rgbModuleLabelSchema: z.ZodEnum<{
15
+ readonly FRONT: "front";
16
+ readonly BACK: "back";
17
+ }>;
18
+ export declare const rgbTargetsSchema: z.ZodOptional<z.ZodArray<z.ZodEnum<{
19
+ readonly FRONT: "front";
20
+ readonly BACK: "back";
21
+ }>>>;
14
22
  export declare const rgbModuleStatusSchema: z.ZodObject<{
23
+ label: z.ZodEnum<{
24
+ readonly FRONT: "front";
25
+ readonly BACK: "back";
26
+ }>;
27
+ address: z.ZodNumber;
15
28
  rgbStatus: z.ZodEnum<{
16
29
  readonly SHOWING_COLOR: "Showing Color";
17
30
  readonly NOT_CONFIGURED: "Not Configured";
@@ -52,6 +65,10 @@ export declare const rgbConfigurationOptionsSchema: z.ZodObject<{
52
65
  }>;
53
66
  brightness: z.ZodNumber;
54
67
  effectTime: z.ZodNumber;
68
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
69
+ readonly FRONT: "front";
70
+ readonly BACK: "back";
71
+ }>>>;
55
72
  }, z.core.$strip>;
56
73
  export declare const rgbShowEffectOptionsSchema: z.ZodObject<{
57
74
  effect: z.ZodEnum<{
@@ -74,4 +91,8 @@ export declare const rgbShowEffectOptionsSchema: z.ZodObject<{
74
91
  readonly EMERGENCY_EFFECT: "Emergency Effect";
75
92
  readonly WAIT_EFFECT: "Wait Effect";
76
93
  }>;
94
+ targets: z.ZodOptional<z.ZodArray<z.ZodEnum<{
95
+ readonly FRONT: "front";
96
+ readonly BACK: "back";
97
+ }>>>;
77
98
  }, z.core.$strip>;
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rgbShowEffectOptionsSchema = exports.rgbConfigurationOptionsSchema = exports.rgbModuleStatusSchema = exports.rgbActionCommandSchema = exports.rgbStatusSchema = void 0;
3
+ exports.rgbShowEffectOptionsSchema = exports.rgbConfigurationOptionsSchema = exports.rgbModuleStatusSchema = exports.rgbTargetsSchema = exports.rgbModuleLabelSchema = exports.rgbActionCommandSchema = exports.rgbStatusSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const color_1 = require("../../color");
6
6
  const kart_effect_1 = require("../../hardware/kart-effect");
7
7
  const RGB_const_1 = require("./RGB.const");
8
8
  exports.rgbStatusSchema = zod_1.z.enum(RGB_const_1.RGB_STATUS);
9
9
  exports.rgbActionCommandSchema = zod_1.z.enum(RGB_const_1.RGB_ACTION_COMMANDS);
10
+ exports.rgbModuleLabelSchema = zod_1.z.enum(RGB_const_1.RGB_MODULE_LABEL);
11
+ // When targets is missing the command goes to every configured RGB module
12
+ exports.rgbTargetsSchema = zod_1.z.array(exports.rgbModuleLabelSchema).min(1).optional();
10
13
  exports.rgbModuleStatusSchema = zod_1.z.object({
14
+ label: exports.rgbModuleLabelSchema,
15
+ address: zod_1.z.number(),
11
16
  rgbStatus: exports.rgbStatusSchema,
12
17
  kartColor: color_1.colorNameSchema,
13
18
  });
@@ -15,7 +20,9 @@ exports.rgbConfigurationOptionsSchema = zod_1.z.object({
15
20
  kartColor: color_1.colorNameSchema,
16
21
  brightness: zod_1.z.number().min(0).max(100),
17
22
  effectTime: zod_1.z.number().min(1).max(25),
23
+ targets: exports.rgbTargetsSchema,
18
24
  });
19
25
  exports.rgbShowEffectOptionsSchema = zod_1.z.object({
20
26
  effect: kart_effect_1.kartEffectSchema,
27
+ targets: exports.rgbTargetsSchema,
21
28
  });
@@ -1,7 +1,9 @@
1
1
  import { z } from 'zod';
2
- import { rgbActionCommandSchema, rgbConfigurationOptionsSchema, rgbModuleStatusSchema, rgbShowEffectOptionsSchema, rgbStatusSchema } from './RGB.schema';
2
+ import { rgbActionCommandSchema, rgbConfigurationOptionsSchema, rgbModuleLabelSchema, rgbModuleStatusSchema, rgbShowEffectOptionsSchema, rgbStatusSchema, rgbTargetsSchema } from './RGB.schema';
3
3
  export type RGBStatus = z.infer<typeof rgbStatusSchema>;
4
4
  export type RGBModuleStatus = z.infer<typeof rgbModuleStatusSchema>;
5
5
  export type RGBConfigurationOptions = z.infer<typeof rgbConfigurationOptionsSchema>;
6
6
  export type RGBShowEffectOptions = z.infer<typeof rgbShowEffectOptionsSchema>;
7
7
  export type RGBActionCommand = z.infer<typeof rgbActionCommandSchema>;
8
+ export type RGBModuleLabel = z.infer<typeof rgbModuleLabelSchema>;
9
+ export type RGBTargets = z.infer<typeof rgbTargetsSchema>;
@@ -13,7 +13,10 @@ export declare const screenDebugViewInputSchema: z.ZodObject<{
13
13
  current: z.ZodNumber;
14
14
  configured: z.ZodNumber;
15
15
  }, z.core.$strip>>;
16
- rgb: z.ZodNullable<z.ZodEnum<{
16
+ rgb: z.ZodRecord<z.ZodEnum<{
17
+ readonly FRONT: "front";
18
+ readonly BACK: "back";
19
+ }> & z.core.$partial, z.ZodEnum<{
17
20
  readonly SHOWING_COLOR: "Showing Color";
18
21
  readonly NOT_CONFIGURED: "Not Configured";
19
22
  readonly CONFIGURING_RGB: "Configuring RGB";
@@ -391,4 +391,31 @@ export declare const screenTutorialViewInputSchema: z.ZodDiscriminatedUnion<[z.Z
391
391
  revision: z.ZodOptional<z.ZodNumber>;
392
392
  presentationRevision: z.ZodOptional<z.ZodNumber>;
393
393
  step: z.ZodLiteral<"TutorialCompleted">;
394
+ hud: z.ZodOptional<z.ZodObject<{
395
+ coins: z.ZodNonOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
396
+ position: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
397
+ current: z.ZodNullable<z.ZodNumber>;
398
+ total: z.ZodNullable<z.ZodNumber>;
399
+ }, z.core.$strip>>>;
400
+ laps: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
401
+ current: z.ZodNullable<z.ZodNumber>;
402
+ total: z.ZodNullable<z.ZodNumber>;
403
+ }, z.core.$strip>>>;
404
+ gameTimeLeft: z.ZodNonOptional<z.ZodOptional<z.ZodObject<{
405
+ minutes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
406
+ seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
407
+ }, z.core.$strip>>>;
408
+ powerUp: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodEnum<{
409
+ readonly BATTLE_GOD: "Battle God";
410
+ readonly BATTLE_STAR: "Battle Star";
411
+ readonly BATTLE_SHOT: "Battle Shot";
412
+ readonly BATTLE_NITRO: "Battle Nitro";
413
+ readonly BATTLE_PULSE: "Battle Pulse";
414
+ readonly BATTLE_TRAP: "Battle Trap";
415
+ readonly BATTLE_SHIELD: "Battle Shield";
416
+ readonly BATTLE_TURBO: "Battle Turbo";
417
+ readonly BATTLE_BLUE_SHOT: "Battle Blue Shot";
418
+ }>, z.ZodLiteral<"Clear PowerUp">]>>>;
419
+ powerUpAnimationTimeSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
420
+ }, z.core.$strip>>;
394
421
  }, z.core.$strip>], "step">;
@@ -50,5 +50,7 @@ exports.screenTutorialViewInputSchema = zod_1.z.discriminatedUnion('step', [
50
50
  createHudTutorialStepSchema(Tutorial_const_1.TUTORIAL_SCREEN_STEP.POWER_UP_ROULETTE),
51
51
  createHudTutorialStepSchema(Tutorial_const_1.TUTORIAL_SCREEN_STEP.POWER_UP_NITRO_READY),
52
52
  createHudTutorialStepSchema(Tutorial_const_1.TUTORIAL_SCREEN_STEP.POWER_UP_RETURN_TO_HUD),
53
- createStaticTutorialStepSchema(Tutorial_const_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED),
53
+ createStaticTutorialStepSchema(Tutorial_const_1.TUTORIAL_SCREEN_STEP.TUTORIAL_COMPLETED).extend({
54
+ hud: exports.screenTutorialHudSchema.optional(),
55
+ }),
54
56
  ]);
@@ -1,6 +1,10 @@
1
1
  export declare const PLAY_SOUND_DURATION: {
2
2
  readonly INFINITE: "infinite";
3
3
  };
4
+ export declare const SOUND_CHANNEL: {
5
+ readonly MAIN: "main";
6
+ readonly EFFECT: "effect";
7
+ };
4
8
  export declare const SOUND_ACTION_COMMAND: {
5
9
  readonly PLAY: "Play";
6
10
  };
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SOUND_ACTION_COMMAND = exports.PLAY_SOUND_DURATION = void 0;
3
+ exports.SOUND_ACTION_COMMAND = exports.SOUND_CHANNEL = exports.PLAY_SOUND_DURATION = void 0;
4
4
  exports.PLAY_SOUND_DURATION = {
5
5
  INFINITE: 'infinite',
6
6
  };
7
+ exports.SOUND_CHANNEL = {
8
+ MAIN: 'main',
9
+ EFFECT: 'effect',
10
+ };
7
11
  exports.SOUND_ACTION_COMMAND = {
8
12
  PLAY: 'Play',
9
13
  };
@@ -27,8 +27,17 @@ export declare const playSoundOptionsSchema: z.ZodObject<{
27
27
  readonly SYSTEM_STARTED: "system_started.mp3";
28
28
  readonly WARNING_ALERT_THIS_IS_NOT_A_TEST: "warning_alert_this_is_not_a_test.mp3";
29
29
  readonly WINNER_LAUGH: "winner_laugh.mp3";
30
+ readonly TUTORIAL_COUNTDOWN: "tutorial/3,2,1 GO.mp3";
30
31
  readonly TUTORIAL_WELCOME: "tutorial/welcome_to_battle_racing.mp3";
32
+ readonly TUTORIAL_SECURE_BELONGINGS: "tutorial/secure_belongins.mp3";
33
+ readonly TUTORIAL_BUCKLE_UP: "tutorial/buckle_up.mp3";
31
34
  readonly TUTORIAL_GAS_PEDAL: "tutorial/gas_pedal.mp3";
35
+ readonly TUTORIAL_BUTTON_PRESS: "tutorial/button_press.mp3";
36
+ readonly TUTORIAL_FINAL: "tutorial/final_tutorial.mp3";
32
37
  }>;
33
38
  durationMs: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>>;
39
+ channel: z.ZodOptional<z.ZodEnum<{
40
+ readonly MAIN: "main";
41
+ readonly EFFECT: "effect";
42
+ }>>;
34
43
  }, z.core.$strip>;
@@ -8,4 +8,5 @@ exports.soundActionCommandSchema = zod_1.z.enum(Sound_const_1.SOUND_ACTION_COMMA
8
8
  exports.playSoundOptionsSchema = zod_1.z.object({
9
9
  soundName: sounds_1.soundNameSchema,
10
10
  durationMs: zod_1.z.union([zod_1.z.number(), zod_1.z.literal(Sound_const_1.PLAY_SOUND_DURATION.INFINITE)]).optional(),
11
+ channel: zod_1.z.enum(Sound_const_1.SOUND_CHANNEL).optional(),
11
12
  });
@@ -79,7 +79,10 @@ export declare const kartSchema: z.ZodObject<{
79
79
  current: z.ZodNumber;
80
80
  configured: z.ZodNumber;
81
81
  }, z.core.$strip>>;
82
- rgb: z.ZodNullable<z.ZodEnum<{
82
+ rgb: z.ZodRecord<z.ZodEnum<{
83
+ readonly FRONT: "front";
84
+ readonly BACK: "back";
85
+ }> & z.core.$partial, z.ZodEnum<{
83
86
  readonly SHOWING_COLOR: "Showing Color";
84
87
  readonly NOT_CONFIGURED: "Not Configured";
85
88
  readonly CONFIGURING_RGB: "Configuring RGB";