@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.
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@battle-racing/br-common-lib",
3
- "version": "6.2.0-rc.4",
3
+ "version": "6.2.0-rc.7",
4
4
  "description": "Common library for all Battle Racing Repositorios",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -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: 'step_welcome',
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: 5000,
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: 1,
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: 5000,
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: 2,
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: 3,
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.CHECKPOINT,
99
- target: TUTORIAL_CHECKPOINT_TARGET.TRACK,
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: 5000,
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.WHEEL_BUTTON,
182
- button: TUTORIAL_STEERING_WHEEL_BUTTON.ANY,
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 and Checkpoint 2 Target',
312
+ name: 'HUD Coins Explanation',
259
313
  screenStep: TUTORIAL_SCREEN_STEP.HUD_COINS,
260
314
  listenEvent: {
261
- on: TUTORIAL_LISTEN_EVENT_ON.CHECKPOINT,
262
- target: TUTORIAL_CHECKPOINT_TARGET.POWER_UP,
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.TIMEOUT,
289
- durationMs: 1000,
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.TIMEOUT,
308
- durationMs: 3000,
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({