@omnitronix/lucky-sharky-game-engine 1.0.0 → 1.0.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 CHANGED
@@ -81,6 +81,49 @@ const spinResult = await engine.processCommand(
81
81
  - 4 Jackpots: Mini (30x), Midi (100x), Maxi (500x), Mega (5000x)
82
82
  - Full screen bonus: 1000x
83
83
 
84
+ ## Debug/Cheat Commands (Testing/Admin)
85
+
86
+ The engine supports debug commands for QA testing via the dev-tools service. These commands are **blocked in REAL_MONEY mode**.
87
+
88
+ ### CHEAT_TRIGGER_BONUS
89
+
90
+ Force trigger a specific bonus round for testing.
91
+
92
+ **Payload:**
93
+ ```typescript
94
+ interface CheatTriggerBonusCommand {
95
+ sessionId: string;
96
+ bonusType: 'FREE_SPINS' | 'HOLD_WIN_BONUS';
97
+ betAmount: number;
98
+ }
99
+ ```
100
+
101
+ **Usage:**
102
+ ```typescript
103
+ const result = await engine.processCommand(
104
+ publicState,
105
+ privateState,
106
+ {
107
+ id: 'cheat-cmd-1',
108
+ type: 'CHEAT_TRIGGER_BONUS',
109
+ payload: {
110
+ sessionId: 'session-123',
111
+ bonusType: 'FREE_SPINS', // or 'HOLD_WIN_BONUS'
112
+ betAmount: 1.0,
113
+ },
114
+ },
115
+ );
116
+ ```
117
+
118
+ **Bonus Types:**
119
+
120
+ | Type | Description |
121
+ |------|-------------|
122
+ | `FREE_SPINS` | Triggers free spins with scatter win |
123
+ | `HOLD_WIN_BONUS` | Triggers Hold & Win with respins and jackpots |
124
+
125
+ **Returns:** Updated state with bonus pending. Execute `START_BONUS_ROUND` to begin the bonus.
126
+
84
127
  ## Development
85
128
 
86
129
  ```bash
@@ -0,0 +1,8 @@
1
+ /**
2
+ * CHEAT_TRIGGER_BONUS Command Tests
3
+ *
4
+ * Tests for the dev-tools cheat command that triggers bonus rounds for testing.
5
+ * Tests the LuckySharkyGameLogic.cheatTriggerBonus method directly.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=cheat-trigger-bonus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cheat-trigger-bonus.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cheat-trigger-bonus.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,410 @@
1
+ "use strict";
2
+ /**
3
+ * CHEAT_TRIGGER_BONUS Command Tests
4
+ *
5
+ * Tests for the dev-tools cheat command that triggers bonus rounds for testing.
6
+ * Tests the LuckySharkyGameLogic.cheatTriggerBonus method directly.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const lucky_sharky_game_logic_1 = require("../logic/lucky-sharky.game-logic");
10
+ const lucky_sharky_types_1 = require("../logic/lucky-sharky.types");
11
+ const rng_service_1 = require("../rng/rng-service");
12
+ // Mock RNG client for testing
13
+ const mockRngClient = {
14
+ getSingleNumber: jest.fn().mockResolvedValue({ value: 0, seed: 12345 }),
15
+ };
16
+ describe('CHEAT_TRIGGER_BONUS Command', () => {
17
+ let gameLogic;
18
+ let rngService;
19
+ beforeEach(() => {
20
+ rngService = new rng_service_1.RngService(mockRngClient);
21
+ gameLogic = new lucky_sharky_game_logic_1.LuckySharkyGameLogic(rngService);
22
+ });
23
+ /**
24
+ * Creates a valid initialized public state for testing
25
+ */
26
+ function createInitializedPublicState() {
27
+ return {
28
+ boosterLevel: 0,
29
+ freeSpinsRemaining: 0,
30
+ coinValues: [],
31
+ };
32
+ }
33
+ /**
34
+ * Creates a valid initialized private state for testing
35
+ */
36
+ function createInitializedPrivateState() {
37
+ return {
38
+ boosterLevel: 0,
39
+ boosterMemory: 0,
40
+ nextSpinType: lucky_sharky_types_1.SpinType.BASE_GAME_SPIN,
41
+ pendingBonuses: [],
42
+ guaranteeSpinCount: 0,
43
+ screen: [
44
+ [0, 1, 2],
45
+ [3, 4, 5],
46
+ [6, 7, 0],
47
+ [1, 2, 3],
48
+ [4, 5, 6],
49
+ ],
50
+ lastBetAmount: 1,
51
+ };
52
+ }
53
+ /**
54
+ * Creates a CheatTriggerBonusCommand payload
55
+ */
56
+ function createCheatTriggerBonusParams(bonusType, betAmount = 1, sessionId = 'test-session-123') {
57
+ return {
58
+ sessionId,
59
+ bonusType,
60
+ betAmount,
61
+ };
62
+ }
63
+ describe('FREE_SPINS bonusType', () => {
64
+ it('should successfully trigger FREE_SPINS bonus', () => {
65
+ const publicState = createInitializedPublicState();
66
+ const privateState = createInitializedPrivateState();
67
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
68
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
69
+ expect(result).toBeDefined();
70
+ expect(result.publicState).toBeDefined();
71
+ expect(result.privateState).toBeDefined();
72
+ expect(result.outcome).toBeDefined();
73
+ });
74
+ it('should set nextSpinType to FREE_SPIN', () => {
75
+ const publicState = createInitializedPublicState();
76
+ const privateState = createInitializedPrivateState();
77
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
78
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
79
+ expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.FREE_SPIN);
80
+ });
81
+ it('should add FREE_SPINS bonus to pendingBonuses array', () => {
82
+ const publicState = createInitializedPublicState();
83
+ const privateState = createInitializedPrivateState();
84
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
85
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
86
+ expect(result.privateState.pendingBonuses).toHaveLength(1);
87
+ expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
88
+ });
89
+ it('should return outcome with triggeredBonus details', () => {
90
+ const publicState = createInitializedPublicState();
91
+ const privateState = createInitializedPrivateState();
92
+ const betAmount = 5;
93
+ const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
94
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
95
+ expect(result.outcome).toBeDefined();
96
+ expect(result.outcome.triggeredBonus).toBeDefined();
97
+ expect(result.outcome.triggeredBonus.bonusType).toBe('FREE_SPINS');
98
+ expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
99
+ expect(result.outcome.triggeredBonus.bonusId).toBeDefined();
100
+ expect(result.outcome.triggeredBonus.bonusId).toMatch(/^cheat-/);
101
+ });
102
+ it('should preserve existing publicState', () => {
103
+ const publicState = {
104
+ boosterLevel: 5,
105
+ freeSpinsRemaining: 3,
106
+ coinValues: [1, 2, 3],
107
+ };
108
+ const privateState = createInitializedPrivateState();
109
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
110
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
111
+ expect(result.publicState.boosterLevel).toBe(5);
112
+ expect(result.publicState.freeSpinsRemaining).toBe(3);
113
+ expect(result.publicState.coinValues).toEqual([1, 2, 3]);
114
+ });
115
+ it('should store correct betAmount in pending bonus', () => {
116
+ const publicState = createInitializedPublicState();
117
+ const privateState = createInitializedPrivateState();
118
+ const betAmount = 10;
119
+ const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
120
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
121
+ expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
122
+ });
123
+ });
124
+ describe('HOLD_WIN_BONUS bonusType', () => {
125
+ it('should successfully trigger HOLD_WIN_BONUS', () => {
126
+ const publicState = createInitializedPublicState();
127
+ const privateState = createInitializedPrivateState();
128
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
129
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
130
+ expect(result).toBeDefined();
131
+ expect(result.publicState).toBeDefined();
132
+ expect(result.privateState).toBeDefined();
133
+ expect(result.outcome).toBeDefined();
134
+ });
135
+ it('should set nextSpinType to HOLD_WIN_BONUS_SPIN', () => {
136
+ const publicState = createInitializedPublicState();
137
+ const privateState = createInitializedPrivateState();
138
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
139
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
140
+ expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN);
141
+ });
142
+ it('should add HOLD_WIN_BONUS to pendingBonuses array', () => {
143
+ const publicState = createInitializedPublicState();
144
+ const privateState = createInitializedPrivateState();
145
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
146
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
147
+ expect(result.privateState.pendingBonuses).toHaveLength(1);
148
+ expect(result.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
149
+ });
150
+ it('should return outcome with triggeredBonus details', () => {
151
+ const publicState = createInitializedPublicState();
152
+ const privateState = createInitializedPrivateState();
153
+ const betAmount = 20;
154
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
155
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
156
+ expect(result.outcome).toBeDefined();
157
+ expect(result.outcome.triggeredBonus).toBeDefined();
158
+ expect(result.outcome.triggeredBonus.bonusType).toBe('HOLD_WIN_BONUS');
159
+ expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
160
+ expect(result.outcome.triggeredBonus.bonusId).toBeDefined();
161
+ });
162
+ it('should preserve existing pendingBonuses when adding new bonus', () => {
163
+ const publicState = createInitializedPublicState();
164
+ const existingBonus = {
165
+ bonusId: 'existing-bonus-123',
166
+ bonusType: lucky_sharky_types_1.BonusType.FREE_SPINS,
167
+ betAmount: 5,
168
+ };
169
+ const privateState = {
170
+ ...createInitializedPrivateState(),
171
+ pendingBonuses: [existingBonus],
172
+ };
173
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 10);
174
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
175
+ expect(result.privateState.pendingBonuses).toHaveLength(2);
176
+ expect(result.privateState.pendingBonuses[0]).toEqual(existingBonus);
177
+ expect(result.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
178
+ });
179
+ it('should store correct betAmount in pending bonus', () => {
180
+ const publicState = createInitializedPublicState();
181
+ const privateState = createInitializedPrivateState();
182
+ const betAmount = 100;
183
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', betAmount);
184
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
185
+ expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
186
+ });
187
+ });
188
+ describe('Error Cases', () => {
189
+ describe('Unknown bonusType', () => {
190
+ it('should throw error for unknown bonusType', () => {
191
+ const publicState = createInitializedPublicState();
192
+ const privateState = createInitializedPrivateState();
193
+ const params = {
194
+ sessionId: 'test-session',
195
+ bonusType: 'UNKNOWN_BONUS',
196
+ betAmount: 1,
197
+ };
198
+ expect(() => {
199
+ gameLogic.cheatTriggerBonus(publicState, privateState, params);
200
+ }).toThrow('Unknown bonus type: UNKNOWN_BONUS');
201
+ });
202
+ it('should throw error for empty bonusType', () => {
203
+ const publicState = createInitializedPublicState();
204
+ const privateState = createInitializedPrivateState();
205
+ const params = {
206
+ sessionId: 'test-session',
207
+ bonusType: '',
208
+ betAmount: 1,
209
+ };
210
+ expect(() => {
211
+ gameLogic.cheatTriggerBonus(publicState, privateState, params);
212
+ }).toThrow('Unknown bonus type:');
213
+ });
214
+ it('should throw error for null bonusType', () => {
215
+ const publicState = createInitializedPublicState();
216
+ const privateState = createInitializedPrivateState();
217
+ const params = {
218
+ sessionId: 'test-session',
219
+ bonusType: null,
220
+ betAmount: 1,
221
+ };
222
+ expect(() => {
223
+ gameLogic.cheatTriggerBonus(publicState, privateState, params);
224
+ }).toThrow('Unknown bonus type');
225
+ });
226
+ });
227
+ describe('State not initialized', () => {
228
+ it('should handle null publicState by returning null publicState', () => {
229
+ const privateState = createInitializedPrivateState();
230
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
231
+ // The cheatTriggerBonus method returns publicState as-is
232
+ const result = gameLogic.cheatTriggerBonus(null, privateState, params);
233
+ expect(result.publicState).toBeNull();
234
+ expect(result.privateState).toBeDefined();
235
+ });
236
+ it('should handle undefined publicState by returning undefined publicState', () => {
237
+ const privateState = createInitializedPrivateState();
238
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
239
+ const result = gameLogic.cheatTriggerBonus(undefined, privateState, params);
240
+ expect(result.publicState).toBeUndefined();
241
+ });
242
+ it('should throw error when privateState is null', () => {
243
+ const publicState = createInitializedPublicState();
244
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
245
+ // When privateState is null, spreading pendingBonuses will throw
246
+ expect(() => {
247
+ gameLogic.cheatTriggerBonus(publicState, null, params);
248
+ }).toThrow();
249
+ });
250
+ it('should throw error when privateState is undefined', () => {
251
+ const publicState = createInitializedPublicState();
252
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
253
+ expect(() => {
254
+ gameLogic.cheatTriggerBonus(publicState, undefined, params);
255
+ }).toThrow();
256
+ });
257
+ it('should throw error when privateState has no pendingBonuses array', () => {
258
+ const publicState = createInitializedPublicState();
259
+ const emptyPrivateState = {};
260
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
261
+ // Spreading undefined pendingBonuses will cause issues
262
+ expect(() => {
263
+ gameLogic.cheatTriggerBonus(publicState, emptyPrivateState, params);
264
+ }).toThrow();
265
+ });
266
+ });
267
+ });
268
+ describe('pendingBonus state verification', () => {
269
+ it('should generate unique bonusId for each trigger', () => {
270
+ const publicState = createInitializedPublicState();
271
+ const privateState1 = createInitializedPrivateState();
272
+ const privateState2 = createInitializedPrivateState();
273
+ const params1 = createCheatTriggerBonusParams('FREE_SPINS', 1);
274
+ const params2 = createCheatTriggerBonusParams('FREE_SPINS', 1);
275
+ const result1 = gameLogic.cheatTriggerBonus(publicState, privateState1, params1);
276
+ const result2 = gameLogic.cheatTriggerBonus(publicState, privateState2, params2);
277
+ expect(result1.outcome.triggeredBonus.bonusId).not.toBe(result2.outcome.triggeredBonus.bonusId);
278
+ });
279
+ it('should correctly set pendingBonus with all required fields', () => {
280
+ const publicState = createInitializedPublicState();
281
+ const privateState = createInitializedPrivateState();
282
+ const betAmount = 50;
283
+ const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
284
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
285
+ const pendingBonus = result.privateState.pendingBonuses[0];
286
+ expect(pendingBonus).toHaveProperty('bonusId');
287
+ expect(pendingBonus).toHaveProperty('bonusType');
288
+ expect(pendingBonus).toHaveProperty('betAmount');
289
+ expect(pendingBonus.bonusId).toBeTruthy();
290
+ expect(pendingBonus.bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
291
+ expect(pendingBonus.betAmount).toBe(betAmount);
292
+ });
293
+ it('should preserve other privateState fields when setting pending bonus', () => {
294
+ const publicState = createInitializedPublicState();
295
+ const privateState = {
296
+ boosterLevel: 3,
297
+ boosterMemory: 2,
298
+ nextSpinType: lucky_sharky_types_1.SpinType.BASE_GAME_SPIN,
299
+ pendingBonuses: [],
300
+ guaranteeSpinCount: 5,
301
+ screen: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 1, 2], [3, 4, 5]],
302
+ lastBetAmount: 10,
303
+ };
304
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1);
305
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
306
+ // Verify other fields are preserved
307
+ expect(result.privateState.boosterLevel).toBe(3);
308
+ expect(result.privateState.boosterMemory).toBe(2);
309
+ expect(result.privateState.guaranteeSpinCount).toBe(5);
310
+ expect(result.privateState.screen).toEqual([[1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 1, 2], [3, 4, 5]]);
311
+ expect(result.privateState.lastBetAmount).toBe(10);
312
+ // But nextSpinType should be updated
313
+ expect(result.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN);
314
+ });
315
+ it('should match bonusId between outcome and pendingBonuses', () => {
316
+ const publicState = createInitializedPublicState();
317
+ const privateState = createInitializedPrivateState();
318
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1);
319
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
320
+ expect(result.outcome.triggeredBonus.bonusId).toBe(result.privateState.pendingBonuses[result.privateState.pendingBonuses.length - 1].bonusId);
321
+ });
322
+ });
323
+ describe('Bet amount variations', () => {
324
+ it('should work with different bet amounts', () => {
325
+ const publicState = createInitializedPublicState();
326
+ const betAmounts = [0.1, 1, 5, 10, 50, 100, 1000];
327
+ for (const betAmount of betAmounts) {
328
+ const privateState = createInitializedPrivateState();
329
+ const params = createCheatTriggerBonusParams('FREE_SPINS', betAmount);
330
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
331
+ expect(result.outcome.triggeredBonus.betAmount).toBe(betAmount);
332
+ expect(result.privateState.pendingBonuses[0].betAmount).toBe(betAmount);
333
+ }
334
+ });
335
+ it('should work with zero bet amount', () => {
336
+ const publicState = createInitializedPublicState();
337
+ const privateState = createInitializedPrivateState();
338
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 0);
339
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
340
+ expect(result.outcome.triggeredBonus.betAmount).toBe(0);
341
+ expect(result.privateState.pendingBonuses[0].betAmount).toBe(0);
342
+ });
343
+ it('should work with negative bet amount (edge case)', () => {
344
+ const publicState = createInitializedPublicState();
345
+ const privateState = createInitializedPrivateState();
346
+ const params = createCheatTriggerBonusParams('FREE_SPINS', -5);
347
+ // Method does not validate bet amount
348
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
349
+ expect(result.outcome.triggeredBonus.betAmount).toBe(-5);
350
+ });
351
+ });
352
+ describe('Session ID variations', () => {
353
+ it('should work with different session IDs', () => {
354
+ const publicState = createInitializedPublicState();
355
+ const privateState = createInitializedPrivateState();
356
+ const sessionId = 'custom-session-abc-123';
357
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1, sessionId);
358
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
359
+ expect(result).toBeDefined();
360
+ expect(result.outcome.triggeredBonus).toBeDefined();
361
+ });
362
+ it('should work with empty session ID', () => {
363
+ const publicState = createInitializedPublicState();
364
+ const privateState = createInitializedPrivateState();
365
+ const params = createCheatTriggerBonusParams('FREE_SPINS', 1, '');
366
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
367
+ expect(result).toBeDefined();
368
+ });
369
+ it('should work with very long session ID', () => {
370
+ const publicState = createInitializedPublicState();
371
+ const privateState = createInitializedPrivateState();
372
+ const longSessionId = 'a'.repeat(1000);
373
+ const params = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 1, longSessionId);
374
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
375
+ expect(result).toBeDefined();
376
+ });
377
+ });
378
+ describe('Multiple consecutive triggers', () => {
379
+ it('should handle multiple bonus triggers on the same private state', () => {
380
+ const publicState = createInitializedPublicState();
381
+ let privateState = createInitializedPrivateState();
382
+ // First trigger
383
+ const params1 = createCheatTriggerBonusParams('FREE_SPINS', 1);
384
+ const result1 = gameLogic.cheatTriggerBonus(publicState, privateState, params1);
385
+ privateState = result1.privateState;
386
+ // Second trigger on the updated state
387
+ const params2 = createCheatTriggerBonusParams('HOLD_WIN_BONUS', 5);
388
+ const result2 = gameLogic.cheatTriggerBonus(publicState, privateState, params2);
389
+ expect(result2.privateState.pendingBonuses).toHaveLength(2);
390
+ expect(result2.privateState.pendingBonuses[0].bonusType).toBe(lucky_sharky_types_1.BonusType.FREE_SPINS);
391
+ expect(result2.privateState.pendingBonuses[1].bonusType).toBe(lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS);
392
+ // nextSpinType should be the latest bonus type
393
+ expect(result2.privateState.nextSpinType).toBe(lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN);
394
+ });
395
+ it('should handle three consecutive FREE_SPINS triggers', () => {
396
+ const publicState = createInitializedPublicState();
397
+ let privateState = createInitializedPrivateState();
398
+ for (let i = 0; i < 3; i++) {
399
+ const params = createCheatTriggerBonusParams('FREE_SPINS', i + 1);
400
+ const result = gameLogic.cheatTriggerBonus(publicState, privateState, params);
401
+ privateState = result.privateState;
402
+ }
403
+ expect(privateState.pendingBonuses).toHaveLength(3);
404
+ expect(privateState.pendingBonuses[0].betAmount).toBe(1);
405
+ expect(privateState.pendingBonuses[1].betAmount).toBe(2);
406
+ expect(privateState.pendingBonuses[2].betAmount).toBe(3);
407
+ });
408
+ });
409
+ });
410
+ //# sourceMappingURL=cheat-trigger-bonus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cheat-trigger-bonus.test.js","sourceRoot":"","sources":["../../src/__tests__/cheat-trigger-bonus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Command payload for CHEAT_TRIGGER_BONUS
3
+ * Allows dev-tools to trigger bonus rounds for testing
4
+ */
5
+ export interface CheatTriggerBonusCommand {
6
+ sessionId: string;
7
+ bonusType: 'FREE_SPINS' | 'HOLD_WIN_BONUS';
8
+ betAmount: number;
9
+ }
10
+ //# sourceMappingURL=cheat-trigger-bonus-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cheat-trigger-bonus-command.d.ts","sourceRoot":"","sources":["../../../src/domain/types/cheat-trigger-bonus-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cheat-trigger-bonus-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cheat-trigger-bonus-command.js","sourceRoot":"","sources":["../../../src/domain/types/cheat-trigger-bonus-command.ts"],"names":[],"mappings":""}
@@ -4,6 +4,7 @@ import { LuckySharkyGameLogicConfigInterface } from './game-logic-config.interfa
4
4
  import { GameSpinInputDto } from '../domain/types/game-spin-input.dto';
5
5
  import { StartBonusRoundInputDto } from '../domain/types/start-bonus-round-input.dto';
6
6
  import { BaseGameSpinResult, BonusType, GetSymbolsResult, LuckySharkyGameLogicSpinResult, LuckySharkyPrivateState, LuckySharkyPublicState, SpinResultResponse } from './lucky-sharky.types';
7
+ import { CheatTriggerBonusCommand } from '../domain/types/cheat-trigger-bonus-command';
7
8
  export interface LuckySharkySessionStateInterface {
8
9
  publicState: LuckySharkyPublicState;
9
10
  privateState: LuckySharkyPrivateState;
@@ -22,5 +23,20 @@ export declare class LuckySharkyGameLogic {
22
23
  private handleHoldWinBonus;
23
24
  getSymbols(gameLogicConfig: LuckySharkyGameLogicConfigInterface): GetSymbolsResult;
24
25
  static getBonusTypeForTrigger(bonusType: BonusType): string;
26
+ /**
27
+ * Cheat command to trigger a bonus round directly
28
+ * Used by dev-tools for testing bonus mechanics
29
+ */
30
+ cheatTriggerBonus(publicState: LuckySharkyPublicState, privateState: LuckySharkyPrivateState, params: CheatTriggerBonusCommand): {
31
+ publicState: LuckySharkyPublicState;
32
+ privateState: LuckySharkyPrivateState;
33
+ outcome: {
34
+ triggeredBonus: {
35
+ bonusId: string;
36
+ bonusType: string;
37
+ betAmount: number;
38
+ };
39
+ };
40
+ };
25
41
  }
26
42
  //# sourceMappingURL=lucky-sharky.game-logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky.game-logic.d.ts","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEtC,gBAAgB,CAC3B,eAAe,EAAE,mCAAmC,EACpD,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EACvE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;IA6B/B,IAAI,CACf,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAmErC,eAAe,CAC1B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,8BAA8B,CAAC;IA4B1C,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;YA+BpB,kBAAkB;IAwBzB,UAAU,CACf,eAAe,EAAE,mCAAmC,GACnD,gBAAgB;WAYL,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;CAUnE"}
1
+ {"version":3,"file":"lucky-sharky.game-logic.d.ts","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEtC,gBAAgB,CAC3B,eAAe,EAAE,mCAAmC,EACpD,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,EACvE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gCAAgC,CAAC;IA6B/B,IAAI,CACf,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAmErC,eAAe,CAC1B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,mCAAmC,EAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,8BAA8B,CAAC;IA4B1C,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;YA+BpB,kBAAkB;IAwBzB,UAAU,CACf,eAAe,EAAE,mCAAmC,GACnD,gBAAgB;WAYL,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAWlE;;;OAGG;IACI,iBAAiB,CACtB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,MAAM,EAAE,wBAAwB,GAC/B;QACD,WAAW,EAAE,sBAAsB,CAAC;QACpC,YAAY,EAAE,uBAAuB,CAAC;QACtC,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,OAAO,EAAE,MAAM,CAAC;gBAChB,SAAS,EAAE,MAAM,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;KACH;CA0CF"}
@@ -126,6 +126,48 @@ class LuckySharkyGameLogic {
126
126
  return 'unknown';
127
127
  }
128
128
  }
129
+ /**
130
+ * Cheat command to trigger a bonus round directly
131
+ * Used by dev-tools for testing bonus mechanics
132
+ */
133
+ cheatTriggerBonus(publicState, privateState, params) {
134
+ const bonusId = `cheat-${Date.now()}-${Math.random().toString(36).substring(7)}`;
135
+ // Determine the next spin type based on bonus type
136
+ let nextSpinType;
137
+ switch (params.bonusType) {
138
+ case 'FREE_SPINS':
139
+ nextSpinType = lucky_sharky_types_1.SpinType.FREE_SPIN;
140
+ break;
141
+ case 'HOLD_WIN_BONUS':
142
+ nextSpinType = lucky_sharky_types_1.SpinType.HOLD_WIN_BONUS_SPIN;
143
+ break;
144
+ default:
145
+ throw new Error(`Unknown bonus type: ${params.bonusType}`);
146
+ }
147
+ // Create the bonus trigger
148
+ const bonusTrigger = {
149
+ bonusId,
150
+ bonusType: params.bonusType === 'FREE_SPINS' ? lucky_sharky_types_1.BonusType.FREE_SPINS : lucky_sharky_types_1.BonusType.HOLD_WIN_BONUS,
151
+ betAmount: params.betAmount,
152
+ };
153
+ // Update state to indicate bonus is pending
154
+ const updatedPrivateState = {
155
+ ...privateState,
156
+ nextSpinType,
157
+ pendingBonuses: [...privateState.pendingBonuses, bonusTrigger],
158
+ };
159
+ return {
160
+ publicState,
161
+ privateState: updatedPrivateState,
162
+ outcome: {
163
+ triggeredBonus: {
164
+ bonusId,
165
+ bonusType: params.bonusType,
166
+ betAmount: params.betAmount,
167
+ },
168
+ },
169
+ };
170
+ }
129
171
  }
130
172
  exports.LuckySharkyGameLogic = LuckySharkyGameLogic;
131
173
  //# sourceMappingURL=lucky-sharky.game-logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky.game-logic.js","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":";;;AAGA,+EAAyE;AACzE,oEAA+D;AAC/D,sEAAiE;AACjE,8EAAwE;AAGxE,6DAS8B;AAO9B,MAAa,oBAAoB;IAC/B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD,KAAK,CAAC,gBAAgB,CAC3B,eAAoD,EACpD,gBAAkC,EAClC,UAAuE,EACvE,SAAiB;QAEjB,MAAM,WAAW,GAA2B;YAC1C,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,CAAC;YACrB,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,sDAAwB,CACtD,IAAI,CAAC,UAAU,CAChB,CAAC,kBAAkB,CAClB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,aAAa,CACd,CAAC;QAEF,MAAM,YAAY,GAA4B;YAC5C,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,6BAAQ,CAAC,cAAc;YACrC,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,CAAC;YACrB,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAAwB,EACxB,WAAmC,EACnC,YAAqC,EACrC,MAA2C,EAC3C,gBAAkC,EAClC,SAAiB;QAEjB,IAAI,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CACnD,MAAM,EACN,YAAY,EACZ,MAAM,CACP,CAAC;QAEF,oBAAoB,GAAG;YACrB,GAAG,oBAAoB;YACvB,aAAa,EAAE,MAAM,CAAC,SAAS;SAChC,CAAC;QAEF,QAAQ,oBAAoB,CAAC,YAAY,EAAE,CAAC;YAC1C,KAAK,6BAAQ,CAAC,cAAc;gBAC1B,OAAO,IAAI,mCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CACpD,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;YAEJ,KAAK,6BAAQ,CAAC,SAAS;gBACrB,OAAO,IAAI,mCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CACpD,MAAM,EACN;oBACE,GAAG,WAAW;oBACd,YAAY,EAAE,oBAAoB,CAAC,YAAY;iBAChD,EACD;oBACE,GAAG,oBAAoB;oBACvB,YAAY,EAAE,6BAAQ,CAAC,cAAc;iBACtC,EACD,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;YAEJ,KAAK,6BAAQ,CAAC,mBAAmB;gBAC/B,OAAO,IAAI,mCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CACpD,MAAM,EACN;oBACE,GAAG,WAAW;oBACd,YAAY,EAAE,oBAAoB,CAAC,YAAY;iBAChD,EACD;oBACE,GAAG,oBAAoB;oBACvB,YAAY,EAAE,6BAAQ,CAAC,cAAc;iBACtC,EACD,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;YAEJ;gBACE,OAAO,IAAI,mCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CACpD,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;QACN,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,MAA+B,EAC/B,WAAmC,EACnC,YAAqC,EACrC,MAA2C,EAC3C,gBAAkC,EAClC,SAAiB;QAEjB,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,oBAAoB,CAC9B,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;YAEJ,KAAK,cAAc,CAAC;YACpB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,SAAS,CACV,CAAC;YAEJ;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAEO,qBAAqB,CAC3B,MAAwB,EACxB,YAAqC,EACrC,MAA2C;QAE3C,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QACjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;QAC1C,MAAM,UAAU,GACd,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,gBAAgB,CAAC;QAEpE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,YAAY;gBACf,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,YAAY,CAAC,YAAY;aACzC,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,MAA+B,EAC/B,WAAmC,EACnC,YAAqC,EACrC,MAA2C,EAC3C,gBAAkC,EAClC,SAAiB;QAEjB,MAAM,mBAAmB,GAA4B;YACnD,GAAG,YAAY;YACf,aAAa,EAAE,YAAY,CAAC,YAAY;SACzC,CAAC;QAEF,MAAM,aAAa,GAAqB;YACtC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,OAAO;SACrB,CAAC;QAEF,OAAO,IAAI,qCAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,0BAA0B,CACrE,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,MAA+B,EAC/B,WAAmC,EACnC,YAAqC,EACrC,MAA2C,EAC3C,SAAiB;QAEjB,MAAM,aAAa,GAAqB;YACtC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,OAAO;SACrB,CAAC;QAEF,OAAO,IAAI,4CAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,yBAAyB,CACvE,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,EACN,SAAS,CACV,CAAC;IACJ,CAAC;IAEM,UAAU,CACf,eAAoD;QAEpD,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1E,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,SAAoB;QACvD,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,8BAAS,CAAC,UAAU;gBACvB,OAAO,WAAW,CAAC;YACrB,KAAK,8BAAS,CAAC,cAAc;gBAC3B,OAAO,cAAc,CAAC;YACxB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAtPD,oDAsPC"}
1
+ {"version":3,"file":"lucky-sharky.game-logic.js","sourceRoot":"","sources":["../../src/logic/lucky-sharky.game-logic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky-v1.game-engine.d.ts","sourceRoot":"","sources":["../src/lucky-sharky-v1.game-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EAGvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAIvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,qBAAa,uBACX,YAAW,UAAU,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,CAAC;IAE3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAwC;IAErD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,GAAE,gBAAqB;IAalC,iBAAiB,IAAI,cAAc;YAW5B,OAAO;IAuCR,cAAc,CACzB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CACR,uBAAuB,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAC9E;CA4HF"}
1
+ {"version":3,"file":"lucky-sharky-v1.game-engine.d.ts","sourceRoot":"","sources":["../src/lucky-sharky-v1.game-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EAGvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAIvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,qBAAa,uBACX,YAAW,UAAU,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,CAAC;IAE3E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAwC;IAErD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,GAAE,gBAAqB;IAalC,iBAAiB,IAAI,cAAc;YAW5B,OAAO;IAuCR,cAAc,CACzB,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,uBAAuB,EACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CACR,uBAAuB,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAC9E;CAgJF"}
@@ -137,6 +137,20 @@ class LuckySharkyV1GameEngine {
137
137
  rngOutcome: undefined,
138
138
  };
139
139
  }
140
+ case 'CHEAT_TRIGGER_BONUS': {
141
+ const params = command.payload;
142
+ const result = this.gameLogic.cheatTriggerBonus(publicState, privateState, params);
143
+ const rngOutcome = this.rngService.getRngOutcomeForCommand(command.id);
144
+ this.rngService.removeCommand(command.id);
145
+ return {
146
+ success: true,
147
+ publicState: result.publicState,
148
+ privateState: result.privateState,
149
+ outcome: result.outcome,
150
+ message: 'Bonus triggered via cheat command',
151
+ rngOutcome,
152
+ };
153
+ }
140
154
  default: {
141
155
  return {
142
156
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"lucky-sharky-v1.game-engine.js","sourceRoot":"","sources":["../src/lucky-sharky-v1.game-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucky-sharky-v1.game-engine.js","sourceRoot":"","sources":["../src/lucky-sharky-v1.game-engine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnitronix/lucky-sharky-game-engine",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Lucky Sharky Game Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",