@omnitronix/bonnys-fortune-game-engine 1.5.0 → 1.5.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.
Files changed (162) hide show
  1. package/dist/__tests__/base-game.test.d.ts +1 -0
  2. package/dist/__tests__/bonnys-fortune-v1.game-engine.test.d.ts +1 -0
  3. package/dist/__tests__/bonus-handlers.test.d.ts +1 -0
  4. package/dist/__tests__/bonus-meters.test.d.ts +1 -0
  5. package/dist/__tests__/collect-feature-handler.test.d.ts +1 -0
  6. package/dist/__tests__/comprehensive.test.d.ts +16 -0
  7. package/dist/__tests__/error-paths.test.d.ts +1 -0
  8. package/dist/__tests__/helpers/test-engine-factory.d.ts +103 -0
  9. package/dist/__tests__/rng-gli19-compliance.test.d.ts +1 -0
  10. package/dist/__tests__/rng-security.test.d.ts +1 -0
  11. package/dist/__tests__/rtp-simulation.test.d.ts +1 -0
  12. package/dist/__tests__/state-transitions.test.d.ts +1 -0
  13. package/dist/__tests__/steering-fortune-handler.test.d.ts +1 -0
  14. package/dist/__tests__/symbol-distribution.test.d.ts +1 -0
  15. package/dist/__tests__/treasure-hunt-handler.test.d.ts +1 -0
  16. package/dist/__tests__/win-calculator.test.d.ts +1 -0
  17. package/dist/bonnys-fortune-v1.game-engine.d.ts +41 -0
  18. package/dist/bonnys-fortune-v1.game-engine.js +22 -5
  19. package/dist/bonnys-fortune-v1.game-engine.js.map +1 -1
  20. package/dist/config/game-logic-config/file-system.game-logic-config-loader.d.ts +4 -0
  21. package/dist/config/game-logic-config/game-logic-config-loader.d.ts +3 -0
  22. package/dist/config/game-logic-config/game-logic-config.d.ts +2 -0
  23. package/dist/config/game-logic-config/game-logic-config.js +9 -4
  24. package/dist/config/game-logic-config/game-logic-config.js.map +1 -1
  25. package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.d.ts +4 -0
  26. package/dist/config/reel-strips-config/reel-strip-option.dto.d.ts +4 -0
  27. package/dist/config/reel-strips-config/reel-strips-config-loader.d.ts +3 -0
  28. package/dist/config/reel-strips-config/reel-strips-config.dto.d.ts +5 -0
  29. package/dist/config/reel-strips-config/reel.dto.d.ts +5 -0
  30. package/dist/debug/debug-command-definitions.d.ts +36 -0
  31. package/dist/debug/debug-command-definitions.js +108 -0
  32. package/dist/debug/debug-command-definitions.js.map +1 -0
  33. package/dist/domain/game-round.types.d.ts +9 -0
  34. package/dist/domain/mappers/reel-strips-config.mapper.d.ts +4 -0
  35. package/dist/domain/reel-strip-option.d.ts +7 -0
  36. package/dist/domain/reel-strips-config.d.ts +9 -0
  37. package/dist/domain/reel.d.ts +8 -0
  38. package/dist/domain/types/debug-trigger-bonus-command.d.ts +5 -0
  39. package/dist/domain/types/debug-trigger-bonus-request.dto.d.ts +5 -0
  40. package/dist/domain/types/debug-update-bonus-meter-progress-command.d.ts +5 -0
  41. package/dist/domain/types/debug-update-bonus-meter-progress-request.dto.d.ts +5 -0
  42. package/dist/domain/types/game-spin-command.d.ts +8 -0
  43. package/dist/domain/types/game-spin-input.dto.d.ts +8 -0
  44. package/dist/domain/types/game-spin-output.dto.d.ts +119 -0
  45. package/dist/domain/types/game-symbols.response.dto.d.ts +10 -0
  46. package/dist/domain/types/reel-strip-option.dto.d.ts +4 -0
  47. package/dist/domain/types/reel-strips-config.dto.d.ts +5 -0
  48. package/dist/domain/types/reel.dto.d.ts +5 -0
  49. package/dist/domain/types/start-bonus-round-command.d.ts +8 -0
  50. package/dist/domain/types/start-bonus-round-input.dto.d.ts +10 -0
  51. package/dist/game-engine.interface.d.ts +8 -0
  52. package/dist/helpers/generate-hash.d.ts +1 -0
  53. package/dist/helpers/number-helper.d.ts +23 -0
  54. package/dist/helpers/optional-boolean-mapper.d.ts +1 -0
  55. package/dist/helpers/uuid-helper.d.ts +3 -0
  56. package/dist/helpers/validation-helper.d.ts +14 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.js +10 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/logic/bonnys-fortune.game-logic.d.ts +41 -0
  61. package/dist/logic/bonnys-fortune.game-logic.js +27 -7
  62. package/dist/logic/bonnys-fortune.game-logic.js.map +1 -1
  63. package/dist/logic/bonnys-fortune.spin-generator.d.ts +19 -0
  64. package/dist/logic/bonnys-fortune.types.d.ts +173 -0
  65. package/dist/logic/bonnys-fortune.win-calculator.d.ts +10 -0
  66. package/dist/logic/game-logic-config.interface.d.ts +180 -0
  67. package/dist/logic/handlers/base-game.handler.d.ts +15 -0
  68. package/dist/logic/handlers/base-game.handler.js +5 -1
  69. package/dist/logic/handlers/base-game.handler.js.map +1 -1
  70. package/dist/logic/handlers/collect-feature-bonus.handler.d.ts +13 -0
  71. package/dist/logic/handlers/free-spins-bonus.handler.d.ts +11 -0
  72. package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.d.ts +11 -0
  73. package/dist/logic/handlers/treasure-hunt-bonus.handler.d.ts +15 -0
  74. package/dist/rng/DummyRngClient.d.ts +18 -0
  75. package/dist/rng/DummyRngClient.js +1 -7
  76. package/dist/rng/DummyRngClient.js.map +1 -1
  77. package/dist/rng/rng-client.factory.d.ts +7 -0
  78. package/dist/rng/rng-client.factory.js.map +1 -1
  79. package/dist/rng/rng-client.interface.d.ts +16 -0
  80. package/dist/rng/rng-service.d.ts +26 -0
  81. package/dist/validation/abstract-game-logic-config.validator.d.ts +4 -0
  82. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.d.ts +131 -0
  83. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js +9 -0
  84. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js.map +1 -1
  85. package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.d.ts +5 -0
  86. package/dist/validation/custom-decorators/IsNestedIntArray.d.ts +2 -0
  87. package/dist/validation/game-logic-config-validation.service.d.ts +8 -0
  88. package/dist/validation/reel-strips-config-validation.service.d.ts +5 -0
  89. package/package.json +5 -4
  90. package/src/__tests__/base-game.test.ts +320 -0
  91. package/src/__tests__/bonnys-fortune-v1.game-engine.test.ts +80 -0
  92. package/src/__tests__/bonus-handlers.test.ts +585 -0
  93. package/src/__tests__/bonus-meters.test.ts +789 -0
  94. package/src/__tests__/collect-feature-handler.test.ts +737 -0
  95. package/src/__tests__/comprehensive.test.ts +883 -0
  96. package/src/__tests__/error-paths.test.ts +457 -0
  97. package/src/__tests__/helpers/test-engine-factory.ts +380 -0
  98. package/src/__tests__/rng-gli19-compliance.test.ts +423 -0
  99. package/src/__tests__/rng-security.test.ts +479 -0
  100. package/src/__tests__/rtp-simulation.test.ts +309 -0
  101. package/src/__tests__/state-transitions.test.ts +422 -0
  102. package/src/__tests__/steering-fortune-handler.test.ts +535 -0
  103. package/src/__tests__/symbol-distribution.test.ts +229 -0
  104. package/src/__tests__/treasure-hunt-handler.test.ts +581 -0
  105. package/src/__tests__/win-calculator.test.ts +816 -0
  106. package/src/bonnys-fortune-v1.game-engine.ts +334 -0
  107. package/src/config/game-logic-config/file-system.game-logic-config-loader.ts +27 -0
  108. package/src/config/game-logic-config/game-logic-config-loader.ts +3 -0
  109. package/src/config/game-logic-config/game-logic-config.ts +385 -0
  110. package/src/config/reel-strips-config/file-system.reel-strips-config-loader.ts +43 -0
  111. package/src/config/reel-strips-config/reel-strip-option.dto.ts +13 -0
  112. package/src/config/reel-strips-config/reel-strips-config-loader.ts +9 -0
  113. package/src/config/reel-strips-config/reel-strips-config.dto.ts +16 -0
  114. package/src/config/reel-strips-config/reel.dto.ts +16 -0
  115. package/src/config/reel-strips-config/reels-BASE.csv +52 -0
  116. package/src/config/reel-strips-config/reels-BONUS.csv +52 -0
  117. package/src/debug/debug-command-definitions.ts +108 -0
  118. package/src/domain/game-round.types.ts +10 -0
  119. package/src/domain/mappers/reel-strips-config.mapper.ts +16 -0
  120. package/src/domain/reel-strip-option.ts +15 -0
  121. package/src/domain/reel-strips-config.ts +21 -0
  122. package/src/domain/reel.ts +17 -0
  123. package/src/domain/types/debug-trigger-bonus-command.ts +5 -0
  124. package/src/domain/types/debug-trigger-bonus-request.dto.ts +5 -0
  125. package/src/domain/types/debug-update-bonus-meter-progress-command.ts +5 -0
  126. package/src/domain/types/debug-update-bonus-meter-progress-request.dto.ts +5 -0
  127. package/src/domain/types/game-spin-command.ts +8 -0
  128. package/src/domain/types/game-spin-input.dto.ts +8 -0
  129. package/src/domain/types/game-spin-output.dto.ts +142 -0
  130. package/src/domain/types/game-symbols.response.dto.ts +11 -0
  131. package/src/domain/types/reel-strip-option.dto.ts +13 -0
  132. package/src/domain/types/reel-strips-config.dto.ts +15 -0
  133. package/src/domain/types/reel.dto.ts +15 -0
  134. package/src/domain/types/start-bonus-round-command.ts +8 -0
  135. package/src/domain/types/start-bonus-round-input.dto.ts +10 -0
  136. package/src/game-engine.interface.ts +19 -0
  137. package/src/helpers/generate-hash.ts +5 -0
  138. package/src/helpers/number-helper.ts +41 -0
  139. package/src/helpers/optional-boolean-mapper.ts +5 -0
  140. package/src/helpers/uuid-helper.ts +7 -0
  141. package/src/helpers/validation-helper.ts +27 -0
  142. package/src/index.ts +31 -0
  143. package/src/logic/bonnys-fortune.game-logic.ts +535 -0
  144. package/src/logic/bonnys-fortune.spin-generator.ts +277 -0
  145. package/src/logic/bonnys-fortune.types.ts +226 -0
  146. package/src/logic/bonnys-fortune.win-calculator.ts +210 -0
  147. package/src/logic/game-logic-config.interface.ts +176 -0
  148. package/src/logic/handlers/base-game.handler.ts +221 -0
  149. package/src/logic/handlers/collect-feature-bonus.handler.ts +301 -0
  150. package/src/logic/handlers/free-spins-bonus.handler.ts +119 -0
  151. package/src/logic/handlers/steering-to-the-fortune-bonus.handler.ts +118 -0
  152. package/src/logic/handlers/treasure-hunt-bonus.handler.ts +232 -0
  153. package/src/rng/DummyRngClient.ts +109 -0
  154. package/src/rng/rng-client.factory.ts +27 -0
  155. package/src/rng/rng-client.interface.ts +38 -0
  156. package/src/rng/rng-service.ts +130 -0
  157. package/src/validation/abstract-game-logic-config.validator.ts +20 -0
  158. package/src/validation/bonnys-fortune/bonnys-fortune-config.dto.ts +379 -0
  159. package/src/validation/bonnys-fortune/bonnys-fortune-config.validator.ts +8 -0
  160. package/src/validation/custom-decorators/IsNestedIntArray.ts +29 -0
  161. package/src/validation/game-logic-config-validation.service.ts +28 -0
  162. package/src/validation/reel-strips-config-validation.service.ts +29 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Comprehensive Test Suite for Bonny's Fortune Game Engine
3
+ *
4
+ * Coverage:
5
+ * - Session initialization
6
+ * - Base game spins with bonus meter accumulation
7
+ * - bonusGame1 (Treasure Hunt) flow
8
+ * - bonusGame2 (Free Spins) flow
9
+ * - bonusGame3 (Steering to the Fortune) flow
10
+ * - collectFeature flow
11
+ * - Bonus meter progression
12
+ * - Spin/Bonus combinations
13
+ * - State persistence
14
+ * - Error handling
15
+ */
16
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Bonnys Fortune Test Engine Factory.
3
+ * Creates engine instances with controllable RNG for deterministic testing.
4
+ *
5
+ * Mock injection strategy:
6
+ * The engine, gameLogic, and all handlers share a SINGLE RngService instance.
7
+ * We replace the `rngClient` on that shared instance so all RNG calls go
8
+ * through our mock — no need to rebuild gameLogic or handlers.
9
+ */
10
+ import { BonnysFortuneV1GameEngine } from '../../bonnys-fortune-v1.game-engine';
11
+ import { MockRngClient, LcgRngClient } from '@omnitronix/game-test-utils';
12
+ export { MockRngClient, LcgRngClient, nextCommandId, resetCommandIdCounter, getCommandIdCounter, canonicalizeRngOutcome, hashRngOutcome, hashString, isValidSha256, validateRngOutcome, validateRngOutcomeRecord, serializeState, deserializeState, cloneState, statesEqual, roundTripState, diffStates, RTP_10K_LOWER_BOUND, RTP_10K_UPPER_BOUND, SEED_DEFAULT, SEED_STABLE_12345, SEED_STABLE_54321, SEED_STABLE_77777, SEED_STABLE_99999, AssertionBounds, } from '@omnitronix/game-test-utils';
13
+ /**
14
+ * Create a standard engine with default (DummyRngClient) RNG.
15
+ */
16
+ export declare function createEngine(): BonnysFortuneV1GameEngine;
17
+ /**
18
+ * Create an engine with a MockRngClient injected.
19
+ */
20
+ export declare function createEngineWithMockRng(values?: number[] | number): {
21
+ engine: BonnysFortuneV1GameEngine;
22
+ mockRng: MockRngClient;
23
+ };
24
+ /**
25
+ * Create an engine with an LCG RNG for reproducible simulations.
26
+ */
27
+ export declare function createEngineWithLcgRng(seed?: number): {
28
+ engine: BonnysFortuneV1GameEngine;
29
+ lcgRng: LcgRngClient;
30
+ };
31
+ /**
32
+ * Inject a mock RNG client into an existing engine.
33
+ */
34
+ export declare function injectMockRng(engine: BonnysFortuneV1GameEngine, mockRng: MockRngClient): void;
35
+ /**
36
+ * Wait for the engine's async preload() to finish.
37
+ * The engine constructor fires preload() without await (fire-and-forget).
38
+ * We poll for `engine.reels` to be defined before proceeding.
39
+ */
40
+ export declare function waitForEngineReady(engine: any, timeout?: number): Promise<void>;
41
+ export interface SessionState {
42
+ publicState: any;
43
+ privateState: any;
44
+ }
45
+ /**
46
+ * Initialize a session on the engine.
47
+ * Waits for engine preload to complete before issuing any commands.
48
+ */
49
+ export declare function initSession(engine: BonnysFortuneV1GameEngine, betAmount?: number, betAmountThresholds?: number[]): Promise<SessionState>;
50
+ /**
51
+ * Execute a SPIN command.
52
+ */
53
+ export declare function executeSpin(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, betAmount?: number): Promise<any>;
54
+ /**
55
+ * Execute a SPIN command with error tolerance for known engine bugs.
56
+ * BF's DummyRng can trigger bonus meters (COLLECT_FEATURE, bonusGame1, etc.),
57
+ * causing subsequent SPIN commands to throw DomainException when
58
+ * nextSpinType != BASE_GAME_SPIN. This helper catches those errors and
59
+ * returns null, allowing multi-spin loops to skip them.
60
+ */
61
+ export declare function safeExecuteSpin(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, betAmount?: number): Promise<any | null>;
62
+ /**
63
+ * Execute multiple spins, threading state through each one.
64
+ */
65
+ export declare function executeSpins(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, count: number, betAmount?: number): Promise<any[]>;
66
+ /**
67
+ * Start a bonus round.
68
+ */
69
+ export declare function startBonusRound(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, bonusType?: string, betAmount?: number): Promise<any>;
70
+ /**
71
+ * Trigger a debug bonus.
72
+ */
73
+ export declare function debugTriggerBonus(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, bonusType?: string, betAmount?: number): Promise<any>;
74
+ /**
75
+ * Debug update bonus meter progress.
76
+ */
77
+ export declare function debugUpdateBonusMeter(engine: BonnysFortuneV1GameEngine, publicState: any, privateState: any, meterId: string, progress: number): Promise<any>;
78
+ /**
79
+ * Extract the final state from a START_BONUS_ROUND result.
80
+ * BF generates all bonus results upfront. The top-level publicState/privateState
81
+ * are the ORIGINAL input states. The actual final state (with nextSpinType
82
+ * transitioned back to BASE_GAME_SPIN) is in the last result entry.
83
+ */
84
+ export declare function extractFinalBonusState(bonusResult: any): {
85
+ publicState: any;
86
+ privateState: any;
87
+ };
88
+ /**
89
+ * Get the rngOutcome from the engine's RNG service for a specific command.
90
+ */
91
+ export declare function getRngOutcome(engine: BonnysFortuneV1GameEngine, commandId: string): any;
92
+ /**
93
+ * Get all RNG outcomes currently tracked by the engine.
94
+ */
95
+ export declare function getAllRngOutcomes(engine: BonnysFortuneV1GameEngine): any;
96
+ /**
97
+ * Run a full init + N spins cycle.
98
+ */
99
+ export declare function runSpinCycle(engine: BonnysFortuneV1GameEngine, spinCount: number, betAmount?: number): Promise<{
100
+ results: any[];
101
+ finalPublicState: any;
102
+ finalPrivateState: any;
103
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,41 @@
1
+ import { BonnysFortunePrivateState, BonnysFortunePublicState } from './logic/bonnys-fortune.types';
2
+ import { CommandProcessingResult, GameActionCommand, GameEngine, GameEngineInfo } from './game-engine.interface';
3
+ import { BonnysFortuneGameLogic } from './logic/bonnys-fortune.game-logic';
4
+ import { GameLogicConfigLoader } from './config/game-logic-config/game-logic-config-loader';
5
+ import { GameLogicConfigValidationService } from './validation/game-logic-config-validation.service';
6
+ import { ILogger, DebugIntrospectable, DebugCommandDefinition } from '@omnitronix/game-engine-contract';
7
+ import { ReelStripsConfigLoader } from './config/reel-strips-config/reel-strips-config-loader';
8
+ import { ReelStripsConfigMapper } from './domain/mappers/reel-strips-config.mapper';
9
+ import { ReelStripsConfigValidationService } from './validation/reel-strips-config-validation.service';
10
+ import { RngService } from './rng/rng-service';
11
+ export interface BonnysFortuneV1GameEngineConfig {
12
+ logger?: ILogger;
13
+ metrics?: unknown;
14
+ }
15
+ export declare class BonnysFortuneV1GameEngine implements GameEngine<BonnysFortunePublicState, BonnysFortunePrivateState, any>, DebugIntrospectable {
16
+ private readonly gameCode;
17
+ private readonly version;
18
+ private readonly rtp;
19
+ private readonly gameType;
20
+ private readonly gameName;
21
+ private readonly provider;
22
+ private config;
23
+ private reels;
24
+ readonly configOutPort: GameLogicConfigLoader;
25
+ readonly reelsOutPort: ReelStripsConfigLoader;
26
+ readonly configValidator: GameLogicConfigValidationService;
27
+ readonly reelsValidator: ReelStripsConfigValidationService;
28
+ readonly reelMapper: ReelStripsConfigMapper;
29
+ readonly gameLogic: BonnysFortuneGameLogic;
30
+ readonly rngService: RngService;
31
+ readonly logger: ILogger;
32
+ constructor(config?: BonnysFortuneV1GameEngineConfig);
33
+ getGameEngineInfo(): GameEngineInfo;
34
+ getDebugCommandDefinitions(): DebugCommandDefinition[];
35
+ private preload;
36
+ processCommand(publicState: BonnysFortunePublicState, privateState: BonnysFortunePrivateState, command: GameActionCommand): Promise<CommandProcessingResult<BonnysFortunePublicState, BonnysFortunePrivateState, any>>;
37
+ /**
38
+ * Resolves init session params from payload, falling back to game logic config when values are missing or invalid.
39
+ */
40
+ private resolveInitGameConfig;
41
+ }
@@ -8,6 +8,7 @@ const file_system_reel_strips_config_loader_1 = require("./config/reel-strips-co
8
8
  const game_logic_config_validation_service_1 = require("./validation/game-logic-config-validation.service");
9
9
  const game_round_types_1 = require("./domain/game-round.types");
10
10
  const game_engine_contract_1 = require("@omnitronix/game-engine-contract");
11
+ const debug_command_definitions_1 = require("./debug/debug-command-definitions");
11
12
  const reel_strips_config_mapper_1 = require("./domain/mappers/reel-strips-config.mapper");
12
13
  const reel_strips_config_validation_service_1 = require("./validation/reel-strips-config-validation.service");
13
14
  const rng_client_factory_1 = require("./rng/rng-client.factory");
@@ -43,6 +44,9 @@ class BonnysFortuneV1GameEngine {
43
44
  provider: this.provider,
44
45
  };
45
46
  }
47
+ getDebugCommandDefinitions() {
48
+ return (0, debug_command_definitions_1.getDebugCommandDefinitions)();
49
+ }
46
50
  async preload() {
47
51
  this.logger.log('Preloading Bonnys Fortune engine');
48
52
  this.configValidator.register(this.gameCode, new bonnys_fortune_config_validator_1.BonnysFortuneGameLogicConfigValidator());
@@ -72,11 +76,7 @@ class BonnysFortuneV1GameEngine {
72
76
  if (!baseReels) {
73
77
  throw new Error('Base game reels not found');
74
78
  }
75
- // Ensure gameConfig has required fields with defaults
76
- const gameConfig = {
77
- betAmountThresholds: command.payload?.betAmountThresholds ?? [0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100],
78
- defaultBetAmount: command.payload?.defaultBetAmount ?? command.payload?.betStake ?? 1,
79
- };
79
+ const gameConfig = this.resolveInitGameConfig((command.payload ?? {}));
80
80
  const result = await this.gameLogic.initSessionState(this.config, baseReels, gameConfig, command.id);
81
81
  const rngOutcome = this.rngService.getRngOutcomeForCommand(command.id);
82
82
  this.rngService.removeCommand(command.id);
@@ -179,6 +179,23 @@ class BonnysFortuneV1GameEngine {
179
179
  }
180
180
  }
181
181
  }
182
+ /**
183
+ * Resolves init session params from payload, falling back to game logic config when values are missing or invalid.
184
+ */
185
+ resolveInitGameConfig(payload) {
186
+ const rawThresholds = payload.betAmountThresholds;
187
+ const validThresholds = Array.isArray(rawThresholds) &&
188
+ rawThresholds.length > 0 &&
189
+ rawThresholds.every((n) => typeof n === 'number' && Number.isFinite(n));
190
+ const betAmountThresholds = validThresholds
191
+ ? rawThresholds
192
+ : this.config.defaultBetAmountThresholds;
193
+ const rawDefault = payload.defaultBetAmount ?? this.config.defaultBetAmount;
194
+ const defaultBetAmount = typeof rawDefault === 'number' && Number.isFinite(rawDefault)
195
+ ? rawDefault
196
+ : this.config.defaultBetAmount;
197
+ return { betAmountThresholds, defaultBetAmount };
198
+ }
182
199
  }
183
200
  exports.BonnysFortuneV1GameEngine = BonnysFortuneV1GameEngine;
184
201
  //# sourceMappingURL=bonnys-fortune-v1.game-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bonnys-fortune-v1.game-engine.js","sourceRoot":"","sources":["../src/bonnys-fortune-v1.game-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bonnys-fortune-v1.game-engine.js","sourceRoot":"","sources":["../src/bonnys-fortune-v1.game-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { GameLogicConfigLoader } from './game-logic-config-loader';
2
+ export declare class FileSystemGameLogicConfigLoader implements GameLogicConfigLoader {
3
+ loadConfig<T>(gameId: string, variantId: string): Promise<T | null>;
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface GameLogicConfigLoader {
2
+ loadConfig<T>(gameId: string, variantId: string): Promise<T | null>;
3
+ }
@@ -0,0 +1,2 @@
1
+ import { BonnysFortuneGameLogicConfigInterface } from '../../logic/game-logic-config.interface';
2
+ export declare const gameLogicConfig: BonnysFortuneGameLogicConfigInterface;
@@ -270,20 +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
274
  {
274
275
  layout: { reels: 5, rows: 3 },
275
276
  spins: 8,
276
- multiplier: 10,
277
+ multiplier: 1,
277
278
  weight: 5,
278
279
  reelsOptionsWeights: [1, 1, 4, 4],
279
280
  },
280
281
  {
281
282
  layout: { reels: 5, rows: 3 },
282
283
  spins: 4,
283
- multiplier: 20,
284
+ multiplier: 2,
284
285
  weight: 5,
285
286
  reelsOptionsWeights: [1, 1, 4, 4],
286
287
  },
288
+ // 5x4 layout - medium screen, medium multipliers (GDD: x3, x6)
287
289
  {
288
290
  layout: { reels: 5, rows: 4 },
289
291
  spins: 8,
@@ -298,17 +300,18 @@ exports.gameLogicConfig = {
298
300
  weight: 5,
299
301
  reelsOptionsWeights: [1, 1, 4, 4],
300
302
  },
303
+ // 5x5 layout - larger screen, higher multipliers (GDD: x10, x20)
301
304
  {
302
305
  layout: { reels: 5, rows: 5 },
303
306
  spins: 8,
304
- multiplier: 1,
307
+ multiplier: 10,
305
308
  weight: 5,
306
309
  reelsOptionsWeights: [1, 1, 4, 4],
307
310
  },
308
311
  {
309
312
  layout: { reels: 5, rows: 5 },
310
313
  spins: 4,
311
- multiplier: 2,
314
+ multiplier: 20,
312
315
  weight: 5,
313
316
  reelsOptionsWeights: [1, 1, 4, 4],
314
317
  },
@@ -334,6 +337,8 @@ exports.gameLogicConfig = {
334
337
  },
335
338
  },
336
339
  },
340
+ defaultBetAmountThresholds: [0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100],
341
+ defaultBetAmount: 1,
337
342
  scatterGame: {
338
343
  config: {
339
344
  scatterMinNumber: 3,
@@ -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":";;;AAEa,QAAA,eAAe,GAA0C;IACpE,QAAQ,EAAE;QACR,iBAAiB,EAAE;YACjB;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,GAAG;oBACP,EAAE,EAAE,GAAG;iBACR;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,GAAG;oBACP,EAAE,EAAE,GAAG;iBACR;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,GAAG;iBACR;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;oBACN,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,EAAE;iBACP;aACF;YACD;gBACE,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;iBACN;aACF;YACD;gBACE,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE;oBACX,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;iBACN;aACF;SACF;QACD,iBAAiB,EAAE;YACjB,WAAW,EAAE;gBACX,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACZ;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;aACZ;YACD,qBAAqB,EAAE;gBACrB,WAAW,EAAE;oBACX,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;iBACR;gBACD,MAAM,EAAE;oBACN,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;iBACR;aACF;SACF;QACD,cAAc,EAAE;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;aACT;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;aACb;YACD,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACZ,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5B;SACF;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,GAAG;YACT,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,sBAAsB,EAAE;YACtB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ;QACD,sBAAsB,EAAE;YACtB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACf;QACD,eAAe,EAAE;YACf,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,GAAG;gBACR,gBAAgB,EAAE;oBAChB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBACvC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC1C,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACzC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;iBACzC;aACF;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,gBAAgB,EAAE;oBAChB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBACvC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC1C,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACzC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;iBACzC;aACF;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,gBAAgB,EAAE;oBAChB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBACvC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC1C,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACzC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;iBACzC;aACF;SACF;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE;gBACN,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,CAAC;gBACb,kBAAkB,EAAE;oBAClB,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,GAAG;oBACV,KAAK,EAAE,IAAI;iBACZ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;iBACT;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;iBACT;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;iBACT;aACF;SACF;QACD,UAAU,EAAE;YACV,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE;gBACN,SAAS,EAAE;oBACT,+DAA+D;oBAC/D;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;wBACb,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;oBACD;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;wBACb,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;oBACD,+DAA+D;oBAC/D;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;wBACb,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;oBACD;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;wBACb,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;oBACD,iEAAiE;oBACjE;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,EAAE;wBACd,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;oBACD;wBACE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;wBAC7B,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,EAAE;wBACd,MAAM,EAAE,CAAC;wBACT,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClC;iBACF;aACF;SACF;QACD,UAAU,EAAE;YACV,IAAI,EAAE,yBAAyB;YAC/B,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE;gBACN,YAAY,EAAE;oBACZ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE;oBACzD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE;oBACrD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE;iBACtD;aACF;SACF;KACF;IACD,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACrE,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE;QACX,MAAM,EAAE;YACN,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE;gBAClB,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC/C,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;aAChD;YACD,cAAc,EAAE;gBACd;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;iBACV;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;iBACV;aACF;YACD,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAClE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACnE;KACF;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ReelStripsConfigLoader } from './reel-strips-config-loader';
2
+ export declare class FileSystemReelStripsConfigLoader implements ReelStripsConfigLoader {
3
+ loadConfig(gameId: string, variantId: string, reelSetName: string, reelsCount: number, optionsCount: number): Promise<number[][][]>;
4
+ }
@@ -0,0 +1,4 @@
1
+ export declare class ReelStripOptionDto {
2
+ symbols: number[];
3
+ constructor(symbols: number[]);
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface ReelStripsConfigLoader {
2
+ loadConfig(gameId: string, variantId: string, reelSetName: string, reelsCount: number, optionsCount: number): Promise<number[][][]>;
3
+ }
@@ -0,0 +1,5 @@
1
+ import { ReelDto } from './reel.dto';
2
+ export declare class ReelStripsConfigDto {
3
+ reels: ReelDto[];
4
+ constructor(reels: ReelDto[]);
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ReelStripOptionDto } from './reel-strip-option.dto';
2
+ export declare class ReelDto {
3
+ options: ReelStripOptionDto[];
4
+ constructor(options: ReelStripOptionDto[]);
5
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Debug Command Definitions for Bonny's Fortune
3
+ *
4
+ * Provides metadata about available debug commands for dev-tools discovery.
5
+ *
6
+ * SECURITY: This module throws in production environments as defense-in-depth.
7
+ * The service layer should also block debug commands in production.
8
+ */
9
+ import { DebugCommandDefinition } from '@omnitronix/game-engine-contract';
10
+ /**
11
+ * Available bonus types in Bonny's Fortune.
12
+ */
13
+ export declare const BONNYS_FORTUNE_BONUS_TYPES: {
14
+ readonly BONUS_GAME_1: "bonusGame1";
15
+ readonly BONUS_GAME_2: "bonusGame2";
16
+ readonly BONUS_GAME_3: "bonusGame3";
17
+ readonly COLLECT_FEATURE: "collectFeature";
18
+ };
19
+ /**
20
+ * Security error thrown when debug commands are accessed in production.
21
+ */
22
+ export declare class DebugSecurityError extends Error {
23
+ constructor(message?: string);
24
+ }
25
+ /**
26
+ * Debug command definitions for Bonny's Fortune.
27
+ */
28
+ export declare const BONNYS_FORTUNE_DEBUG_DEFINITIONS: DebugCommandDefinition[];
29
+ /**
30
+ * Returns debug command definitions for Bonny's Fortune.
31
+ * Throws DebugSecurityError in production environment.
32
+ *
33
+ * @returns Array of debug command definitions
34
+ * @throws DebugSecurityError if NODE_ENV is 'production'
35
+ */
36
+ export declare function getDebugCommandDefinitions(): DebugCommandDefinition[];
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /**
3
+ * Debug Command Definitions for Bonny's Fortune
4
+ *
5
+ * Provides metadata about available debug commands for dev-tools discovery.
6
+ *
7
+ * SECURITY: This module throws in production environments as defense-in-depth.
8
+ * The service layer should also block debug commands in production.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.BONNYS_FORTUNE_DEBUG_DEFINITIONS = exports.DebugSecurityError = exports.BONNYS_FORTUNE_BONUS_TYPES = void 0;
12
+ exports.getDebugCommandDefinitions = getDebugCommandDefinitions;
13
+ /**
14
+ * Available bonus types in Bonny's Fortune.
15
+ */
16
+ exports.BONNYS_FORTUNE_BONUS_TYPES = {
17
+ BONUS_GAME_1: 'bonusGame1', // Treasure Hunt
18
+ BONUS_GAME_2: 'bonusGame2', // Free Spins
19
+ BONUS_GAME_3: 'bonusGame3', // Steering to the Fortune
20
+ COLLECT_FEATURE: 'collectFeature', // Collect Feature
21
+ };
22
+ /**
23
+ * Security error thrown when debug commands are accessed in production.
24
+ */
25
+ class DebugSecurityError extends Error {
26
+ constructor(message = 'Debug features are not available in production') {
27
+ super(message);
28
+ this.name = 'DebugSecurityError';
29
+ }
30
+ }
31
+ exports.DebugSecurityError = DebugSecurityError;
32
+ /**
33
+ * Debug command definitions for Bonny's Fortune.
34
+ */
35
+ exports.BONNYS_FORTUNE_DEBUG_DEFINITIONS = [
36
+ {
37
+ code: 'TRIGGER_BONUS',
38
+ commandType: 'DEBUG_TRIGGER_BONUS',
39
+ displayName: 'Trigger Bonus',
40
+ description: 'Force-trigger a specific bonus type for testing. The bonus will be queued and auto-started.',
41
+ category: 'bonus',
42
+ parameters: [
43
+ {
44
+ name: 'bonusType',
45
+ displayName: 'Bonus Type',
46
+ type: 'enum',
47
+ description: 'The type of bonus to trigger',
48
+ required: true,
49
+ enumValues: Object.values(exports.BONNYS_FORTUNE_BONUS_TYPES),
50
+ },
51
+ {
52
+ name: 'betAmount',
53
+ displayName: 'Bet Amount',
54
+ type: 'number',
55
+ description: 'Bet amount for the bonus round (in cents)',
56
+ required: true,
57
+ min: 1,
58
+ max: 100000,
59
+ defaultValue: 100,
60
+ },
61
+ ],
62
+ dangerous: false,
63
+ warningMessage: undefined,
64
+ },
65
+ {
66
+ code: 'UPDATE_BONUS_METER_PROGRESS',
67
+ commandType: 'DEBUG_UPDATE_BONUS_METER_PROGRESS',
68
+ displayName: 'Update Bonus Meter',
69
+ description: 'Set the progress of a bonus meter to a specific value for testing meter mechanics.',
70
+ category: 'bonus',
71
+ parameters: [
72
+ {
73
+ name: 'bonusType',
74
+ displayName: 'Bonus Meter',
75
+ type: 'enum',
76
+ description: 'The bonus meter to update',
77
+ required: true,
78
+ enumValues: ['bonusGame1', 'bonusGame2', 'bonusGame3'],
79
+ },
80
+ {
81
+ name: 'progress',
82
+ displayName: 'Progress',
83
+ type: 'number',
84
+ description: 'The new progress value (0-100)',
85
+ required: true,
86
+ min: 0,
87
+ max: 100,
88
+ defaultValue: 50,
89
+ },
90
+ ],
91
+ dangerous: true,
92
+ warningMessage: 'Modifying bonus meter progress may affect game state consistency.',
93
+ },
94
+ ];
95
+ /**
96
+ * Returns debug command definitions for Bonny's Fortune.
97
+ * Throws DebugSecurityError in production environment.
98
+ *
99
+ * @returns Array of debug command definitions
100
+ * @throws DebugSecurityError if NODE_ENV is 'production'
101
+ */
102
+ function getDebugCommandDefinitions() {
103
+ if (process.env.NODE_ENV === 'production') {
104
+ throw new DebugSecurityError();
105
+ }
106
+ return [...exports.BONNYS_FORTUNE_DEBUG_DEFINITIONS];
107
+ }
108
+ //# sourceMappingURL=debug-command-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-command-definitions.js","sourceRoot":"","sources":["../../src/debug/debug-command-definitions.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA+FH,gEAKC;AAhGD;;GAEG;AACU,QAAA,0BAA0B,GAAG;IACxC,YAAY,EAAE,YAAY,EAAQ,gBAAgB;IAClD,YAAY,EAAE,YAAY,EAAQ,aAAa;IAC/C,YAAY,EAAE,YAAY,EAAQ,0BAA0B;IAC5D,eAAe,EAAE,gBAAgB,EAAE,kBAAkB;CAC7C,CAAC;AAEX;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,UAAkB,gDAAgD;QAC5E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED;;GAEG;AACU,QAAA,gCAAgC,GAA6B;IACxE;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,6FAA6F;QAC1G,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,8BAA8B;gBAC3C,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,kCAA0B,CAAC;aACtD;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;gBACxD,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,MAAM;gBACX,YAAY,EAAE,GAAG;aAClB;SACF;QACD,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,SAAS;KAC1B;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;aACvD;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,YAAY,EAAE,EAAE;aACjB;SACF;QACD,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,mEAAmE;KACpF;CACF,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,0BAA0B;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,wCAAgC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare enum GameRoundType {
2
+ BASE = "BASE",
3
+ BONUS = "BONUS"
4
+ }
5
+ export type BonusProgress = {
6
+ completed: number;
7
+ remaining: number;
8
+ total: number;
9
+ };
@@ -0,0 +1,4 @@
1
+ import { ReelStripsConfig } from '../reel-strips-config';
2
+ export declare class ReelStripsConfigMapper {
3
+ mapRawToDomain(rawReels: number[][][]): ReelStripsConfig;
4
+ }
@@ -0,0 +1,7 @@
1
+ export declare class ReelStripOption {
2
+ readonly symbols: number[];
3
+ constructor(symbols: number[]);
4
+ getSymbols(): number[];
5
+ get length(): number;
6
+ getSymbolAt(position: number): number;
7
+ }
@@ -0,0 +1,9 @@
1
+ import { Reel } from './reel';
2
+ export declare class ReelStripsConfig {
3
+ readonly reels: Reel[];
4
+ constructor(reels: Reel[]);
5
+ getReels(): Reel[];
6
+ getReel(index: number): Reel;
7
+ get reelsCount(): number;
8
+ get optionsCount(): number;
9
+ }