@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,217 @@
|
|
|
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
|
+
GOLDEN_PANDA = 0,// H1 - Golden Red Panda (works with Normal Panda)
|
|
14
|
+
RED_PANDA = 1,// H2 - Normal Red Panda
|
|
15
|
+
SLOT_MACHINE = 2,// H3 - Slot Machine
|
|
16
|
+
CITY = 3,// M1 - City with fireworks over homes
|
|
17
|
+
FIREWORKS_ROCKETS = 4,// M2 - Fireworks Rockets
|
|
18
|
+
BACKPACK = 5,// M3 - Backpack full of golden coins
|
|
19
|
+
CAMERA = 6,// L1 - Photo Camera Polaroid
|
|
20
|
+
FOOD_BOWL = 7,// L2 - Food Bowl
|
|
21
|
+
CUP = 8,// L3 - Colorful cup with straw
|
|
22
|
+
BAMBOO = 9,// L4 - Green Bamboo Sticks
|
|
23
|
+
GOLDEN_BAMBOO = 10,// L5 - Golden Bamboo Sticks
|
|
24
|
+
HAT = 11,// Super Bar / Hat symbol
|
|
25
|
+
BAR_MIX = 25,// Mixed bar (Slot Machine + City + Fireworks) for line wins
|
|
26
|
+
PANDA_PIECE_00 = 12,
|
|
27
|
+
PANDA_PIECE_01 = 13,
|
|
28
|
+
PANDA_PIECE_02 = 14,
|
|
29
|
+
PANDA_PIECE_10 = 15,
|
|
30
|
+
PANDA_PIECE_11 = 16,
|
|
31
|
+
PANDA_PIECE_12 = 17,
|
|
32
|
+
PANDA_PIECE_20 = 18,
|
|
33
|
+
PANDA_PIECE_21 = 19,
|
|
34
|
+
PANDA_PIECE_22 = 20,
|
|
35
|
+
BADGE_YELLOW = 21,// Yellow Badge - Bamboo Triplets Bonus
|
|
36
|
+
BADGE_RED = 22,// Red Badge - Bamboo Twins Bonus
|
|
37
|
+
BADGE_GREEN = 23,// Green Badge - Camera Bonus
|
|
38
|
+
BADGE_BLUE = 24
|
|
39
|
+
}
|
|
40
|
+
export declare enum SpinType {
|
|
41
|
+
BASE_GAME_SPIN = "BASE_GAME_SPIN",
|
|
42
|
+
BONUS_BAMBOO_TRIPLETS = "BONUS_BAMBOO_TRIPLETS",// GDD: Jackpot Bonus - Bamboo Triplets
|
|
43
|
+
BONUS_BAMBOO_TWINS = "BONUS_BAMBOO_TWINS",// GDD: Bamboo Twins Bonus
|
|
44
|
+
BONUS_CAMERA = "BONUS_CAMERA",// GDD: Camera Bonus
|
|
45
|
+
BONUS_FIREWORKS = "BONUS_FIREWORKS",// GDD: Fireworks Bonus
|
|
46
|
+
RESPIN_CENTER_BAMBOO = "RESPIN_CENTER_BAMBOO"
|
|
47
|
+
}
|
|
48
|
+
export declare enum ScreenWinType {
|
|
49
|
+
NOTHING = -1,
|
|
50
|
+
SCREEN_GOLDEN_PANDA = 0,
|
|
51
|
+
SCREEN_RED_PANDA = 1,
|
|
52
|
+
SCREEN_SLOT_MACHINE = 2,
|
|
53
|
+
SCREEN_CITY = 3,
|
|
54
|
+
SCREEN_FIREWORKS_ROCKETS = 4,
|
|
55
|
+
SCREEN_BACKPACK = 5,
|
|
56
|
+
SCREEN_CAMERA = 6,
|
|
57
|
+
SCREEN_FOOD_BOWL = 7,
|
|
58
|
+
SCREEN_CUP = 8,
|
|
59
|
+
SCREEN_BAMBOO = 9,
|
|
60
|
+
SCREEN_BAR_MIX = 10,
|
|
61
|
+
SCREEN_FRUIT_MIX = 11,
|
|
62
|
+
SCREEN_BADGE_MIX = 12,
|
|
63
|
+
SCREEN_PANDA_PIECES = 13,// Bamboo Triplets Bonus (Dancing Panda puzzle)
|
|
64
|
+
SCREEN_CAMERA_SCATTER = 14,// Camera Bonus
|
|
65
|
+
SCREEN_HAT_SCATTER = 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
|
+
* Red Panda/Golden Panda scatter pay table: [count-2] = multiplier x bet_game
|
|
92
|
+
* Pays for 2-9 matching Panda symbols
|
|
93
|
+
* Matches SevenSuperMulti in C++ EXACTLY
|
|
94
|
+
*/
|
|
95
|
+
export declare const PANDA_SCATTER_MULTIPLIERS: number[];
|
|
96
|
+
export declare const PANDA_MIN_COUNT = 2;
|
|
97
|
+
export declare const GOLDEN_PANDA_MULTIPLIER = 2;
|
|
98
|
+
/**
|
|
99
|
+
* Special win multipliers: [gameDirection][type] = multiplier x line
|
|
100
|
+
* type: 0=panda pieces, 1=camera scatter, 2=hat scatter
|
|
101
|
+
* Matches SpecialWins in C++ EXACTLY
|
|
102
|
+
*/
|
|
103
|
+
export declare const SPECIAL_WIN_MULTIPLIERS: number[][];
|
|
104
|
+
export declare const BONUS_BAMBOO_TRIPLETS: {
|
|
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 bamboo line) */
|
|
114
|
+
readonly COUNTER_INIT: 1;
|
|
115
|
+
/** Free spins awarded per bonus occurrence */
|
|
116
|
+
readonly SPINS: 3;
|
|
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_BAMBOO_TWINS: {
|
|
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_CAMERA: {
|
|
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_FIREWORKS: {
|
|
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_CENTER_BAMBOO: {
|
|
151
|
+
/** Spins awarded: [Bamboo, Golden Bamboo] */
|
|
152
|
+
readonly SPINS: readonly [1, 2];
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Symbol weights for base game 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: GoldenPanda, RedPanda, SlotMachine, City, FireworksRockets, Backpack, Camera, FoodBowl, Cup, Bamboo, GoldenBamboo
|
|
158
|
+
*/
|
|
159
|
+
export declare const BASE_GAME_SPIN_WEIGHTS: number[][][];
|
|
160
|
+
/**
|
|
161
|
+
* Active symbol indices for base game spins
|
|
162
|
+
*/
|
|
163
|
+
export declare const BASE_GAME_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 base game spins: [gameDirection][symbol][tier]
|
|
170
|
+
* Tier order: max2, max4, max7, max9
|
|
171
|
+
*/
|
|
172
|
+
export declare const BASE_GAME_SPIN_LIMITATION_WEIGHTS: number[][][];
|
|
173
|
+
/**
|
|
174
|
+
* Probability weights for 3x3 wall wins: [gameDirection][yes, no]
|
|
175
|
+
*/
|
|
176
|
+
export declare const BASE_GAME_SPIN_3X3_WEIGHTS: number[][];
|
|
177
|
+
/**
|
|
178
|
+
* Weights for which symbol creates 3x3 win
|
|
179
|
+
* Order: GoldenPanda, RedPanda, SlotMachine, City, FireworksRockets, Backpack, Camera, FoodBowl, Cup, Bamboo, GoldenBamboo
|
|
180
|
+
*/
|
|
181
|
+
export declare const BASE_GAME_SPIN_3X3_SYMBOL_WEIGHTS: number[];
|
|
182
|
+
export declare const BAMBOO_TRIPLETS_SYMBOLS: Symbol[];
|
|
183
|
+
export declare const BAMBOO_TRIPLETS_WEIGHTS: number[][][];
|
|
184
|
+
export declare const BAMBOO_TRIPLETS_LIMITATION_WEIGHTS: number[][][];
|
|
185
|
+
export declare const BAMBOO_TRIPLETS_3X3_WEIGHTS: number[][];
|
|
186
|
+
export declare const BAMBOO_TRIPLETS_3X3_SYMBOL_WEIGHTS: number[];
|
|
187
|
+
export declare const BAMBOO_TWINS_SYMBOLS: Symbol[];
|
|
188
|
+
export declare const BAMBOO_TWINS_WEIGHTS: number[][][];
|
|
189
|
+
export declare const BAMBOO_TWINS_LIMITATION_WEIGHTS: number[][][];
|
|
190
|
+
export declare const BAMBOO_TWINS_3X3_WEIGHTS: number[][];
|
|
191
|
+
export declare const BAMBOO_TWINS_3X3_SYMBOL_WEIGHTS: number[];
|
|
192
|
+
export declare const CAMERA_BONUS_SYMBOLS: Symbol[];
|
|
193
|
+
export declare const CAMERA_BONUS_WEIGHTS: number[][][];
|
|
194
|
+
export declare const CAMERA_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
195
|
+
export declare const CAMERA_BONUS_3X3_WEIGHTS: number[][];
|
|
196
|
+
export declare const CAMERA_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
197
|
+
export declare const FIREWORKS_BONUS_SYMBOLS: Symbol[];
|
|
198
|
+
export declare const FIREWORKS_BONUS_WEIGHTS: number[][][];
|
|
199
|
+
export declare const FIREWORKS_BONUS_LIMITATION_WEIGHTS: number[][][];
|
|
200
|
+
export declare const FIREWORKS_BONUS_3X3_WEIGHTS: number[][];
|
|
201
|
+
export declare const FIREWORKS_BONUS_3X3_SYMBOL_WEIGHTS: number[];
|
|
202
|
+
export declare const CENTER_BAMBOO_RESPIN_SYMBOLS: Symbol[];
|
|
203
|
+
export declare const CENTER_BAMBOO_RESPIN_WEIGHTS: number[][][];
|
|
204
|
+
export declare const CENTER_BAMBOO_RESPIN_LIMITATION_WEIGHTS: number[][][];
|
|
205
|
+
/** H3 + M1 + M2 symbols for bar-style mix wins */
|
|
206
|
+
export declare const BAR_STYLE_SYMBOLS: Symbol[];
|
|
207
|
+
/** Bar-style symbols including HAT - for bar mix wins (per C++ math model line 1229) */
|
|
208
|
+
export declare const BAR_MIX_SYMBOLS: Symbol[];
|
|
209
|
+
/** Fruit-style symbols: M3, L1, L3, L4, L5 */
|
|
210
|
+
export declare const FRUIT_STYLE_SYMBOLS: Symbol[];
|
|
211
|
+
/** Badge symbols for bonus indicators */
|
|
212
|
+
export declare const BADGE_SYMBOLS: Symbol[];
|
|
213
|
+
/** Panda symbols (H1 + H2) for scatter wins */
|
|
214
|
+
export declare const PANDA_SYMBOLS: Symbol[];
|
|
215
|
+
/** Bamboo symbols (L4 + L5) */
|
|
216
|
+
export declare const BAMBOO_SYMBOLS: Symbol[];
|
|
217
|
+
//# 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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"}
|