@omnitronix/happy-panda-game-engine 0.0.2 → 0.0.4
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 +584 -120
- 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__/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/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/happy-panda-v1.game-engine.js +37 -39
- package/dist/happy-panda-v1.game-engine.js.map +1 -1
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- 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/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 +5 -0
- package/dist/rng/index.js.map +1 -1
- 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 +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":"bonus-sequence.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/bonus-sequence.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cherry-frequency.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cherry-frequency.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/counter-manager.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C++ Parity Tests
|
|
3
|
+
*
|
|
4
|
+
* Validates that the TypeScript implementation produces identical results
|
|
5
|
+
* to the C++ math model (CherryMaster_A_2.cpp).
|
|
6
|
+
*
|
|
7
|
+
* ## How This Works
|
|
8
|
+
*
|
|
9
|
+
* 1. Test vectors contain known inputs and expected outputs from C++
|
|
10
|
+
* 2. We run our TypeScript code with identical inputs
|
|
11
|
+
* 3. We compare outputs to verify parity
|
|
12
|
+
*
|
|
13
|
+
* ## Test Vector Format
|
|
14
|
+
*
|
|
15
|
+
* Each test case has:
|
|
16
|
+
* - input: spinType, gameDirection, betStake, betGame, and either:
|
|
17
|
+
* - rngSequence: deterministic RNG values
|
|
18
|
+
* - forcedGrid: bypass RNG and use this grid directly
|
|
19
|
+
* - expected: the C++ model's output for these inputs
|
|
20
|
+
*
|
|
21
|
+
* ## Generating Test Vectors
|
|
22
|
+
*
|
|
23
|
+
* To add new test vectors:
|
|
24
|
+
* 1. Run the C++ model with known inputs
|
|
25
|
+
* 2. Capture the output (grid, wins, payouts)
|
|
26
|
+
* 3. Add to cpp-parity-vectors.json
|
|
27
|
+
*
|
|
28
|
+
* ## Why This Matters
|
|
29
|
+
*
|
|
30
|
+
* The C++ model is the source of truth for:
|
|
31
|
+
* - Win evaluation logic
|
|
32
|
+
* - Payout calculations
|
|
33
|
+
* - Symbol priorities
|
|
34
|
+
* - Bonus mechanics
|
|
35
|
+
*
|
|
36
|
+
* Any divergence from C++ is a bug that must be fixed.
|
|
37
|
+
*/
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=cpp-parity.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpp-parity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cpp-parity.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happy-panda-engine.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/happy-panda-engine.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jackpot-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jackpot-manager.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jackpot-trigger-trace.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jackpot-trigger-trace.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtp-1million.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rtp-1million.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtp-analysis.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rtp-analysis.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtp-diagnostic.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rtp-diagnostic.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RTP (Return to Player) Simulation Tests
|
|
3
|
+
*
|
|
4
|
+
* Mathematically verifies that the engine delivers the expected 96% RTP.
|
|
5
|
+
* Runs large-scale simulations and validates statistical properties.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=rtp-simulation.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtp-simulation.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/rtp-simulation.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"special-wins.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/special-wins.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spin-generator.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/spin-generator.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spin-handler.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/spin-handler.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-distribution.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/symbol-distribution.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -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"}
|
|
@@ -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"}
|