pixi-rainman-game-engine 0.2.24 → 0.2.26

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 (50) hide show
  1. package/dist/ComponentRegistry/ComponentRegistry.js +1 -2
  2. package/dist/ComponentRegistry/types.js +1 -1
  3. package/dist/Rainman/Rainman.js +2 -2
  4. package/dist/Rainman/appConfig.js +3 -3
  5. package/dist/Rainman/types.d.ts +2 -0
  6. package/dist/SettingsUI/components/AutoplaySettings/index.jsx +2 -2
  7. package/dist/SettingsUI/components/BuyFreeSpins/index.jsx +2 -1
  8. package/dist/SettingsUI/components/OptionButton/index.jsx +3 -2
  9. package/dist/SettingsUI/hooks/useBuyFreeSpins/useBuyFreeSpins.js +14 -10
  10. package/dist/application/ApiConfig/WinTypeId.d.ts +1 -1
  11. package/dist/application/SoundManager/types.d.ts +11 -0
  12. package/dist/application/SoundManager/types.js +4 -0
  13. package/dist/application/SpinLogic/util.js +5 -5
  14. package/dist/application/setup.js +1 -1
  15. package/dist/components/AbstractMainContainer/AbstractMainContainer.d.ts +206 -6
  16. package/dist/components/AbstractMainContainer/AbstractMainContainer.js +284 -7
  17. package/dist/components/buttons/BaseButton/ButtonState.js +1 -1
  18. package/dist/components/buttons/registrynames.d.ts +1 -0
  19. package/dist/components/buttons/registrynames.js +3 -2
  20. package/dist/components/frame/AbstractFrame.d.ts +4 -1
  21. package/dist/components/frame/AbstractFrame.js +2 -0
  22. package/dist/components/frame/constants.d.ts +8 -0
  23. package/dist/components/frame/constants.js +8 -1
  24. package/dist/components/symbols/AbstractSymbolsColumn.d.ts +2 -2
  25. package/dist/connectivity/ConnectionWrapper.d.ts +56 -3
  26. package/dist/connectivity/ConnectionWrapper.js +83 -18
  27. package/dist/connectivity/LocalConnectionWrapper.d.ts +1 -0
  28. package/dist/connectivity/LocalConnectionWrapper.js +10 -0
  29. package/dist/connectivity/serverConnection.d.ts +14 -6
  30. package/dist/connectivity/serverData.d.ts +15 -2
  31. package/dist/connectivity/spinData.js +2 -2
  32. package/dist/constants/gamePhase.js +1 -1
  33. package/dist/constants/transformation.js +1 -1
  34. package/dist/constants/wins.js +1 -1
  35. package/dist/controllers/AbstractController.d.ts +127 -6
  36. package/dist/controllers/AbstractController.js +164 -16
  37. package/dist/controllers/UiController.d.ts +2 -1
  38. package/dist/controllers/UiController.js +4 -2
  39. package/dist/loading/AbstractLoadingContainer.js +1 -1
  40. package/dist/stores/SettingsStore.d.ts +6 -2
  41. package/dist/stores/SettingsStore.js +10 -0
  42. package/dist/utils/common/functions.js +1 -1
  43. package/dist/utils/common/placementHelpers.js +1 -1
  44. package/dist/utils/common/types.d.ts +2 -1
  45. package/dist/winComponents/BaseWinContainer.d.ts +5 -1
  46. package/dist/winComponents/BaseWinContainer.js +18 -2
  47. package/dist/winComponents/BigWinContainer.js +1 -0
  48. package/dist/winComponents/TexturedText.d.ts +1 -0
  49. package/dist/winComponents/TexturedText.js +13 -2
  50. package/package.json +2 -2
@@ -9,10 +9,9 @@ import { openFullscreen } from "../utils";
9
9
  export class ComponentRegistry {
10
10
  registry = new Map();
11
11
  speedAdaptableComponents = new Set();
12
- incentiveJobsManager;
12
+ incentiveJobsManager = new TimedIncentiveController();
13
13
  speedLevelHandler = SpeedLevelHandler.initWithDefaultSpeedLevels();
14
14
  constructor(app) {
15
- this.incentiveJobsManager = new TimedIncentiveController();
16
15
  app.renderer.addListener("pointerdown", () => {
17
16
  this.setUserActivityTime();
18
17
  openFullscreen();
@@ -1 +1 @@
1
- import { AbstractColumnsContainer, AbstractFrame, AbstractInnerFrame, AutoplayButton, Background, BUTTONS, COMPONENTS, FreeSpinButton, InfoButton, MessageBox, MoreButton, NegButton, PlusButton, RefreshButton, SpeedControlButton, VolumeButton, } from "../components";
1
+ import { AbstractColumnsContainer, AbstractFrame, AbstractInnerFrame, AutoplayButton, Background, BUTTONS, COMPONENTS, FreeSpinButton, InfoButton, MessageBox, MoreButton, NegButton, PlusButton, RefreshButton, SpeedControlButton, VolumeButton } from "../components";
@@ -28,8 +28,8 @@ export class RainMan {
28
28
  RainMan.settingsStore = settingStore;
29
29
  RainMan.componentRegistry = new ComponentRegistry(app);
30
30
  RainMan.globals = {
31
- shouldShowModals: false,
32
- currency: Currencies["USD"]
31
+ currency: Currencies["USD"],
32
+ shouldShowModals: false
33
33
  };
34
34
  }
35
35
  }
@@ -47,10 +47,10 @@ export const defaultAppConfig = {
47
47
  superBonusWinMinimumTime: 2000,
48
48
  superBonusWinPhaseTimeout: 2600,
49
49
  speedPopupVisibleTime: 2000,
50
- minAnimationTime: 1000,
50
+ minAnimationTime: 1000
51
51
  },
52
52
  constants: {
53
53
  bigWinMultiplier: 30,
54
- bigWinTextOffset: 0,
55
- },
54
+ bigWinTextOffset: 0
55
+ }
56
56
  };
@@ -68,8 +68,10 @@ export type AppConfig = RequiredAppConfig & DeepPartial<OptionalAppConfig>;
68
68
  export interface Globals {
69
69
  currency: Currency;
70
70
  shouldShowModals: boolean;
71
+ getWebSocketConnection?: () => WebSocket;
71
72
  actionsAfterClosureWebSocket?: () => void;
72
73
  disableSpeedPopup?: (value: boolean) => void;
73
74
  handleDisablingButtons?: (value?: boolean) => void;
74
75
  throttledSpin?: () => void;
76
+ updateFreeSpinShown?: (value: number) => void;
75
77
  }
@@ -25,7 +25,7 @@ export const AutoplaySettings = observer(() => {
25
25
  }
26
26
  return {
27
27
  bottomLimitIndex,
28
- topLimitIndex,
28
+ topLimitIndex
29
29
  };
30
30
  };
31
31
  const updateLimitsBounds = (newLimit) => {
@@ -49,7 +49,7 @@ export const AutoplaySettings = observer(() => {
49
49
  useEffect(() => {
50
50
  updateLimitsBounds(initialAutoSpinCount);
51
51
  }, []);
52
- const { singleWinExceeds, balancedIncreased, balancedDecreased, howManyAutoSpinsLeft, infinitySpinsEnabled, setSingleWinExceeds, setBalancedIncreased, setBalancedDecreased, setAutoSpinsCount, flipInfinitySpinsFlag, resetAutoplaySettings, } = settingStore;
52
+ const { singleWinExceeds, balancedIncreased, balancedDecreased, howManyAutoSpinsLeft, infinitySpinsEnabled, setSingleWinExceeds, setBalancedIncreased, setBalancedDecreased, setAutoSpinsCount, flipInfinitySpinsFlag, resetAutoplaySettings } = settingStore;
53
53
  return (<div className="autoplay-settings">
54
54
  <CloseModalButton layerId={UI_ITEMS.autoplay}/>
55
55
  <div className="autoplay-settings__title">
@@ -1,4 +1,5 @@
1
1
  import "./buyFreeSpin.css";
2
+ import i18next from "i18next";
2
3
  import React, { useState } from "react";
3
4
  import { Currencies } from "ts-money";
4
5
  import { UI_ITEMS } from "../../../utils";
@@ -13,7 +14,7 @@ export const BuyFreeSpinModal = () => {
13
14
  return (<div className="buyFreeSpins__container">
14
15
  <CloseModalButton layerId={UI_ITEMS.freeSpin} afterClose={clearErrorMessage}/>
15
16
  <div className="buyFreeSpins__title-container">
16
- <h1>Buy Free Spins</h1>
17
+ <h1>{i18next.t("buyFreeSpins")}</h1>
17
18
  </div>
18
19
  <div className="buyFreeSpins__buttons-container">
19
20
  {freeSpinOptions.map((option) => (<OptionButton key={option.amount} setMessage={setErrorMessage} option={option} currency={currency}/>))}
@@ -20,10 +20,11 @@ export const OptionButton = ({ option, currency, setMessage }) => {
20
20
  return;
21
21
  }
22
22
  settingStore.setIsFreeSpinBought(true, data);
23
- settingStore.setRoundNumber(data.getRawData().round_number);
24
23
  settingStore.setFreeSpinNumberBought(option.amount);
25
- RainMan.globals.throttledSpin?.();
26
24
  settingStore.handleModalInvocation?.(UI_ITEMS.freeSpin);
25
+ settingStore.handleInvokeFreeSpinPlate?.(option.amount, false);
26
+ RainMan.globals.updateFreeSpinShown?.(option.amount);
27
+ settingStore.setRoundNumber(roundNumber);
27
28
  }
28
29
  catch (err) {
29
30
  setMessage(err.message);
@@ -1,12 +1,16 @@
1
+ import { autorun } from "mobx";
2
+ import { useEffect, useState } from "react";
3
+ import { RainMan } from "../../../Rainman";
1
4
  export const useBuyFreeSpinOptions = () => {
2
- return [
3
- {
4
- amount: 10,
5
- price: 35,
6
- },
7
- {
8
- amount: 30,
9
- price: 100,
10
- },
11
- ];
5
+ const [options, setOptions] = useState([]);
6
+ useEffect(() => {
7
+ const disposer = autorun(() => {
8
+ setOptions(Object.entries(RainMan.settingsStore.freeSpinBuyTable).map(([amount, multiplier]) => ({
9
+ amount: parseInt(amount, 10),
10
+ price: multiplier
11
+ })));
12
+ });
13
+ return () => disposer();
14
+ }, []);
15
+ return options;
12
16
  };
@@ -5,7 +5,7 @@
5
5
  * ```
6
6
  * interface WinTypeIds {
7
7
  * streak: "streak";
8
- * }
8
+ * }
9
9
  * ```
10
10
  * @interface WinTypeIds
11
11
  * @typedef {WinTypeIds}
@@ -57,7 +57,11 @@ export interface SoundTracks {
57
57
  specialSymbolOnReel: "specialSymbolOnReel";
58
58
  start: "start";
59
59
  symbol: "symbol";
60
+ rouletteStart: "rouletteStart";
61
+ rouletteLoop: "rouletteLoop";
62
+ rouletteStop: "rouletteStop";
60
63
  mysterySymbol: "mysterySymbol";
64
+ jackpotWin: "jackpotWin";
61
65
  }
62
66
  export type SoundTrack = SoundTracks[keyof SoundTracks];
63
67
  /**
@@ -82,6 +86,13 @@ export type SoundTrack = SoundTracks[keyof SoundTracks];
82
86
  * @property {string} specialSymbolOnReel - single reel stopping with special symbol like bonus or mystery
83
87
  * @property {string} start - on start spinning
84
88
  * @property {string} symbol - on symbol click and show payTable popup
89
+ * @property {string} lowWin - on low win - this sound is played when win of all streaks is less than x1 * bet
90
+ * @property {string} mediumWin - on medium win - this sound is played when win
91
+ * @property {string} highWin - on high win - this sound is played when win of all streaks is more than x5.1 * bet and less than x15 * bet
92
+ * @property {string} veryHighWin - on very high win - this sound is played when win of all streaks is more than x15.1 * bet
93
+ * @property {string} mysterySymbol - on mystery symbol appearance on the screen
94
+ * @property {string} jackpotWin - on start roulette
95
+ * @typedef {GameSoundAssets}
85
96
  */
86
97
  export type GameSoundAssets = Record<SoundTrack, string>;
87
98
  /**
@@ -56,4 +56,8 @@ export const SoundTracks = {
56
56
  start: "start",
57
57
  symbol: "symbol",
58
58
  mysterySymbol: "mysterySymbol",
59
+ rouletteStart: "rouletteStart",
60
+ rouletteLoop: "rouletteLoop",
61
+ rouletteStop: "rouletteStop",
62
+ jackpotWin: "jackpotWin"
59
63
  };
@@ -14,7 +14,7 @@ const getWinFromRawResponse = (rawWin, winIndex) => {
14
14
  symbolId: rawWin.symbol_id,
15
15
  typeId: rawWin.type_id,
16
16
  amount: rawWin.amount,
17
- winIndex,
17
+ winIndex
18
18
  };
19
19
  };
20
20
  /**
@@ -50,7 +50,7 @@ const joinTransformationsIntoDropTransformation = (destroyTransformations, symbo
50
50
  preparedDropTransformations.push({
51
51
  type: transformationTypes.drop,
52
52
  coordinates: destroyPlace,
53
- symbolId: gameConfig.getSymbolId(symbolsToDrop[index]),
53
+ symbolId: gameConfig.getSymbolId(symbolsToDrop[index])
54
54
  });
55
55
  });
56
56
  });
@@ -91,7 +91,7 @@ export const getFreezeTransformationFromRawResponse = (transformations) => {
91
91
  return transformations.map((freezeTransformation) => {
92
92
  return {
93
93
  type: transformationTypes.freeze,
94
- coordinates: freezeTransformation.coordinates,
94
+ coordinates: freezeTransformation.coordinates
95
95
  };
96
96
  });
97
97
  };
@@ -106,7 +106,7 @@ export const concatenateFreezeAndSpinTransformations = (freezeTransformations, o
106
106
  return {
107
107
  type: transformationTypes.spinAndFreeze,
108
108
  coordinates: allCoordinatesToFreeze,
109
- symbolsOnReels: onStopBlindsConfiguration,
109
+ symbolsOnReels: onStopBlindsConfiguration
110
110
  };
111
111
  };
112
112
  /**
@@ -136,6 +136,6 @@ export const collectWinDetailsWithTransformation = (winsDetails, transformations
136
136
  const wins = winsDetails ? [getWinFromRawResponse(winsDetails, winIndex ?? "")] : [];
137
137
  return {
138
138
  wins,
139
- transformations,
139
+ transformations
140
140
  };
141
141
  };
@@ -1,7 +1,7 @@
1
1
  import { createRoot } from "react-dom/client";
2
2
  import { RainMan } from "../Rainman";
3
3
  import { SettingsUI } from "../SettingsUI";
4
- import { changeResolution, disableMagnifyingGlassOnIOS, getDeviceOrientation, invokeStatsBoard, loadSoundsOnTabChange, resizeCanvas, setupFullscreenForIOS, } from "../utils";
4
+ import { changeResolution, disableMagnifyingGlassOnIOS, getDeviceOrientation, invokeStatsBoard, loadSoundsOnTabChange, resizeCanvas, setupFullscreenForIOS } from "../utils";
5
5
  /**
6
6
  * This function is for setup the whole games
7
7
  *
@@ -1,8 +1,8 @@
1
1
  import { Container, Graphics, Sprite } from "pixi.js";
2
- import { ButtonsEventManager } from "../../application";
2
+ import { ButtonsEventManager, WinTypeId } from "../../application";
3
3
  import { AbstractController } from "../../controllers";
4
4
  import { RainMan } from "../../Rainman";
5
- import { Nullable } from "../../utils";
5
+ import { Nullable, PromiseResolverType } from "../../utils";
6
6
  import { BigWinContainer, MysteryWinContainer, UpdatableSpineContainer } from "../../winComponents";
7
7
  import { AbstractFreeSpinContainer } from "../AbstractFreeSpinContainer";
8
8
  import { LeftButtons, LeftButtonsLandscape, LeftButtonsMobile, MiddleButtons, RightButtons, RightButtonsLandscape, RightButtonsMobile } from "../buttons";
@@ -26,7 +26,6 @@ import { MessageBox } from "../messageBox";
26
26
  * - {@link overlay} - overlay, used when modal is shown
27
27
  * - {@link gambleGame} - gamble game
28
28
  * @abstract
29
- * @class AbstractMainContainer
30
29
  * @augments {Container}
31
30
  */
32
31
  export declare abstract class AbstractMainContainer extends Container {
@@ -48,8 +47,11 @@ export declare abstract class AbstractMainContainer extends Container {
48
47
  protected abstract leftButtons: ResponsiveContainer;
49
48
  protected abstract rightButtons: ResponsiveContainer;
50
49
  protected bottomPanel: Nullable<Sprite>;
51
- private gambleGame;
52
50
  protected gambleGameSpineName: Nullable<string>;
51
+ private gambleGame;
52
+ protected rouletteWinContainer: Nullable<UpdatableSpineContainer>;
53
+ protected mysteryBonusContainer: Nullable<UpdatableSpineContainer>;
54
+ protected resolveMysteryBonusContainer?: PromiseResolverType;
53
55
  protected _freeSpinPlate: Nullable<AbstractFreeSpinContainer>;
54
56
  protected _freeSpinSummary: Nullable<AbstractFreeSpinContainer>;
55
57
  private _bigWinInvokedAt;
@@ -59,12 +61,30 @@ export declare abstract class AbstractMainContainer extends Container {
59
61
  protected abstract _frame: AbstractFrame;
60
62
  protected _controller: Nullable<AbstractController<unknown>>;
61
63
  protected constructor();
64
+ /**
65
+ * Function for invoking mystery win plate
66
+ * @param {string} _animationName - The name of the animation to play.
67
+ * @param {string} _popupAnimation - The name of the popup animation to play.
68
+ * @param {WinTypeId} _winType - The type of win to display.
69
+ * @param {number} _amount - The amount of the win.
70
+ * @param {boolean} _isAdditionalFreeSpins - Flag indicating if this is for additional free spins.
71
+ * @returns {Promise<void>} - A promise that resolves when the animation is complete.
72
+ */
73
+ invokeMysteryWinPlate(_animationName: string, _popupAnimation: string, _winType: WinTypeId, _amount: number, _isAdditionalFreeSpins: boolean): Promise<void>;
62
74
  /**
63
75
  * This function initializes the spines that should be paused when the battery saver is on
64
76
  * @param {typeof RainMan.settingsStore.containersWithSpines} containersWithSpines - array of containers with spines
65
77
  */
66
78
  protected triggerStoreInitState(...containersWithSpines: typeof RainMan.settingsStore.containersWithSpines): void;
79
+ /**
80
+ * Function for getting free spin plate
81
+ * @returns {Nullable<AbstractFreeSpinContainer>} The container for the free spin plate, or null if not set.
82
+ */
67
83
  get freeSpinPlate(): Nullable<AbstractFreeSpinContainer>;
84
+ /**
85
+ * Function for getting free spin summary
86
+ * @returns {Nullable<AbstractFreeSpinContainer>} The container for the free spin summary, or null if not set.
87
+ */
68
88
  get freeSpinSummary(): Nullable<AbstractFreeSpinContainer>;
69
89
  /**
70
90
  * Function for creating free spin container
@@ -89,6 +109,12 @@ export declare abstract class AbstractMainContainer extends Container {
89
109
  * @returns {Nullable<UpdatableSpineContainer>} The container for the mystery win animation, or null.
90
110
  */
91
111
  protected createMysteryWinContainer(): Nullable<UpdatableSpineContainer> | MysteryWinContainer;
112
+ /**
113
+ * Function for creating mystery bonus container
114
+ * @param {string} _animationName - animation name for the mystery bonus container
115
+ * @returns {Nullable<UpdatableSpineContainer>} The container for the mystery bonus animation, or null.
116
+ */
117
+ protected createMysteryBonusContainer(_animationName: string): Nullable<UpdatableSpineContainer>;
92
118
  /**
93
119
  * Function for specifying the container for the free spin summary
94
120
  * This needs to be implemented in each game
@@ -100,6 +126,24 @@ export declare abstract class AbstractMainContainer extends Container {
100
126
  * This needs to be implemented in each game
101
127
  */
102
128
  protected changeContainerForBaseGame(): void;
129
+ /**
130
+ * Function for creating roulette win container
131
+ * @param {string} _animationName animation name for the roulette container
132
+ * @returns {Nullable<UpdatableSpineContainer>} The container for the roulette win animation, or null.
133
+ */
134
+ protected createRouletteContainer(_animationName: string): Nullable<UpdatableSpineContainer>;
135
+ /**
136
+ * Function for destroying the roulette win container
137
+ * @param {WinTypeId} winType win type of jackpot roulette win
138
+ * @returns {void}
139
+ */
140
+ private destroyRouletteWin;
141
+ /**
142
+ * Function for invoking mystery bonus container
143
+ * @param {string} animationName animation name for the mystery bonus container
144
+ * @returns {Promise<void>}
145
+ */
146
+ protected invokeMysteryBonusContainer(animationName: string): Promise<void>;
103
147
  /**
104
148
  * Function for invoking free spin plate
105
149
  * If game draw an additional free spin, you can set isAdditionalFreeSpin to true
@@ -122,51 +166,207 @@ export declare abstract class AbstractMainContainer extends Container {
122
166
  * @param {number} winAmount - win amount during free spins
123
167
  */
124
168
  invokeFreeSpinSummary(freeSpinCount: number, winAmount: number): Promise<void>;
169
+ /**
170
+ * Function for hiding free spin summary
171
+ * @returns {void}
172
+ */
125
173
  hideFreeSpinSummary(): void;
174
+ /**
175
+ * Function for showing the overlay
176
+ * This function creates a semi-transparent overlay that covers the entire screen.
177
+ * It is used to block interactions with the game while a modal is displayed.
178
+ */
126
179
  protected showOverlay(): void;
180
+ /**
181
+ * Function for hiding the overlay
182
+ * This function removes the overlay from the main container and sets it to null.
183
+ */
127
184
  protected hideOverlay(): void;
185
+ /**
186
+ * Function for getting the time since the big win was invoked.
187
+ * @returns {number} The time in milliseconds since the big win was invoked, or 0 if it has not been invoked.
188
+ */
128
189
  get bigWinVisibleFor(): number;
190
+ /**
191
+ * Function for getting the free spin button.
192
+ * @returns {typeof this.freeSpinButton} The free spin button instance.
193
+ */
129
194
  getFreeSpinButton(): typeof this.freeSpinButton;
195
+ /**
196
+ * Function for getting the time since the mystery win was invoked.
197
+ * @returns {number} The time in milliseconds since the mystery win was invoked, or 0 if it has not been invoked.
198
+ */
130
199
  get mysteryWinVisibleFor(): number;
200
+ /**
201
+ * Function for getting the time since the bonus win was invoked.
202
+ * @returns {number} The time in milliseconds since the bonus win was invoked, or 0 if it has not been invoked.
203
+ */
131
204
  get bonusWinVisibleFor(): number;
205
+ /**
206
+ * Function for getting the time since the super bonus win was invoked.
207
+ * @returns {number} The time in milliseconds since the super bonus win was invoked, or 0 if it has not been invoked.
208
+ */
132
209
  get superBonusWinVisibleFor(): number;
210
+ /**
211
+ * Abstract function for creating the big win container.
212
+ * This function should be implemented in each game to create a specific big win container.
213
+ */
133
214
  protected abstract createBigWinContainer(): UpdatableSpineContainer | MysteryWinContainer;
134
215
  /**
135
216
  * Function for invoking big win animation, using `this.createBigWinContainer()` abstract function.
136
- *
137
217
  */
138
218
  invokeBigWin(): void;
139
219
  /**
140
220
  * Function for invoking big win animation, using `this.createSuperBonusWinContainer()` abstract function.
141
- *
142
221
  */
143
222
  invokeSuperBonusWin(): void;
144
223
  /**
145
224
  * Function for invoking big win animation, using `this.createBonusWinContainer()` abstract function.
146
225
  */
147
226
  invokeBonusWin(): void;
227
+ /**
228
+ * Function for invoking mystery win animation, using `this.createMysteryWinContainer()` abstract function.
229
+ */
148
230
  invokeMysteryWin(): void;
231
+ /**
232
+ * Function for destroying the big win container
233
+ * This function removes the big win container from the main container,
234
+ * destroys its animations, and sets it to null.
235
+ */
149
236
  destroyBigWin(): void;
237
+ /**
238
+ * Function for destroying the mystery win container
239
+ */
150
240
  destroyMysteryWin(): void;
241
+ /**
242
+ * Function for destroying the bonus win container
243
+ */
151
244
  destroyBonusWin(): void;
245
+ /**
246
+ * Function for destroying the super bonus win container
247
+ */
152
248
  destroySuperBonusWin(): void;
249
+ destroyMysteryBonus(): void;
250
+ /**
251
+ * Function for invoking gamble game
252
+ * @returns {Promise<void>} - A promise that resolves when the gamble game is finished.
253
+ */
153
254
  invokeGambleGame(): Promise<void>;
255
+ /**
256
+ * Function for creating the under frame panel.
257
+ * This panel is used in mobile portrait mode to display additional information.
258
+ * @returns {Graphics | Sprite} The under frame panel as a Graphics or Sprite object.
259
+ */
154
260
  protected createUnderFramePanel(): Graphics | Sprite;
261
+ /**
262
+ * Function for enabling mobile portrait mode.
263
+ * It creates the under frame panel, portrait play buttons, and adds them to the container.
264
+ * @returns {void}
265
+ */
155
266
  enableForMobile(): void;
267
+ /**
268
+ * Function for enabling landscape mode.
269
+ * @returns {void}
270
+ */
156
271
  enableForLandscape(): void;
272
+ /**
273
+ * Function for positioning the round win container.
274
+ * @returns {void}
275
+ */
276
+ private positionRoundWinContainer;
277
+ /**
278
+ * Function for invoking the roulette win plate.
279
+ * @param {string} winAnimationName The name of the win animation.
280
+ * @param {WinTypeId} winType The type of win.
281
+ * @param {string} startAnimationName The name of the start animation defaulting to "start".
282
+ */
283
+ invokeRouletteWinPlate(winAnimationName: string, winType: WinTypeId, startAnimationName?: string): Promise<void>;
284
+ /**
285
+ * Function for disabling components for mobile portrait orientation.
286
+ */
157
287
  disableForMobile(): void;
288
+ /**
289
+ * Function for disabling components for landscape orientation.
290
+ */
158
291
  disableForLandscape(): void;
292
+ /**
293
+ * Function for repositioning components for screen ratio.
294
+ * This function should be implemented in each game.
295
+ * @protected
296
+ * @abstract
297
+ */
159
298
  protected abstract repositionComponentsForScreenRatio(): void;
299
+ /**
300
+ * Function for resizing the main container and its components.
301
+ * This function removes the current frame and any win containers,
302
+ * resizes the message box, background, animated front,
303
+ */
160
304
  resize(): void;
305
+ /**
306
+ * Function for creating the left buttons
307
+ * @returns {LeftButtons} - Returns a new instance of LeftButtons.
308
+ */
161
309
  protected createLeftButtons(): LeftButtons;
310
+ /**
311
+ * Function for creating the right buttons
312
+ * @returns {RightButtons} - Returns a new instance of RightButtons.
313
+ */
162
314
  protected createRightButtons(): RightButtons;
315
+ /**
316
+ * Function for creating the left buttons for mobile portrait orientation
317
+ * @returns {LeftButtonsMobile} - Returns a new instance of LeftButtonsMobile for mobile portrait orientation.
318
+ */
163
319
  protected createLeftButtonsMobile(): LeftButtonsMobile;
320
+ /**
321
+ * Function for creating the right buttons for mobile portrait orientation
322
+ * @returns {RightButtonsMobile} - Returns a new instance of RightButtonsMobile for mobile portrait orientation.
323
+ */
164
324
  protected createRightButtonsMobile(): RightButtonsMobile;
325
+ /**
326
+ * Function for creating the left buttons for landscape orientation
327
+ * @protected
328
+ * @returns {LeftButtonsLandscape} - Returns a new instance of LeftButtonsLandscape for landscape orientation.
329
+ */
165
330
  protected createLeftButtonsLandscape(): LeftButtonsLandscape;
331
+ /**
332
+ * Function for creating the right buttons for landscape orientation
333
+ * @protected
334
+ * @returns {RightButtonsLandscape} - Returns a new instance of RightButtonsLandscape for landscape orientation.
335
+ */
166
336
  protected createRightButtonsLandscape(): RightButtonsLandscape;
337
+ /**
338
+ * Function for creating the portrait play buttons
339
+ * @protected
340
+ * @returns {MiddleButtons} - Returns a new instance of MiddleButtons for portrait orientation.
341
+ */
167
342
  protected createPortraitPlayButtons(): MiddleButtons;
343
+ /**
344
+ * Function for creating the landscape play buttons
345
+ * @protected
346
+ * @returns {MiddleButtons} - Returns a new instance of MiddleButtons for landscape orientation.
347
+ */
168
348
  protected createLandscapePlayButtons(): MiddleButtons;
349
+ /**
350
+ * This method initializes the components for the current screen ratio.
351
+ * It checks the current device orientation and creates the appropriate left and right buttons.
352
+ * It also removes the previous left and right buttons from the container.
353
+ * It resizes the right buttons if the current orientation is "mobile-portrait".
354
+ * @protected
355
+ * @returns {void}
356
+ * @memberof AbstractMainContainer
357
+ */
169
358
  private initComponentsForScreenRatio;
359
+ /**
360
+ * This method is used to resize all components that depend on the screen size.
361
+ * It resizes the frame, logo, left and right buttons, message box, play buttons,
362
+ * under frame panel, overlay, big win container, super bonus win container, bonus win container,
363
+ * mystery win container, gamble game, bottom panel, free spin plate, and
364
+ * free spin summary.
365
+ */
170
366
  private resizeDependentComponents;
367
+ /**
368
+ * This method is used to refresh the layers in the main container.
369
+ * It removes the existing layers and adds them back in the correct order.
370
+ */
171
371
  protected refreshLayers(): void;
172
372
  }