shufflecom-calculations 6.2.0 → 6.3.0

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.
@@ -0,0 +1,22 @@
1
+ import { FloorIsLavaBoard } from './floor-is-lava-board';
2
+ import { FloorIsLavaAutoBetAction, FloorIsLavaDifficulty, type FloorIsLavaTilesByLevel } from './floor-is-lava-rules';
3
+ export type FloorIsLavaAutoBetPlanError = 'no-tiles-selected' | 'too-many-tiles-selected' | 'incomplete-level-plan' | 'invalid-tile';
4
+ export type FloorIsLavaAutoBetPlanResult = {
5
+ ok: true;
6
+ plannedTiles: number[];
7
+ } | {
8
+ ok: false;
9
+ error: FloorIsLavaAutoBetPlanError;
10
+ };
11
+ export type FloorIsLavaAutoBetError = FloorIsLavaAutoBetPlanError | 'no-rounds-played' | 'no-tiles-remaining';
12
+ export type FloorIsLavaAutoBetResult = {
13
+ ok: true;
14
+ gameAction: FloorIsLavaAutoBetAction;
15
+ } | {
16
+ ok: false;
17
+ error: FloorIsLavaAutoBetError;
18
+ };
19
+ export declare class FloorIsLavaAutobet {
20
+ static validateAutoBetPlan(difficulty: FloorIsLavaDifficulty, selectedTilesByLevel: FloorIsLavaTilesByLevel): FloorIsLavaAutoBetPlanResult;
21
+ static autoBet(difficulty: FloorIsLavaDifficulty, selectedTilesByLevel: FloorIsLavaTilesByLevel, board: FloorIsLavaBoard, edge: number): FloorIsLavaAutoBetResult;
22
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FloorIsLavaAutobet = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const floor_is_lava_1 = require("./floor-is-lava");
9
+ const floor_is_lava_rules_1 = require("./floor-is-lava-rules");
10
+ class FloorIsLavaAutobet {
11
+ static validateAutoBetPlan(difficulty, selectedTilesByLevel) {
12
+ const { roundsPerLevel } = floor_is_lava_rules_1.DIFFICULTY_LEVEL_MAP[difficulty];
13
+ if (selectedTilesByLevel.some(tiles => tiles.length > roundsPerLevel)) {
14
+ return { ok: false, error: 'too-many-tiles-selected' };
15
+ }
16
+ const firstUnfinishedLevel = selectedTilesByLevel.findIndex(tiles => tiles.length < roundsPerLevel);
17
+ if (firstUnfinishedLevel !== -1 && selectedTilesByLevel.slice(firstUnfinishedLevel + 1).some(tiles => tiles.length > 0)) {
18
+ return { ok: false, error: 'incomplete-level-plan' };
19
+ }
20
+ const plannedTiles = selectedTilesByLevel.flat();
21
+ if (plannedTiles.length === 0) {
22
+ return { ok: false, error: 'no-tiles-selected' };
23
+ }
24
+ if (plannedTiles.some(tile => !floor_is_lava_rules_1.FloorIsLavaRules.isValidTile(tile))) {
25
+ return { ok: false, error: 'invalid-tile' };
26
+ }
27
+ return { ok: true, plannedTiles };
28
+ }
29
+ static autoBet(difficulty, selectedTilesByLevel, board, edge) {
30
+ const plan = FloorIsLavaAutobet.validateAutoBetPlan(difficulty, selectedTilesByLevel);
31
+ if (!plan.ok) {
32
+ return plan;
33
+ }
34
+ const history = [floor_is_lava_1.FloorIsLava.createAction(difficulty)];
35
+ const droppedTilesByLevel = [[], [], []];
36
+ let multiplier = (0, bignumber_js_1.default)(0);
37
+ let level = 0;
38
+ let stopReason = floor_is_lava_rules_1.FloorIsLavaAutoBetStopReason.SELECTIONS_EXHAUSTED;
39
+ for (const selectedTile of plan.plannedTiles) {
40
+ const result = floor_is_lava_1.FloorIsLava.fromActions(history).next(selectedTile, board, edge);
41
+ if (!result.ok) {
42
+ switch (result.error) {
43
+ case 'tile-already-dropped':
44
+ stopReason = floor_is_lava_rules_1.FloorIsLavaAutoBetStopReason.TILE_ALREADY_DROPPED;
45
+ break;
46
+ case 'no-tiles-remaining':
47
+ case 'invalid-tile':
48
+ return { ok: false, error: result.error };
49
+ default:
50
+ return result.error;
51
+ }
52
+ break;
53
+ }
54
+ const { gameAction } = result;
55
+ history.push(gameAction);
56
+ droppedTilesByLevel[gameAction.level].push(...gameAction.droppedTiles);
57
+ level = gameAction.level;
58
+ multiplier = gameAction.multiplier;
59
+ if (gameAction.gameStatus === floor_is_lava_rules_1.FloorIsLavaGameStatus.LOST) {
60
+ stopReason = floor_is_lava_rules_1.FloorIsLavaAutoBetStopReason.LOST;
61
+ break;
62
+ }
63
+ if (gameAction.gameStatus === floor_is_lava_rules_1.FloorIsLavaGameStatus.COMPLETED) {
64
+ stopReason = floor_is_lava_rules_1.FloorIsLavaAutoBetStopReason.COMPLETED;
65
+ break;
66
+ }
67
+ }
68
+ if (history.length === 1) {
69
+ return { ok: false, error: 'no-rounds-played' };
70
+ }
71
+ return {
72
+ ok: true,
73
+ gameAction: {
74
+ phase: floor_is_lava_rules_1.FloorIsLavaActionPhase.AUTO_BET,
75
+ difficulty,
76
+ autoBetSelectedTiles: selectedTilesByLevel,
77
+ autoBetDroppedTiles: droppedTilesByLevel,
78
+ autoBetTilesThatSurviveLevel: board.tilesThatSurviveEachLevel(floor_is_lava_rules_1.SURVIVING_TILES_MAP[difficulty]),
79
+ autoBetStopReason: stopReason,
80
+ level,
81
+ multiplier,
82
+ },
83
+ };
84
+ }
85
+ }
86
+ exports.FloorIsLavaAutobet = FloorIsLavaAutobet;
87
+ //# sourceMappingURL=floor-is-lava-autobet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floor-is-lava-autobet.js","sourceRoot":"","sources":["../../../src/games/floor-is-lava/floor-is-lava-autobet.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { RandomNumberGenerator } from '../rng/random-number-generator.interface';
2
+ import { type FloorIsLavaTilesByLevel } from './floor-is-lava-rules';
2
3
  export declare class FloorIsLavaBoard {
3
4
  private readonly levelBoards;
4
- get boards(): [number[], number[], number[]];
5
+ get boards(): FloorIsLavaTilesByLevel;
5
6
  private constructor();
6
7
  static draw(generator: RandomNumberGenerator): FloorIsLavaBoard;
7
8
  tilesDroppedInRound(level: number, dropsPerRound: number, roundIndex: number): number[];
8
9
  tilesThatSurviveLevel(level: number, survivingTilesCount: number): number[];
10
+ tilesThatSurviveEachLevel(survivingTilesCount: number): FloorIsLavaTilesByLevel;
9
11
  }
@@ -35,6 +35,13 @@ class FloorIsLavaBoard {
35
35
  assertValidLevel(level);
36
36
  return this.levelBoards[level].slice(-survivingTilesCount);
37
37
  }
38
+ tilesThatSurviveEachLevel(survivingTilesCount) {
39
+ return [
40
+ this.tilesThatSurviveLevel(0, survivingTilesCount),
41
+ this.tilesThatSurviveLevel(1, survivingTilesCount),
42
+ this.tilesThatSurviveLevel(2, survivingTilesCount),
43
+ ];
44
+ }
38
45
  }
39
46
  exports.FloorIsLavaBoard = FloorIsLavaBoard;
40
47
  //# sourceMappingURL=floor-is-lava-board.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"floor-is-lava-board.js","sourceRoot":"","sources":["../../../src/games/floor-is-lava/floor-is-lava-board.ts"],"names":[],"mappings":";;;AACA,+DAA0E;AAE1E,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAQ,EAAE;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,2CAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,oBAAoB,2CAAqB,GAAG,CAAC,CAAC;IACpG,CAAC;AACH,CAAC,CAAC;AAEF,MAAa,gBAAgB;IAG3B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAoB,SAAgC;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,+BAA+B,CAAC;YACpD,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,gCAAU,GAAG,2CAAqB,GAAG,CAAC;YAC3C,KAAK,EAAE,gCAAU,GAAG,2CAAqB;SAC1C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAmC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gCAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,gCAAU,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,SAAgC;QACjD,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,KAAa,EAAE,aAAqB,EAAE,UAAkB;QACjF,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IACrG,CAAC;IAEM,qBAAqB,CAAC,KAAa,EAAE,mBAA2B;QACrE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;CACF;AAlCD,4CAkCC"}
1
+ {"version":3,"file":"floor-is-lava-board.js","sourceRoot":"","sources":["../../../src/games/floor-is-lava/floor-is-lava-board.ts"],"names":[],"mappings":";;;AACA,+DAAwG;AAExG,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAQ,EAAE;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,2CAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,oBAAoB,2CAAqB,GAAG,CAAC,CAAC;IACpG,CAAC;AACH,CAAC,CAAC;AAEF,MAAa,gBAAgB;IAG3B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAoB,SAAgC;QAClD,MAAM,GAAG,GAAG,SAAS,CAAC,+BAA+B,CAAC;YACpD,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,gCAAU,GAAG,2CAAqB,GAAG,CAAC;YAC3C,KAAK,EAAE,gCAAU,GAAG,2CAAqB;SAC1C,CAAC,CAAC;QAEH,MAAM,MAAM,GAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,gCAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,gCAAU,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,SAAgC;QACjD,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,KAAa,EAAE,aAAqB,EAAE,UAAkB;QACjF,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IACrG,CAAC;IAEM,qBAAqB,CAAC,KAAa,EAAE,mBAA2B;QACrE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAEM,yBAAyB,CAAC,mBAA2B;QAC1D,OAAO;YACL,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,mBAAmB,CAAC;YAClD,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,mBAAmB,CAAC;YAClD,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,mBAAmB,CAAC;SACnD,CAAC;IACJ,CAAC;CACF;AA1CD,4CA0CC"}
@@ -1,6 +1,7 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  export declare const BOARD_SIZE = 49;
3
- export declare const LEVELS_PER_DIFFICULTY = 3;
3
+ export type FloorIsLavaTilesByLevel = [number[], number[], number[]];
4
+ export declare const LEVELS_PER_DIFFICULTY: FloorIsLavaTilesByLevel['length'];
4
5
  export declare enum FloorIsLavaDifficulty {
5
6
  EASY = "EASY",
6
7
  MEDIUM = "MEDIUM",
@@ -16,7 +17,8 @@ export declare const SURVIVING_TILES_MAP: Readonly<Record<FloorIsLavaDifficulty,
16
17
  export declare enum FloorIsLavaActionPhase {
17
18
  START = "START",
18
19
  PICK = "PICK",
19
- CASHOUT = "CASHOUT"
20
+ CASHOUT = "CASHOUT",
21
+ AUTO_BET = "AUTO_BET"
20
22
  }
21
23
  export declare enum FloorIsLavaGameStatus {
22
24
  IN_PROGRESS = "IN_PROGRESS",
@@ -36,17 +38,34 @@ export type FloorIsLavaPickAction = {
36
38
  gameStatus: FloorIsLavaGameStatus;
37
39
  multiplier: BigNumber;
38
40
  };
41
+ export declare enum FloorIsLavaAutoBetStopReason {
42
+ LOST = "LOST",
43
+ COMPLETED = "COMPLETED",
44
+ TILE_ALREADY_DROPPED = "TILE_ALREADY_DROPPED",
45
+ SELECTIONS_EXHAUSTED = "SELECTIONS_EXHAUSTED"
46
+ }
47
+ export interface FloorIsLavaAutoBetAction {
48
+ phase: FloorIsLavaActionPhase.AUTO_BET;
49
+ difficulty: FloorIsLavaDifficulty;
50
+ autoBetSelectedTiles: FloorIsLavaTilesByLevel;
51
+ autoBetDroppedTiles: FloorIsLavaTilesByLevel;
52
+ autoBetTilesThatSurviveLevel: FloorIsLavaTilesByLevel;
53
+ autoBetStopReason: FloorIsLavaAutoBetStopReason;
54
+ level: number;
55
+ multiplier: BigNumber;
56
+ }
39
57
  export interface FloorIsLavaCashoutAction {
40
58
  phase: FloorIsLavaActionPhase.CASHOUT;
41
59
  level: number;
42
60
  multiplier: BigNumber;
43
61
  }
44
62
  export type FloorIsLavaGameAction = FloorIsLavaStartAction | FloorIsLavaPickAction | FloorIsLavaCashoutAction;
63
+ export type FloorIsLavaStoredAction = FloorIsLavaGameAction | FloorIsLavaAutoBetAction;
45
64
  interface FloorIsLavaBaseState {
46
65
  difficulty: FloorIsLavaDifficulty;
47
66
  currentLevel: number;
48
67
  roundsSurvivedInCurrentLevel: number;
49
- droppedTilesByLevel: number[][];
68
+ droppedTilesByLevel: FloorIsLavaTilesByLevel;
50
69
  }
51
70
  export interface FloorIsLavaInProgressState extends FloorIsLavaBaseState {
52
71
  status: 'in-progress';
@@ -61,9 +80,12 @@ export interface FloorIsLavaMultipliers {
61
80
  }
62
81
  export declare class FloorIsLavaRules {
63
82
  static tilesRemaining(roundsSurvivedInCurrentLevel: number, dropsPerRound: number): number;
83
+ static maxAutoBetSelections(difficulty: FloorIsLavaDifficulty): number;
84
+ static roundsPlayedInLevel(difficulty: FloorIsLavaDifficulty, droppedTilesInLevel: number[]): number;
64
85
  static isValidTile(tile: number): boolean;
65
86
  static multiplier(difficulty: FloorIsLavaDifficulty, levelsCleared: number, tilesRemainingInLevel: number, edge: number): BigNumber;
66
87
  static multipliers(state: FloorIsLavaInProgressState, edge: number): FloorIsLavaMultipliers;
67
- static reconstructState(gameActions: FloorIsLavaGameAction[]): FloorIsLavaReconstructedState;
88
+ static multiplierAfterRounds(difficulty: FloorIsLavaDifficulty, roundsSurvived: number, edge: number): BigNumber;
89
+ static reconstructState(gameActions: FloorIsLavaStoredAction[]): FloorIsLavaReconstructedState;
68
90
  }
69
91
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FloorIsLavaRules = exports.FloorIsLavaGameStatus = exports.FloorIsLavaActionPhase = exports.SURVIVING_TILES_MAP = exports.DIFFICULTY_LEVEL_MAP = exports.FloorIsLavaDifficulty = exports.LEVELS_PER_DIFFICULTY = exports.BOARD_SIZE = void 0;
6
+ exports.FloorIsLavaRules = exports.FloorIsLavaAutoBetStopReason = exports.FloorIsLavaGameStatus = exports.FloorIsLavaActionPhase = exports.SURVIVING_TILES_MAP = exports.DIFFICULTY_LEVEL_MAP = exports.FloorIsLavaDifficulty = exports.LEVELS_PER_DIFFICULTY = exports.BOARD_SIZE = void 0;
7
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  const edge_1 = require("../../utils/edge");
9
9
  exports.BOARD_SIZE = 49;
@@ -35,6 +35,7 @@ var FloorIsLavaActionPhase;
35
35
  FloorIsLavaActionPhase["START"] = "START";
36
36
  FloorIsLavaActionPhase["PICK"] = "PICK";
37
37
  FloorIsLavaActionPhase["CASHOUT"] = "CASHOUT";
38
+ FloorIsLavaActionPhase["AUTO_BET"] = "AUTO_BET";
38
39
  })(FloorIsLavaActionPhase || (exports.FloorIsLavaActionPhase = FloorIsLavaActionPhase = {}));
39
40
  var FloorIsLavaGameStatus;
40
41
  (function (FloorIsLavaGameStatus) {
@@ -43,10 +44,23 @@ var FloorIsLavaGameStatus;
43
44
  FloorIsLavaGameStatus["COMPLETED"] = "COMPLETED";
44
45
  FloorIsLavaGameStatus["LOST"] = "LOST";
45
46
  })(FloorIsLavaGameStatus || (exports.FloorIsLavaGameStatus = FloorIsLavaGameStatus = {}));
47
+ var FloorIsLavaAutoBetStopReason;
48
+ (function (FloorIsLavaAutoBetStopReason) {
49
+ FloorIsLavaAutoBetStopReason["LOST"] = "LOST";
50
+ FloorIsLavaAutoBetStopReason["COMPLETED"] = "COMPLETED";
51
+ FloorIsLavaAutoBetStopReason["TILE_ALREADY_DROPPED"] = "TILE_ALREADY_DROPPED";
52
+ FloorIsLavaAutoBetStopReason["SELECTIONS_EXHAUSTED"] = "SELECTIONS_EXHAUSTED";
53
+ })(FloorIsLavaAutoBetStopReason || (exports.FloorIsLavaAutoBetStopReason = FloorIsLavaAutoBetStopReason = {}));
46
54
  class FloorIsLavaRules {
47
55
  static tilesRemaining(roundsSurvivedInCurrentLevel, dropsPerRound) {
48
56
  return exports.BOARD_SIZE - roundsSurvivedInCurrentLevel * dropsPerRound;
49
57
  }
58
+ static maxAutoBetSelections(difficulty) {
59
+ return exports.DIFFICULTY_LEVEL_MAP[difficulty].roundsPerLevel * exports.LEVELS_PER_DIFFICULTY;
60
+ }
61
+ static roundsPlayedInLevel(difficulty, droppedTilesInLevel) {
62
+ return droppedTilesInLevel.length / exports.DIFFICULTY_LEVEL_MAP[difficulty].dropsPerRound;
63
+ }
50
64
  static isValidTile(tile) {
51
65
  return Number.isInteger(tile) && tile >= 0 && tile <= exports.BOARD_SIZE - 1;
52
66
  }
@@ -64,8 +78,31 @@ class FloorIsLavaRules {
64
78
  nextMultiplier: FloorIsLavaRules.multiplier(difficulty, currentLevel, FloorIsLavaRules.tilesRemaining(roundsSurvivedInCurrentLevel + 1, dropsPerRound), edge),
65
79
  };
66
80
  }
81
+ static multiplierAfterRounds(difficulty, roundsSurvived, edge) {
82
+ const { dropsPerRound, roundsPerLevel } = exports.DIFFICULTY_LEVEL_MAP[difficulty];
83
+ const levelsCleared = Math.floor(roundsSurvived / roundsPerLevel);
84
+ const roundsInCurrentLevel = roundsSurvived % roundsPerLevel;
85
+ return FloorIsLavaRules.multiplier(difficulty, levelsCleared, FloorIsLavaRules.tilesRemaining(roundsInCurrentLevel, dropsPerRound), edge);
86
+ }
67
87
  static reconstructState(gameActions) {
68
88
  const first = gameActions[0];
89
+ if ((first === null || first === void 0 ? void 0 : first.phase) === FloorIsLavaActionPhase.AUTO_BET) {
90
+ if (gameActions.length > 1) {
91
+ throw new Error('An AUTO_BET action is the whole game and cannot appear alongside other actions');
92
+ }
93
+ const { roundsPerLevel } = exports.DIFFICULTY_LEVEL_MAP[first.difficulty];
94
+ const roundsPlayed = FloorIsLavaRules.roundsPlayedInLevel(first.difficulty, first.autoBetDroppedTiles[first.level]);
95
+ const lostTheLastRound = first.autoBetStopReason === FloorIsLavaAutoBetStopReason.LOST;
96
+ const roundsSurvived = lostTheLastRound ? roundsPlayed - 1 : roundsPlayed;
97
+ const clearedANonFinalLevel = !lostTheLastRound && roundsSurvived === roundsPerLevel && first.level < exports.LEVELS_PER_DIFFICULTY - 1;
98
+ return {
99
+ status: 'completed',
100
+ difficulty: first.difficulty,
101
+ currentLevel: clearedANonFinalLevel ? first.level + 1 : first.level,
102
+ roundsSurvivedInCurrentLevel: clearedANonFinalLevel ? 0 : roundsSurvived,
103
+ droppedTilesByLevel: first.autoBetDroppedTiles,
104
+ };
105
+ }
69
106
  if (!first || first.phase !== FloorIsLavaActionPhase.START) {
70
107
  throw new Error('First action must be START');
71
108
  }
@@ -73,7 +110,7 @@ class FloorIsLavaRules {
73
110
  const { roundsPerLevel } = exports.DIFFICULTY_LEVEL_MAP[difficulty];
74
111
  let currentLevel = 0;
75
112
  let roundsSurvivedInCurrentLevel = 0;
76
- const droppedTilesByLevel = Array.from({ length: exports.LEVELS_PER_DIFFICULTY }, () => []);
113
+ const droppedTilesByLevel = [[], [], []];
77
114
  for (let i = 1; i < gameActions.length; i++) {
78
115
  const action = gameActions[i];
79
116
  const isLastAction = i === gameActions.length - 1;
@@ -81,6 +118,9 @@ class FloorIsLavaRules {
81
118
  case FloorIsLavaActionPhase.START: {
82
119
  throw new Error('START action can only appear as the first action');
83
120
  }
121
+ case FloorIsLavaActionPhase.AUTO_BET: {
122
+ throw new Error('An AUTO_BET action is the whole game and cannot appear alongside other actions');
123
+ }
84
124
  case FloorIsLavaActionPhase.CASHOUT: {
85
125
  if (!isLastAction) {
86
126
  throw new Error('A CASHOUT action can only appear as the last action');
@@ -1 +1 @@
1
- {"version":3,"file":"floor-is-lava-rules.js","sourceRoot":"","sources":["../../../src/games/floor-is-lava/floor-is-lava-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floor-is-lava-rules.js","sourceRoot":"","sources":["../../../src/games/floor-is-lava/floor-is-lava-rules.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export * from './games/coinflip/coinflip-classic';
35
35
  export * from './games/coinflip/coinflip-classic-progressive';
36
36
  export * from './games/coinflip/coinflip-target';
37
37
  export * from './games/floor-is-lava/floor-is-lava';
38
+ export * from './games/floor-is-lava/floor-is-lava-autobet';
38
39
  export * from './games/floor-is-lava/floor-is-lava-rules';
39
40
  export * from './games/floor-is-lava/floor-is-lava-board';
40
41
  export * from './games/rng/shuffle-random-number-generator';
package/lib/index.js CHANGED
@@ -118,6 +118,7 @@ __exportStar(require("./games/coinflip/coinflip-classic"), exports);
118
118
  __exportStar(require("./games/coinflip/coinflip-classic-progressive"), exports);
119
119
  __exportStar(require("./games/coinflip/coinflip-target"), exports);
120
120
  __exportStar(require("./games/floor-is-lava/floor-is-lava"), exports);
121
+ __exportStar(require("./games/floor-is-lava/floor-is-lava-autobet"), exports);
121
122
  __exportStar(require("./games/floor-is-lava/floor-is-lava-rules"), exports);
122
123
  __exportStar(require("./games/floor-is-lava/floor-is-lava-board"), exports);
123
124
  __exportStar(require("./games/rng/shuffle-random-number-generator"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}