@omnitronix/happy-panda-game-engine 0.0.3 → 0.0.5
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__/bonus-sequence.test.d.ts +7 -0
- package/dist/__tests__/bonus-sequence.test.d.ts.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__/counter-manager.test.d.ts +7 -0
- package/dist/__tests__/counter-manager.test.d.ts.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 +29 -25
- package/dist/__tests__/cpp-parity.test.js.map +1 -1
- package/dist/__tests__/fixtures/cpp-parity-vectors.json +69 -50
- 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__/jackpot-manager.test.d.ts +8 -0
- package/dist/__tests__/jackpot-manager.test.d.ts.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__/rtp-1million.test.d.ts +8 -0
- package/dist/__tests__/rtp-1million.test.d.ts.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-diagnostic.test.d.ts +6 -0
- package/dist/__tests__/rtp-diagnostic.test.d.ts.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__/special-wins.test.d.ts +7 -0
- package/dist/__tests__/special-wins.test.d.ts.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-handler.test.d.ts +7 -0
- package/dist/__tests__/spin-handler.test.d.ts.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__/weighted-random.test.d.ts +7 -0
- package/dist/__tests__/weighted-random.test.d.ts.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 +20 -13
- package/dist/__tests__/win-evaluator.test.js.map +1 -1
- package/dist/config/happy-panda.config.d.ts +212 -0
- package/dist/config/happy-panda.config.d.ts.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/domain/index.d.ts +5 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/types.d.ts +205 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/engine/happy-panda-engine.d.ts +50 -0
- package/dist/engine/happy-panda-engine.d.ts.map +1 -0
- package/dist/engine/index.d.ts +5 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/happy-panda-v1.game-engine.d.ts +63 -0
- package/dist/happy-panda-v1.game-engine.d.ts.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.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/spin-handler.d.ts +54 -0
- package/dist/logic/handlers/spin-handler.d.ts.map +1 -0
- package/dist/logic/index.d.ts +6 -0
- package/dist/logic/index.d.ts.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/index.d.ts +7 -0
- package/dist/logic/services/index.d.ts.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/win-evaluator.d.ts +49 -0
- package/dist/logic/services/win-evaluator.d.ts.map +1 -0
- package/dist/logic/services/win-evaluator.js +9 -4
- package/dist/logic/services/win-evaluator.js.map +1 -1
- package/dist/rng/dummy-rng-client.d.ts +39 -0
- package/dist/rng/dummy-rng-client.d.ts.map +1 -0
- package/dist/rng/index.d.ts +10 -0
- package/dist/rng/index.d.ts.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.interface.d.ts +51 -0
- package/dist/rng/rng-client.interface.d.ts.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/spin-generator.d.ts +31 -0
- package/dist/rng/spin-generator.d.ts.map +1 -0
- package/dist/rng/weighted-random.d.ts +30 -0
- package/dist/rng/weighted-random.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weighted-random.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/weighted-random.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win-evaluator.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/win-evaluator.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -26,7 +26,7 @@ describe('Win Evaluator', () => {
|
|
|
26
26
|
const grid = filledGrid(happy_panda_config_1.Symbol.BAR3);
|
|
27
27
|
const result = (0, win_evaluator_1.evaluateWallWin)(grid, 8);
|
|
28
28
|
expect(result).not.toBeNull();
|
|
29
|
-
expect(result.payout).toBe(
|
|
29
|
+
expect(result.payout).toBe(500 * 8); // BAR3 = 500x bet_game (WALL_MULTIPLIERS[0])
|
|
30
30
|
});
|
|
31
31
|
it('should detect Cherry wall win (mixed CH/CH_S)', () => {
|
|
32
32
|
const grid = [
|
|
@@ -36,7 +36,7 @@ describe('Win Evaluator', () => {
|
|
|
36
36
|
];
|
|
37
37
|
const result = (0, win_evaluator_1.evaluateWallWin)(grid, 8);
|
|
38
38
|
expect(result).not.toBeNull();
|
|
39
|
-
expect(result.payout).toBe(
|
|
39
|
+
expect(result.payout).toBe(400 * 8); // Cherry wall = 400x bet_game (WALL_MULTIPLIERS[7])
|
|
40
40
|
});
|
|
41
41
|
it('should detect Any Bar wall (mixed BAR3/BAR2/BAR1)', () => {
|
|
42
42
|
const grid = [
|
|
@@ -46,7 +46,7 @@ describe('Win Evaluator', () => {
|
|
|
46
46
|
];
|
|
47
47
|
const result = (0, win_evaluator_1.evaluateWallWin)(grid, 8);
|
|
48
48
|
expect(result).not.toBeNull();
|
|
49
|
-
expect(result.payout).toBe(
|
|
49
|
+
expect(result.payout).toBe(50 * 8); // Any Bar = 50x bet_game (WALL_MULTIPLIERS[8])
|
|
50
50
|
});
|
|
51
51
|
it('should detect All Fruits wall', () => {
|
|
52
52
|
const grid = [
|
|
@@ -56,7 +56,7 @@ describe('Win Evaluator', () => {
|
|
|
56
56
|
];
|
|
57
57
|
const result = (0, win_evaluator_1.evaluateWallWin)(grid, 8);
|
|
58
58
|
expect(result).not.toBeNull();
|
|
59
|
-
expect(result.payout).toBe(
|
|
59
|
+
expect(result.payout).toBe(15 * 8); // All Fruits = 15x bet_game (WALL_MULTIPLIERS[9])
|
|
60
60
|
});
|
|
61
61
|
it('should return null for non-wall', () => {
|
|
62
62
|
const grid = [
|
|
@@ -78,7 +78,7 @@ describe('Win Evaluator', () => {
|
|
|
78
78
|
const results = (0, win_evaluator_1.evaluateScatterWins)(grid, 8);
|
|
79
79
|
expect(results.length).toBe(1); // Only mix scatter (2 regular sevens)
|
|
80
80
|
expect(results[0].count).toBe(2);
|
|
81
|
-
expect(results[0].payout).toBe(
|
|
81
|
+
expect(results[0].payout).toBe(2 * 8); // 2x = 2x bet_game (SEVEN_SCATTER_MULTIPLIERS[7])
|
|
82
82
|
});
|
|
83
83
|
it('should detect 3x Super Seven scatter (doubled)', () => {
|
|
84
84
|
const grid = [
|
|
@@ -90,7 +90,7 @@ describe('Win Evaluator', () => {
|
|
|
90
90
|
expect(results.length).toBe(1); // Only Super Seven scatter (no regular sevens)
|
|
91
91
|
expect(results[0].count).toBe(3);
|
|
92
92
|
expect(results[0].isSuperSevenOnly).toBe(true);
|
|
93
|
-
expect(results[0].payout).toBe(
|
|
93
|
+
expect(results[0].payout).toBe(5 * 8 * 2); // 3x = 5x bet_game, doubled for Super Seven only
|
|
94
94
|
});
|
|
95
95
|
it('should detect mixed Seven/Super Seven (TWO wins per C++)', () => {
|
|
96
96
|
const grid = [
|
|
@@ -104,7 +104,7 @@ describe('Win Evaluator', () => {
|
|
|
104
104
|
expect(results[0].count).toBe(3); // Total count
|
|
105
105
|
expect(results[0].isSuperSevenOnly).toBe(false);
|
|
106
106
|
// With exactly 1 Super Seven in mix, add bet_game bonus
|
|
107
|
-
expect(results[0].payout).toBe(
|
|
107
|
+
expect(results[0].payout).toBe(5 * 8 + 8); // 3x = 5x bet_game + 1x bonus
|
|
108
108
|
});
|
|
109
109
|
it('should return empty array for 1 Seven', () => {
|
|
110
110
|
const grid = [
|
|
@@ -224,19 +224,26 @@ describe('Win Evaluator', () => {
|
|
|
224
224
|
const result = (0, win_evaluator_1.evaluateSpin)(grid, types_1.GameDirection.SINGLE, 1, 8, happy_panda_config_1.SpinType.PAID_SPIN);
|
|
225
225
|
expect(result.wallWin).not.toBeNull();
|
|
226
226
|
expect(result.lineWins.length).toBe(0); // Lines suppressed
|
|
227
|
-
expect(result.totalPayout).toBe(
|
|
227
|
+
expect(result.totalPayout).toBe(500 * 8); // BAR3 wall = 500x bet_game (WALL_MULTIPLIERS[0])
|
|
228
228
|
});
|
|
229
|
-
it('should
|
|
230
|
-
// 3x Seven scatter with
|
|
229
|
+
it('should pay BOTH line wins AND scatter wins (C++ behavior)', () => {
|
|
230
|
+
// 3x Seven scatter with line wins
|
|
231
|
+
// Per C++ simulation (lines 2731-2735): BOTH line_wins_sum AND screen_win_sum are added
|
|
232
|
+
// Scatter wins do NOT suppress line wins - only wall wins suppress line wins
|
|
231
233
|
const grid = [
|
|
232
|
-
[happy_panda_config_1.Symbol.SEVEN, happy_panda_config_1.Symbol.SEVEN, happy_panda_config_1.Symbol.SEVEN], //
|
|
233
|
-
[happy_panda_config_1.Symbol.BAR3, happy_panda_config_1.Symbol.BAR3, happy_panda_config_1.Symbol.BAR3], //
|
|
234
|
+
[happy_panda_config_1.Symbol.SEVEN, happy_panda_config_1.Symbol.SEVEN, happy_panda_config_1.Symbol.SEVEN], // Line win: 100 × bet_stake
|
|
235
|
+
[happy_panda_config_1.Symbol.BAR3, happy_panda_config_1.Symbol.BAR3, happy_panda_config_1.Symbol.BAR3], // Line win: 80 × bet_stake
|
|
234
236
|
[happy_panda_config_1.Symbol.MELON, happy_panda_config_1.Symbol.PRUNE, happy_panda_config_1.Symbol.ORANGE],
|
|
235
237
|
];
|
|
236
238
|
const result = (0, win_evaluator_1.evaluateSpin)(grid, types_1.GameDirection.SINGLE, 1, 8, happy_panda_config_1.SpinType.PAID_SPIN);
|
|
237
239
|
expect(result.scatterWins.length).toBeGreaterThan(0);
|
|
238
240
|
expect(result.scatterWins[0].count).toBe(3);
|
|
239
|
-
|
|
241
|
+
// C++ pays BOTH line wins and scatter wins
|
|
242
|
+
expect(result.lineWins.length).toBe(2); // 3x Seven + 3x BAR3
|
|
243
|
+
expect(result.lineWins[0].payout).toBe(100); // Seven line
|
|
244
|
+
expect(result.lineWins[1].payout).toBe(80); // BAR3 line
|
|
245
|
+
// Total = line wins (180) + scatter win (40) = 220
|
|
246
|
+
expect(result.totalPayout).toBe(220);
|
|
240
247
|
});
|
|
241
248
|
it('should evaluate line wins when no wall or scatter', () => {
|
|
242
249
|
const grid = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"win-evaluator.test.js","sourceRoot":"","sources":["../../src/__tests__/win-evaluator.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"win-evaluator.test.js","sourceRoot":"","sources":["../../src/__tests__/win-evaluator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Happy Panda Game Engine Configuration
|
|
3
|
+
*
|
|
4
|
+
* Extracted from CherryMaster_A_2.cpp math model.
|
|
5
|
+
* 3x3 slot with 8/16 bidirectional paylines.
|
|
6
|
+
*
|
|
7
|
+
* Game Modes:
|
|
8
|
+
* - gameDirection=0: 8 lines, single direction, min bet = 8
|
|
9
|
+
* - gameDirection=1: 16 lines, both directions, min bet = 16
|
|
10
|
+
*/
|
|
11
|
+
export declare enum Symbol {
|
|
12
|
+
NONE = -1,
|
|
13
|
+
SUPER_SEVEN = 0,// SEV_S
|
|
14
|
+
SEVEN = 1,// SEV
|
|
15
|
+
BAR3 = 2,// BA3
|
|
16
|
+
BAR2 = 3,// BA2
|
|
17
|
+
BAR1 = 4,// BA1
|
|
18
|
+
MELON = 5,// ME
|
|
19
|
+
BELL = 6,// BE
|
|
20
|
+
PRUNE = 7,// PR
|
|
21
|
+
ORANGE = 8,// OR
|
|
22
|
+
CHERRY = 9,// CH
|
|
23
|
+
SUPER_CHERRY = 10,// CH_S
|
|
24
|
+
SUPER_BAR = 11,// BA_S - used in Bar1 Bonus
|
|
25
|
+
BAR_ANY = 25,// Mixed bar (BAR3+BAR2+BAR1) - for line wins, not bonus trigger
|
|
26
|
+
CHERRY_00 = 12,
|
|
27
|
+
CHERRY_01 = 13,
|
|
28
|
+
CHERRY_02 = 14,
|
|
29
|
+
CHERRY_10 = 15,
|
|
30
|
+
CHERRY_11 = 16,
|
|
31
|
+
CHERRY_12 = 17,
|
|
32
|
+
CHERRY_20 = 18,
|
|
33
|
+
CHERRY_21 = 19,
|
|
34
|
+
CHERRY_22 = 20,
|
|
35
|
+
COLOR_YELLOW = 21,// CO_Y - Jackpot Bonus
|
|
36
|
+
COLOR_RED = 22,// CO_R - Cherry Bonus
|
|
37
|
+
COLOR_GREEN = 23,// CO_G - Bell Bonus
|
|
38
|
+
COLOR_BLUE = 24
|
|
39
|
+
}
|
|
40
|
+
export declare enum SpinType {
|
|
41
|
+
PAID_SPIN = 0,
|
|
42
|
+
BONUS_JACKPOT = 1,
|
|
43
|
+
BONUS_CHERRY = 2,
|
|
44
|
+
BONUS_BELL = 3,
|
|
45
|
+
BONUS_BAR1 = 4,
|
|
46
|
+
RESPIN_CHERRY = 5
|
|
47
|
+
}
|
|
48
|
+
export declare enum ScreenWinType {
|
|
49
|
+
NOTHING = -1,
|
|
50
|
+
SCREEN_SUPER_SEVEN = 0,
|
|
51
|
+
SCREEN_SEVEN = 1,
|
|
52
|
+
SCREEN_BAR3 = 2,
|
|
53
|
+
SCREEN_BAR2 = 3,
|
|
54
|
+
SCREEN_BAR1 = 4,
|
|
55
|
+
SCREEN_MELON = 5,
|
|
56
|
+
SCREEN_BELL = 6,
|
|
57
|
+
SCREEN_PRUNE = 7,
|
|
58
|
+
SCREEN_ORANGE = 8,
|
|
59
|
+
SCREEN_CHERRY = 9,
|
|
60
|
+
SCREEN_BAR_ANY = 10,
|
|
61
|
+
SCREEN_FRUIT_ANY = 11,
|
|
62
|
+
SCREEN_COLOR_ANY = 12,
|
|
63
|
+
SCREEN_CHERRY_PIECES = 13,// Jackpot Bonus
|
|
64
|
+
SCREEN_BELL_SCATTER = 14,// Bell Bonus
|
|
65
|
+
SCREEN_SUPER_BAR = 15
|
|
66
|
+
}
|
|
67
|
+
export declare const GRID: {
|
|
68
|
+
readonly REELS: 3;
|
|
69
|
+
readonly ROWS: 3;
|
|
70
|
+
readonly POSITIONS: 9;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Line pay table: [symbol][matchCount] = multiplier
|
|
74
|
+
* matchCount: 0=x1, 1=x2, 2=x3
|
|
75
|
+
* Values are multiplied by line bet
|
|
76
|
+
*/
|
|
77
|
+
export declare const LINE_MULTIPLIERS: number[][];
|
|
78
|
+
/**
|
|
79
|
+
* 16 payline definitions: [lineIdx][positionIdx] = [reel, row]
|
|
80
|
+
* Lines 0-7: forward direction
|
|
81
|
+
* Lines 8-15: reverse direction (for 16-line mode)
|
|
82
|
+
*/
|
|
83
|
+
export declare const LINE_SHAPES: number[][][];
|
|
84
|
+
export declare const LINES_PER_DIRECTION: readonly [8, 16];
|
|
85
|
+
/**
|
|
86
|
+
* Wall win multipliers: [wallType] = multiplier x bet_game
|
|
87
|
+
* Order matches ScreenMulti in C++ EXACTLY
|
|
88
|
+
*/
|
|
89
|
+
export declare const WALL_MULTIPLIERS: number[];
|
|
90
|
+
/**
|
|
91
|
+
* Seven/Super Seven scatter pay table: [count-2] = multiplier x bet_game
|
|
92
|
+
* Pays for 2-9 matching Seven/Super Seven symbols
|
|
93
|
+
* Matches SevenSuperMulti in C++ EXACTLY
|
|
94
|
+
*/
|
|
95
|
+
export declare const SEVEN_SCATTER_MULTIPLIERS: number[];
|
|
96
|
+
export declare const SEVEN_MIN_COUNT = 2;
|
|
97
|
+
export declare const SUPER_SEVEN_MULTIPLIER = 2;
|
|
98
|
+
/**
|
|
99
|
+
* Special win multipliers: [gameDirection][type] = multiplier x line
|
|
100
|
+
* type: 0=cherry pieces, 1=bell scatter, 2=super bar scatter
|
|
101
|
+
* Matches SpecialWins in C++ EXACTLY
|
|
102
|
+
*/
|
|
103
|
+
export declare const SPECIAL_WIN_MULTIPLIERS: number[][];
|
|
104
|
+
export declare const BONUS_JACKPOT: {
|
|
105
|
+
/** Initial jackpot value: multiplier x bet_game */
|
|
106
|
+
readonly INIT: 100;
|
|
107
|
+
/** Maximum jackpot value: multiplier x bet_game */
|
|
108
|
+
readonly MAX: 1000;
|
|
109
|
+
/** Probability weights to increment jackpot on losing spin: [gameDir][yes,no] */
|
|
110
|
+
readonly INCREMENT_WEIGHTS: readonly [readonly [3, 10], readonly [3, 10]];
|
|
111
|
+
/** Increment amount: [gameDir] x bet_stake */
|
|
112
|
+
readonly INCREMENT_VALUE: readonly [1, 2];
|
|
113
|
+
/** Counter starts at (always 1 - triggers on 3x cherry line) */
|
|
114
|
+
readonly COUNTER_INIT: 1;
|
|
115
|
+
/** Free spins awarded */
|
|
116
|
+
readonly SPINS: 1;
|
|
117
|
+
/** Additional win on jackpot: multiplier x bet_game */
|
|
118
|
+
readonly ADD_WIN: 5;
|
|
119
|
+
};
|
|
120
|
+
export declare const POOL_JACKPOT: {
|
|
121
|
+
/** Initial pool value */
|
|
122
|
+
readonly INIT: 0;
|
|
123
|
+
/** Maximum pool value: multiplier x bet_game */
|
|
124
|
+
readonly MAX: 250;
|
|
125
|
+
/** Increment values: [gameDir][superSeven, seven] x bet_line */
|
|
126
|
+
readonly INCREMENT: readonly [readonly [10, 5], readonly [10, 5]];
|
|
127
|
+
};
|
|
128
|
+
export declare const BONUS_CHERRY: {
|
|
129
|
+
/** Counter initial values (randomly chosen) */
|
|
130
|
+
readonly COUNTER_INIT: readonly [6, 9];
|
|
131
|
+
/** Weights for choosing initial counter: [gameDir][weight_for_6, weight_for_9] */
|
|
132
|
+
readonly COUNTER_INIT_WEIGHTS: readonly [readonly [5, 5], readonly [5, 5]];
|
|
133
|
+
/** Free spins awarded */
|
|
134
|
+
readonly SPINS: 1;
|
|
135
|
+
};
|
|
136
|
+
export declare const BONUS_BELL: {
|
|
137
|
+
/** Counter initial values (randomly chosen) */
|
|
138
|
+
readonly COUNTER_INIT: readonly [3, 5];
|
|
139
|
+
/** Weights for choosing initial counter: [gameDir][weight_for_3, weight_for_5] */
|
|
140
|
+
readonly COUNTER_INIT_WEIGHTS: readonly [readonly [5, 5], readonly [5, 5]];
|
|
141
|
+
/** Free spins awarded */
|
|
142
|
+
readonly SPINS: 5;
|
|
143
|
+
};
|
|
144
|
+
export declare const BONUS_BAR1: {
|
|
145
|
+
/** Counter starts at (always 1) */
|
|
146
|
+
readonly COUNTER_INIT: 1;
|
|
147
|
+
/** Free spins awarded */
|
|
148
|
+
readonly SPINS: 7;
|
|
149
|
+
};
|
|
150
|
+
export declare const RESPIN_CHERRY: {
|
|
151
|
+
/** Spins awarded: [Cherry, Super Cherry] */
|
|
152
|
+
readonly SPINS: readonly [1, 2];
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Symbol weights for paid spins: [gameDirection][position][symbol]
|
|
156
|
+
* Position order: (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)
|
|
157
|
+
* Symbol order: SEV_S, SEV, BA3, BA2, BA1, ME, BE, PR, OR, CH, CH_S
|
|
158
|
+
*/
|
|
159
|
+
export declare const PAID_SPIN_WEIGHTS: number[][][];
|
|
160
|
+
/**
|
|
161
|
+
* Active symbol indices for paid spins
|
|
162
|
+
*/
|
|
163
|
+
export declare const PAID_SPIN_SYMBOLS: Symbol[];
|
|
164
|
+
/**
|
|
165
|
+
* Limitation tiers: maximum symbols of same type allowed
|
|
166
|
+
*/
|
|
167
|
+
export declare const LIMITATION_TIERS: readonly [2, 4, 7, 9];
|
|
168
|
+
/**
|
|
169
|
+
* Limitation weights for paid spins: [gameDirection][symbol][tier]
|
|
170
|
+
* Tier order: max2, max4, max7, max9
|
|
171
|
+
*/
|
|
172
|
+
export declare const PAID_SPIN_LIMITATION_WEIGHTS: number[][][];
|
|
173
|
+
/**
|
|
174
|
+
* Probability weights for 3x3 wall wins: [gameDirection][yes, no]
|
|
175
|
+
*/
|
|
176
|
+
export declare const PAID_SPIN_3X3_WEIGHTS: number[][];
|
|
177
|
+
/**
|
|
178
|
+
* Weights for which symbol creates 3x3 win
|
|
179
|
+
* Order: SEV_S, SEV, BA3, BA2, BA1, ME, BE, PR, OR, CH, CH_S
|
|
180
|
+
*/
|
|
181
|
+
export declare const PAID_SPIN_3X3_SYMBOL_WEIGHTS: number[];
|
|
182
|
+
export declare const JACKPOT_BONUS_SYMBOLS: Symbol[];
|
|
183
|
+
export declare const JACKPOT_BONUS_WEIGHTS: number[][][];
|
|
184
|
+
export declare const JACKPOT_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
185
|
+
export declare const JACKPOT_BONUS_3X3_WEIGHTS: number[][];
|
|
186
|
+
export declare const JACKPOT_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
187
|
+
export declare const CHERRY_BONUS_SYMBOLS: Symbol[];
|
|
188
|
+
export declare const CHERRY_BONUS_WEIGHTS: number[][][];
|
|
189
|
+
export declare const CHERRY_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
190
|
+
export declare const CHERRY_BONUS_3X3_WEIGHTS: number[][];
|
|
191
|
+
export declare const CHERRY_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
192
|
+
export declare const BELL_BONUS_SYMBOLS: Symbol[];
|
|
193
|
+
export declare const BELL_BONUS_WEIGHTS: number[][][];
|
|
194
|
+
export declare const BELL_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
195
|
+
export declare const BELL_BONUS_3X3_WEIGHTS: number[][];
|
|
196
|
+
export declare const BELL_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
197
|
+
export declare const BAR1_BONUS_SYMBOLS: Symbol[];
|
|
198
|
+
export declare const BAR1_BONUS_WEIGHTS: number[][][];
|
|
199
|
+
export declare const BAR1_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
200
|
+
export declare const BAR1_BONUS_3X3_WEIGHTS: number[][];
|
|
201
|
+
export declare const BAR1_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
202
|
+
export declare const RESPIN_CHERRY_SYMBOLS: Symbol[];
|
|
203
|
+
export declare const RESPIN_CHERRY_WEIGHTS: number[][][];
|
|
204
|
+
export declare const RESPIN_CHERRY_LIMITATION_WEIGHTS: number[][][];
|
|
205
|
+
export declare const BAR_SYMBOLS: Symbol[];
|
|
206
|
+
/** Bar symbols including Super Bar - for bar mix wins (per C++ math model line 1229) */
|
|
207
|
+
export declare const BAR_MIX_SYMBOLS: Symbol[];
|
|
208
|
+
export declare const FRUIT_SYMBOLS: Symbol[];
|
|
209
|
+
export declare const COLOR_SYMBOLS: Symbol[];
|
|
210
|
+
export declare const SEVEN_SYMBOLS: Symbol[];
|
|
211
|
+
export declare const CHERRY_SYMBOLS: Symbol[];
|
|
212
|
+
//# sourceMappingURL=happy-panda.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happy-panda.config.d.ts","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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,205 @@
|
|
|
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
|
+
/** 3x3 grid indexed by [reel][row] */
|
|
8
|
+
export type Grid = Symbol[][];
|
|
9
|
+
/** Position on the grid */
|
|
10
|
+
export interface Position {
|
|
11
|
+
reel: number;
|
|
12
|
+
row: number;
|
|
13
|
+
}
|
|
14
|
+
/** Line win result */
|
|
15
|
+
export interface LineWin {
|
|
16
|
+
lineIndex: number;
|
|
17
|
+
symbol: Symbol;
|
|
18
|
+
matchLength: number;
|
|
19
|
+
payout: number;
|
|
20
|
+
positions: Position[];
|
|
21
|
+
}
|
|
22
|
+
/** Wall (3x3) win result */
|
|
23
|
+
export interface WallWin {
|
|
24
|
+
wallType: ScreenWinType;
|
|
25
|
+
payout: number;
|
|
26
|
+
positions: Position[];
|
|
27
|
+
}
|
|
28
|
+
/** Scatter win result (Seven/Super Seven) */
|
|
29
|
+
export interface ScatterWin {
|
|
30
|
+
symbol: Symbol;
|
|
31
|
+
count: number;
|
|
32
|
+
payout: number;
|
|
33
|
+
positions: Position[];
|
|
34
|
+
isSuperSevenOnly: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Special bonus win (cherry pieces, bell scatter, super bar scatter) */
|
|
37
|
+
export interface SpecialWin {
|
|
38
|
+
winType: ScreenWinType;
|
|
39
|
+
count: number;
|
|
40
|
+
payout: number;
|
|
41
|
+
positions: Position[];
|
|
42
|
+
}
|
|
43
|
+
/** Combined win result for a spin */
|
|
44
|
+
export interface SpinWinResult {
|
|
45
|
+
lineWins: LineWin[];
|
|
46
|
+
wallWin: WallWin | null;
|
|
47
|
+
scatterWins: ScatterWin[];
|
|
48
|
+
specialWins: SpecialWin[];
|
|
49
|
+
totalPayout: number;
|
|
50
|
+
}
|
|
51
|
+
/** Bonus counter state */
|
|
52
|
+
export interface BonusCounters {
|
|
53
|
+
/** Jackpot bonus counter (triggers at 0, resets to 1) */
|
|
54
|
+
jackpot: number;
|
|
55
|
+
/** Cherry bonus counter (triggers at 0, resets to 6 or 9) */
|
|
56
|
+
cherry: number;
|
|
57
|
+
/** Bell bonus counter (triggers at 0, resets to 3 or 5) */
|
|
58
|
+
bell: number;
|
|
59
|
+
/** Bar1 bonus counter (triggers at 0, resets to 1) */
|
|
60
|
+
bar1: number;
|
|
61
|
+
}
|
|
62
|
+
/** Pending bonus queue */
|
|
63
|
+
export interface PendingBonuses {
|
|
64
|
+
/** Number of pending jackpot bonuses */
|
|
65
|
+
jackpot: number;
|
|
66
|
+
/** Number of pending cherry bonuses */
|
|
67
|
+
cherry: number;
|
|
68
|
+
/** Number of pending bell bonuses (each grants 5 spins) */
|
|
69
|
+
bell: number;
|
|
70
|
+
/** Number of pending bar1 bonuses (each grants 7 spins) */
|
|
71
|
+
bar1: number;
|
|
72
|
+
/** Number of pending center cherry respins */
|
|
73
|
+
respin: number;
|
|
74
|
+
}
|
|
75
|
+
/** Jackpot state */
|
|
76
|
+
export interface JackpotState {
|
|
77
|
+
/** Progressive jackpot value (accumulates on losing paid spins) */
|
|
78
|
+
bonusJackpotValue: number;
|
|
79
|
+
/** Pool jackpot value (paid when bell bonus triggers) */
|
|
80
|
+
poolJackpotValue: number;
|
|
81
|
+
}
|
|
82
|
+
/** Game direction/mode */
|
|
83
|
+
export declare enum GameDirection {
|
|
84
|
+
SINGLE = 0,// 8 lines
|
|
85
|
+
BOTH = 1
|
|
86
|
+
}
|
|
87
|
+
/** Core game state */
|
|
88
|
+
export interface GameState {
|
|
89
|
+
/** Game mode (8 or 16 lines) */
|
|
90
|
+
gameDirection: GameDirection;
|
|
91
|
+
/** Bet multiplier (line bet) */
|
|
92
|
+
betStake: number;
|
|
93
|
+
/** Total bet per spin (8 or 16 x betStake) */
|
|
94
|
+
betGame: number;
|
|
95
|
+
/** Current spin type */
|
|
96
|
+
currentSpinType: SpinType;
|
|
97
|
+
/** Next spin type (determined after current spin) */
|
|
98
|
+
nextSpinType: SpinType;
|
|
99
|
+
/** Remaining spins in current bonus (0 for paid spin) */
|
|
100
|
+
spinsRemaining: number;
|
|
101
|
+
/** Bonus counters */
|
|
102
|
+
counters: BonusCounters;
|
|
103
|
+
/** Pending bonuses to execute */
|
|
104
|
+
pendingBonuses: PendingBonuses;
|
|
105
|
+
/** Jackpot values */
|
|
106
|
+
jackpots: JackpotState;
|
|
107
|
+
/** Current grid (3x3) */
|
|
108
|
+
grid: Grid;
|
|
109
|
+
/** Accumulated bonus wins (reset when bonus sequence ends) */
|
|
110
|
+
accumulatedBonusWins: number;
|
|
111
|
+
/** Center cherry symbol for respin (if active) */
|
|
112
|
+
centerCherrySymbol: Symbol | null;
|
|
113
|
+
}
|
|
114
|
+
/** State visible to client */
|
|
115
|
+
export interface PublicState {
|
|
116
|
+
gameDirection: GameDirection;
|
|
117
|
+
betStake: number;
|
|
118
|
+
betGame: number;
|
|
119
|
+
currentSpinType: SpinType;
|
|
120
|
+
spinsRemaining: number;
|
|
121
|
+
grid: Grid;
|
|
122
|
+
bonusJackpotValue: number;
|
|
123
|
+
poolJackpotValue: number;
|
|
124
|
+
/** Indicates if a bonus is pending (without revealing which) */
|
|
125
|
+
hasPendingBonus: boolean;
|
|
126
|
+
}
|
|
127
|
+
/** Server-side only state */
|
|
128
|
+
export interface PrivateState {
|
|
129
|
+
counters: BonusCounters;
|
|
130
|
+
pendingBonuses: PendingBonuses;
|
|
131
|
+
nextSpinType: SpinType;
|
|
132
|
+
accumulatedBonusWins: number;
|
|
133
|
+
centerCherrySymbol: Symbol | null;
|
|
134
|
+
}
|
|
135
|
+
/** Spin request from client */
|
|
136
|
+
export interface SpinRequest {
|
|
137
|
+
/** Session ID */
|
|
138
|
+
sessionId: string;
|
|
139
|
+
/** Game direction (8 or 16 lines) */
|
|
140
|
+
gameDirection: GameDirection;
|
|
141
|
+
/** Bet multiplier */
|
|
142
|
+
betStake: number;
|
|
143
|
+
}
|
|
144
|
+
/** Spin response to client */
|
|
145
|
+
export interface SpinResponse {
|
|
146
|
+
/** Session ID */
|
|
147
|
+
sessionId: string;
|
|
148
|
+
/** Resulting grid */
|
|
149
|
+
grid: Grid;
|
|
150
|
+
/** Win results */
|
|
151
|
+
wins: SpinWinResult;
|
|
152
|
+
/** Updated public state */
|
|
153
|
+
state: PublicState;
|
|
154
|
+
/** Jackpot won this spin (if any) */
|
|
155
|
+
jackpotWon: number;
|
|
156
|
+
/** Pool jackpot won this spin (if any) */
|
|
157
|
+
poolJackpotWon: number;
|
|
158
|
+
/** Bonus type triggered (for animation) */
|
|
159
|
+
bonusTriggered: SpinType | null;
|
|
160
|
+
/** Is this the final spin of a bonus sequence */
|
|
161
|
+
isBonusComplete: boolean;
|
|
162
|
+
}
|
|
163
|
+
/** Full session state (for persistence) */
|
|
164
|
+
export interface SessionState {
|
|
165
|
+
sessionId: string;
|
|
166
|
+
publicState: PublicState;
|
|
167
|
+
privateState: PrivateState;
|
|
168
|
+
createdAt: Date;
|
|
169
|
+
updatedAt: Date;
|
|
170
|
+
}
|
|
171
|
+
/** RNG interface for dependency injection */
|
|
172
|
+
export interface RngProvider {
|
|
173
|
+
/** Generate random integer in range [0, max) */
|
|
174
|
+
random(max: number): Promise<number>;
|
|
175
|
+
/** Generate multiple random integers */
|
|
176
|
+
randomBatch(count: number, max: number): Promise<number[]>;
|
|
177
|
+
}
|
|
178
|
+
/** Game command types */
|
|
179
|
+
export declare enum CommandType {
|
|
180
|
+
INIT_SESSION_STATE = "INIT_SESSION_STATE",
|
|
181
|
+
SPIN = "SPIN",
|
|
182
|
+
GET_SYMBOLS = "GET_SYMBOLS"
|
|
183
|
+
}
|
|
184
|
+
/** Command request base */
|
|
185
|
+
export interface CommandRequest {
|
|
186
|
+
command: CommandType;
|
|
187
|
+
sessionId: string;
|
|
188
|
+
}
|
|
189
|
+
/** Init session command */
|
|
190
|
+
export interface InitSessionRequest extends CommandRequest {
|
|
191
|
+
command: CommandType.INIT_SESSION_STATE;
|
|
192
|
+
gameDirection: GameDirection;
|
|
193
|
+
betStake: number;
|
|
194
|
+
}
|
|
195
|
+
/** Spin command */
|
|
196
|
+
export interface SpinCommandRequest extends CommandRequest {
|
|
197
|
+
command: CommandType.SPIN;
|
|
198
|
+
}
|
|
199
|
+
/** Get symbols command */
|
|
200
|
+
export interface GetSymbolsRequest extends CommandRequest {
|
|
201
|
+
command: CommandType.GET_SYMBOLS;
|
|
202
|
+
}
|
|
203
|
+
/** Union of all commands */
|
|
204
|
+
export type GameCommand = InitSessionRequest | SpinCommandRequest | GetSymbolsRequest;
|
|
205
|
+
//# 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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"}
|