@omnitronix/bonnys-fortune-game-engine 1.5.0 → 1.5.1
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.
- package/dist/__tests__/base-game.test.d.ts +1 -0
- package/dist/__tests__/bonnys-fortune-v1.game-engine.test.d.ts +1 -0
- package/dist/__tests__/bonus-handlers.test.d.ts +1 -0
- package/dist/__tests__/bonus-meters.test.d.ts +1 -0
- package/dist/__tests__/collect-feature-handler.test.d.ts +1 -0
- package/dist/__tests__/comprehensive.test.d.ts +16 -0
- package/dist/__tests__/error-paths.test.d.ts +1 -0
- package/dist/__tests__/helpers/test-engine-factory.d.ts +103 -0
- package/dist/__tests__/rng-gli19-compliance.test.d.ts +1 -0
- package/dist/__tests__/rng-security.test.d.ts +1 -0
- package/dist/__tests__/rtp-simulation.test.d.ts +1 -0
- package/dist/__tests__/state-transitions.test.d.ts +1 -0
- package/dist/__tests__/steering-fortune-handler.test.d.ts +1 -0
- package/dist/__tests__/symbol-distribution.test.d.ts +1 -0
- package/dist/__tests__/treasure-hunt-handler.test.d.ts +1 -0
- package/dist/__tests__/win-calculator.test.d.ts +1 -0
- package/dist/bonnys-fortune-v1.game-engine.d.ts +41 -0
- package/dist/bonnys-fortune-v1.game-engine.js +22 -5
- package/dist/bonnys-fortune-v1.game-engine.js.map +1 -1
- package/dist/config/game-logic-config/file-system.game-logic-config-loader.d.ts +4 -0
- package/dist/config/game-logic-config/game-logic-config-loader.d.ts +3 -0
- package/dist/config/game-logic-config/game-logic-config.d.ts +2 -0
- package/dist/config/game-logic-config/game-logic-config.js +9 -4
- package/dist/config/game-logic-config/game-logic-config.js.map +1 -1
- package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.d.ts +4 -0
- package/dist/config/reel-strips-config/reel-strip-option.dto.d.ts +4 -0
- package/dist/config/reel-strips-config/reel-strips-config-loader.d.ts +3 -0
- package/dist/config/reel-strips-config/reel-strips-config.dto.d.ts +5 -0
- package/dist/config/reel-strips-config/reel.dto.d.ts +5 -0
- package/dist/debug/debug-command-definitions.d.ts +36 -0
- package/dist/debug/debug-command-definitions.js +108 -0
- package/dist/debug/debug-command-definitions.js.map +1 -0
- package/dist/domain/game-round.types.d.ts +9 -0
- package/dist/domain/mappers/reel-strips-config.mapper.d.ts +4 -0
- package/dist/domain/reel-strip-option.d.ts +7 -0
- package/dist/domain/reel-strips-config.d.ts +9 -0
- package/dist/domain/reel.d.ts +8 -0
- package/dist/domain/types/debug-trigger-bonus-command.d.ts +5 -0
- package/dist/domain/types/debug-trigger-bonus-request.dto.d.ts +5 -0
- package/dist/domain/types/debug-update-bonus-meter-progress-command.d.ts +5 -0
- package/dist/domain/types/debug-update-bonus-meter-progress-request.dto.d.ts +5 -0
- package/dist/domain/types/game-spin-command.d.ts +8 -0
- package/dist/domain/types/game-spin-input.dto.d.ts +8 -0
- package/dist/domain/types/game-spin-output.dto.d.ts +119 -0
- package/dist/domain/types/game-symbols.response.dto.d.ts +10 -0
- package/dist/domain/types/reel-strip-option.dto.d.ts +4 -0
- package/dist/domain/types/reel-strips-config.dto.d.ts +5 -0
- package/dist/domain/types/reel.dto.d.ts +5 -0
- package/dist/domain/types/start-bonus-round-command.d.ts +8 -0
- package/dist/domain/types/start-bonus-round-input.dto.d.ts +10 -0
- package/dist/game-engine.interface.d.ts +8 -0
- package/dist/helpers/generate-hash.d.ts +1 -0
- package/dist/helpers/number-helper.d.ts +23 -0
- package/dist/helpers/optional-boolean-mapper.d.ts +1 -0
- package/dist/helpers/uuid-helper.d.ts +3 -0
- package/dist/helpers/validation-helper.d.ts +14 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/logic/bonnys-fortune.game-logic.d.ts +37 -0
- package/dist/logic/bonnys-fortune.game-logic.js +13 -7
- package/dist/logic/bonnys-fortune.game-logic.js.map +1 -1
- package/dist/logic/bonnys-fortune.spin-generator.d.ts +19 -0
- package/dist/logic/bonnys-fortune.types.d.ts +172 -0
- package/dist/logic/bonnys-fortune.win-calculator.d.ts +10 -0
- package/dist/logic/game-logic-config.interface.d.ts +180 -0
- package/dist/logic/handlers/base-game.handler.d.ts +15 -0
- package/dist/logic/handlers/base-game.handler.js +5 -1
- package/dist/logic/handlers/base-game.handler.js.map +1 -1
- package/dist/logic/handlers/collect-feature-bonus.handler.d.ts +13 -0
- package/dist/logic/handlers/free-spins-bonus.handler.d.ts +11 -0
- package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.d.ts +11 -0
- package/dist/logic/handlers/treasure-hunt-bonus.handler.d.ts +15 -0
- package/dist/rng/DummyRngClient.d.ts +18 -0
- package/dist/rng/DummyRngClient.js +1 -7
- package/dist/rng/DummyRngClient.js.map +1 -1
- package/dist/rng/rng-client.factory.d.ts +7 -0
- package/dist/rng/rng-client.factory.js.map +1 -1
- package/dist/rng/rng-client.interface.d.ts +16 -0
- package/dist/rng/rng-service.d.ts +26 -0
- package/dist/validation/abstract-game-logic-config.validator.d.ts +4 -0
- package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.d.ts +131 -0
- package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js +9 -0
- package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js.map +1 -1
- package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.d.ts +5 -0
- package/dist/validation/custom-decorators/IsNestedIntArray.d.ts +2 -0
- package/dist/validation/game-logic-config-validation.service.d.ts +8 -0
- package/dist/validation/reel-strips-config-validation.service.d.ts +5 -0
- package/package.json +5 -4
- package/src/__tests__/base-game.test.ts +320 -0
- package/src/__tests__/bonnys-fortune-v1.game-engine.test.ts +80 -0
- package/src/__tests__/bonus-handlers.test.ts +585 -0
- package/src/__tests__/bonus-meters.test.ts +789 -0
- package/src/__tests__/collect-feature-handler.test.ts +737 -0
- package/src/__tests__/comprehensive.test.ts +883 -0
- package/src/__tests__/error-paths.test.ts +457 -0
- package/src/__tests__/helpers/test-engine-factory.ts +380 -0
- package/src/__tests__/rng-gli19-compliance.test.ts +423 -0
- package/src/__tests__/rng-security.test.ts +479 -0
- package/src/__tests__/rtp-simulation.test.ts +309 -0
- package/src/__tests__/state-transitions.test.ts +422 -0
- package/src/__tests__/steering-fortune-handler.test.ts +535 -0
- package/src/__tests__/symbol-distribution.test.ts +229 -0
- package/src/__tests__/treasure-hunt-handler.test.ts +581 -0
- package/src/__tests__/win-calculator.test.ts +816 -0
- package/src/bonnys-fortune-v1.game-engine.ts +334 -0
- package/src/config/game-logic-config/file-system.game-logic-config-loader.ts +27 -0
- package/src/config/game-logic-config/game-logic-config-loader.ts +3 -0
- package/src/config/game-logic-config/game-logic-config.ts +385 -0
- package/src/config/reel-strips-config/file-system.reel-strips-config-loader.ts +43 -0
- package/src/config/reel-strips-config/reel-strip-option.dto.ts +13 -0
- package/src/config/reel-strips-config/reel-strips-config-loader.ts +9 -0
- package/src/config/reel-strips-config/reel-strips-config.dto.ts +16 -0
- package/src/config/reel-strips-config/reel.dto.ts +16 -0
- package/src/config/reel-strips-config/reels-BASE.csv +52 -0
- package/src/config/reel-strips-config/reels-BONUS.csv +52 -0
- package/src/debug/debug-command-definitions.ts +108 -0
- package/src/domain/game-round.types.ts +10 -0
- package/src/domain/mappers/reel-strips-config.mapper.ts +16 -0
- package/src/domain/reel-strip-option.ts +15 -0
- package/src/domain/reel-strips-config.ts +21 -0
- package/src/domain/reel.ts +17 -0
- package/src/domain/types/debug-trigger-bonus-command.ts +5 -0
- package/src/domain/types/debug-trigger-bonus-request.dto.ts +5 -0
- package/src/domain/types/debug-update-bonus-meter-progress-command.ts +5 -0
- package/src/domain/types/debug-update-bonus-meter-progress-request.dto.ts +5 -0
- package/src/domain/types/game-spin-command.ts +8 -0
- package/src/domain/types/game-spin-input.dto.ts +8 -0
- package/src/domain/types/game-spin-output.dto.ts +142 -0
- package/src/domain/types/game-symbols.response.dto.ts +11 -0
- package/src/domain/types/reel-strip-option.dto.ts +13 -0
- package/src/domain/types/reel-strips-config.dto.ts +15 -0
- package/src/domain/types/reel.dto.ts +15 -0
- package/src/domain/types/start-bonus-round-command.ts +8 -0
- package/src/domain/types/start-bonus-round-input.dto.ts +10 -0
- package/src/game-engine.interface.ts +19 -0
- package/src/helpers/generate-hash.ts +5 -0
- package/src/helpers/number-helper.ts +41 -0
- package/src/helpers/optional-boolean-mapper.ts +5 -0
- package/src/helpers/uuid-helper.ts +7 -0
- package/src/helpers/validation-helper.ts +27 -0
- package/src/index.ts +31 -0
- package/src/logic/bonnys-fortune.game-logic.ts +519 -0
- package/src/logic/bonnys-fortune.spin-generator.ts +277 -0
- package/src/logic/bonnys-fortune.types.ts +225 -0
- package/src/logic/bonnys-fortune.win-calculator.ts +210 -0
- package/src/logic/game-logic-config.interface.ts +176 -0
- package/src/logic/handlers/base-game.handler.ts +221 -0
- package/src/logic/handlers/collect-feature-bonus.handler.ts +301 -0
- package/src/logic/handlers/free-spins-bonus.handler.ts +119 -0
- package/src/logic/handlers/steering-to-the-fortune-bonus.handler.ts +118 -0
- package/src/logic/handlers/treasure-hunt-bonus.handler.ts +232 -0
- package/src/rng/DummyRngClient.ts +109 -0
- package/src/rng/rng-client.factory.ts +27 -0
- package/src/rng/rng-client.interface.ts +38 -0
- package/src/rng/rng-service.ts +130 -0
- package/src/validation/abstract-game-logic-config.validator.ts +20 -0
- package/src/validation/bonnys-fortune/bonnys-fortune-config.dto.ts +379 -0
- package/src/validation/bonnys-fortune/bonnys-fortune-config.validator.ts +8 -0
- package/src/validation/custom-decorators/IsNestedIntArray.ts +29 -0
- package/src/validation/game-logic-config-validation.service.ts +28 -0
- 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 @@
|
|
|
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
|
-
|
|
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":";;;
|
|
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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"}
|
|
@@ -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:
|
|
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:
|
|
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:
|
|
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:
|
|
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":"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"}
|
|
@@ -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,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"}
|