@omnitronix/bonnys-fortune-game-engine 1.7.0 → 1.7.2

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.
@@ -270,22 +270,22 @@ exports.gameLogicConfig = {
270
270
  potMeter: 'bonusGame2',
271
271
  config: {
272
272
  spinTypes: [
273
- // 5x3 layout - smaller screen, lower multipliers (GDD: x1, x2)
273
+ // 5x3 layout - smallest screen, highest multipliers (C++ math model: x10, x20)
274
274
  {
275
275
  layout: { reels: 5, rows: 3 },
276
276
  spins: 8,
277
- multiplier: 1,
277
+ multiplier: 10,
278
278
  weight: 5,
279
279
  reelsOptionsWeights: [1, 1, 4, 4],
280
280
  },
281
281
  {
282
282
  layout: { reels: 5, rows: 3 },
283
283
  spins: 4,
284
- multiplier: 2,
284
+ multiplier: 20,
285
285
  weight: 5,
286
286
  reelsOptionsWeights: [1, 1, 4, 4],
287
287
  },
288
- // 5x4 layout - medium screen, medium multipliers (GDD: x3, x6)
288
+ // 5x4 layout - medium screen, medium multipliers (C++ math model: x3, x6)
289
289
  {
290
290
  layout: { reels: 5, rows: 4 },
291
291
  spins: 8,
@@ -300,18 +300,18 @@ exports.gameLogicConfig = {
300
300
  weight: 5,
301
301
  reelsOptionsWeights: [1, 1, 4, 4],
302
302
  },
303
- // 5x5 layout - larger screen, higher multipliers (GDD: x10, x20)
303
+ // 5x5 layout - largest screen, lowest multipliers (C++ math model: x1, x2)
304
304
  {
305
305
  layout: { reels: 5, rows: 5 },
306
306
  spins: 8,
307
- multiplier: 10,
307
+ multiplier: 1,
308
308
  weight: 5,
309
309
  reelsOptionsWeights: [1, 1, 4, 4],
310
310
  },
311
311
  {
312
312
  layout: { reels: 5, rows: 5 },
313
313
  spins: 4,
314
- multiplier: 20,
314
+ multiplier: 2,
315
315
  weight: 5,
316
316
  reelsOptionsWeights: [1, 1, 4, 4],
317
317
  },
@@ -1 +1 @@
1
- {"version":3,"file":"game-logic-config.js","sourceRoot":"","sources":["../../../src/config/game-logic-config/game-logic-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-logic-config.js","sourceRoot":"","sources":["../../../src/config/game-logic-config/game-logic-config.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,4 @@ export declare class CollectFeatureBonusHandler {
9
9
  private executeSingleSpin;
10
10
  private weightedPick;
11
11
  private weightedPickSymbol;
12
- private getBetStake;
13
12
  }
@@ -8,7 +8,7 @@ class CollectFeatureBonusHandler {
8
8
  this.rngService = rngService;
9
9
  }
10
10
  async generateFullBonusRound(params, publicState, privateState, config, commandId) {
11
- const betStake = this.getBetStake(params, config);
11
+ const betGame = params.betAmount;
12
12
  const scatterConfig = config.scatterGame.config;
13
13
  const results = [];
14
14
  const initialPublicState = { ...publicState };
@@ -23,7 +23,7 @@ class CollectFeatureBonusHandler {
23
23
  return cp.spin - 1 + result.value;
24
24
  }));
25
25
  for (let spinIndex = 0; spinIndex < scatterConfig.scatterSpins; spinIndex++) {
26
- const { result, updatedState, updatedPublicState, updatedPrivateState } = await this.executeSingleSpin(spinIndex, spinsLeft, totalValues, totalMultipliers, totalWin, betStake, scatterConfig, checkpoints, publicState, privateState, commandId);
26
+ const { result, updatedState, updatedPublicState, updatedPrivateState } = await this.executeSingleSpin(spinIndex, spinsLeft, totalValues, totalMultipliers, totalWin, betGame, scatterConfig, checkpoints, publicState, privateState, commandId);
27
27
  results.push({
28
28
  result,
29
29
  publicState: updatedPublicState,
@@ -44,7 +44,7 @@ class CollectFeatureBonusHandler {
44
44
  privateState: initialPrivateState,
45
45
  };
46
46
  }
47
- async executeSingleSpin(spinIndex, spinsLeft, totalValues, totalMultipliers, totalWin, betStake, scatterConfig, checkpoints, publicState, privateState, commandId) {
47
+ async executeSingleSpin(spinIndex, spinsLeft, totalValues, totalMultipliers, totalWin, betGame, scatterConfig, checkpoints, publicState, privateState, commandId) {
48
48
  const symbolCount = await this.weightedPick(scatterConfig.scatterSymbolSpins, commandId, `spin_${spinIndex}_symbol_count`);
49
49
  const symbols = [];
50
50
  let multiCount = 0;
@@ -57,12 +57,16 @@ class CollectFeatureBonusHandler {
57
57
  else
58
58
  valueCount++;
59
59
  }
60
- if (checkpoints.includes(spinsLeft)) {
61
- const cpIndex = checkpoints.indexOf(spinsLeft);
62
- const cp = scatterConfig.scatterCheckpoints[cpIndex];
63
- if ((totalMultipliers < cp.multiMinValue && multiCount === 0) ||
64
- (totalValues < cp.valueMinValue && valueCount === 0)) {
65
- symbols[0] = 'CV1';
60
+ const cpIndex = checkpoints.indexOf(spinsLeft);
61
+ if (cpIndex >= 0) {
62
+ // Guard: skip checkpoint if a previous checkpoint already matched this spin
63
+ const isDuplicate = cpIndex > 0 && checkpoints[cpIndex] === checkpoints[0];
64
+ if (!isDuplicate) {
65
+ const cp = scatterConfig.scatterCheckpoints[cpIndex];
66
+ if ((totalMultipliers < cp.multiMinValue && multiCount === 0) ||
67
+ (totalValues < cp.valueMinValue && valueCount === 0)) {
68
+ symbols[0] = 'CV1';
69
+ }
66
70
  }
67
71
  }
68
72
  const slashedCount = Math.min(await this.weightedPick(scatterConfig.scatterSymbolSlash, commandId, `spin_${spinIndex}_slashed_count`), symbolCount);
@@ -84,7 +88,7 @@ class CollectFeatureBonusHandler {
84
88
  }
85
89
  const newTotalValues = number_helper_1.NumberHelper.safeSum(totalValues, currentValues, 2);
86
90
  const newTotalMultipliers = number_helper_1.NumberHelper.safeSum(totalMultipliers, currentMultipliers, 2);
87
- const newTotalWin = number_helper_1.NumberHelper.safeMultiply(number_helper_1.NumberHelper.safeMultiply(newTotalValues, newTotalMultipliers, 2), betStake, 2);
91
+ const newTotalWin = number_helper_1.NumberHelper.safeMultiply(number_helper_1.NumberHelper.safeMultiply(newTotalValues, newTotalMultipliers, 2), betGame, 2);
88
92
  const playerWinning = number_helper_1.NumberHelper.safeSum(newTotalWin, -totalWin, 2);
89
93
  spinsLeft -= 1;
90
94
  const collectNextType = spinsLeft > 0 ? bonnys_fortune_types_1.SpinType.COLLECT_FEATURE_SPIN : bonnys_fortune_types_1.SpinType.BASE_GAME_SPIN;
@@ -149,10 +153,6 @@ class CollectFeatureBonusHandler {
149
153
  }
150
154
  return symbols[0];
151
155
  }
152
- getBetStake(params, config) {
153
- const baseBet = config.baseGame.baseGameConfig.baseBet;
154
- return number_helper_1.NumberHelper.safeDivide(params.betAmount, params.creditsPerLine === baseBet ? params.creditsPerLine : baseBet, 3);
155
- }
156
156
  }
157
157
  exports.CollectFeatureBonusHandler = CollectFeatureBonusHandler;
158
158
  //# sourceMappingURL=collect-feature-bonus.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collect-feature-bonus.handler.js","sourceRoot":"","sources":["../../../src/logic/handlers/collect-feature-bonus.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collect-feature-bonus.handler.js","sourceRoot":"","sources":["../../../src/logic/handlers/collect-feature-bonus.handler.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ export declare class TreasureHuntBonusHandler {
6
6
  private rngService;
7
7
  constructor(rngService: RngService);
8
8
  generateFullBonusRound(params: GameSpinInputDto, publicState: BonnysFortunePublicState, privateState: BonnysFortunePrivateState, config: BonnysFortuneGameLogicConfigInterface, commandId: string): Promise<BonusRoundResult<TreasureHuntSpinResult>>;
9
- private getBetStake;
10
9
  private drawWinningSymbol;
11
10
  private fillRemainingSteps;
12
11
  private weightedDraw;
@@ -8,20 +8,24 @@ class TreasureHuntBonusHandler {
8
8
  this.rngService = rngService;
9
9
  }
10
10
  async generateFullBonusRound(params, publicState, privateState, config, commandId) {
11
- const betStake = this.getBetStake(params, config);
12
- const { stepsCount, jackpotScreenCounts, jackpotMultipliers, winningWeights, } = this.extractBonusConfig(config);
11
+ const betGame = params.betAmount;
12
+ const { symbolsCount, stepsCount, jackpotScreenCounts, jackpotMultipliers, winningWeights, } = this.extractBonusConfig(config);
13
13
  const jackpotKeys = Object.keys(jackpotMultipliers);
14
14
  const jackpotsNo = Object.values(jackpotScreenCounts);
15
15
  const weightsArray = Object.values(winningWeights);
16
16
  const winSymbolIndex = await this.drawWinningSymbol(weightsArray, commandId);
17
- const selectionsVector = Array(stepsCount).fill(-1);
17
+ // Full grid: C++ populates all symbolsCount (25) positions
18
+ const selectionsVector = Array(symbolsCount).fill(-1);
18
19
  if (winSymbolIndex >= 0) {
19
20
  const positions = await this.randomPositions(stepsCount, 3, commandId);
20
21
  positions.forEach((pos) => (selectionsVector[pos] = winSymbolIndex));
21
22
  jackpotsNo[winSymbolIndex] = number_helper_1.NumberHelper.safeSum(jackpotsNo[winSymbolIndex], -3, 0);
22
23
  }
23
- await this.fillRemainingSteps(selectionsVector, stepsCount, jackpotsNo, winSymbolIndex, commandId);
24
- const selections = selectionsVector.map((idx) => jackpotKeys[idx]);
24
+ // Fill all symbolsCount positions (6 player steps + 19 background)
25
+ await this.fillRemainingSteps(selectionsVector, symbolsCount, jackpotsNo, winSymbolIndex, commandId);
26
+ // Player only sees the first stepsCount (6) positions
27
+ const playerSelections = selectionsVector.slice(0, stepsCount);
28
+ const selections = playerSelections.map((idx) => jackpotKeys[idx]);
25
29
  const multipliers = selections.map((name) => jackpotMultipliers[name]);
26
30
  const results = selections.map((symbol, index) => {
27
31
  const isFinalStep = index === stepsCount - 1;
@@ -29,7 +33,7 @@ class TreasureHuntBonusHandler {
29
33
  ? jackpotMultipliers[jackpotKeys[winSymbolIndex]]
30
34
  : 0;
31
35
  const playerWinning = isFinalStep && winSymbolIndex >= 0
32
- ? number_helper_1.NumberHelper.safeMultiply(betStake, winningMultiplier, 2)
36
+ ? number_helper_1.NumberHelper.safeMultiply(betGame, winningMultiplier, 2)
33
37
  : 0;
34
38
  const treasureNextType = isFinalStep
35
39
  ? bonnys_fortune_types_1.SpinType.BASE_GAME_SPIN
@@ -70,10 +74,6 @@ class TreasureHuntBonusHandler {
70
74
  privateState,
71
75
  };
72
76
  }
73
- getBetStake(params, config) {
74
- const baseBet = config.baseGame.baseGameConfig.baseBet;
75
- return number_helper_1.NumberHelper.safeDivide(params.betAmount, params.creditsPerLine === baseBet ? params.creditsPerLine : baseBet, 3);
76
- }
77
77
  async drawWinningSymbol(weights, commandId) {
78
78
  const total = weights.reduce((acc, w) => number_helper_1.NumberHelper.safeSum(acc, w, 2), 0);
79
79
  if (total === 0)
@@ -88,9 +88,9 @@ class TreasureHuntBonusHandler {
88
88
  }
89
89
  return -1;
90
90
  }
91
- async fillRemainingSteps(vector, stepsCount, jackpotsNo, excludeSymbol, commandId) {
91
+ async fillRemainingSteps(vector, totalSymbols, jackpotsNo, excludeSymbol, commandId) {
92
92
  const weights = jackpotsNo.map((_, idx) => idx === excludeSymbol ? 0 : 4);
93
- for (let i = 0; i < stepsCount; i++) {
93
+ for (let i = 0; i < totalSymbols; i++) {
94
94
  if (vector[i] < 0) {
95
95
  const symbol = await this.weightedDraw(weights, commandId, `fill_step_${i}`);
96
96
  vector[i] = symbol;
@@ -126,6 +126,7 @@ class TreasureHuntBonusHandler {
126
126
  }
127
127
  extractBonusConfig(config) {
128
128
  return {
129
+ symbolsCount: config.bonusGames.bonusGame1.config.symbolsCount,
129
130
  stepsCount: config.bonusGames.bonusGame1.config.stepsCount,
130
131
  jackpotMultipliers: config.bonusGames.bonusGame1.config.jackpotMultipliers,
131
132
  winningWeights: config.bonusGames.bonusGame1.config.winningWeights,
@@ -1 +1 @@
1
- {"version":3,"file":"treasure-hunt-bonus.handler.js","sourceRoot":"","sources":["../../../src/logic/handlers/treasure-hunt-bonus.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treasure-hunt-bonus.handler.js","sourceRoot":"","sources":["../../../src/logic/handlers/treasure-hunt-bonus.handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnitronix/bonnys-fortune-game-engine",
3
- "version": "1.7.0",
3
+ "version": "1.7.2",
4
4
  "description": "Bonnys Fortune Game Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -269,22 +269,22 @@ export const gameLogicConfig: BonnysFortuneGameLogicConfigInterface = {
269
269
  potMeter: 'bonusGame2',
270
270
  config: {
271
271
  spinTypes: [
272
- // 5x3 layout - smaller screen, lower multipliers (GDD: x1, x2)
272
+ // 5x3 layout - smallest screen, highest multipliers (C++ math model: x10, x20)
273
273
  {
274
274
  layout: { reels: 5, rows: 3 },
275
275
  spins: 8,
276
- multiplier: 1,
276
+ multiplier: 10,
277
277
  weight: 5,
278
278
  reelsOptionsWeights: [1, 1, 4, 4],
279
279
  },
280
280
  {
281
281
  layout: { reels: 5, rows: 3 },
282
282
  spins: 4,
283
- multiplier: 2,
283
+ multiplier: 20,
284
284
  weight: 5,
285
285
  reelsOptionsWeights: [1, 1, 4, 4],
286
286
  },
287
- // 5x4 layout - medium screen, medium multipliers (GDD: x3, x6)
287
+ // 5x4 layout - medium screen, medium multipliers (C++ math model: x3, x6)
288
288
  {
289
289
  layout: { reels: 5, rows: 4 },
290
290
  spins: 8,
@@ -299,18 +299,18 @@ export const gameLogicConfig: BonnysFortuneGameLogicConfigInterface = {
299
299
  weight: 5,
300
300
  reelsOptionsWeights: [1, 1, 4, 4],
301
301
  },
302
- // 5x5 layout - larger screen, higher multipliers (GDD: x10, x20)
302
+ // 5x5 layout - largest screen, lowest multipliers (C++ math model: x1, x2)
303
303
  {
304
304
  layout: { reels: 5, rows: 5 },
305
305
  spins: 8,
306
- multiplier: 10,
306
+ multiplier: 1,
307
307
  weight: 5,
308
308
  reelsOptionsWeights: [1, 1, 4, 4],
309
309
  },
310
310
  {
311
311
  layout: { reels: 5, rows: 5 },
312
312
  spins: 4,
313
- multiplier: 20,
313
+ multiplier: 2,
314
314
  weight: 5,
315
315
  reelsOptionsWeights: [1, 1, 4, 4],
316
316
  },
@@ -27,7 +27,7 @@ export class CollectFeatureBonusHandler {
27
27
  config: BonnysFortuneGameLogicConfigInterface,
28
28
  commandId: string,
29
29
  ): Promise<BonusRoundResult<CollectFeatureSpinResult>> {
30
- const betStake = this.getBetStake(params, config);
30
+ const betGame = params.betAmount;
31
31
  const scatterConfig = config.scatterGame.config;
32
32
  const results = [];
33
33
 
@@ -64,7 +64,7 @@ export class CollectFeatureBonusHandler {
64
64
  totalValues,
65
65
  totalMultipliers,
66
66
  totalWin,
67
- betStake,
67
+ betGame,
68
68
  scatterConfig,
69
69
  checkpoints,
70
70
  publicState,
@@ -101,7 +101,7 @@ export class CollectFeatureBonusHandler {
101
101
  totalValues: number,
102
102
  totalMultipliers: number,
103
103
  totalWin: number,
104
- betStake: number,
104
+ betGame: number,
105
105
  scatterConfig: any,
106
106
  checkpoints: number[],
107
107
  publicState: BonnysFortunePublicState,
@@ -139,14 +139,18 @@ export class CollectFeatureBonusHandler {
139
139
  else valueCount++;
140
140
  }
141
141
 
142
- if (checkpoints.includes(spinsLeft)) {
143
- const cpIndex = checkpoints.indexOf(spinsLeft);
144
- const cp = scatterConfig.scatterCheckpoints[cpIndex];
145
- if (
146
- (totalMultipliers < cp.multiMinValue && multiCount === 0) ||
147
- (totalValues < cp.valueMinValue && valueCount === 0)
148
- ) {
149
- symbols[0] = 'CV1';
142
+ const cpIndex = checkpoints.indexOf(spinsLeft);
143
+ if (cpIndex >= 0) {
144
+ // Guard: skip checkpoint if a previous checkpoint already matched this spin
145
+ const isDuplicate = cpIndex > 0 && checkpoints[cpIndex] === checkpoints[0];
146
+ if (!isDuplicate) {
147
+ const cp = scatterConfig.scatterCheckpoints[cpIndex];
148
+ if (
149
+ (totalMultipliers < cp.multiMinValue && multiCount === 0) ||
150
+ (totalValues < cp.valueMinValue && valueCount === 0)
151
+ ) {
152
+ symbols[0] = 'CV1';
153
+ }
150
154
  }
151
155
  }
152
156
 
@@ -189,7 +193,7 @@ export class CollectFeatureBonusHandler {
189
193
  );
190
194
  const newTotalWin = NumberHelper.safeMultiply(
191
195
  NumberHelper.safeMultiply(newTotalValues, newTotalMultipliers, 2),
192
- betStake,
196
+ betGame,
193
197
  2,
194
198
  );
195
199
  const playerWinning = NumberHelper.safeSum(newTotalWin, -totalWin, 2);
@@ -291,16 +295,4 @@ export class CollectFeatureBonusHandler {
291
295
  }
292
296
  return symbols[0];
293
297
  }
294
-
295
- private getBetStake(
296
- params: GameSpinInputDto,
297
- config: BonnysFortuneGameLogicConfigInterface,
298
- ): number {
299
- const baseBet = config.baseGame.baseGameConfig.baseBet;
300
- return NumberHelper.safeDivide(
301
- params.betAmount,
302
- params.creditsPerLine === baseBet ? params.creditsPerLine : baseBet,
303
- 3,
304
- );
305
- }
306
298
  }
@@ -21,8 +21,9 @@ export class TreasureHuntBonusHandler {
21
21
  config: BonnysFortuneGameLogicConfigInterface,
22
22
  commandId: string,
23
23
  ): Promise<BonusRoundResult<TreasureHuntSpinResult>> {
24
- const betStake = this.getBetStake(params, config);
24
+ const betGame = params.betAmount;
25
25
  const {
26
+ symbolsCount,
26
27
  stepsCount,
27
28
  jackpotScreenCounts,
28
29
  jackpotMultipliers,
@@ -38,7 +39,8 @@ export class TreasureHuntBonusHandler {
38
39
  commandId,
39
40
  );
40
41
 
41
- const selectionsVector = Array<number>(stepsCount).fill(-1);
42
+ // Full grid: C++ populates all symbolsCount (25) positions
43
+ const selectionsVector = Array<number>(symbolsCount).fill(-1);
42
44
 
43
45
  if (winSymbolIndex >= 0) {
44
46
  const positions = await this.randomPositions(stepsCount, 3, commandId);
@@ -50,15 +52,18 @@ export class TreasureHuntBonusHandler {
50
52
  );
51
53
  }
52
54
 
55
+ // Fill all symbolsCount positions (6 player steps + 19 background)
53
56
  await this.fillRemainingSteps(
54
57
  selectionsVector,
55
- stepsCount,
58
+ symbolsCount,
56
59
  jackpotsNo,
57
60
  winSymbolIndex,
58
61
  commandId,
59
62
  );
60
63
 
61
- const selections = selectionsVector.map((idx) => jackpotKeys[idx]);
64
+ // Player only sees the first stepsCount (6) positions
65
+ const playerSelections = selectionsVector.slice(0, stepsCount);
66
+ const selections = playerSelections.map((idx) => jackpotKeys[idx]);
62
67
  const multipliers = selections.map((name) => jackpotMultipliers[name]);
63
68
 
64
69
  const results = selections.map((symbol, index) => {
@@ -70,7 +75,7 @@ export class TreasureHuntBonusHandler {
70
75
  : 0;
71
76
  const playerWinning =
72
77
  isFinalStep && winSymbolIndex >= 0
73
- ? NumberHelper.safeMultiply(betStake, winningMultiplier, 2)
78
+ ? NumberHelper.safeMultiply(betGame, winningMultiplier, 2)
74
79
  : 0;
75
80
  const treasureNextType = isFinalStep
76
81
  ? SpinType.BASE_GAME_SPIN
@@ -117,18 +122,6 @@ export class TreasureHuntBonusHandler {
117
122
  };
118
123
  }
119
124
 
120
- private getBetStake(
121
- params: GameSpinInputDto,
122
- config: BonnysFortuneGameLogicConfigInterface,
123
- ): number {
124
- const baseBet = config.baseGame.baseGameConfig.baseBet;
125
- return NumberHelper.safeDivide(
126
- params.betAmount,
127
- params.creditsPerLine === baseBet ? params.creditsPerLine : baseBet,
128
- 3,
129
- );
130
- }
131
-
132
125
  private async drawWinningSymbol(
133
126
  weights: number[],
134
127
  commandId: string,
@@ -157,7 +150,7 @@ export class TreasureHuntBonusHandler {
157
150
 
158
151
  private async fillRemainingSteps(
159
152
  vector: number[],
160
- stepsCount: number,
153
+ totalSymbols: number,
161
154
  jackpotsNo: number[],
162
155
  excludeSymbol: number | undefined,
163
156
  commandId: string,
@@ -166,7 +159,7 @@ export class TreasureHuntBonusHandler {
166
159
  idx === excludeSymbol ? 0 : 4,
167
160
  );
168
161
 
169
- for (let i = 0; i < stepsCount; i++) {
162
+ for (let i = 0; i < totalSymbols; i++) {
170
163
  if (vector[i] < 0) {
171
164
  const symbol = await this.weightedDraw(
172
165
  weights,
@@ -227,6 +220,7 @@ export class TreasureHuntBonusHandler {
227
220
 
228
221
  private extractBonusConfig(config: BonnysFortuneGameLogicConfigInterface) {
229
222
  return {
223
+ symbolsCount: config.bonusGames.bonusGame1.config.symbolsCount,
230
224
  stepsCount: config.bonusGames.bonusGame1.config.stepsCount,
231
225
  jackpotMultipliers:
232
226
  config.bonusGames.bonusGame1.config.jackpotMultipliers,