pixi-rainman-game-engine 0.2.19 → 0.2.21-b

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 (57) hide show
  1. package/dist/ComponentRegistry/ComponentRegistry.js +1 -1
  2. package/dist/Rainman/Rainman.js +1 -1
  3. package/dist/application/ApiConfig/ApiConfig.js +1 -1
  4. package/dist/application/ButtonsEventManager/ButtonsEventManager.js +6 -4
  5. package/dist/application/SoundManager/SoundManager.js +3 -3
  6. package/dist/application/SpinLogic/SpinLogicDTO.js +1 -1
  7. package/dist/application/SpinLogic/WinScenarios.d.ts +0 -2
  8. package/dist/application/SpinLogic/WinScenarios.js +0 -2
  9. package/dist/components/AbstractMainContainer/AbstractMainContainer.d.ts +3 -4
  10. package/dist/components/AbstractMainContainer/AbstractMainContainer.js +1 -2
  11. package/dist/components/GambleGame/GambleGame.js +1 -1
  12. package/dist/components/buttons/buttonGroups/LeftButtons.js +1 -1
  13. package/dist/components/buttons/buttonGroups/MiddleButtons.js +1 -1
  14. package/dist/components/buttons/buttonGroups/RightButtons.js +2 -2
  15. package/dist/components/buttons/buttonGroups/RightButtonsLandscape.js +2 -2
  16. package/dist/components/buttons/default/AutoplayButton.js +3 -3
  17. package/dist/components/buttons/default/BlackButton.js +1 -1
  18. package/dist/components/buttons/default/CollectButton.js +1 -1
  19. package/dist/components/buttons/default/InfoButton.js +2 -2
  20. package/dist/components/buttons/default/MoreButton.js +2 -2
  21. package/dist/components/buttons/default/NegButton.js +1 -1
  22. package/dist/components/buttons/default/PlusButton.js +2 -2
  23. package/dist/components/buttons/default/RedButton.js +1 -1
  24. package/dist/components/buttons/default/RefreshButton.js +4 -4
  25. package/dist/components/buttons/default/SpeedControlButton.js +2 -2
  26. package/dist/components/buttons/default/SpinConfirmationButton.js +1 -1
  27. package/dist/components/buttons/default/VolumeButton.js +2 -2
  28. package/dist/components/frame/AbstractColumnsContainer.js +1 -1
  29. package/dist/components/frame/AbstractFrame.js +3 -3
  30. package/dist/components/frame/WinLineAnimation.js +1 -1
  31. package/dist/components/messageBox/MessageBox.js +3 -3
  32. package/dist/components/symbols/AbstractSymbolBase.d.ts +4 -2
  33. package/dist/components/symbols/AbstractSymbolBase.js +8 -6
  34. package/dist/components/symbols/AbstractSymbolsColumn.js +3 -3
  35. package/dist/components/updatable/UpdatableTextComponent.js +1 -1
  36. package/dist/components/updatable/UpdatableValueComponent.js +1 -1
  37. package/dist/connectivity/ConnectionWrapper.js +6 -6
  38. package/dist/connectivity/LocalConnectionWrapper.js +2 -2
  39. package/dist/controllers/AbstractController.d.ts +4 -0
  40. package/dist/controllers/AbstractController.js +20 -11
  41. package/dist/loading/SpriteLoadingContainer.js +1 -1
  42. package/dist/localStorage/localStorage.js +1 -1
  43. package/dist/stores/SettingsStore.d.ts +8 -1
  44. package/dist/stores/SettingsStore.js +17 -5
  45. package/dist/winComponents/BaseWinContainer.d.ts +51 -0
  46. package/dist/winComponents/BaseWinContainer.js +142 -0
  47. package/dist/winComponents/BigWinContainer.d.ts +15 -0
  48. package/dist/winComponents/BigWinContainer.js +13 -0
  49. package/dist/winComponents/MysteryWinContainer.d.ts +7 -24
  50. package/dist/winComponents/MysteryWinContainer.js +4 -126
  51. package/dist/winComponents/TexturedText.d.ts +2 -1
  52. package/dist/winComponents/TexturedText.js +8 -2
  53. package/dist/winComponents/index.d.ts +1 -0
  54. package/dist/winComponents/index.js +1 -0
  55. package/dist/winComponents/winFactory.d.ts +6 -9
  56. package/dist/winComponents/winFactory.js +35 -13
  57. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { isIncentiveComponentInterface, isSpeedAdapterInterface, SpeedLevelHandler, TimedIncentiveController, } from "../application";
1
+ import { isIncentiveComponentInterface, isSpeedAdapterInterface, SpeedLevelHandler, TimedIncentiveController } from "../application";
2
2
  import { SpeedControlButton } from "../components";
3
3
  import { RainMan } from "../Rainman";
4
4
  import { openFullscreen } from "../utils";
@@ -29,7 +29,7 @@ export class RainMan {
29
29
  RainMan.componentRegistry = new ComponentRegistry(app);
30
30
  RainMan.globals = {
31
31
  shouldShowModals: false,
32
- currency: Currencies["USD"],
32
+ currency: Currencies["USD"]
33
33
  };
34
34
  }
35
35
  }
@@ -49,7 +49,7 @@ export class ApiConfig {
49
49
  symbolsOnReels: blindsConfiguredByResponse,
50
50
  finalBlindsConfiguration: finalSpinPositionOnReels,
51
51
  winAmountTotal: spinLogicResponse.win_amount_total,
52
- extraData: spinLogicResponse.extra_data || {},
52
+ extraData: spinLogicResponse.extra_data || {}
53
53
  };
54
54
  }
55
55
  /**
@@ -1,7 +1,7 @@
1
1
  import i18n from "i18next";
2
2
  import { sample } from "lodash";
3
3
  import { SoundManager } from "../../application";
4
- import { AutoplayButton, Background, BUTTONS, COMPONENTS, FreeSpinButton, MessageBox, SpeedControlButton, VolumeButton, } from "../../components";
4
+ import { AutoplayButton, Background, BUTTONS, COMPONENTS, FreeSpinButton, MessageBox, SpeedControlButton, VolumeButton } from "../../components";
5
5
  import { RainMan } from "../../Rainman";
6
6
  import { allUiItems, hideLayerIfPresent, UI_ITEMS, wait } from "../../utils";
7
7
  import { SPEED_LEVELS } from "../SpeedState";
@@ -232,6 +232,9 @@ export class ButtonsEventManager {
232
232
  */
233
233
  initAutoplayButtonEvent() {
234
234
  RainMan.componentRegistry.get(AutoplayButton.registryName).setOnClick(() => {
235
+ if (!RainMan.settingsStore.isModalsAvailable() || RainMan.settingsStore.isPlayingAnyAction) {
236
+ return;
237
+ }
235
238
  if (RainMan.settingsStore.isAutoplayEnabled) {
236
239
  RainMan.settingsStore.resetAutoplaySettings();
237
240
  RainMan.componentRegistry.get(MessageBox.registryName).hideAutoSpinText();
@@ -240,9 +243,6 @@ export class ButtonsEventManager {
240
243
  RainMan.componentRegistry.get(BUTTONS.neg).flipDisabledFlag(false);
241
244
  return;
242
245
  }
243
- if (!RainMan.settingsStore.isModalsAvailable()) {
244
- return;
245
- }
246
246
  this.handleModalInvocation(UI_ITEMS.autoplay);
247
247
  });
248
248
  }
@@ -282,6 +282,8 @@ export class ButtonsEventManager {
282
282
  const confirmAutoplayButton = window.document.getElementById(COMPONENTS.autoSpinConfirm);
283
283
  if (confirmAutoplayButton !== null) {
284
284
  confirmAutoplayButton.addEventListener("click", () => {
285
+ if (RainMan.settingsStore.isPlayingAnyAction)
286
+ return;
285
287
  RainMan.settingsStore.handleModalInvocation?.(UI_ITEMS.autoplay);
286
288
  confirmAutoplayButtonCallback();
287
289
  wait(1).then(() => RainMan.settingsStore.decreaseAutoSpinsCount());
@@ -21,7 +21,7 @@ export class SoundManagerInstance {
21
21
  speedLevelMapper = {
22
22
  fast: {},
23
23
  normal: {},
24
- slow: {},
24
+ slow: {}
25
25
  };
26
26
  musicCatalogue = new Map();
27
27
  constructor() {
@@ -41,7 +41,7 @@ export class SoundManagerInstance {
41
41
  url,
42
42
  autoPlay: false,
43
43
  preload: true,
44
- loaded: () => resolve(),
44
+ loaded: () => resolve()
45
45
  });
46
46
  sound.name = soundName;
47
47
  this.musicCatalogue.set(soundName, sound);
@@ -99,7 +99,7 @@ export class SoundManagerInstance {
99
99
  sound.play({
100
100
  loop: soundsToLoop.includes(soundName),
101
101
  singleInstance: true,
102
- volume: soundName === "music" ? 0.5 : 1,
102
+ volume: soundName === "music" ? 0.5 : 1
103
103
  });
104
104
  }
105
105
  /**
@@ -74,7 +74,7 @@ export class SpinLogicDTO {
74
74
  quantity: singleWin.quantity,
75
75
  multiplier: singleWin.multiplier,
76
76
  winIndex: singleWin.winIndex,
77
- typeId: singleWin.typeId,
77
+ typeId: singleWin.typeId
78
78
  };
79
79
  if (rawWin.type === PossibleWins.freeSpins) {
80
80
  const remainingFreeSpins = Math.max(RainMan.settingsStore.howManyFreeSpinsLeft - 1, 0);
@@ -1,8 +1,6 @@
1
1
  import { TransformationDetails, Win } from "../../connectivity";
2
2
  /**
3
3
  * This class represents win and transformation scenarios described in {@link transformationTypes} and {@link PossibleWins}
4
- *
5
- * {WinScenarios}
6
4
  */
7
5
  export declare class WinScenarios {
8
6
  private readonly _wins;
@@ -1,7 +1,5 @@
1
1
  /**
2
2
  * This class represents win and transformation scenarios described in {@link transformationTypes} and {@link PossibleWins}
3
- *
4
- * {WinScenarios}
5
3
  */
6
4
  export class WinScenarios {
7
5
  _wins;
@@ -3,7 +3,7 @@ import { ButtonsEventManager } from "../../application";
3
3
  import { AbstractController } from "../../controllers";
4
4
  import { RainMan } from "../../Rainman";
5
5
  import { Nullable } from "../../utils";
6
- import { MysteryWinContainer, UpdatableSpineContainer } from "../../winComponents";
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";
9
9
  import { FreeSpinButton, Logo, ResponsiveContainer } from "../common";
@@ -32,7 +32,7 @@ import { MessageBox } from "../messageBox";
32
32
  export declare abstract class AbstractMainContainer extends Container {
33
33
  static readonly registryName = "mainContainer";
34
34
  messageBox: MessageBox;
35
- protected bigWinContainer: Nullable<UpdatableSpineContainer>;
35
+ protected bigWinContainer: Nullable<UpdatableSpineContainer> | BigWinContainer;
36
36
  protected mysteryWinContainer: Nullable<UpdatableSpineContainer> | MysteryWinContainer;
37
37
  protected bonusWinContainer: Nullable<UpdatableSpineContainer>;
38
38
  protected superBonusWinContainer: Nullable<UpdatableSpineContainer>;
@@ -130,7 +130,7 @@ export declare abstract class AbstractMainContainer extends Container {
130
130
  get mysteryWinVisibleFor(): number;
131
131
  get bonusWinVisibleFor(): number;
132
132
  get superBonusWinVisibleFor(): number;
133
- protected abstract createBigWinContainer(): UpdatableSpineContainer;
133
+ protected abstract createBigWinContainer(): UpdatableSpineContainer | MysteryWinContainer;
134
134
  /**
135
135
  * Function for invoking big win animation, using `this.createBigWinContainer()` abstract function.
136
136
  *
@@ -143,7 +143,6 @@ export declare abstract class AbstractMainContainer extends Container {
143
143
  invokeSuperBonusWin(): void;
144
144
  /**
145
145
  * Function for invoking big win animation, using `this.createBonusWinContainer()` abstract function.
146
- *
147
146
  */
148
147
  invokeBonusWin(): void;
149
148
  invokeMysteryWin(): void;
@@ -3,7 +3,7 @@ import { ButtonsEventManager, SoundManager, SoundTracks } from "../../applicatio
3
3
  import { AnimationLayer, BackgroundLayer, FrameLayer, UXLayer } from "../../layers";
4
4
  import { RainMan } from "../../Rainman";
5
5
  import { getDeviceOrientation, globalMinRatio } from "../../utils";
6
- import { BUTTONS, LeftButtons, LeftButtonsLandscape, LeftButtonsMobile, MiddleButtons, RefreshButton, RightButtons, RightButtonsLandscape, RightButtonsMobile, } from "../buttons";
6
+ import { BUTTONS, LeftButtons, LeftButtonsLandscape, LeftButtonsMobile, MiddleButtons, RefreshButton, RightButtons, RightButtonsLandscape, RightButtonsMobile } from "../buttons";
7
7
  import { GambleGame } from "../GambleGame";
8
8
  import { MessageBox } from "../messageBox";
9
9
  /**
@@ -255,7 +255,6 @@ export class AbstractMainContainer extends Container {
255
255
  }
256
256
  /**
257
257
  * Function for invoking big win animation, using `this.createBonusWinContainer()` abstract function.
258
- *
259
258
  */
260
259
  invokeBonusWin() {
261
260
  if (this.bonusWinContainer !== null) {
@@ -117,7 +117,7 @@ export class GambleGame extends Container {
117
117
  this.loseDoubleAndWinFields(),
118
118
  setTimeout(() => {
119
119
  this.closeGame();
120
- }, 2000),
120
+ }, 2000)
121
121
  ]);
122
122
  }
123
123
  }
@@ -36,7 +36,7 @@ export class LeftButtons extends ResponsiveContainer {
36
36
  this.bet,
37
37
  this.volumeButton,
38
38
  this.moreButton,
39
- this.infoButton,
39
+ this.infoButton
40
40
  ]);
41
41
  }
42
42
  reposition() {
@@ -47,7 +47,7 @@ export class MiddleButtons extends ResponsiveContainer {
47
47
  this.refreshButton,
48
48
  this.autoplayButton,
49
49
  this.betButton,
50
- this.positioningFrame,
50
+ this.positioningFrame
51
51
  ]);
52
52
  }
53
53
  initChildPositions() {
@@ -27,7 +27,7 @@ export class RightButtons extends ResponsiveContainer {
27
27
  this.plusButton,
28
28
  this.refreshButton,
29
29
  this.speedControlButton,
30
- this.autoplayButton,
30
+ this.autoplayButton
31
31
  ]);
32
32
  this.resize();
33
33
  }
@@ -37,7 +37,7 @@ export class RightButtons extends ResponsiveContainer {
37
37
  this.negButton,
38
38
  this.plusButton,
39
39
  this.refreshButton,
40
- this.speedControlButton,
40
+ this.speedControlButton
41
41
  ]);
42
42
  }
43
43
  reposition() {
@@ -30,7 +30,7 @@ export class RightButtonsLandscape extends ResponsiveContainer {
30
30
  this.volumeButton,
31
31
  this.infoButton,
32
32
  this.negButton,
33
- this.speedControlButton,
33
+ this.speedControlButton
34
34
  ]);
35
35
  this.resize();
36
36
  }
@@ -40,7 +40,7 @@ export class RightButtonsLandscape extends ResponsiveContainer {
40
40
  this.volumeButton,
41
41
  this.infoButton,
42
42
  this.negButton,
43
- this.speedControlButton,
43
+ this.speedControlButton
44
44
  ]);
45
45
  }
46
46
  reposition() {
@@ -25,7 +25,7 @@ export class AutoplayButton extends BaseButton {
25
25
  [ButtonStates.NORMAL]: getTexture("mobile/autoplay.png"),
26
26
  [ButtonStates.CLICKED]: getTexture("mobile/clicked/autoplay.png"),
27
27
  [ButtonStates.ACTIVE]: getTextureSafely("mobile/autoplay-on.png"),
28
- [ButtonStates.ACTIVE_CLICKED]: getTextureSafely("mobile/clicked/autoplay-on.png"),
28
+ [ButtonStates.ACTIVE_CLICKED]: getTextureSafely("mobile/clicked/autoplay-on.png")
29
29
  }
30
30
  : {
31
31
  [ButtonStates.NORMAL]: getTexture("normal/autoplay.png"),
@@ -33,7 +33,7 @@ export class AutoplayButton extends BaseButton {
33
33
  [ButtonStates.CLICKED]: getTexture("clicked/autoplay.png"),
34
34
  [ButtonStates.ACTIVE]: getTexture("normal/autoplay-on.png"),
35
35
  [ButtonStates.ACTIVE_OVER]: getTexture("hover/autoplay-on.png"),
36
- [ButtonStates.ACTIVE_CLICKED]: getTexture("clicked/autoplay-on.png"),
36
+ [ButtonStates.ACTIVE_CLICKED]: getTexture("clicked/autoplay-on.png")
37
37
  };
38
38
  super(AutoplayButton.registryName, textureMap);
39
39
  this.mobile = mobile;
@@ -47,7 +47,7 @@ export class AutoplayButton extends BaseButton {
47
47
  state === ButtonStates.ACTIVE_OVER ||
48
48
  state === ButtonStates.ACTIVE_CLICKED) {
49
49
  this.filters = [
50
- new GlowFilter({ distance: 20, outerStrength: 2, color: RainMan.config.autoplayGlowColor }),
50
+ new GlowFilter({ distance: 20, outerStrength: 2, color: RainMan.config.autoplayGlowColor })
51
51
  ];
52
52
  }
53
53
  else {
@@ -14,7 +14,7 @@ export class BlackButton extends BaseButton {
14
14
  const textureMap = {
15
15
  [ButtonStates.NORMAL]: Texture.from("black-n.png"),
16
16
  [ButtonStates.CLICKED]: Texture.from("black-c.png"),
17
- [ButtonStates.OVER]: Texture.from("black-h.png"),
17
+ [ButtonStates.OVER]: Texture.from("black-h.png")
18
18
  };
19
19
  super(BlackButton.registryName, textureMap);
20
20
  }
@@ -15,7 +15,7 @@ export class CollectButton extends BaseButton {
15
15
  const textureMap = {
16
16
  [ButtonStates.NORMAL]: Texture.from("collect-button-n.png"),
17
17
  [ButtonStates.CLICKED]: Texture.from("collect-button-c.png"),
18
- [ButtonStates.OVER]: Texture.from("collect-button-h.png"),
18
+ [ButtonStates.OVER]: Texture.from("collect-button-h.png")
19
19
  };
20
20
  super(CollectButton.registryName, textureMap);
21
21
  }
@@ -17,12 +17,12 @@ export class InfoButton extends BaseButton {
17
17
  const textureMap = mobile
18
18
  ? {
19
19
  [ButtonStates.NORMAL]: getTexture("mobile/info.png"),
20
- [ButtonStates.CLICKED]: getTexture("mobile/clicked/info.png"),
20
+ [ButtonStates.CLICKED]: getTexture("mobile/clicked/info.png")
21
21
  }
22
22
  : {
23
23
  [ButtonStates.NORMAL]: getTexture("normal/info.png"),
24
24
  [ButtonStates.OVER]: getTexture("hover/info.png"),
25
- [ButtonStates.CLICKED]: getTexture("clicked/info.png"),
25
+ [ButtonStates.CLICKED]: getTexture("clicked/info.png")
26
26
  };
27
27
  super(InfoButton.registryName, textureMap);
28
28
  }
@@ -17,12 +17,12 @@ export class MoreButton extends BaseButton {
17
17
  const textureMap = mobile
18
18
  ? {
19
19
  [ButtonStates.NORMAL]: getTexture("mobile/menu.png"),
20
- [ButtonStates.CLICKED]: getTexture("mobile/clicked/menu.png"),
20
+ [ButtonStates.CLICKED]: getTexture("mobile/clicked/menu.png")
21
21
  }
22
22
  : {
23
23
  [ButtonStates.NORMAL]: getTexture("normal/menu.png"),
24
24
  [ButtonStates.OVER]: getTexture("hover/menu.png"),
25
- [ButtonStates.CLICKED]: getTexture("clicked/menu.png"),
25
+ [ButtonStates.CLICKED]: getTexture("clicked/menu.png")
26
26
  };
27
27
  super(MoreButton.registryName, textureMap);
28
28
  }
@@ -16,7 +16,7 @@ export class NegButton extends BaseButton {
16
16
  const textureMap = {
17
17
  [ButtonStates.NORMAL]: getTexture("normal/minus.png"),
18
18
  [ButtonStates.OVER]: getTexture("hover/minus.png"),
19
- [ButtonStates.CLICKED]: getTexture("clicked/minus.png"),
19
+ [ButtonStates.CLICKED]: getTexture("clicked/minus.png")
20
20
  };
21
21
  super(NegButton.registryName, textureMap);
22
22
  this.clickSound = SoundTracks.reductionRate;
@@ -18,12 +18,12 @@ export class PlusButton extends BaseButton {
18
18
  const textureMap = mobile
19
19
  ? {
20
20
  [ButtonStates.NORMAL]: getTexture("mobile/bet.png"),
21
- [ButtonStates.CLICKED]: getTexture("mobile/clicked/bet.png"),
21
+ [ButtonStates.CLICKED]: getTexture("mobile/clicked/bet.png")
22
22
  }
23
23
  : {
24
24
  [ButtonStates.NORMAL]: getTexture("normal/plus.png"),
25
25
  [ButtonStates.OVER]: getTexture("hover/plus.png"),
26
- [ButtonStates.CLICKED]: getTexture("clicked/plus.png"),
26
+ [ButtonStates.CLICKED]: getTexture("clicked/plus.png")
27
27
  };
28
28
  super(PlusButton.registryName, textureMap);
29
29
  this.clickSound = SoundTracks.increaseRate;
@@ -15,7 +15,7 @@ export class RedButton extends BaseButton {
15
15
  const textureMap = {
16
16
  [ButtonStates.NORMAL]: Texture.from("red-n.png"),
17
17
  [ButtonStates.CLICKED]: Texture.from("red-c.png"),
18
- [ButtonStates.OVER]: Texture.from("red-h.png"),
18
+ [ButtonStates.OVER]: Texture.from("red-h.png")
19
19
  };
20
20
  super(RedButton.registryName, textureMap);
21
21
  }
@@ -33,7 +33,7 @@ export class RefreshButton extends BaseButton {
33
33
  [ButtonStates.NORMAL]: getTexture("mobile/refresh.png"),
34
34
  [ButtonStates.CLICKED]: getTexture("mobile/clicked/refresh.png"),
35
35
  [ButtonStates.ACTIVE]: getTexture("mobile/stop.png"),
36
- [ButtonStates.ACTIVE_CLICKED]: getTexture("mobile/clicked/stop.png"),
36
+ [ButtonStates.ACTIVE_CLICKED]: getTexture("mobile/clicked/stop.png")
37
37
  }
38
38
  : {
39
39
  [ButtonStates.NORMAL]: getTexture("normal/auto-start.png"),
@@ -41,7 +41,7 @@ export class RefreshButton extends BaseButton {
41
41
  [ButtonStates.CLICKED]: getTexture("clicked/auto-start.png"),
42
42
  [ButtonStates.ACTIVE]: getTextureSafely("normal/auto-start-on.png"),
43
43
  [ButtonStates.ACTIVE_OVER]: getTextureSafely("hover/auto-start-on.png"),
44
- [ButtonStates.ACTIVE_CLICKED]: getTextureSafely("clicked/auto-start-on.png"),
44
+ [ButtonStates.ACTIVE_CLICKED]: getTextureSafely("clicked/auto-start-on.png")
45
45
  };
46
46
  super(RefreshButton.registryName, textureMap);
47
47
  this.name = RefreshButton.registryName;
@@ -72,7 +72,7 @@ export class RefreshButton extends BaseButton {
72
72
  initIncentiveAction(incentiveJobFlag, afterAllDoneCallback) {
73
73
  const fullRotation = (2 * (360 * Math.PI)) / 180;
74
74
  this.spinTween = new TWEEN.Tween({
75
- rotation: this.arrowsSprite ? this.arrowsSprite.rotation : this.rotation,
75
+ rotation: this.arrowsSprite ? this.arrowsSprite.rotation : this.rotation
76
76
  })
77
77
  .onUpdate(({ rotation }) => {
78
78
  if (this.arrowsSprite)
@@ -81,7 +81,7 @@ export class RefreshButton extends BaseButton {
81
81
  this.rotation = rotation;
82
82
  })
83
83
  .to({
84
- rotation: fullRotation,
84
+ rotation: fullRotation
85
85
  }, 3000)
86
86
  .easing(TWEEN.Easing.Back.InOut)
87
87
  .start()
@@ -4,7 +4,7 @@ const createTextureMap = (speedLevel) => {
4
4
  return {
5
5
  [ButtonStates.NORMAL]: getTexture(`normal/speed-${speedLevel}.png`),
6
6
  [ButtonStates.OVER]: getTexture(`hover/speed-${speedLevel}.png`),
7
- [ButtonStates.CLICKED]: getTexture(`clicked/speed-${speedLevel}.png`),
7
+ [ButtonStates.CLICKED]: getTexture(`clicked/speed-${speedLevel}.png`)
8
8
  };
9
9
  };
10
10
  /**
@@ -23,7 +23,7 @@ export class SpeedControlButton extends BaseButton {
23
23
  this.speedLevelMapper = {
24
24
  slow: createTextureMap("turtle"),
25
25
  normal: createTextureMap("rabbit"),
26
- fast: createTextureMap("cheetah"),
26
+ fast: createTextureMap("cheetah")
27
27
  };
28
28
  }
29
29
  /**
@@ -14,7 +14,7 @@ export class SpinConfirmationButton extends BaseButton {
14
14
  const textureMap = {
15
15
  [ButtonStates.NORMAL]: getTexture("freeSpin_confirm_normal.png"),
16
16
  [ButtonStates.OVER]: getTexture("freeSpin_confirm_hover.png"),
17
- [ButtonStates.CLICKED]: getTexture("freeSpin_confirm_clicked.png"),
17
+ [ButtonStates.CLICKED]: getTexture("freeSpin_confirm_clicked.png")
18
18
  };
19
19
  super(SpinConfirmationButton.registryName, textureMap);
20
20
  }
@@ -21,12 +21,12 @@ export class VolumeButton extends BaseButton {
21
21
  const normalTextureMap = {
22
22
  [ButtonStates.NORMAL]: getTexture("normal/sound.png"),
23
23
  [ButtonStates.OVER]: getTexture("hover/sound.png"),
24
- [ButtonStates.CLICKED]: getTexture("clicked/sound.png"),
24
+ [ButtonStates.CLICKED]: getTexture("clicked/sound.png")
25
25
  };
26
26
  const muteTextureMap = {
27
27
  [ButtonStates.NORMAL]: getTexture("mute.png"),
28
28
  [ButtonStates.OVER]: getTexture("mute-h.png"),
29
- [ButtonStates.CLICKED]: getTexture("mute-c.png"),
29
+ [ButtonStates.CLICKED]: getTexture("mute-c.png")
30
30
  };
31
31
  super(VolumeButton.registryName, RainMan.settingsStore.isSoundEnabled() ? normalTextureMap : muteTextureMap);
32
32
  this.normalTextureMap = normalTextureMap;
@@ -1,5 +1,5 @@
1
1
  import { Container, Graphics, Ticker } from "pixi.js";
2
- import { defaultSpeedConfig, SoundManager, SoundTracks, SPEED_LEVELS, spinSpeedLevels, } from "../../application";
2
+ import { defaultSpeedConfig, SoundManager, SoundTracks, SPEED_LEVELS, spinSpeedLevels } from "../../application";
3
3
  import { FrameLayer } from "../../layers";
4
4
  import { RainMan } from "../../Rainman";
5
5
  import { Speed } from "../symbols";
@@ -1,5 +1,5 @@
1
1
  import { Spine } from "pixi-spine";
2
- import { defaultSpeedConfig, SoundManager, SoundTracks, } from "../../application";
2
+ import { defaultSpeedConfig, SoundManager, SoundTracks } from "../../application";
3
3
  import { FrameLayer } from "../../layers";
4
4
  import { RainMan } from "../../Rainman";
5
5
  import { getDeviceOrientation, getSpineData, logError, scaleToParent } from "../../utils";
@@ -55,7 +55,7 @@ export class AbstractFrame extends ResumableContainer {
55
55
  SoundManager.play(SoundTracks.mysteryFxLoop);
56
56
  this.mysteryFxHighlight.state.setAnimation(0, this.mysteryFxConfig.startAnimationName || this.mysteryFxConfig.loopAnimationName, false);
57
57
  this.mysteryFxHighlight.state.addListener({
58
- complete: () => this.mysteryFxHighlight?.state.setAnimation(0, this.mysteryFxConfig.loopAnimationName, true),
58
+ complete: () => this.mysteryFxHighlight?.state.setAnimation(0, this.mysteryFxConfig.loopAnimationName, true)
59
59
  });
60
60
  this.addChild(this.mysteryFxHighlight);
61
61
  }
@@ -136,7 +136,7 @@ export class AbstractFrame extends ResumableContainer {
136
136
  this.changeFrameForOrientation();
137
137
  const expectedScreenDimensions = {
138
138
  width: this.transformedWidth(),
139
- height: this.transformedHeight(),
139
+ height: this.transformedHeight()
140
140
  };
141
141
  this.removeChild(this.innerFrame);
142
142
  const dimensions = scaleToParent(this.width, this.height, expectedScreenDimensions.width, expectedScreenDimensions.height);
@@ -27,7 +27,7 @@ export class WinLineAnimation extends Spine {
27
27
  this.state.timeScale = this.velocityMultiplier;
28
28
  this.parentLayer = AnimationLayer;
29
29
  this.state.addListener({
30
- complete: () => this.resolvePlayingPromise(),
30
+ complete: () => this.resolvePlayingPromise()
31
31
  });
32
32
  });
33
33
  }
@@ -56,7 +56,7 @@ export class MessageBox extends Container {
56
56
  fontSize,
57
57
  fill: 0xffffff,
58
58
  align: "center",
59
- wordWrap: false,
59
+ wordWrap: false
60
60
  });
61
61
  this.incentiveText.y = -25;
62
62
  this.currentWinText.y = -25;
@@ -67,7 +67,7 @@ export class MessageBox extends Container {
67
67
  this.currentWinText,
68
68
  this.autoSpinText,
69
69
  this.freeSpinText,
70
- this.possibleWinText,
70
+ this.possibleWinText
71
71
  ]);
72
72
  }
73
73
  updateIncentiveText(newText) {
@@ -192,7 +192,7 @@ export class MessageBox extends Container {
192
192
  align: "center",
193
193
  wordWrap: false,
194
194
  padding: 5,
195
- ...winLineTextStyleOverrides,
195
+ ...winLineTextStyleOverrides
196
196
  };
197
197
  this.winLineIndicator = new WinLineIndicator(winLineTextStyle, getImageForSymbolId, message, symbolIds);
198
198
  this.winLineIndicator.y = -this.currentWinText.y + this.winLineIndicator.height / 2;
@@ -1,6 +1,6 @@
1
1
  import { Container, Sprite } from "pixi.js";
2
2
  import { Spine } from "pixi-spine";
3
- import { SymbolId } from "../../application";
3
+ import { SpeedAdapterInterface, SpeedLevel, SymbolId } from "../../application";
4
4
  import { LoadersSpineData, Nullable } from "../../utils";
5
5
  /**
6
6
  * Class represents symbol which is displayed in columns
@@ -9,10 +9,11 @@ import { LoadersSpineData, Nullable } from "../../utils";
9
9
  * @typedef {AbstractSymbolBase}
10
10
  * @augments {Container}
11
11
  */
12
- export declare abstract class AbstractSymbolBase extends Container {
12
+ export declare abstract class AbstractSymbolBase extends Container implements SpeedAdapterInterface<number> {
13
13
  private multiplierSpineName;
14
14
  symbolImage: Sprite;
15
15
  spine: Spine;
16
+ speedLevelMapper: import("../../application").SpeedLevelDirectory<number>;
16
17
  protected destroySuffix: string;
17
18
  protected animationSpeedMultiplier: number;
18
19
  private endOfMultiplierAnimationPromise;
@@ -22,6 +23,7 @@ export declare abstract class AbstractSymbolBase extends Container {
22
23
  protected abstract paytableIgnoredSymbols: SymbolId[];
23
24
  private _id;
24
25
  protected constructor(parent: Container, symbolId: SymbolId, multiplierSpineName?: Nullable<string>);
26
+ adaptToSpeed(speedLevel: SpeedLevel): void;
25
27
  get id(): SymbolId;
26
28
  setInteractiveFlag(flag: boolean): void;
27
29
  updateTimeScaleOfSpine(scale?: number): void;
@@ -15,6 +15,7 @@ export class AbstractSymbolBase extends Container {
15
15
  multiplierSpineName;
16
16
  symbolImage;
17
17
  spine;
18
+ speedLevelMapper = animationsSpeedLevels;
18
19
  destroySuffix = "destroy";
19
20
  animationSpeedMultiplier = defaultSpeedConfig.animationDefaultSpeedScale;
20
21
  endOfMultiplierAnimationPromise;
@@ -39,6 +40,9 @@ export class AbstractSymbolBase extends Container {
39
40
  this.hitArea = new Rectangle(-symbolRadius, -symbolRadius, 2 * symbolRadius, 2 * symbolRadius);
40
41
  this.setupClickListener();
41
42
  }
43
+ adaptToSpeed(speedLevel) {
44
+ this.updateTimeScaleOfSpine(this.speedLevelMapper[speedLevel]);
45
+ }
42
46
  get id() {
43
47
  return this._id;
44
48
  }
@@ -79,9 +83,7 @@ export class AbstractSymbolBase extends Container {
79
83
  this.spine.scale.set(spineScale);
80
84
  this.addChild(this.spine);
81
85
  this.spine.state.addListener({
82
- complete: () => {
83
- resolve();
84
- },
86
+ complete: () => resolve()
85
87
  });
86
88
  });
87
89
  };
@@ -122,7 +124,7 @@ export class AbstractSymbolBase extends Container {
122
124
  symbolMultiplier.state.setAnimation(0, `x${multiplier}`, false);
123
125
  this.endOfMultiplierAnimationPromise = resolve;
124
126
  symbolMultiplier.state.addListener({
125
- complete: () => resolve(),
127
+ complete: () => resolve()
126
128
  });
127
129
  });
128
130
  this.removeChild(symbolMultiplier);
@@ -136,7 +138,7 @@ export class AbstractSymbolBase extends Container {
136
138
  this.spine.state.timeScale = this.animationSpeedMultiplier;
137
139
  this.spine.state.setAnimation(0, animationName, false);
138
140
  this.spine.state.addListener({
139
- complete: () => resolve(),
141
+ complete: () => resolve()
140
142
  });
141
143
  });
142
144
  }
@@ -157,7 +159,7 @@ export class AbstractSymbolBase extends Container {
157
159
  this.spine.state.timeScale = this.animationSpeedMultiplier;
158
160
  this.spine.state.setAnimation(0, animationName, false);
159
161
  this.spine.state.addListener({
160
- complete: () => resolve(),
162
+ complete: () => resolve()
161
163
  });
162
164
  });
163
165
  }
@@ -1,7 +1,7 @@
1
1
  import * as TWEEN from "@tweenjs/tween.js";
2
2
  import { sample } from "lodash";
3
3
  import { Container } from "pixi.js";
4
- import { animationsSpeedLevels, defaultSpeedConfig, SoundManager, SoundTracks, SPEED_LEVELS, } from "../../application";
4
+ import { animationsSpeedLevels, defaultSpeedConfig, SoundManager, SoundTracks, SPEED_LEVELS } from "../../application";
5
5
  import { FrameLayer } from "../../layers";
6
6
  import { RainMan } from "../../Rainman";
7
7
  import { getDeviceOrientation, logInfo } from "../../utils";
@@ -72,7 +72,7 @@ export class AbstractSymbolsColumn extends Container {
72
72
  wiggleTweenDuration: RainMan.config.durationOfActions.wiggleTweenDuration /
73
73
  (this.phase === Phase.BOUNCE ? this.previousVelocityMultiplier : this.velocityMultiplier),
74
74
  symbolDropDownTime: RainMan.config.durationOfActions.symbolDropDownTime / this.velocityMultiplier,
75
- timeToSetResults: RainMan.config.durationOfActions.timeToSetResults / this.velocityMultiplier,
75
+ timeToSetResults: RainMan.config.durationOfActions.timeToSetResults / this.velocityMultiplier
76
76
  };
77
77
  }
78
78
  adaptToSpeed(speedLevel) {
@@ -301,7 +301,7 @@ export class AbstractSymbolsColumn extends Container {
301
301
  .easing(TWEEN.Easing.Bounce.Out)
302
302
  .to({
303
303
  y: firstSymbolToDrop.symbol.y +
304
- this.tileHeight * droppableSymbolsInColumns.numberToBeDropped,
304
+ this.tileHeight * droppableSymbolsInColumns.numberToBeDropped
305
305
  }, this.componentsTimingSettings.symbolDropDownTime)
306
306
  .onComplete(() => {
307
307
  // when completed - sort symbols in array using their y position
@@ -21,7 +21,7 @@ export class UpdatableTextComponent extends UpdatableValueComponent {
21
21
  fontSize,
22
22
  fill: fontColor,
23
23
  align: "center",
24
- padding: 2,
24
+ padding: 2
25
25
  };
26
26
  super(registryName, baseText, textStyle, { ...textStyle, fill: 0xffffff }, mode, updateCallback);
27
27
  }