@energy8platform/game-engine 0.16.0 → 0.18.0

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.
Files changed (73) hide show
  1. package/dist/core.cjs.js +62 -1
  2. package/dist/core.cjs.js.map +1 -1
  3. package/dist/core.d.ts +33 -2
  4. package/dist/core.esm.js +63 -3
  5. package/dist/core.esm.js.map +1 -1
  6. package/dist/debug.d.ts +1 -1
  7. package/dist/game-spec.cjs.js +13 -0
  8. package/dist/game-spec.cjs.js.map +1 -0
  9. package/dist/game-spec.d.ts +1 -0
  10. package/dist/game-spec.esm.js +2 -0
  11. package/dist/game-spec.esm.js.map +1 -0
  12. package/dist/host.cjs.js +3346 -0
  13. package/dist/host.cjs.js.map +1 -0
  14. package/dist/host.d.ts +915 -0
  15. package/dist/host.esm.js +3337 -0
  16. package/dist/host.esm.js.map +1 -0
  17. package/dist/index.cjs.js +13 -1
  18. package/dist/index.cjs.js.map +1 -1
  19. package/dist/index.d.ts +7 -2
  20. package/dist/index.esm.js +13 -1
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/react.cjs.js.map +1 -1
  23. package/dist/react.d.ts +6 -1
  24. package/dist/react.esm.js.map +1 -1
  25. package/dist/shell.cjs.js +19 -0
  26. package/dist/shell.cjs.js.map +1 -0
  27. package/dist/shell.d.ts +1 -0
  28. package/dist/shell.esm.js +2 -0
  29. package/dist/shell.esm.js.map +1 -0
  30. package/dist/slot.cjs.js +998 -0
  31. package/dist/slot.cjs.js.map +1 -0
  32. package/dist/slot.d.ts +333 -0
  33. package/dist/slot.esm.js +985 -0
  34. package/dist/slot.esm.js.map +1 -0
  35. package/package.json +26 -1
  36. package/src/core/GameApplication.ts +16 -1
  37. package/src/core/index.ts +2 -0
  38. package/src/debug/index.ts +1 -1
  39. package/src/game-spec/index.ts +1 -0
  40. package/src/host/autoplay.ts +78 -0
  41. package/src/host/balanceGate.ts +46 -0
  42. package/src/host/buildConfig.ts +28 -0
  43. package/src/host/createSlotGame.ts +423 -0
  44. package/src/host/fatalError.ts +104 -0
  45. package/src/host/freeSpinsCounter.ts +44 -0
  46. package/src/host/index.ts +18 -0
  47. package/src/host/playError.ts +64 -0
  48. package/src/host/preboot.ts +25 -0
  49. package/src/host/replay.ts +9 -0
  50. package/src/host/runRound.ts +63 -0
  51. package/src/host/sceneController.ts +31 -0
  52. package/src/host/sceneStart.ts +25 -0
  53. package/src/host/shellConfig.ts +379 -0
  54. package/src/host/slotPlay.ts +62 -0
  55. package/src/host/types.ts +71 -0
  56. package/src/index.ts +1 -1
  57. package/src/loading/index.ts +2 -0
  58. package/src/scenes/IntroScene.ts +66 -0
  59. package/src/shell/index.ts +20 -0
  60. package/src/slot/anim/CascadeController.ts +102 -0
  61. package/src/slot/anim/ReelSpinController.ts +81 -0
  62. package/src/slot/anim/easing-map.ts +14 -0
  63. package/src/slot/freeSpins/FreeSpinsSession.ts +40 -0
  64. package/src/slot/grid/AnimatedSymbol.ts +68 -0
  65. package/src/slot/grid/ReelGrid.ts +92 -0
  66. package/src/slot/grid/SymbolCell.ts +127 -0
  67. package/src/slot/grid/SymbolView.ts +13 -0
  68. package/src/slot/index.ts +21 -0
  69. package/src/slot/multiplier/MultiplierAccumulator.ts +29 -0
  70. package/src/slot/overlay/BigWinOverlay.ts +89 -0
  71. package/src/slot/overlay/CountUpDisplay.ts +56 -0
  72. package/src/slot/overlay/tiers.ts +29 -0
  73. package/src/types.ts +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot.esm.js","sources":["../src/animation/Easing.ts","../src/animation/Tween.ts","../src/animation/SpriteAnimation.ts","../src/slot/grid/AnimatedSymbol.ts","../src/slot/grid/SymbolCell.ts","../src/slot/grid/ReelGrid.ts","../src/slot/anim/easing-map.ts","../src/slot/anim/CascadeController.ts","../src/slot/anim/ReelSpinController.ts","../src/slot/overlay/tiers.ts","../src/slot/overlay/CountUpDisplay.ts","../src/slot/overlay/BigWinOverlay.ts","../src/slot/freeSpins/FreeSpinsSession.ts","../src/slot/multiplier/MultiplierAccumulator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DEFAULT_TIMINGS"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@energy8platform/game-engine",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "description": "Universal casino game engine built on PixiJS v8 and @energy8platform/game-sdk",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs.js",
@@ -42,6 +42,11 @@
42
42
  "require": "./dist/debug.cjs.js",
43
43
  "types": "./dist/debug.d.ts"
44
44
  },
45
+ "./shell": {
46
+ "import": "./dist/shell.esm.js",
47
+ "require": "./dist/shell.cjs.js",
48
+ "types": "./dist/shell.d.ts"
49
+ },
45
50
  "./vite": {
46
51
  "import": "./dist/vite.esm.js",
47
52
  "require": "./dist/vite.cjs.js",
@@ -61,6 +66,21 @@
61
66
  "import": "./dist/lua.esm.js",
62
67
  "require": "./dist/lua.cjs.js",
63
68
  "types": "./dist/lua.d.ts"
69
+ },
70
+ "./game-spec": {
71
+ "import": "./dist/game-spec.esm.js",
72
+ "require": "./dist/game-spec.cjs.js",
73
+ "types": "./dist/game-spec.d.ts"
74
+ },
75
+ "./host": {
76
+ "import": "./dist/host.esm.js",
77
+ "require": "./dist/host.cjs.js",
78
+ "types": "./dist/host.d.ts"
79
+ },
80
+ "./slot": {
81
+ "import": "./dist/slot.esm.js",
82
+ "require": "./dist/slot.cjs.js",
83
+ "types": "./dist/slot.d.ts"
64
84
  }
65
85
  },
66
86
  "files": [
@@ -82,12 +102,16 @@
82
102
  },
83
103
  "peerDependencies": {
84
104
  "@energy8platform/game-sdk": "^2.7.0",
105
+ "@energy8platform/stake-bridge": ">=0.2.1",
85
106
  "pixi.js": "^8.16.0",
86
107
  "react": ">=18.0.0",
87
108
  "react-dom": ">=18.0.0",
88
109
  "react-reconciler": ">=0.29.0"
89
110
  },
90
111
  "peerDependenciesMeta": {
112
+ "@energy8platform/stake-bridge": {
113
+ "optional": true
114
+ },
91
115
  "@esotericsoftware/spine-pixi-v8": {
92
116
  "optional": true
93
117
  },
@@ -106,6 +130,7 @@
106
130
  },
107
131
  "devDependencies": {
108
132
  "@energy8platform/game-sdk": "^2.7.0",
133
+ "@energy8platform/stake-bridge": "*",
109
134
  "@esotericsoftware/spine-pixi-v8": "~4.2.0",
110
135
  "@pixi/sound": "^6.0.0",
111
136
  "@rollup/plugin-typescript": "^12.1.0",
@@ -78,6 +78,9 @@ export class GameApplication extends EventEmitter<GameEngineEvents> {
78
78
  /** Platform session (SDK + optional DevBridge). null until start() runs. */
79
79
  public platformSession: PlatformSession | null = null;
80
80
 
81
+ /** Branded game shell (only when config.shell is set). */
82
+ public shell?: import('@energy8platform/platform-core/shell').GameShell;
83
+
81
84
  /** Configuration */
82
85
  public readonly config: GameApplicationConfig;
83
86
 
@@ -156,6 +159,12 @@ export class GameApplication extends EventEmitter<GameEngineEvents> {
156
159
  // 4. Initialize SDK (if enabled)
157
160
  await this.initSDK();
158
161
 
162
+ // 4b. Mount the branded game shell after the SDK handshake (optional)
163
+ if (this.config.shell) {
164
+ const { createGameShell } = await import('@energy8platform/platform-core/shell');
165
+ this.shell = createGameShell(this.config.shell);
166
+ }
167
+
159
168
  // 5. Merge design dimensions from SDK config
160
169
  this.applySDKConfig();
161
170
 
@@ -185,11 +194,17 @@ export class GameApplication extends EventEmitter<GameEngineEvents> {
185
194
  /**
186
195
  * Destroy the engine and free all resources.
187
196
  */
188
- destroy(): void {
197
+ async destroy(): Promise<void> {
189
198
  if (this._destroyed) return;
190
199
  this._destroyed = true;
191
200
  this._running = false;
192
201
 
202
+ if (this.shell) {
203
+ const { removeGameShell } = await import('@energy8platform/platform-core/shell');
204
+ await removeGameShell();
205
+ this.shell = undefined;
206
+ }
207
+
193
208
  this.scenes?.destroy();
194
209
  this.input?.destroy();
195
210
  this.audio?.destroy();
package/src/core/index.ts CHANGED
@@ -2,3 +2,5 @@ export { GameApplication } from './GameApplication';
2
2
  export { SceneManager } from './SceneManager';
3
3
  export { Scene } from './Scene';
4
4
  export { EventEmitter } from './EventEmitter';
5
+ export { IntroScene } from '../scenes/IntroScene';
6
+ export type { IntroSceneConfig } from '../scenes/IntroScene';
@@ -1,5 +1,5 @@
1
1
  // DevBridge has moved to @energy8platform/platform-core/dev-bridge.
2
2
  // Re-export here so the @energy8platform/game-engine/debug sub-path stays stable.
3
3
  export { DevBridge } from '@energy8platform/platform-core/dev-bridge';
4
- export type { DevBridgeConfig } from '@energy8platform/platform-core/dev-bridge';
4
+ export type { DevBridgeConfig, ReplayConfig, ReplayLaunch } from '@energy8platform/platform-core/dev-bridge';
5
5
  export { FPSOverlay } from './FPSOverlay';
@@ -0,0 +1 @@
1
+ export * from '@energy8platform/platform-core/game-spec';
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Host-side autoplay loop. The shell owns the picker + confirm (a count only commits after the
3
+ * confirm modal); it emits `autoplayStart` with the chosen count and `autoplayStop`. This driver
4
+ * runs N rounds back-to-back through the SAME `playRound` a manual spin uses (so a triggered bonus
5
+ * drains fully before the next auto-spin), updating the shell's autoplay readout each spin and
6
+ * halting on Stop, on an unaffordable spin, or on a play error.
7
+ *
8
+ * Sequential by construction: it awaits each round (incl. its bonus drain) before the next, so
9
+ * there is never more than one round in flight. Pure over injected deps — unit-testable.
10
+ */
11
+ export interface AutoplayDeps {
12
+ /** The action to auto-spin (e.g. an active ante feature, else 'spin'). Read fresh each round. */
13
+ resolveAction(): string;
14
+ /** Affordability gate for the action (the host's ensureAffordable — may surface a modal). */
15
+ canAfford(action: string): boolean;
16
+ /** Play one full round (trigger + any bonus drain). Resolves when the round + animation finish. */
17
+ playRound(action: string): Promise<void>;
18
+ /** Push the autoplay readout to the shell (active + remaining). */
19
+ onState(state: { active: boolean; remaining: number }): void;
20
+ }
21
+
22
+ export interface Autoplay {
23
+ /** Begin an autoplay run of `count` rounds (no-op if already running or count ≤ 0). */
24
+ start(count: number): void;
25
+ /** Stop the run; the in-flight round (if any) finishes, then the loop exits. */
26
+ stop(): void;
27
+ readonly active: boolean;
28
+ readonly remaining: number;
29
+ }
30
+
31
+ export function createAutoplayLoop(deps: AutoplayDeps): Autoplay {
32
+ let active = false;
33
+ let remaining = 0;
34
+ let running = false; // guards against a second concurrent loop
35
+
36
+ const stop = (): void => {
37
+ if (!active && remaining === 0) return;
38
+ active = false;
39
+ remaining = 0;
40
+ deps.onState({ active: false, remaining: 0 });
41
+ };
42
+
43
+ async function loop(): Promise<void> {
44
+ if (running) return;
45
+ running = true;
46
+ try {
47
+ while (active && remaining > 0) {
48
+ const action = deps.resolveAction();
49
+ if (!deps.canAfford(action)) { stop(); return; }
50
+ // Decrement at spin START (so the spin in flight is `total − remaining`), then play it out.
51
+ remaining -= 1;
52
+ deps.onState({ active: true, remaining });
53
+ try {
54
+ await deps.playRound(action);
55
+ } catch {
56
+ stop(); // a play error already surfaced its own modal — just halt the run
57
+ return;
58
+ }
59
+ }
60
+ if (active) stop(); // ran the budget out
61
+ } finally {
62
+ running = false;
63
+ }
64
+ }
65
+
66
+ return {
67
+ start(count: number): void {
68
+ if (active || running || count <= 0) return;
69
+ active = true;
70
+ remaining = count;
71
+ deps.onState({ active: true, remaining });
72
+ void loop();
73
+ },
74
+ stop,
75
+ get active() { return active; },
76
+ get remaining() { return remaining; },
77
+ };
78
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Gate for WHEN a balance change is painted to the shell readout.
3
+ *
4
+ * The wallet emits balance changes at two moments: the DEBIT lands when `play()` is called (before
5
+ * the scene animates), and the CREDIT (win) lands when the round settles — `/wallet/end-round`
6
+ * fires asynchronously AFTER the final segment's ack, i.e. after `present()`. The HUD-timing rule is
7
+ * "balance updates only after present()", so:
8
+ * - while a segment is between `beginPlay()` and `afterPresent()`, balance changes are BUFFERED
9
+ * (the debit must not flash before the animation),
10
+ * - `afterPresent()` paints the latest buffered value (the debit),
11
+ * - any later change (the async win credit) paints immediately, because the gate is open again.
12
+ *
13
+ * `balance` always reflects the true latest wallet value (regardless of gating) so an affordability
14
+ * guard can read it. Pure + unit-testable: the shell paint is injected.
15
+ */
16
+ export interface BalanceGate {
17
+ /** Record a wallet balance change. Paints it now unless a present is in flight. */
18
+ onBalance(amount: number): void;
19
+ /** A play() was issued — suppress painting until the matching afterPresent() (debit must wait). */
20
+ beginPlay(): void;
21
+ /** A segment finished animating — paint the latest balance and re-open the gate. */
22
+ afterPresent(): void;
23
+ /** The latest wallet balance, painted or not (for affordability checks). */
24
+ readonly balance: number;
25
+ }
26
+
27
+ export function createBalanceGate(paint: (amount: number) => void, initial = 0): BalanceGate {
28
+ let latest = initial;
29
+ let suppressed = false;
30
+ return {
31
+ onBalance(amount: number): void {
32
+ latest = amount;
33
+ if (!suppressed) paint(amount);
34
+ },
35
+ beginPlay(): void {
36
+ suppressed = true;
37
+ },
38
+ afterPresent(): void {
39
+ paint(latest);
40
+ suppressed = false;
41
+ },
42
+ get balance(): number {
43
+ return latest;
44
+ },
45
+ };
46
+ }
@@ -0,0 +1,28 @@
1
+ // packages/game-engine/src/host/buildConfig.ts
2
+ import type { GameApplicationConfig } from '../types';
3
+ import { ScaleMode, Orientation } from '../types';
4
+ import type { CreateSlotGameOptions } from './types';
5
+
6
+ /**
7
+ * Pure: map host options to a GameApplicationConfig with sane defaults.
8
+ * `isStakeNow` is computed by the orchestrator (kept out of here so this
9
+ * stays a pure, renderer-free function).
10
+ */
11
+ export function buildAppConfig(
12
+ opts: CreateSlotGameOptions,
13
+ isStakeNow: boolean,
14
+ ): GameApplicationConfig {
15
+ return {
16
+ container: opts.container ?? '#game',
17
+ designWidth: opts.design?.width ?? 1920,
18
+ designHeight: opts.design?.height ?? 1080,
19
+ scaleMode: opts.scaleMode ?? ScaleMode.FILL,
20
+ orientation: opts.orientation ?? Orientation.ANY,
21
+ loading: opts.loading ?? { tapToStart: false, minDisplayTime: 600 },
22
+ manifest: opts.manifest,
23
+ audio: opts.audio,
24
+ pixi: opts.pixi,
25
+ sdk: { devMode: isStakeNow || (opts.dev ?? false) },
26
+ debug: opts.dev ?? false,
27
+ };
28
+ }