@omnitronix/bonnys-fortune-game-engine 1.2.3 → 1.2.6
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 +0 -0
- package/dist/__tests__/rng-gli19-compliance.test.js +222 -0
- package/dist/__tests__/rng-gli19-compliance.test.js.map +1 -0
- package/dist/__tests__/rng-seed-security.test.js +263 -0
- package/dist/__tests__/rng-seed-security.test.js.map +1 -0
- package/dist/__tests__/rng-seed-type.test.js +282 -0
- package/dist/__tests__/rng-seed-type.test.js.map +1 -0
- package/dist/__tests__/rng-stress-boundary.test.js +386 -0
- package/dist/__tests__/rng-stress-boundary.test.js.map +1 -0
- package/dist/config/reel-strips-config/reels-BASE.csv +0 -0
- package/dist/config/reel-strips-config/reels-BONUS.csv +0 -0
- package/dist/logic/handlers/base-game.handler.js +19 -1
- package/dist/logic/handlers/base-game.handler.js.map +1 -1
- package/dist/logic/handlers/collect-feature-bonus.handler.js +2 -2
- package/dist/logic/handlers/collect-feature-bonus.handler.js.map +1 -1
- package/dist/logic/handlers/free-spins-bonus.handler.js +4 -2
- package/dist/logic/handlers/free-spins-bonus.handler.js.map +1 -1
- package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js +4 -2
- package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js.map +1 -1
- package/dist/logic/handlers/treasure-hunt-bonus.handler.js +4 -2
- package/dist/logic/handlers/treasure-hunt-bonus.handler.js.map +1 -1
- package/dist/rng/rng-client.factory.js +45 -1
- package/dist/rng/rng-client.factory.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RngClientFactory = void 0;
|
|
4
4
|
const rng_client_core_1 = require("@omnitronix/rng-client-core");
|
|
5
5
|
const DummyRngClient_1 = require("./DummyRngClient");
|
|
6
|
+
/**
|
|
7
|
+
* Adapter to bridge external RngClient (returns 'result') to IRngClient (expects 'value')
|
|
8
|
+
*/
|
|
9
|
+
class ExternalRngClientAdapter {
|
|
10
|
+
constructor(externalClient) {
|
|
11
|
+
this.externalClient = externalClient;
|
|
12
|
+
}
|
|
13
|
+
async getSingleNumber(min, max, seed) {
|
|
14
|
+
const response = await this.externalClient.getRandomNumber(min, max, seed);
|
|
15
|
+
return { value: response.result, seed: response.seed };
|
|
16
|
+
}
|
|
17
|
+
async getBatchNumbers(min, max, count, seed) {
|
|
18
|
+
const response = await this.externalClient.getBatchNumbers(min, max, count, seed);
|
|
19
|
+
return response.result || response.map((r) => r.result || r.value);
|
|
20
|
+
}
|
|
21
|
+
async getBatchNumbersWithSeeds(min, max, count, seed) {
|
|
22
|
+
const response = await this.externalClient.getBatchNumbersWithSeeds(min, max, count, seed);
|
|
23
|
+
// Map 'result' to 'value' for each item
|
|
24
|
+
if (response.result && Array.isArray(response.result)) {
|
|
25
|
+
return response.result.map((r) => ({ value: r.value, seed: r.seed }));
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(response)) {
|
|
28
|
+
return response.map((r) => ({ value: r.result ?? r.value, seed: r.seed }));
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
async getSingleFloat(seed) {
|
|
33
|
+
// Return the raw response which already matches RngSingleResponse from rng-client-core
|
|
34
|
+
return this.externalClient.getRandomFloat(seed);
|
|
35
|
+
}
|
|
36
|
+
async getBatchFloats(count, seed) {
|
|
37
|
+
// Return the raw response which already matches RngBatchResponse from rng-client-core
|
|
38
|
+
return this.externalClient.getBatchFloats(count, seed);
|
|
39
|
+
}
|
|
40
|
+
async getRandomNumber(min, max, seed) {
|
|
41
|
+
// Return the raw response which already matches RngSingleResponse from rng-client-core
|
|
42
|
+
return this.externalClient.getRandomNumber(min, max, seed);
|
|
43
|
+
}
|
|
44
|
+
async getRandomFloat(seed) {
|
|
45
|
+
return this.externalClient.getRandomFloat(seed);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
6
48
|
class RngClientFactory {
|
|
7
49
|
static create() {
|
|
8
50
|
const mode = process.env.RNG_CLIENT_MODE || 'external';
|
|
@@ -16,7 +58,9 @@ class RngClientFactory {
|
|
|
16
58
|
clientMethod: process.env.RNG_CLIENT_METHOD,
|
|
17
59
|
poolingSize: parseInt(process.env.RNG_CLIENT_POOL_SIZE || '2000'),
|
|
18
60
|
};
|
|
19
|
-
|
|
61
|
+
console.log('[RngClientFactory] Creating external RngClient with adapter');
|
|
62
|
+
const externalClient = new rng_client_core_1.RngClient(rngClientConfig);
|
|
63
|
+
return new ExternalRngClientAdapter(externalClient);
|
|
20
64
|
}
|
|
21
65
|
}
|
|
22
66
|
exports.RngClientFactory = RngClientFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rng-client.factory.js","sourceRoot":"","sources":["../../src/rng/rng-client.factory.ts"],"names":[],"mappings":";;;AAAA,iEAAwD;
|
|
1
|
+
{"version":3,"file":"rng-client.factory.js","sourceRoot":"","sources":["../../src/rng/rng-client.factory.ts"],"names":[],"mappings":"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"}
|