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.
- package/dist/ComponentRegistry/ComponentRegistry.js +1 -2
- package/dist/ComponentRegistry/types.js +1 -1
- package/dist/Rainman/Rainman.js +2 -2
- package/dist/Rainman/appConfig.js +3 -3
- package/dist/Rainman/types.d.ts +2 -0
- package/dist/SettingsUI/components/AutoplaySettings/index.jsx +2 -2
- package/dist/SettingsUI/components/BuyFreeSpins/index.jsx +2 -1
- package/dist/SettingsUI/components/OptionButton/index.jsx +3 -2
- package/dist/SettingsUI/hooks/useBuyFreeSpins/useBuyFreeSpins.js +14 -10
- package/dist/application/ApiConfig/WinTypeId.d.ts +1 -1
- package/dist/application/SoundManager/types.d.ts +11 -0
- package/dist/application/SoundManager/types.js +4 -0
- package/dist/application/SpinLogic/util.js +5 -5
- package/dist/application/setup.js +1 -1
- package/dist/components/AbstractMainContainer/AbstractMainContainer.d.ts +206 -6
- package/dist/components/AbstractMainContainer/AbstractMainContainer.js +284 -7
- package/dist/components/buttons/BaseButton/ButtonState.js +1 -1
- package/dist/components/buttons/registrynames.d.ts +1 -0
- package/dist/components/buttons/registrynames.js +3 -2
- package/dist/components/frame/AbstractFrame.d.ts +4 -1
- package/dist/components/frame/AbstractFrame.js +2 -0
- package/dist/components/frame/constants.d.ts +8 -0
- package/dist/components/frame/constants.js +8 -1
- package/dist/components/symbols/AbstractSymbolsColumn.d.ts +2 -2
- package/dist/connectivity/ConnectionWrapper.d.ts +56 -3
- package/dist/connectivity/ConnectionWrapper.js +83 -18
- package/dist/connectivity/LocalConnectionWrapper.d.ts +1 -0
- package/dist/connectivity/LocalConnectionWrapper.js +10 -0
- package/dist/connectivity/serverConnection.d.ts +14 -6
- package/dist/connectivity/serverData.d.ts +15 -2
- package/dist/connectivity/spinData.js +2 -2
- package/dist/constants/gamePhase.js +1 -1
- package/dist/constants/transformation.js +1 -1
- package/dist/constants/wins.js +1 -1
- package/dist/controllers/AbstractController.d.ts +127 -6
- package/dist/controllers/AbstractController.js +164 -16
- package/dist/controllers/UiController.d.ts +2 -1
- package/dist/controllers/UiController.js +4 -2
- package/dist/loading/AbstractLoadingContainer.js +1 -1
- package/dist/stores/SettingsStore.d.ts +6 -2
- package/dist/stores/SettingsStore.js +10 -0
- package/dist/utils/common/functions.js +1 -1
- package/dist/utils/common/placementHelpers.js +1 -1
- package/dist/utils/common/types.d.ts +2 -1
- package/dist/winComponents/BaseWinContainer.d.ts +5 -1
- package/dist/winComponents/BaseWinContainer.js +18 -2
- package/dist/winComponents/BigWinContainer.js +1 -0
- package/dist/winComponents/TexturedText.d.ts +1 -0
- package/dist/winComponents/TexturedText.js +13 -2
- 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
|
|
1
|
+
import { AbstractColumnsContainer, AbstractFrame, AbstractInnerFrame, AutoplayButton, Background, BUTTONS, COMPONENTS, FreeSpinButton, InfoButton, MessageBox, MoreButton, NegButton, PlusButton, RefreshButton, SpeedControlButton, VolumeButton } from "../components";
|
package/dist/Rainman/Rainman.js
CHANGED
|
@@ -28,8 +28,8 @@ export class RainMan {
|
|
|
28
28
|
RainMan.settingsStore = settingStore;
|
|
29
29
|
RainMan.componentRegistry = new ComponentRegistry(app);
|
|
30
30
|
RainMan.globals = {
|
|
31
|
-
|
|
32
|
-
|
|
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
|
};
|
package/dist/Rainman/types.d.ts
CHANGED
|
@@ -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
|
|
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>
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
};
|
|
@@ -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
|
/**
|
|
@@ -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
|
|
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
|
}
|