pixi-rainman-game-engine 0.1.19 → 0.1.21

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 (72) hide show
  1. package/README.md +10 -16
  2. package/dist/SettingsUI/SystemSettings/SystemSettingsComponent.d.ts +0 -1
  3. package/dist/SettingsUI/SystemSettings/SystemSettingsComponent.jsx +7 -6
  4. package/dist/SettingsUI/components/AutoplaySettings/index.d.ts +0 -1
  5. package/dist/SettingsUI/components/AutoplaySettings/index.jsx +26 -38
  6. package/dist/SettingsUI/components/Bet/BetControls.d.ts +0 -1
  7. package/dist/SettingsUI/components/Bet/BetControls.jsx +9 -9
  8. package/dist/SettingsUI/components/Bet/index.d.ts +0 -1
  9. package/dist/SettingsUI/components/Bet/index.jsx +1 -3
  10. package/dist/SettingsUI/components/Button/index.d.ts +2 -0
  11. package/dist/SettingsUI/components/Button/index.jsx +6 -0
  12. package/dist/SettingsUI/components/BuyFreeSpins/index.d.ts +0 -1
  13. package/dist/SettingsUI/components/BuyFreeSpins/index.jsx +6 -6
  14. package/dist/SettingsUI/components/CloseModalButton/index.d.ts +0 -1
  15. package/dist/SettingsUI/components/CloseModalButton/index.jsx +3 -3
  16. package/dist/SettingsUI/components/GameRules/index.d.ts +0 -1
  17. package/dist/SettingsUI/components/GameRules/index.jsx +11 -13
  18. package/dist/SettingsUI/components/Modal/index.d.ts +10 -0
  19. package/dist/SettingsUI/components/Modal/index.jsx +24 -0
  20. package/dist/SettingsUI/components/OptionButton/index.jsx +1 -1
  21. package/dist/SettingsUI/components/RichLimitingSlider/index.d.ts +0 -1
  22. package/dist/SettingsUI/components/RichLimitingSlider/index.jsx +8 -8
  23. package/dist/SettingsUI/components/SlidingSwitch/index.d.ts +0 -1
  24. package/dist/SettingsUI/components/SlidingSwitch/index.jsx +4 -5
  25. package/dist/SettingsUI/components/SpeedSettingsPopup/index.d.ts +0 -1
  26. package/dist/SettingsUI/components/SpeedSettingsPopup/index.jsx +6 -6
  27. package/dist/SettingsUI/components/SpeedSwitchButton/index.jsx +6 -5
  28. package/dist/SettingsUI/components/SwitchWithHeader/index.d.ts +0 -1
  29. package/dist/SettingsUI/components/SwitchWithHeader/index.jsx +5 -6
  30. package/dist/SettingsUI/components/SymbolMultiplierPopup/index.d.ts +1 -2
  31. package/dist/SettingsUI/components/SymbolMultiplierPopup/index.jsx +17 -15
  32. package/dist/SettingsUI/components/UXSettings/index.d.ts +0 -1
  33. package/dist/SettingsUI/components/UXSettings/index.jsx +8 -21
  34. package/dist/SettingsUI/components/VolumeSettings/index.d.ts +0 -1
  35. package/dist/SettingsUI/components/VolumeSettings/index.jsx +4 -5
  36. package/dist/SettingsUI/hooks/index.d.ts +1 -0
  37. package/dist/SettingsUI/hooks/index.js +1 -0
  38. package/dist/SettingsUI/hooks/useClickOutside.d.ts +6 -0
  39. package/dist/SettingsUI/hooks/useClickOutside.js +20 -0
  40. package/dist/SettingsUI/index.css +46 -26
  41. package/dist/SettingsUI/index.d.ts +1 -1
  42. package/dist/SettingsUI/index.jsx +15 -14
  43. package/dist/SettingsUI/packedStyles.css +1617 -0
  44. package/dist/SettingsUI/utils/tw.d.ts +2 -0
  45. package/dist/SettingsUI/utils/tw.js +3 -0
  46. package/dist/application/ApiConfig/ApiConfig.d.ts +1 -1
  47. package/dist/application/ApiConfig/ApiConfig.js +2 -2
  48. package/dist/application/setup.js +1 -1
  49. package/dist/components/AbstractMainContainer/AbstractMainContainer.js +3 -2
  50. package/dist/components/dictionary/locales/en.json +2 -1
  51. package/dist/components/messageBox/MessageBox.js +10 -6
  52. package/dist/components/symbols/AbstractSymbolsColumn.js +3 -5
  53. package/dist/connectivity/serverData.d.ts +20 -0
  54. package/dist/controllers/AbstractController.d.ts +1 -0
  55. package/dist/controllers/AbstractController.js +12 -0
  56. package/dist/stores/SettingsStore.d.ts +5 -0
  57. package/dist/stores/SettingsStore.js +11 -0
  58. package/dist/utils/common/screenHelpers.js +1 -1
  59. package/package.json +9 -4
  60. package/dist/SettingsUI/SystemSettings/systemSettings.css +0 -41
  61. package/dist/SettingsUI/components/AutoplaySettings/autoplaySettings.css +0 -267
  62. package/dist/SettingsUI/components/Bet/bet.css +0 -104
  63. package/dist/SettingsUI/components/BuyFreeSpins/buyFreeSpin.css +0 -46
  64. package/dist/SettingsUI/components/CloseModalButton/closeModalButton.css +0 -20
  65. package/dist/SettingsUI/components/GameRules/gameRules.css +0 -96
  66. package/dist/SettingsUI/components/RichLimitingSlider/richLimitingSlider.css +0 -39
  67. package/dist/SettingsUI/components/SlidingSwitch/slidingSwitch.css +0 -126
  68. package/dist/SettingsUI/components/SpeedSettingsPopup/speedSettingsPopup.css +0 -119
  69. package/dist/SettingsUI/components/SwitchWithHeader/headerStyle.css +0 -28
  70. package/dist/SettingsUI/components/SymbolMultiplierPopup/symbolPopup.css +0 -101
  71. package/dist/SettingsUI/components/UXSettings/UXSettings.css +0 -28
  72. package/dist/SettingsUI/components/VolumeSettings/volume.css +0 -54
@@ -0,0 +1,2 @@
1
+ import { ClassValue } from "clsx";
2
+ export declare const cn: (...classes: ClassValue[]) => string;
@@ -0,0 +1,3 @@
1
+ import clsx from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export const cn = (...classes) => twMerge(clsx(classes));
@@ -19,7 +19,7 @@ export declare class ApiConfig {
19
19
  private transformationMap;
20
20
  extraData: InitExtraData;
21
21
  /**
22
- * Create instance of ApiConfig, requires InitDataInterfac
22
+ * Create instance of ApiConfig, requires InitDataInterface
23
23
  *
24
24
  * @param {InitDataInterface} data
25
25
  */
@@ -17,7 +17,7 @@ export class ApiConfig {
17
17
  transformationMap = new Map();
18
18
  extraData;
19
19
  /**
20
- * Create instance of ApiConfig, requires InitDataInterfac
20
+ * Create instance of ApiConfig, requires InitDataInterface
21
21
  *
22
22
  * @param {InitDataInterface} data
23
23
  */
@@ -27,7 +27,7 @@ export class ApiConfig {
27
27
  }
28
28
  this.token = data.token;
29
29
  this.bets = data.bets;
30
- this.extraData = data.extra_data;
30
+ this.extraData = { ...data.extra_data, jackpotWins: data.jackpot_wins };
31
31
  this.initSymbolMap(data);
32
32
  this.initWinMap(data);
33
33
  this.initStreakMap(data);
@@ -13,7 +13,6 @@ export const setup = () => {
13
13
  changeResolution(RainMan.settingsStore.HiResolutionFlag);
14
14
  resizeCanvas();
15
15
  setupFullscreenForIOS();
16
- disableMagnifyingGlassOnIOS();
17
16
  const gameRoot = document.createElement("div");
18
17
  gameRoot.setAttribute("class", "game-container");
19
18
  document.body.appendChild(gameRoot);
@@ -27,5 +26,6 @@ export const setup = () => {
27
26
  reactRoot.render(SettingsUI());
28
27
  // append canvas
29
28
  gameRoot.appendChild(RainMan.app.view);
29
+ disableMagnifyingGlassOnIOS();
30
30
  return reactLayer;
31
31
  };
@@ -189,7 +189,7 @@ export class AbstractMainContainer extends Container {
189
189
  }
190
190
  createUnderFramePanel() {
191
191
  const underFramePanel = new Graphics();
192
- underFramePanel.beginFill(0x0, 0.5);
192
+ underFramePanel.beginFill(0x0, 0.75);
193
193
  underFramePanel.drawRect(0, 0, 800, 100);
194
194
  return underFramePanel;
195
195
  }
@@ -235,6 +235,7 @@ export class AbstractMainContainer extends Container {
235
235
  if (this.bigWinContainer) {
236
236
  this.removeChild(this.bigWinContainer);
237
237
  }
238
+ this.messageBox.resize();
238
239
  this.background.resize();
239
240
  this.animatedFront?.resize();
240
241
  if (this.freeSpinButton)
@@ -312,6 +313,7 @@ export class AbstractMainContainer extends Container {
312
313
  this.logo?.resize();
313
314
  this.leftButtons.resize();
314
315
  this.rightButtons.resize();
316
+ this.messageBox.resize();
315
317
  if (this.landscapePlayButtons !== null)
316
318
  this.landscapePlayButtons.resize();
317
319
  if (this.portraitPlayButtons !== null)
@@ -351,7 +353,6 @@ export class AbstractMainContainer extends Container {
351
353
  this.freeSpinSummary.resize();
352
354
  }
353
355
  RainMan.settingsStore.popupPaytableRepositionCallback?.();
354
- this.messageBox.resize();
355
356
  }
356
357
  refreshLayers() {
357
358
  this.removeChild(BackgroundLayer);
@@ -59,6 +59,7 @@
59
59
  "gambleToWin": "GAMBLE TO WIN",
60
60
  "doubleTo": "DOUBLE TO",
61
61
  "collect": "COLLECT",
62
- "totalBet": "Total bet"
62
+ "totalBet": "Bet",
63
+ "buyFreeSpins": "Buy Free Spins"
63
64
  }
64
65
  }
@@ -32,17 +32,17 @@ export class MessageBox extends Container {
32
32
  constructor() {
33
33
  super();
34
34
  this.name = MessageBox.registryName;
35
+ const fontSize = getDeviceOrientation().includes("mobile")
36
+ ? RainMan.config.mobileFontSize
37
+ : RainMan.config.fontSize;
35
38
  this.positioningFrame = new Graphics();
36
39
  this.positioningFrame.beginFill(0xff0000, 0.0);
37
40
  this.positioningFrame.drawRect(0, 0, 800, 100);
38
41
  this.addChild(this.positioningFrame);
39
42
  this.parentLayer = UXLayer;
40
- this.freeSpinText = new UpdatableTextComponent(MessageBox.freeSpinTextRegistryName, i18n.t("currentFreeSpins"), UPDATABLE_MODES.int, undefined, new Color(0xffffff).toHex(), () => this.centerTextOnX(this.freeSpinText));
41
- this.autoSpinText = new UpdatableTextComponent(MessageBox.autoSpinTextRegistryName, i18n.t("autoSpinsLeft"), UPDATABLE_MODES.int, undefined, new Color(0xffffff).toHex(), () => this.centerTextOnX(this.autoSpinText));
42
- this.currentWinText = new UpdatableTextComponent(MessageBox.currentWinTextRegistryName, i18n.t("currentWin"), UPDATABLE_MODES.money, undefined, undefined, () => this.centerTextOnX(this.currentWinText));
43
- const fontSize = getDeviceOrientation().includes("mobile")
44
- ? RainMan.config.mobileFontSize
45
- : RainMan.config.fontSize;
43
+ this.freeSpinText = new UpdatableTextComponent(MessageBox.freeSpinTextRegistryName, i18n.t("currentFreeSpins"), UPDATABLE_MODES.int, fontSize, new Color(0xffffff).toHex(), () => this.centerTextOnX(this.freeSpinText));
44
+ this.autoSpinText = new UpdatableTextComponent(MessageBox.autoSpinTextRegistryName, i18n.t("autoSpinsLeft"), UPDATABLE_MODES.int, fontSize, new Color(0xffffff).toHex(), () => this.centerTextOnX(this.autoSpinText));
45
+ this.currentWinText = new UpdatableTextComponent(MessageBox.currentWinTextRegistryName, i18n.t("currentWin"), UPDATABLE_MODES.money, fontSize, undefined, () => this.centerTextOnX(this.currentWinText));
46
46
  this.incentiveText = new Text(sample(i18n.t("idleMessages", { returnObjects: true })[RainMan.componentRegistry.getSpeedLevel()]), {
47
47
  fontFamily: RainMan.config.fontFace,
48
48
  fontSize,
@@ -94,6 +94,10 @@ export class MessageBox extends Container {
94
94
  }
95
95
  resize() {
96
96
  this.scale.set(globalMinRatio());
97
+ if (getDeviceOrientation().includes("mobile") && this.winLineIndicatorShown && this.winLineIndicator) {
98
+ this.removeChild(this.winLineIndicator);
99
+ this.addChild(this.winLineIndicator);
100
+ }
97
101
  }
98
102
  showCurrentWinText() {
99
103
  this.hideIncentiveText();
@@ -308,13 +308,11 @@ export class AbstractSymbolsColumn extends Container {
308
308
  shouldPlaySpecialRollStopSound() {
309
309
  for (let i = 0; i <= RainMan.config.numberOfColumns; i++) {
310
310
  const currentColumn = this.columnsContainer.getColumnAtPosition(i);
311
- const hasBonus = !!currentColumn.symbols
311
+ if (currentColumn !== this)
312
+ continue;
313
+ return !!currentColumn.symbols
312
314
  .slice(0, RainMan.config.numberOfRows)
313
315
  .find((symbol) => symbol.id === this.bonusSymbol);
314
- if (hasBonus && currentColumn === this)
315
- return true;
316
- if (!hasBonus)
317
- return false;
318
316
  }
319
317
  return false;
320
318
  }
@@ -15,8 +15,28 @@ export interface InitDataInterface {
15
15
  transformations_types: Array<number>;
16
16
  paytable: PayTableInterface;
17
17
  extra_data: InitExtraData;
18
+ jackpot_wins?: JackpotWins;
18
19
  }
20
+ export type JackpotType = "jackpot-mini" | "jackpot-minor" | "jackpot-major" | "jackpot-grand";
21
+ export type JackpotWins = {
22
+ "jackpot-grand": {
23
+ max: number;
24
+ };
25
+ "jackpot-major": {
26
+ max: number;
27
+ min: number;
28
+ };
29
+ "jackpot-minor": {
30
+ max: number;
31
+ min: number;
32
+ };
33
+ "jackpot-mini": {
34
+ max: number;
35
+ min: number;
36
+ };
37
+ };
19
38
  export interface InitExtraData {
39
+ jackpotWins?: JackpotWins;
20
40
  }
21
41
  type FixedQuantityValue = Record<string, {
22
42
  value: number | number[];
@@ -59,6 +59,7 @@ export declare abstract class AbstractController<T> {
59
59
  private setRefreshButtonBasedOnPhase;
60
60
  private setMessageBoxBasedOnPhase;
61
61
  protected getReelIndexesToShowMysteryFx(spinLogic: SpinLogic): number[];
62
+ protected showSuperBonusWin(removeBonusWin: Promise<void>): void;
62
63
  protected handleSpinLogic(): void;
63
64
  protected throttledSpin(): void;
64
65
  private getBoughtNumberOfFreeSpins;
@@ -46,6 +46,7 @@ export class AbstractController {
46
46
  this.uiController = new UiController(this.config);
47
47
  this.componentRegistry = RainMan.componentRegistry;
48
48
  this.setupSpaceOrEnterListener();
49
+ RainMan.settingsStore.showSuperBonusWin = this.showSuperBonusWin.bind(this);
49
50
  }
50
51
  init() {
51
52
  const initData = this.connection.initData();
@@ -259,6 +260,17 @@ export class AbstractController {
259
260
  }
260
261
  return reelsIndexesWithScatter;
261
262
  }
263
+ showSuperBonusWin(removeBonusWin) {
264
+ this.changeGamePhase(gamePhases.BIG_WIN_INVOKED);
265
+ const winAmount = RainMan.settingsStore.cumulativeWinAmount > 0
266
+ ? RainMan.settingsStore.cumulativeWinAmount
267
+ : this.uiController.recentWin;
268
+ this.countWinBigWin(winAmount).then(async () => {
269
+ await removeBonusWin;
270
+ this.changeGamePhase(gamePhases.IDLE);
271
+ });
272
+ RainMan.settingsStore.resetCumulativeWinAmount();
273
+ }
262
274
  handleSpinLogic() {
263
275
  if (this.mainContainer.freeSpinPlate) {
264
276
  if (this.mainContainer.freeSpinPlate.shownAt === null ||
@@ -28,6 +28,7 @@ export declare class SettingsStore {
28
28
  HiResolutionFlag: boolean;
29
29
  batterySaverFlag: boolean;
30
30
  containersWithSpines: (ResumableContainer | SpineWithResumableContainer | SpriteWithResumableContainer)[];
31
+ cumulativeWinAmount: number;
31
32
  progress: number;
32
33
  singleWinExceeds: number;
33
34
  balancedIncreased: number;
@@ -41,6 +42,7 @@ export declare class SettingsStore {
41
42
  popupPaytableRepositionCallback?: () => void;
42
43
  updateVolumeButtonTexture?: () => void;
43
44
  handleModalInvocation?: (layerId: string) => void;
45
+ showSuperBonusWin?: (callback: Promise<void>) => void;
44
46
  private readonly initialAutoplaySettingsState;
45
47
  private modalsAvailable;
46
48
  private paytableMap;
@@ -48,6 +50,8 @@ export declare class SettingsStore {
48
50
  updateBetText(newText: string): void;
49
51
  get indexOfSpeedLevel(): number;
50
52
  get isFreeSpinsPlayEnabled(): boolean;
53
+ addCumulativeWinAmount(amount: number): void;
54
+ resetCumulativeWinAmount(): void;
51
55
  updateBet(newBet: number): void;
52
56
  setBatteryFlag(flag: boolean): void;
53
57
  refreshBatterySaver(): void;
@@ -65,6 +69,7 @@ export declare class SettingsStore {
65
69
  setBalancedDecreased(newValue: number): void;
66
70
  getMinimumPaytableValue(multipliers: RangeQuantityValue[keyof RangeQuantityValue]): number;
67
71
  getMaximumPaytableValue(multipliers: RangeQuantityValue[keyof RangeQuantityValue]): number;
72
+ forceSuperBigWin(removeBonusWin: Promise<void>): void;
68
73
  setDataForSymbolPaytablePopup(symbolId: SymbolId, repositionCallback: () => void): void;
69
74
  resetDataForSymbolPaytablePopup(): void;
70
75
  setUpdateVolumeButtonTexture(fn: () => void): void;
@@ -34,6 +34,7 @@ export class SettingsStore {
34
34
  HiResolutionFlag = getFromLocalStorage(LOCAL_STORAGE.hiResolution, true);
35
35
  batterySaverFlag = getFromLocalStorage(LOCAL_STORAGE.batterySaver, false);
36
36
  containersWithSpines = [];
37
+ cumulativeWinAmount = 0;
37
38
  progress = 0;
38
39
  singleWinExceeds = 0;
39
40
  balancedIncreased = 0;
@@ -47,6 +48,7 @@ export class SettingsStore {
47
48
  popupPaytableRepositionCallback;
48
49
  updateVolumeButtonTexture;
49
50
  handleModalInvocation;
51
+ showSuperBonusWin;
50
52
  initialAutoplaySettingsState = {
51
53
  infinitySpinsEnabled: false,
52
54
  onAnyWin: false,
@@ -105,6 +107,12 @@ export class SettingsStore {
105
107
  get isFreeSpinsPlayEnabled() {
106
108
  return this.howManyFreeSpinsLeft > 0 || this.isLastFreeSpin;
107
109
  }
110
+ addCumulativeWinAmount(amount) {
111
+ this.cumulativeWinAmount = this.cumulativeWinAmount + amount;
112
+ }
113
+ resetCumulativeWinAmount() {
114
+ this.cumulativeWinAmount = 0;
115
+ }
108
116
  updateBet(newBet) {
109
117
  this.bet = newBet;
110
118
  }
@@ -205,6 +213,9 @@ export class SettingsStore {
205
213
  return last(multipliers) || 0;
206
214
  return 0;
207
215
  }
216
+ forceSuperBigWin(removeBonusWin) {
217
+ this.showSuperBonusWin?.(removeBonusWin);
218
+ }
208
219
  setDataForSymbolPaytablePopup(symbolId, repositionCallback) {
209
220
  this.popupPaytableRepositionCallback = repositionCallback;
210
221
  this.popupPaytableRepositionCallback();
@@ -60,7 +60,7 @@ export const setupFullscreenForIOS = () => {
60
60
  });
61
61
  };
62
62
  export const disableMagnifyingGlassOnIOS = () => {
63
- document.body.addEventListener("touchend", (e) => e.preventDefault(), { passive: false });
63
+ document.querySelector("canvas")?.addEventListener("touchend", (e) => e.preventDefault(), { passive: false });
64
64
  };
65
65
  export const resizeCanvas = () => {
66
66
  const resize = () => {
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "pixi-rainman-game-engine",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "This repository contains all of the mechanics that used in rainman games.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "scripts": {
9
- "copyCss": "copyfiles -u 1 \"src/**/*.css\" dist/",
9
+ "copyCss": "yarn build:tailwind && copyfiles -u 1 \"src/**/*.css\" dist/",
10
+ "build:tailwind": "tailwindcss -i ./src/SettingsUI/index.css -o ./src/SettingsUI/packedStyles.css",
10
11
  "build": "rimraf dist/ && tsc && yarn copyCss",
11
12
  "dev:build": "tsc-watch --onSuccess \"yarn copyCss\"",
12
- "dev:link": "npm link && cd test-environment && npm link pixi-rainman-game-engine",
13
- "dev:server": "cd test-environment && yarn dev",
14
13
  "lint": "eslint src/** --fix",
15
14
  "prepublishOnly": "husky && yarn build",
16
15
  "prepare": "husky"
@@ -25,6 +24,7 @@
25
24
  "@pixi/sound": "^5.2.2",
26
25
  "@tweenjs/tween.js": "18.6.4",
27
26
  "adaptive-scale": "^1.0.0",
27
+ "clsx": "^2.1.1",
28
28
  "i18next": "^23.10.1",
29
29
  "lodash": "^4.17.21",
30
30
  "mobx": "^6.12.0",
@@ -36,6 +36,7 @@
36
36
  "react-custom-scroll": "^5.0.0",
37
37
  "react-dom": "^18.2.0",
38
38
  "stats.js": "^0.17.0",
39
+ "tailwind-merge": "^2.3.0",
39
40
  "ts-money": "^0.4.8",
40
41
  "zod": "^3.22.4"
41
42
  },
@@ -48,6 +49,7 @@
48
49
  "@types/stats.js": "^0.17.3",
49
50
  "@typescript-eslint/eslint-plugin": "^7.0.2",
50
51
  "@typescript-eslint/parser": "^7.0.2",
52
+ "autoprefixer": "^10.4.19",
51
53
  "copyfiles": "^2.4.1",
52
54
  "eslint": "^8.57.0",
53
55
  "eslint-config-prettier": "^9.1.0",
@@ -55,9 +57,12 @@
55
57
  "eslint-plugin-sort-class-members": "^1.20.0",
56
58
  "eslint-prettier-config": "^1.0.1",
57
59
  "husky": "^9.0.11",
60
+ "postcss": "^8.4.38",
58
61
  "prettier": "^3.2.5",
62
+ "prettier-plugin-tailwindcss": "^0.6.1",
59
63
  "pretty-quick": "^4.0.0",
60
64
  "rimraf": "^5.0.5",
65
+ "tailwindcss": "^3.4.4",
61
66
  "tsc": "^2.0.4",
62
67
  "tsc-watch": "^6.0.4",
63
68
  "typescript": "^5.3.3"
@@ -1,41 +0,0 @@
1
- .settings__title {
2
- display: flex;
3
- flex-direction: row;
4
- justify-content: center;
5
- }
6
-
7
- .settings {
8
- display: flex;
9
- flex-direction: column;
10
- height: 90%;
11
- align-items: center;
12
- width: 90%;
13
- }
14
-
15
- .settings__title h2 {
16
- color: #ec5e27;
17
- margin: 0px;
18
- text-decoration: underline;
19
- text-transform: uppercase;
20
- }
21
-
22
- .settings__column {
23
- display: flex;
24
- flex-direction: row;
25
- overflow: auto;
26
- align-items: center;
27
- height: 100%;
28
- width: 100%;
29
- }
30
-
31
- @media only screen and (max-width: 900px) {
32
- .settings__column {
33
- flex-direction: column-reverse;
34
- }
35
- }
36
-
37
- @media only screen and (max-width: 900px) {
38
- .bet-desktop__container {
39
- display: none;
40
- }
41
- }
@@ -1,267 +0,0 @@
1
- .autoplay-settings {
2
- display: flex;
3
- flex-direction: column;
4
- height: 90%;
5
- align-items: center;
6
- width: 70%;
7
- max-width: 800px;
8
- justify-content: space-between;
9
- }
10
-
11
- .autoplay-settings__title {
12
- display: flex;
13
- flex-direction: row;
14
- justify-content: center;
15
- }
16
-
17
- .autoplay-settings__exit {
18
- font-size: 30px;
19
- color: white;
20
- position: absolute;
21
- right: 30px;
22
- top: 15px;
23
- background-color: #00000000;
24
- border-style: none;
25
- }
26
-
27
- .autoplay-settings__title h2 {
28
- color: #ec5e27;
29
- margin: 0px;
30
- text-decoration: underline;
31
- text-transform: uppercase;
32
- }
33
-
34
- .autoplay-settings__sliders {
35
- width: 100%;
36
- }
37
-
38
- .autoplay-settings__switch {
39
- width: 300px;
40
- }
41
-
42
- .autoplay-settings__column {
43
- display: flex;
44
- flex-direction: row;
45
- overflow: auto;
46
- align-items: center;
47
- height: 100%;
48
- width: 100%;
49
- }
50
-
51
- .autoplay-settings__switches {
52
- display: flex;
53
- flex-direction: row;
54
- justify-content: space-between;
55
- align-items: center;
56
- width: 100%;
57
- margin: 10px 0px;
58
- }
59
-
60
- .autoplay-settings__stop-limits {
61
- display: flex;
62
- flex-direction: row;
63
- width: 100%;
64
- height: 50px;
65
- justify-content: center;
66
- }
67
-
68
- .autoplay-settings__limit {
69
- width: 40px;
70
- border: solid 2px white;
71
- display: flex;
72
- align-items: center;
73
- justify-content: center;
74
- font-size: 20px;
75
- font-weight: bolder;
76
- margin: 0px 5px;
77
- color: white;
78
- }
79
-
80
- .autoplay-settings__limit:hover {
81
- background-color: #fdf42525;
82
- border: 2px solid #fdf425;
83
- color: #fdf425;
84
- }
85
-
86
- .autoplay-settings__limit--active {
87
- background-color: #fdf42550;
88
- border: 2px solid #fdf425;
89
- color: #fdf425;
90
- }
91
-
92
- .autoplay-settings__limit--infinity {
93
- border: 2px solid #5a5a5aad;
94
- color: #5a5a5aad;
95
- }
96
-
97
- .left {
98
- border-radius: 34px 0px 0px 34px;
99
- }
100
-
101
- .right {
102
- border-radius: 0px 34px 34px 0px;
103
- }
104
-
105
- .middle {
106
- width: 60px;
107
- border-radius: 0px 0px 0px 0px;
108
- background-color: #00000000;
109
- }
110
-
111
- .circle {
112
- border-radius: 34px;
113
- font-size: 40px;
114
- }
115
-
116
- .autoplay-settings__limit.circle p {
117
- position: relative;
118
- top: -4px;
119
- }
120
-
121
- .autoplay-settings__limit.left p {
122
- position: relative;
123
- top: -2px;
124
- }
125
-
126
- .autoplay-settings__limit.right p {
127
- position: relative;
128
- top: -2px;
129
- }
130
-
131
- .autoplay-settings__confirmation {
132
- display: flex;
133
- flex-direction: row;
134
- justify-content: center;
135
- align-items: center;
136
- width: 100%;
137
- margin-top: 20px;
138
- }
139
-
140
- .autoplay-settings__confirmation-button {
141
- margin: 10px 0px 10px 10px;
142
- width: 100px;
143
- height: 40px;
144
- border: solid white 2px;
145
- background-color: black;
146
- border-radius: 34px;
147
- font-size: large;
148
- font-weight: bold;
149
- color: white;
150
- display: flex;
151
- justify-content: center;
152
- align-items: center;
153
- margin: 0px 10px;
154
- }
155
-
156
- .autoplay-settings__confirmation-button:hover {
157
- background-color: #fdf42550;
158
- border: 2px solid #fdf425;
159
- color: #fdf425;
160
- }
161
-
162
- @media only screen and (max-width: 900px) {
163
- .autoplay-settings {
164
- width: 90%;
165
- }
166
-
167
- .autoplay-settings__column {
168
- flex-direction: column-reverse;
169
- }
170
-
171
- .autoplay-settings__switches {
172
- width: 100%;
173
- flex-direction: column;
174
- }
175
-
176
- .autoplay-settings__switch {
177
- width: 250px;
178
- flex-direction: column;
179
- margin: 5px 0px;
180
- }
181
-
182
- .left {
183
- width: 40px;
184
- border-radius: 34px 0px 0px 34px;
185
- }
186
-
187
- .right {
188
- width: 40px;
189
- border-radius: 0px 34px 34px 0px;
190
- }
191
-
192
- .middle {
193
- width: 70px;
194
- font-size: 12px;
195
- border-radius: 0px 0px 0px 0px;
196
- }
197
-
198
- .circle {
199
- border-radius: 34px;
200
- font-size: 40px;
201
- width: 30px;
202
- }
203
-
204
- .autoplay-settings__stop-limits {
205
- height: 35px;
206
- }
207
-
208
- .autoplay-settings__limit.circle p {
209
- position: relative;
210
- top: -4px;
211
- font-size: 20px;
212
- }
213
-
214
- .autoplay-settings__limit.left p {
215
- position: relative;
216
- top: -2px;
217
- }
218
-
219
- .autoplay-settings__limit.right p {
220
- position: relative;
221
- top: -2px;
222
- }
223
-
224
- .autoplay-settings__confirmation {
225
- display: flex;
226
- flex-direction: row;
227
- justify-content: center;
228
- align-items: center;
229
- width: 100%;
230
- margin-top: 0px;
231
- }
232
-
233
- .left {
234
- border-radius: 34px 0px 0px 34px;
235
- }
236
-
237
- .right {
238
- border-radius: 0px 34px 34px 0px;
239
- }
240
-
241
- .middle {
242
- width: 60px;
243
- border-radius: 0px 0px 0px 0px;
244
- }
245
-
246
- .circle {
247
- border-radius: 34px;
248
- font-size: 40px;
249
- }
250
-
251
- .autoplay-settings__limit.circle p {
252
- top: -2px;
253
- }
254
-
255
- .autoplay-settings__limit.left p {
256
- top: -2px;
257
- }
258
-
259
- .autoplay-settings__limit.right p {
260
- top: -2px;
261
- }
262
-
263
- .autoplay-settings__exit {
264
- right: -10px;
265
- top: 10px;
266
- }
267
- }