@omnitronix/happy-panda-game-engine 0.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/README.md +732 -0
- package/dist/__tests__/bonus-sequence.test.d.ts +7 -0
- package/dist/__tests__/bonus-sequence.test.d.ts.map +1 -0
- package/dist/__tests__/bonus-sequence.test.js +381 -0
- package/dist/__tests__/bonus-sequence.test.js.map +1 -0
- package/dist/__tests__/cherry-frequency.test.d.ts +8 -0
- package/dist/__tests__/cherry-frequency.test.d.ts.map +1 -0
- package/dist/__tests__/cherry-frequency.test.js +128 -0
- package/dist/__tests__/cherry-frequency.test.js.map +1 -0
- package/dist/__tests__/comprehensive.test.d.ts +16 -0
- package/dist/__tests__/comprehensive.test.d.ts.map +1 -0
- package/dist/__tests__/comprehensive.test.js +491 -0
- package/dist/__tests__/comprehensive.test.js.map +1 -0
- package/dist/__tests__/counter-manager.test.d.ts +7 -0
- package/dist/__tests__/counter-manager.test.d.ts.map +1 -0
- package/dist/__tests__/counter-manager.test.js +317 -0
- package/dist/__tests__/counter-manager.test.js.map +1 -0
- package/dist/__tests__/coverage-boost.test.d.ts +13 -0
- package/dist/__tests__/coverage-boost.test.d.ts.map +1 -0
- package/dist/__tests__/coverage-boost.test.js +606 -0
- package/dist/__tests__/coverage-boost.test.js.map +1 -0
- package/dist/__tests__/cpp-parity.test.d.ts +39 -0
- package/dist/__tests__/cpp-parity.test.d.ts.map +1 -0
- package/dist/__tests__/cpp-parity.test.js +392 -0
- package/dist/__tests__/cpp-parity.test.js.map +1 -0
- package/dist/__tests__/debug-trigger-bonus.test.d.ts +8 -0
- package/dist/__tests__/debug-trigger-bonus.test.d.ts.map +1 -0
- package/dist/__tests__/debug-trigger-bonus.test.js +359 -0
- package/dist/__tests__/debug-trigger-bonus.test.js.map +1 -0
- package/dist/__tests__/fixtures/cpp-parity-vectors.json +457 -0
- package/dist/__tests__/gdd-validation-1000.test.d.ts +14 -0
- package/dist/__tests__/gdd-validation-1000.test.d.ts.map +1 -0
- package/dist/__tests__/gdd-validation-1000.test.js +418 -0
- package/dist/__tests__/gdd-validation-1000.test.js.map +1 -0
- package/dist/__tests__/happy-panda-engine.test.d.ts +7 -0
- package/dist/__tests__/happy-panda-engine.test.d.ts.map +1 -0
- package/dist/__tests__/happy-panda-engine.test.js +414 -0
- package/dist/__tests__/happy-panda-engine.test.js.map +1 -0
- package/dist/__tests__/jackpot-manager.test.d.ts +8 -0
- package/dist/__tests__/jackpot-manager.test.d.ts.map +1 -0
- package/dist/__tests__/jackpot-manager.test.js +313 -0
- package/dist/__tests__/jackpot-manager.test.js.map +1 -0
- package/dist/__tests__/jackpot-trigger-trace.test.d.ts +6 -0
- package/dist/__tests__/jackpot-trigger-trace.test.d.ts.map +1 -0
- package/dist/__tests__/jackpot-trigger-trace.test.js +146 -0
- package/dist/__tests__/jackpot-trigger-trace.test.js.map +1 -0
- package/dist/__tests__/rng-gli19-compliance.test.d.ts +21 -0
- package/dist/__tests__/rng-gli19-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/rng-gli19-compliance.test.js +480 -0
- package/dist/__tests__/rng-gli19-compliance.test.js.map +1 -0
- package/dist/__tests__/rng-seed-security.test.d.ts +19 -0
- package/dist/__tests__/rng-seed-security.test.d.ts.map +1 -0
- package/dist/__tests__/rng-seed-security.test.js +518 -0
- package/dist/__tests__/rng-seed-security.test.js.map +1 -0
- package/dist/__tests__/rng-seed-type.test.d.ts +16 -0
- package/dist/__tests__/rng-seed-type.test.d.ts.map +1 -0
- package/dist/__tests__/rng-seed-type.test.js +285 -0
- package/dist/__tests__/rng-seed-type.test.js.map +1 -0
- package/dist/__tests__/rng-stress-boundary.test.d.ts +15 -0
- package/dist/__tests__/rng-stress-boundary.test.d.ts.map +1 -0
- package/dist/__tests__/rng-stress-boundary.test.js +590 -0
- package/dist/__tests__/rng-stress-boundary.test.js.map +1 -0
- package/dist/__tests__/rtp-1million.test.d.ts +8 -0
- package/dist/__tests__/rtp-1million.test.d.ts.map +1 -0
- package/dist/__tests__/rtp-1million.test.js +156 -0
- package/dist/__tests__/rtp-1million.test.js.map +1 -0
- package/dist/__tests__/rtp-analysis.test.d.ts +8 -0
- package/dist/__tests__/rtp-analysis.test.d.ts.map +1 -0
- package/dist/__tests__/rtp-analysis.test.js +138 -0
- package/dist/__tests__/rtp-analysis.test.js.map +1 -0
- package/dist/__tests__/rtp-diagnostic.test.d.ts +6 -0
- package/dist/__tests__/rtp-diagnostic.test.d.ts.map +1 -0
- package/dist/__tests__/rtp-diagnostic.test.js +141 -0
- package/dist/__tests__/rtp-diagnostic.test.js.map +1 -0
- package/dist/__tests__/rtp-simulation.test.d.ts +8 -0
- package/dist/__tests__/rtp-simulation.test.d.ts.map +1 -0
- package/dist/__tests__/rtp-simulation.test.js +411 -0
- package/dist/__tests__/rtp-simulation.test.js.map +1 -0
- package/dist/__tests__/special-wins.test.d.ts +7 -0
- package/dist/__tests__/special-wins.test.d.ts.map +1 -0
- package/dist/__tests__/special-wins.test.js +179 -0
- package/dist/__tests__/special-wins.test.js.map +1 -0
- package/dist/__tests__/spin-generator.test.d.ts +7 -0
- package/dist/__tests__/spin-generator.test.d.ts.map +1 -0
- package/dist/__tests__/spin-generator.test.js +297 -0
- package/dist/__tests__/spin-generator.test.js.map +1 -0
- package/dist/__tests__/spin-handler.test.d.ts +7 -0
- package/dist/__tests__/spin-handler.test.d.ts.map +1 -0
- package/dist/__tests__/spin-handler.test.js +210 -0
- package/dist/__tests__/spin-handler.test.js.map +1 -0
- package/dist/__tests__/symbol-distribution.test.d.ts +6 -0
- package/dist/__tests__/symbol-distribution.test.d.ts.map +1 -0
- package/dist/__tests__/symbol-distribution.test.js +119 -0
- package/dist/__tests__/symbol-distribution.test.js.map +1 -0
- package/dist/__tests__/test-protocol-10000-spin.test.d.ts +14 -0
- package/dist/__tests__/test-protocol-10000-spin.test.d.ts.map +1 -0
- package/dist/__tests__/test-protocol-10000-spin.test.js +359 -0
- package/dist/__tests__/test-protocol-10000-spin.test.js.map +1 -0
- package/dist/__tests__/weighted-random.test.d.ts +7 -0
- package/dist/__tests__/weighted-random.test.d.ts.map +1 -0
- package/dist/__tests__/weighted-random.test.js +165 -0
- package/dist/__tests__/weighted-random.test.js.map +1 -0
- package/dist/__tests__/win-evaluator.test.d.ts +7 -0
- package/dist/__tests__/win-evaluator.test.d.ts.map +1 -0
- package/dist/__tests__/win-evaluator.test.js +264 -0
- package/dist/__tests__/win-evaluator.test.js.map +1 -0
- package/dist/config/happy-panda.config.d.ts +217 -0
- package/dist/config/happy-panda.config.d.ts.map +1 -0
- package/dist/config/happy-panda.config.js +721 -0
- package/dist/config/happy-panda.config.js.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +21 -0
- package/dist/config/index.js.map +1 -0
- package/dist/debug/debug-command-definitions.d.ts +38 -0
- package/dist/debug/debug-command-definitions.d.ts.map +1 -0
- package/dist/debug/debug-command-definitions.js +80 -0
- package/dist/debug/debug-command-definitions.js.map +1 -0
- package/dist/domain/debug-trigger-bonus-command.d.ts +17 -0
- package/dist/domain/debug-trigger-bonus-command.d.ts.map +1 -0
- package/dist/domain/debug-trigger-bonus-command.js +3 -0
- package/dist/domain/debug-trigger-bonus-command.js.map +1 -0
- package/dist/domain/index.d.ts +5 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +21 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/types.d.ts +228 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +30 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/engine/happy-panda-engine.d.ts +64 -0
- package/dist/engine/happy-panda-engine.d.ts.map +1 -0
- package/dist/engine/happy-panda-engine.js +324 -0
- package/dist/engine/happy-panda-engine.js.map +1 -0
- package/dist/engine/index.d.ts +5 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +21 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/game-engine.interface.d.ts +19 -0
- package/dist/game-engine.interface.d.ts.map +1 -0
- package/dist/game-engine.interface.js +9 -0
- package/dist/game-engine.interface.js.map +1 -0
- package/dist/happy-panda-v1.game-engine.d.ts +60 -0
- package/dist/happy-panda-v1.game-engine.d.ts.map +1 -0
- package/dist/happy-panda-v1.game-engine.js +524 -0
- package/dist/happy-panda-v1.game-engine.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/logic/handlers/index.d.ts +5 -0
- package/dist/logic/handlers/index.d.ts.map +1 -0
- package/dist/logic/handlers/index.js +21 -0
- package/dist/logic/handlers/index.js.map +1 -0
- package/dist/logic/handlers/spin-handler.d.ts +58 -0
- package/dist/logic/handlers/spin-handler.d.ts.map +1 -0
- package/dist/logic/handlers/spin-handler.js +265 -0
- package/dist/logic/handlers/spin-handler.js.map +1 -0
- package/dist/logic/index.d.ts +6 -0
- package/dist/logic/index.d.ts.map +1 -0
- package/dist/logic/index.js +22 -0
- package/dist/logic/index.js.map +1 -0
- package/dist/logic/services/counter-manager.d.ts +60 -0
- package/dist/logic/services/counter-manager.d.ts.map +1 -0
- package/dist/logic/services/counter-manager.js +268 -0
- package/dist/logic/services/counter-manager.js.map +1 -0
- package/dist/logic/services/index.d.ts +7 -0
- package/dist/logic/services/index.d.ts.map +1 -0
- package/dist/logic/services/index.js +23 -0
- package/dist/logic/services/index.js.map +1 -0
- package/dist/logic/services/jackpot-manager.d.ts +59 -0
- package/dist/logic/services/jackpot-manager.d.ts.map +1 -0
- package/dist/logic/services/jackpot-manager.js +142 -0
- package/dist/logic/services/jackpot-manager.js.map +1 -0
- package/dist/logic/services/win-evaluator.d.ts +51 -0
- package/dist/logic/services/win-evaluator.d.ts.map +1 -0
- package/dist/logic/services/win-evaluator.js +463 -0
- package/dist/logic/services/win-evaluator.js.map +1 -0
- package/dist/rng/dummy-rng-client.d.ts +39 -0
- package/dist/rng/dummy-rng-client.d.ts.map +1 -0
- package/dist/rng/dummy-rng-client.js +77 -0
- package/dist/rng/dummy-rng-client.js.map +1 -0
- package/dist/rng/index.d.ts +10 -0
- package/dist/rng/index.d.ts.map +1 -0
- package/dist/rng/index.js +27 -0
- package/dist/rng/index.js.map +1 -0
- package/dist/rng/rng-client.factory.d.ts +33 -0
- package/dist/rng/rng-client.factory.d.ts.map +1 -0
- package/dist/rng/rng-client.factory.js +57 -0
- package/dist/rng/rng-client.factory.js.map +1 -0
- package/dist/rng/rng-client.interface.d.ts +51 -0
- package/dist/rng/rng-client.interface.d.ts.map +1 -0
- package/dist/rng/rng-client.interface.js +9 -0
- package/dist/rng/rng-client.interface.js.map +1 -0
- package/dist/rng/rng-service.d.ts +93 -0
- package/dist/rng/rng-service.d.ts.map +1 -0
- package/dist/rng/rng-service.js +124 -0
- package/dist/rng/rng-service.js.map +1 -0
- package/dist/rng/spin-generator.d.ts +32 -0
- package/dist/rng/spin-generator.d.ts.map +1 -0
- package/dist/rng/spin-generator.js +338 -0
- package/dist/rng/spin-generator.js.map +1 -0
- package/dist/rng/weighted-random.d.ts +30 -0
- package/dist/rng/weighted-random.d.ts.map +1 -0
- package/dist/rng/weighted-random.js +58 -0
- package/dist/rng/weighted-random.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happy-panda.config.js","sourceRoot":"","sources":["../../src/config/happy-panda.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Configuration module exports
|
|
19
|
+
*/
|
|
20
|
+
__exportStar(require("./happy-panda.config"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,uDAAqC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Command Definitions for Happy Panda
|
|
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 Happy Panda.
|
|
12
|
+
*/
|
|
13
|
+
export declare const HAPPY_PANDA_BONUS_TYPES: {
|
|
14
|
+
readonly BONUS_BAMBOO_TRIPLETS: "BONUS_BAMBOO_TRIPLETS";
|
|
15
|
+
readonly BONUS_BAMBOO_TWINS: "BONUS_BAMBOO_TWINS";
|
|
16
|
+
readonly BONUS_CAMERA: "BONUS_CAMERA";
|
|
17
|
+
readonly BONUS_FIREWORKS: "BONUS_FIREWORKS";
|
|
18
|
+
readonly RESPIN_CENTER_BAMBOO: "RESPIN_CENTER_BAMBOO";
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Security error thrown when debug commands are accessed in production.
|
|
22
|
+
*/
|
|
23
|
+
export declare class DebugSecurityError extends Error {
|
|
24
|
+
constructor(message?: string);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Debug command definitions for Happy Panda.
|
|
28
|
+
*/
|
|
29
|
+
export declare const HAPPY_PANDA_DEBUG_DEFINITIONS: DebugCommandDefinition[];
|
|
30
|
+
/**
|
|
31
|
+
* Returns debug command definitions for Happy Panda.
|
|
32
|
+
* Throws DebugSecurityError in production environment.
|
|
33
|
+
*
|
|
34
|
+
* @returns Array of debug command definitions
|
|
35
|
+
* @throws DebugSecurityError if NODE_ENV is 'production'
|
|
36
|
+
*/
|
|
37
|
+
export declare function getDebugCommandDefinitions(): DebugCommandDefinition[];
|
|
38
|
+
//# sourceMappingURL=debug-command-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-command-definitions.d.ts","sourceRoot":"","sources":["../../src/debug/debug-command-definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;CAM1B,CAAC;AAEX;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,GAAE,MAAyD;CAI/E;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,sBAAsB,EA8BjE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,sBAAsB,EAAE,CAKrE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Debug Command Definitions for Happy Panda
|
|
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.HAPPY_PANDA_DEBUG_DEFINITIONS = exports.DebugSecurityError = exports.HAPPY_PANDA_BONUS_TYPES = void 0;
|
|
12
|
+
exports.getDebugCommandDefinitions = getDebugCommandDefinitions;
|
|
13
|
+
/**
|
|
14
|
+
* Available bonus types in Happy Panda.
|
|
15
|
+
*/
|
|
16
|
+
exports.HAPPY_PANDA_BONUS_TYPES = {
|
|
17
|
+
BONUS_BAMBOO_TRIPLETS: 'BONUS_BAMBOO_TRIPLETS',
|
|
18
|
+
BONUS_BAMBOO_TWINS: 'BONUS_BAMBOO_TWINS',
|
|
19
|
+
BONUS_CAMERA: 'BONUS_CAMERA',
|
|
20
|
+
BONUS_FIREWORKS: 'BONUS_FIREWORKS',
|
|
21
|
+
RESPIN_CENTER_BAMBOO: 'RESPIN_CENTER_BAMBOO',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Security error thrown when debug commands are accessed in production.
|
|
25
|
+
*/
|
|
26
|
+
class DebugSecurityError extends Error {
|
|
27
|
+
constructor(message = 'Debug features are not available in production') {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = 'DebugSecurityError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.DebugSecurityError = DebugSecurityError;
|
|
33
|
+
/**
|
|
34
|
+
* Debug command definitions for Happy Panda.
|
|
35
|
+
*/
|
|
36
|
+
exports.HAPPY_PANDA_DEBUG_DEFINITIONS = [
|
|
37
|
+
{
|
|
38
|
+
code: 'TRIGGER_BONUS',
|
|
39
|
+
commandType: 'DEBUG_TRIGGER_BONUS',
|
|
40
|
+
displayName: 'Trigger Bonus',
|
|
41
|
+
description: 'Force-trigger a specific bonus type for testing. The bonus will be queued and auto-started.',
|
|
42
|
+
category: 'bonus',
|
|
43
|
+
parameters: [
|
|
44
|
+
{
|
|
45
|
+
name: 'bonusType',
|
|
46
|
+
displayName: 'Bonus Type',
|
|
47
|
+
type: 'enum',
|
|
48
|
+
description: 'The type of bonus to trigger',
|
|
49
|
+
required: true,
|
|
50
|
+
enumValues: Object.values(exports.HAPPY_PANDA_BONUS_TYPES),
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'betAmount',
|
|
54
|
+
displayName: 'Bet Amount',
|
|
55
|
+
type: 'number',
|
|
56
|
+
description: 'Bet amount for the bonus round (in cents)',
|
|
57
|
+
required: true,
|
|
58
|
+
min: 1,
|
|
59
|
+
max: 100000,
|
|
60
|
+
defaultValue: 100,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
dangerous: false,
|
|
64
|
+
warningMessage: undefined,
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* Returns debug command definitions for Happy Panda.
|
|
69
|
+
* Throws DebugSecurityError in production environment.
|
|
70
|
+
*
|
|
71
|
+
* @returns Array of debug command definitions
|
|
72
|
+
* @throws DebugSecurityError if NODE_ENV is 'production'
|
|
73
|
+
*/
|
|
74
|
+
function getDebugCommandDefinitions() {
|
|
75
|
+
if (process.env.NODE_ENV === 'production') {
|
|
76
|
+
throw new DebugSecurityError();
|
|
77
|
+
}
|
|
78
|
+
return [...exports.HAPPY_PANDA_DEBUG_DEFINITIONS];
|
|
79
|
+
}
|
|
80
|
+
//# 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;;;AAmEH,gEAKC;AApED;;GAEG;AACU,QAAA,uBAAuB,GAAG;IACrC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,sBAAsB;CACpC,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,6BAA6B,GAA6B;IACrE;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,+BAAuB,CAAC;aACnD;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;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,qCAA6B,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command payload for DEBUG_TRIGGER_BONUS (GLI-19 compliant)
|
|
3
|
+
* Allows dev-tools to trigger bonus rounds for testing
|
|
4
|
+
*
|
|
5
|
+
* Available bonus types:
|
|
6
|
+
* - BONUS_BAMBOO_TRIPLETS: Jackpot bonus (cherry pieces grid)
|
|
7
|
+
* - BONUS_BAMBOO_TWINS: Cherry bonus (free spins)
|
|
8
|
+
* - BONUS_CAMERA: Bell bonus (5 free spins + pool jackpot)
|
|
9
|
+
* - BONUS_FIREWORKS: Bar1 bonus (7 free spins with Super Bars)
|
|
10
|
+
* - RESPIN_CENTER_BAMBOO: Center cherry respin
|
|
11
|
+
*/
|
|
12
|
+
export interface DebugTriggerBonusCommand {
|
|
13
|
+
sessionId: string;
|
|
14
|
+
bonusType: 'BONUS_BAMBOO_TRIPLETS' | 'BONUS_BAMBOO_TWINS' | 'BONUS_CAMERA' | 'BONUS_FIREWORKS' | 'RESPIN_CENTER_BAMBOO';
|
|
15
|
+
betAmount: number;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=debug-trigger-bonus-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-trigger-bonus-command.d.ts","sourceRoot":"","sources":["../../src/domain/debug-trigger-bonus-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,uBAAuB,GAAG,oBAAoB,GAAG,cAAc,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;IACxH,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-trigger-bonus-command.js","sourceRoot":"","sources":["../../src/domain/debug-trigger-bonus-command.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Domain module exports
|
|
19
|
+
*/
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,0CAAwB"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Happy Panda Game Engine - Domain Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for game state and spin results.
|
|
5
|
+
*/
|
|
6
|
+
import { Symbol, SpinType, ScreenWinType } from '../config/happy-panda.config';
|
|
7
|
+
import { BaseOutcome } from '@omnitronix/game-engine-contract';
|
|
8
|
+
/** 3x3 grid indexed by [reel][row] */
|
|
9
|
+
export type Grid = Symbol[][];
|
|
10
|
+
/** Position on the grid */
|
|
11
|
+
export interface Position {
|
|
12
|
+
reel: number;
|
|
13
|
+
row: number;
|
|
14
|
+
}
|
|
15
|
+
/** Line win result */
|
|
16
|
+
export interface LineWin {
|
|
17
|
+
lineIndex: number;
|
|
18
|
+
symbol: Symbol;
|
|
19
|
+
matchLength: number;
|
|
20
|
+
payout: number;
|
|
21
|
+
positions: Position[];
|
|
22
|
+
}
|
|
23
|
+
/** Wall (3x3) win result */
|
|
24
|
+
export interface WallWin {
|
|
25
|
+
wallType: ScreenWinType;
|
|
26
|
+
payout: number;
|
|
27
|
+
positions: Position[];
|
|
28
|
+
}
|
|
29
|
+
/** Scatter win result (Red Panda/Golden Panda) */
|
|
30
|
+
export interface ScatterWin {
|
|
31
|
+
symbol: Symbol;
|
|
32
|
+
count: number;
|
|
33
|
+
payout: number;
|
|
34
|
+
positions: Position[];
|
|
35
|
+
isSuperSevenOnly: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** Special bonus win (panda pieces, camera scatter, hat scatter) */
|
|
38
|
+
export interface SpecialWin {
|
|
39
|
+
winType: ScreenWinType;
|
|
40
|
+
count: number;
|
|
41
|
+
payout: number;
|
|
42
|
+
positions: Position[];
|
|
43
|
+
}
|
|
44
|
+
/** Combined win result for a spin */
|
|
45
|
+
export interface SpinWinResult {
|
|
46
|
+
lineWins: LineWin[];
|
|
47
|
+
wallWin: WallWin | null;
|
|
48
|
+
scatterWins: ScatterWin[];
|
|
49
|
+
specialWins: SpecialWin[];
|
|
50
|
+
totalPayout: number;
|
|
51
|
+
}
|
|
52
|
+
/** Bonus counter state */
|
|
53
|
+
export interface BonusCounters {
|
|
54
|
+
/** Bamboo Triplets bonus counter (triggers at 0, resets to 1) */
|
|
55
|
+
bambooTriplets: number;
|
|
56
|
+
/** Bamboo Twins bonus counter (triggers at 0, resets to 6 or 9) */
|
|
57
|
+
bambooTwins: number;
|
|
58
|
+
/** Camera bonus counter (triggers at 0, resets to 3 or 5) */
|
|
59
|
+
camera: number;
|
|
60
|
+
/** Fireworks bonus counter (triggers at 0, resets to 1) */
|
|
61
|
+
fireworks: number;
|
|
62
|
+
}
|
|
63
|
+
/** Pending bonus queue */
|
|
64
|
+
export interface PendingBonuses {
|
|
65
|
+
/** Number of pending Bamboo Triplets bonuses */
|
|
66
|
+
bambooTriplets: number;
|
|
67
|
+
/** Number of pending Bamboo Twins bonuses */
|
|
68
|
+
bambooTwins: number;
|
|
69
|
+
/** Number of pending Camera bonuses (each grants 5 spins) */
|
|
70
|
+
camera: number;
|
|
71
|
+
/** Number of pending Fireworks bonuses (each grants 7 spins) */
|
|
72
|
+
fireworks: number;
|
|
73
|
+
/** Number of pending Center Bamboo respins */
|
|
74
|
+
centerBamboo: number;
|
|
75
|
+
}
|
|
76
|
+
/** Jackpot state */
|
|
77
|
+
export interface JackpotState {
|
|
78
|
+
/** Progressive jackpot value (accumulates on losing paid spins) */
|
|
79
|
+
bonusJackpotValue: number;
|
|
80
|
+
/** Pool jackpot value (paid when bell bonus triggers) */
|
|
81
|
+
poolJackpotValue: number;
|
|
82
|
+
}
|
|
83
|
+
/** Game direction/mode */
|
|
84
|
+
export declare enum GameDirection {
|
|
85
|
+
SINGLE = 0,// 8 lines
|
|
86
|
+
BOTH = 1
|
|
87
|
+
}
|
|
88
|
+
/** Core game state */
|
|
89
|
+
export interface GameState {
|
|
90
|
+
/** Game mode (8 or 16 lines) */
|
|
91
|
+
gameDirection: GameDirection;
|
|
92
|
+
/** Bet multiplier (line bet) */
|
|
93
|
+
betStake: number;
|
|
94
|
+
/** Total bet per spin (8 or 16 x betStake) */
|
|
95
|
+
betGame: number;
|
|
96
|
+
/** Current spin type */
|
|
97
|
+
currentSpinType: SpinType;
|
|
98
|
+
/** Next spin type (determined after current spin) */
|
|
99
|
+
nextSpinType: SpinType;
|
|
100
|
+
/** Remaining spins in current bonus (0 for paid spin) */
|
|
101
|
+
spinsRemaining: number;
|
|
102
|
+
/** Bonus counters */
|
|
103
|
+
counters: BonusCounters;
|
|
104
|
+
/** Pending bonuses to execute */
|
|
105
|
+
pendingBonuses: PendingBonuses;
|
|
106
|
+
/** Jackpot values */
|
|
107
|
+
jackpots: JackpotState;
|
|
108
|
+
/** Current screen (3x3 grid) */
|
|
109
|
+
screen: Grid;
|
|
110
|
+
/** Accumulated bonus wins (reset when bonus sequence ends) */
|
|
111
|
+
accumulatedBonusWins: number;
|
|
112
|
+
/** Center bamboo symbol for respin (if active) */
|
|
113
|
+
centerBambooSymbol: Symbol | null;
|
|
114
|
+
}
|
|
115
|
+
/** Bonus trigger info for RGS compatibility */
|
|
116
|
+
export interface BonusTrigger {
|
|
117
|
+
bonusId: string;
|
|
118
|
+
bonusType: string;
|
|
119
|
+
betAmount: number;
|
|
120
|
+
}
|
|
121
|
+
/** Additional game-specific data for RGS passthrough */
|
|
122
|
+
export interface PublicAdditionalData {
|
|
123
|
+
/** Bonus counters - sent to frontend for UI display */
|
|
124
|
+
counters: BonusCounters;
|
|
125
|
+
}
|
|
126
|
+
/** State visible to client */
|
|
127
|
+
export interface PublicState {
|
|
128
|
+
gameDirection: GameDirection;
|
|
129
|
+
betStake: number;
|
|
130
|
+
betGame: number;
|
|
131
|
+
currentSpinType: SpinType;
|
|
132
|
+
spinsRemaining: number;
|
|
133
|
+
screen: Grid;
|
|
134
|
+
bonusJackpotValue: number;
|
|
135
|
+
poolJackpotValue: number;
|
|
136
|
+
/** Indicates if a bonus is pending (without revealing which) */
|
|
137
|
+
hasPendingBonus: boolean;
|
|
138
|
+
/** Game-specific additional data for RGS passthrough */
|
|
139
|
+
additionalData: PublicAdditionalData;
|
|
140
|
+
}
|
|
141
|
+
/** Server-side only state */
|
|
142
|
+
export interface PrivateState {
|
|
143
|
+
counters: BonusCounters;
|
|
144
|
+
/** Internal counter-based pending bonuses (used by game logic) */
|
|
145
|
+
internalPendingBonuses: PendingBonuses;
|
|
146
|
+
nextSpinType: SpinType;
|
|
147
|
+
accumulatedBonusWins: number;
|
|
148
|
+
centerBambooSymbol: Symbol | null;
|
|
149
|
+
/** RGS-compatible pending bonuses array */
|
|
150
|
+
pendingBonuses: BonusTrigger[];
|
|
151
|
+
/** RGS-compatible active bonus (when in bonus round) */
|
|
152
|
+
activeBonus?: BonusTrigger;
|
|
153
|
+
}
|
|
154
|
+
/** Spin request from client */
|
|
155
|
+
export interface SpinRequest {
|
|
156
|
+
/** Session ID */
|
|
157
|
+
sessionId: string;
|
|
158
|
+
/** Game direction (8 or 16 lines) */
|
|
159
|
+
gameDirection: GameDirection;
|
|
160
|
+
/** Bet multiplier */
|
|
161
|
+
betStake: number;
|
|
162
|
+
}
|
|
163
|
+
/** Spin response to client */
|
|
164
|
+
export interface SpinResponse extends BaseOutcome {
|
|
165
|
+
/** Current spin type (matches BonnysFortune pattern) */
|
|
166
|
+
spinType: SpinType;
|
|
167
|
+
/** Resulting screen (3x3 grid) */
|
|
168
|
+
screen: Grid;
|
|
169
|
+
/** Win results */
|
|
170
|
+
wins: SpinWinResult;
|
|
171
|
+
/** Jackpot won this spin (if any) */
|
|
172
|
+
jackpotWon: number;
|
|
173
|
+
/** Pool jackpot won this spin (if any) */
|
|
174
|
+
poolJackpotWon: number;
|
|
175
|
+
/** Bonus trigger info (if bonus triggered) */
|
|
176
|
+
triggeredBonus?: BonusTrigger;
|
|
177
|
+
/** Is this the final spin of a bonus sequence */
|
|
178
|
+
isBonusComplete: boolean;
|
|
179
|
+
/** Total player winning (required by RGS for balance crediting) */
|
|
180
|
+
playerWinning: number;
|
|
181
|
+
/** Next spin type (what the engine will execute next) */
|
|
182
|
+
nextSpinType: SpinType;
|
|
183
|
+
}
|
|
184
|
+
/** Full session state (for persistence) */
|
|
185
|
+
export interface SessionState {
|
|
186
|
+
sessionId: string;
|
|
187
|
+
publicState: PublicState;
|
|
188
|
+
privateState: PrivateState;
|
|
189
|
+
createdAt: Date;
|
|
190
|
+
updatedAt: Date;
|
|
191
|
+
}
|
|
192
|
+
/** RNG interface for dependency injection */
|
|
193
|
+
export interface RngProvider {
|
|
194
|
+
/** Generate random integer in range [0, max) */
|
|
195
|
+
random(max: number): Promise<number>;
|
|
196
|
+
/** Generate multiple random integers */
|
|
197
|
+
randomBatch(count: number, max: number): Promise<number[]>;
|
|
198
|
+
}
|
|
199
|
+
/** Game command types */
|
|
200
|
+
export declare enum CommandType {
|
|
201
|
+
INIT_SESSION_STATE = "INIT_SESSION_STATE",
|
|
202
|
+
SPIN = "SPIN",
|
|
203
|
+
GET_SYMBOLS = "GET_SYMBOLS",
|
|
204
|
+
/** GLI-19 compliant debug command for triggering bonuses */
|
|
205
|
+
DEBUG_TRIGGER_BONUS = "DEBUG_TRIGGER_BONUS"
|
|
206
|
+
}
|
|
207
|
+
/** Command request base */
|
|
208
|
+
export interface CommandRequest {
|
|
209
|
+
command: CommandType;
|
|
210
|
+
sessionId: string;
|
|
211
|
+
}
|
|
212
|
+
/** Init session command */
|
|
213
|
+
export interface InitSessionRequest extends CommandRequest {
|
|
214
|
+
command: CommandType.INIT_SESSION_STATE;
|
|
215
|
+
gameDirection: GameDirection;
|
|
216
|
+
betStake: number;
|
|
217
|
+
}
|
|
218
|
+
/** Spin command */
|
|
219
|
+
export interface SpinCommandRequest extends CommandRequest {
|
|
220
|
+
command: CommandType.SPIN;
|
|
221
|
+
}
|
|
222
|
+
/** Get symbols command */
|
|
223
|
+
export interface GetSymbolsRequest extends CommandRequest {
|
|
224
|
+
command: CommandType.GET_SYMBOLS;
|
|
225
|
+
}
|
|
226
|
+
/** Union of all commands */
|
|
227
|
+
export type GameCommand = InitSessionRequest | SpinCommandRequest | GetSymbolsRequest;
|
|
228
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Happy Panda Game Engine - Domain Types
|
|
4
|
+
*
|
|
5
|
+
* Core type definitions for game state and spin results.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CommandType = exports.GameDirection = void 0;
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// GAME STATE
|
|
11
|
+
// =============================================================================
|
|
12
|
+
/** Game direction/mode */
|
|
13
|
+
var GameDirection;
|
|
14
|
+
(function (GameDirection) {
|
|
15
|
+
GameDirection[GameDirection["SINGLE"] = 0] = "SINGLE";
|
|
16
|
+
GameDirection[GameDirection["BOTH"] = 1] = "BOTH";
|
|
17
|
+
})(GameDirection || (exports.GameDirection = GameDirection = {}));
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// COMMAND TYPES
|
|
20
|
+
// =============================================================================
|
|
21
|
+
/** Game command types */
|
|
22
|
+
var CommandType;
|
|
23
|
+
(function (CommandType) {
|
|
24
|
+
CommandType["INIT_SESSION_STATE"] = "INIT_SESSION_STATE";
|
|
25
|
+
CommandType["SPIN"] = "SPIN";
|
|
26
|
+
CommandType["GET_SYMBOLS"] = "GET_SYMBOLS";
|
|
27
|
+
/** GLI-19 compliant debug command for triggering bonuses */
|
|
28
|
+
CommandType["DEBUG_TRIGGER_BONUS"] = "DEBUG_TRIGGER_BONUS";
|
|
29
|
+
})(CommandType || (exports.CommandType = CommandType = {}));
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0GH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,0BAA0B;AAC1B,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,iDAAQ,CAAA;AACV,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AA8ID,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,yBAAyB;AACzB,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,wDAAyC,CAAA;IACzC,4BAAa,CAAA;IACb,0CAA2B,CAAA;IAC3B,4DAA4D;IAC5D,0DAA2C,CAAA;AAC7C,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Happy Panda Game Engine
|
|
3
|
+
*
|
|
4
|
+
* Main engine class that provides the public API for the game.
|
|
5
|
+
* Implements the command pattern used by other Omnitronix game engines.
|
|
6
|
+
*/
|
|
7
|
+
import { GameDirection, SessionState, RngProvider, GameCommand } from '../domain/types';
|
|
8
|
+
export declare class HappyPandaEngine {
|
|
9
|
+
private rng;
|
|
10
|
+
constructor(rngProvider: RngProvider);
|
|
11
|
+
/**
|
|
12
|
+
* Handle a game command.
|
|
13
|
+
*/
|
|
14
|
+
handleCommand(command: GameCommand, currentState?: SessionState): Promise<{
|
|
15
|
+
response: unknown;
|
|
16
|
+
state: SessionState;
|
|
17
|
+
}>;
|
|
18
|
+
private handleInitSession;
|
|
19
|
+
private handleSpin;
|
|
20
|
+
private handleGetSymbols;
|
|
21
|
+
/**
|
|
22
|
+
* Extract public state from game state.
|
|
23
|
+
*/
|
|
24
|
+
private extractPublicState;
|
|
25
|
+
/**
|
|
26
|
+
* Extract private state from game state.
|
|
27
|
+
* Converts internal counter-based pendingBonuses to RGS-compatible array format.
|
|
28
|
+
*/
|
|
29
|
+
private extractPrivateState;
|
|
30
|
+
/**
|
|
31
|
+
* Convert counter-based pending bonuses to RGS-compatible array format.
|
|
32
|
+
*/
|
|
33
|
+
private convertPendingBonusesToArray;
|
|
34
|
+
/**
|
|
35
|
+
* Convert SpinType to bonus type string for RGS.
|
|
36
|
+
* Now that SpinType is a string enum, this is a simple cast.
|
|
37
|
+
*/
|
|
38
|
+
private spinTypeToBonusType;
|
|
39
|
+
/**
|
|
40
|
+
* Create session state from game state.
|
|
41
|
+
*/
|
|
42
|
+
private createSessionState;
|
|
43
|
+
/**
|
|
44
|
+
* Reconstruct game state from session state.
|
|
45
|
+
*/
|
|
46
|
+
private reconstructGameState;
|
|
47
|
+
/**
|
|
48
|
+
* Convert RGS-compatible array back to counter-based format (for legacy state compatibility).
|
|
49
|
+
*/
|
|
50
|
+
private convertArrayToPendingBonuses;
|
|
51
|
+
/**
|
|
52
|
+
* Create empty session for commands that don't need state.
|
|
53
|
+
*/
|
|
54
|
+
private createEmptySession;
|
|
55
|
+
/**
|
|
56
|
+
* Update bet settings (only when no bonus pending).
|
|
57
|
+
*/
|
|
58
|
+
updateBet(session: SessionState, gameDirection: GameDirection, betStake: number): SessionState;
|
|
59
|
+
/**
|
|
60
|
+
* Check if player can change bet.
|
|
61
|
+
*/
|
|
62
|
+
canChangeBet(session: SessionState): boolean;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=happy-panda-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happy-panda-engine.d.ts","sourceRoot":"","sources":["../../src/engine/happy-panda-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,aAAa,EAGb,YAAY,EACZ,WAAW,EAEX,WAAW,EAMZ,MAAM,iBAAiB,CAAC;AAczB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAc;gBAEb,WAAW,EAAE,WAAW;IAQpC;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;YAuBxC,iBAAiB;YAiBjB,UAAU;YAoDV,gBAAgB;IAkB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA+CpC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAoCpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAM,GACf,YAAY;IAMf;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;CAM7C"}
|