@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.cjs.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":["Ticker","AnimatedSprite","Texture","Container","Sprite","Graphics","Text","DEFAULT_TIMINGS"],"mappings":"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"}
package/dist/slot.d.ts ADDED
@@ -0,0 +1,333 @@
1
+ import { Container, Texture, TextStyle } from 'pixi.js';
2
+ import { SlotSpinResultBase } from '@energy8platform/platform-core/slot-result';
3
+
4
+ /** A symbol's visual. Any Container; optionally implements the lifecycle the cell drives. */
5
+ interface SymbolView extends Container {
6
+ playIdle?(): void;
7
+ playWin?(): Promise<void>;
8
+ showStatic?(): void;
9
+ /** Resize the symbol to the given cell size in pixels. */
10
+ resize?(size: number): void;
11
+ }
12
+ /** Game-supplied factory: build the view for a symbol id (sprite / layered sprites / Spine / composite). */
13
+ type SymbolResolver = (symbolId: string) => SymbolView | null;
14
+
15
+ interface SymbolTextures {
16
+ base: Texture;
17
+ idle?: Texture[];
18
+ win?: Texture[];
19
+ }
20
+ interface AnimatedSymbolConfig {
21
+ textures: SymbolTextures;
22
+ size: number;
23
+ fps?: number;
24
+ }
25
+ /** Built-in SymbolView: a static base sprite with optional idle/win spritesheet frames. */
26
+ declare class AnimatedSymbol extends Container implements SymbolView {
27
+ private _base;
28
+ private _anim;
29
+ private _textures;
30
+ private _size;
31
+ private _fps;
32
+ constructor(config: AnimatedSymbolConfig);
33
+ setTextures(t: SymbolTextures): void;
34
+ resize(size: number): void;
35
+ showStatic(): void;
36
+ playIdle(): void;
37
+ playWin(): Promise<void>;
38
+ private _swap;
39
+ }
40
+
41
+ interface CellFrameStyle {
42
+ radius?: number;
43
+ idle?: {
44
+ color: number;
45
+ alpha: number;
46
+ };
47
+ winning?: {
48
+ color: number;
49
+ alpha: number;
50
+ };
51
+ removed?: {
52
+ color: number;
53
+ alpha: number;
54
+ };
55
+ fresh?: {
56
+ color: number;
57
+ alpha: number;
58
+ };
59
+ }
60
+ interface CellData {
61
+ symbol: string | null;
62
+ multiplier?: number;
63
+ bonus?: number;
64
+ sticky?: {
65
+ remaining: number;
66
+ };
67
+ }
68
+ interface CellState {
69
+ winning?: boolean;
70
+ removed?: boolean;
71
+ fresh?: boolean;
72
+ }
73
+ interface SymbolCellConfig {
74
+ size: number;
75
+ resolve: SymbolResolver;
76
+ frameStyle?: CellFrameStyle;
77
+ }
78
+ declare class SymbolCell extends Container {
79
+ readonly __uiComponent: true;
80
+ private _size;
81
+ private _resolve;
82
+ private _style;
83
+ private _frame;
84
+ private _view;
85
+ private _badges;
86
+ private _multBadge;
87
+ private _bonusBadge;
88
+ /** Last applied state key — exposed for tests/inspection. */
89
+ frameStyleKey: 'idle' | 'winning' | 'removed' | 'fresh';
90
+ constructor(config: SymbolCellConfig);
91
+ get view(): SymbolView | null;
92
+ setData(data: CellData): void;
93
+ setState(state: CellState): void;
94
+ playWin(): Promise<void>;
95
+ playIdle(): void;
96
+ hasBadge(kind: 'multiplier' | 'bonus'): boolean;
97
+ private _drawFrame;
98
+ private _setMultiplier;
99
+ private _setBonus;
100
+ private _badge;
101
+ }
102
+
103
+ interface DecorationConfig {
104
+ texture?: Texture;
105
+ padding?: number;
106
+ }
107
+ interface ReelGridConfig {
108
+ cols: number;
109
+ rows: number;
110
+ cellSize: number;
111
+ gap?: number;
112
+ resolve: SymbolResolver;
113
+ frameStyle?: CellFrameStyle;
114
+ decoration?: DecorationConfig;
115
+ mask?: boolean;
116
+ }
117
+ declare class ReelGrid extends Container {
118
+ readonly __uiComponent: true;
119
+ private _cols;
120
+ private _rows;
121
+ private _cellSize;
122
+ private _gap;
123
+ private _cells;
124
+ private _cellLayer;
125
+ constructor(config: ReelGridConfig);
126
+ get cols(): number;
127
+ get rows(): number;
128
+ cellPosition(col: number, row: number): {
129
+ x: number;
130
+ y: number;
131
+ };
132
+ getCell(col: number, row: number): SymbolCell;
133
+ setGrid(cells: CellData[][]): void;
134
+ resize(cellSize: number): void;
135
+ }
136
+
137
+ interface CascadeStepData {
138
+ winningCells: {
139
+ col: number;
140
+ row: number;
141
+ }[];
142
+ removedCells: {
143
+ col: number;
144
+ row: number;
145
+ }[];
146
+ newCells: {
147
+ col: number;
148
+ row: number;
149
+ symbol: string;
150
+ }[];
151
+ settledGrid: CellData[][];
152
+ }
153
+ interface CascadeTimings {
154
+ reveal: number;
155
+ highlight: number;
156
+ remove: number;
157
+ drop: number;
158
+ refill: number;
159
+ wait: number;
160
+ }
161
+ interface CascadeAnim {
162
+ col: number;
163
+ row: number;
164
+ phase: 'reveal' | 'highlight' | 'remove' | 'drop' | 'refill';
165
+ from?: {
166
+ x: number;
167
+ y: number;
168
+ };
169
+ to?: {
170
+ x: number;
171
+ y: number;
172
+ };
173
+ scale?: number;
174
+ alpha?: number;
175
+ duration: number;
176
+ easing?: string;
177
+ delay?: number;
178
+ }
179
+ declare class CascadeController {
180
+ private _grid;
181
+ private _t;
182
+ private _killed;
183
+ constructor(grid: ReelGrid, timings?: Partial<CascadeTimings>);
184
+ /** PURE: ordered animation descriptors for a cascade step. */
185
+ plan(step: CascadeStepData, opts?: {
186
+ turbo?: boolean;
187
+ }): CascadeAnim[];
188
+ /** Execute the plan via Tween. Not unit-tested (Ticker doesn't tick in node). */
189
+ run(step: CascadeStepData, opts?: {
190
+ turbo?: boolean;
191
+ }): Promise<void>;
192
+ private _killOwnTweens;
193
+ skip(): void;
194
+ kill(): void;
195
+ }
196
+
197
+ interface ReelSpinData {
198
+ targetGrid: CellData[][];
199
+ strip?: (reel: number) => string[];
200
+ }
201
+ interface ReelSpinTimings {
202
+ spinUp: number;
203
+ hold: number;
204
+ stopStagger: number;
205
+ settle: number;
206
+ }
207
+ interface ReelStopPlan {
208
+ reel: number;
209
+ stopTime: number;
210
+ landing: CellData[];
211
+ settle: {
212
+ amp: number;
213
+ ms: number;
214
+ };
215
+ }
216
+ declare class ReelSpinController {
217
+ private _grid;
218
+ private _t;
219
+ private _killed;
220
+ constructor(grid: ReelGrid, timings?: Partial<ReelSpinTimings>);
221
+ /** PURE: per-reel stop timing + landing window. No Pixi mutation. */
222
+ plan(data: ReelSpinData, opts?: {
223
+ turbo?: boolean;
224
+ }): ReelStopPlan[];
225
+ /** Execute the spin: scroll each reel, decelerate, land on target, settle-bounce. Not unit-tested. */
226
+ run(data: ReelSpinData, opts?: {
227
+ turbo?: boolean;
228
+ }): Promise<void>;
229
+ private _killOwnTweens;
230
+ skip(): void;
231
+ }
232
+
233
+ interface WinTier {
234
+ id: string;
235
+ minMultiplier: number;
236
+ title: string;
237
+ accentColor: number;
238
+ bannerTexture?: Texture;
239
+ }
240
+ /** Highest tier whose minMultiplier <= win/bet, or null if below the lowest. */
241
+ declare function pickTier(tiers: WinTier[], win: number, bet: number): WinTier | null;
242
+ /** Index into `tiers` for the running value (or -1 below the lowest tier). */
243
+ declare function tierIndexAtValue(tiers: WinTier[], runningValue: number, bet: number): number;
244
+
245
+ interface CountUpConfig {
246
+ format: (v: number) => string;
247
+ style?: Partial<TextStyle>;
248
+ }
249
+ /** PURE eased interpolation 0→target over duration (ms). Clamped to [0, target]. */
250
+ declare function valueAt(elapsed: number, target: number, duration: number): number;
251
+ declare class CountUpDisplay extends Container {
252
+ readonly __uiComponent: true;
253
+ private _text;
254
+ private _format;
255
+ private _value;
256
+ constructor(config: CountUpConfig);
257
+ get text(): string;
258
+ setValue(v: number): void;
259
+ /** Swap the value formatter and immediately re-render the current value. */
260
+ setFormat(format: (v: number) => string): void;
261
+ /** Animate the value to target over duration; fires onTier on each tier-index increase. */
262
+ countTo(target: number, duration: number, onTier?: (idx: number) => void): Promise<void>;
263
+ skip(): void;
264
+ }
265
+
266
+ interface BigWinOverlayConfig {
267
+ tiers: WinTier[];
268
+ formatMoney: (v: number) => string;
269
+ countUpDuration?: (win: number) => number;
270
+ particleCount?: number;
271
+ width: number;
272
+ height: number;
273
+ }
274
+ declare class BigWinOverlay extends Container {
275
+ readonly __uiComponent: true;
276
+ private _cfg;
277
+ private _dim;
278
+ private _banner;
279
+ private _title;
280
+ private _count;
281
+ constructor(config: BigWinOverlayConfig);
282
+ /** Pure helper (testable): the tier title for a given win/bet, or null below the lowest tier. */
283
+ tierTitleFor(win: number, bet: number): string | null;
284
+ resize(width: number, height: number): void;
285
+ show(win: number, bet: number, format?: (v: number) => string): Promise<void>;
286
+ skip(): void;
287
+ hide(): void;
288
+ }
289
+
290
+ interface FreeSpinsSessionConfig {
291
+ initialSpins: number;
292
+ /** Optional: extra spins to award from a result (retrigger). Default: none. */
293
+ retrigger?: (result: SlotSpinResultBase) => number;
294
+ /** Optional hard exit (e.g. max-win reached). */
295
+ isMaxWin?: () => boolean;
296
+ }
297
+ /** Headless free-spins state machine. The scene drives it; rendering/HUD reflect it. */
298
+ declare class FreeSpinsSession {
299
+ remaining: number;
300
+ total: number;
301
+ totalWin: number;
302
+ private readonly cfg;
303
+ constructor(cfg: FreeSpinsSessionConfig);
304
+ award(extra: number): void;
305
+ /** Convenience: award using the configured retrigger rule. */
306
+ applyRetrigger(result: SlotSpinResultBase): void;
307
+ addWin(amount: number): void;
308
+ consume(): void;
309
+ get isComplete(): boolean;
310
+ }
311
+
312
+ /** The boundary at which a collected multiplier resets. */
313
+ type CarryPolicy = 'spin' | 'cascade' | 'session';
314
+ /**
315
+ * Headless sticky/collector multiplier — the unified abstraction behind
316
+ * kitsunebi / recipe / orb / stage multipliers. reset(boundary) clears the
317
+ * value only when the boundary is at or above the configured policy scope.
318
+ */
319
+ declare class MultiplierAccumulator {
320
+ value: number;
321
+ private readonly base;
322
+ private readonly policy;
323
+ constructor(cfg: {
324
+ policy: CarryPolicy;
325
+ base?: number;
326
+ });
327
+ add(delta: number): void;
328
+ set(value: number): void;
329
+ reset(boundary: CarryPolicy): void;
330
+ }
331
+
332
+ export { AnimatedSymbol, BigWinOverlay, CascadeController, CountUpDisplay, FreeSpinsSession, MultiplierAccumulator, ReelGrid, ReelSpinController, SymbolCell, pickTier, tierIndexAtValue, valueAt };
333
+ export type { AnimatedSymbolConfig, BigWinOverlayConfig, CarryPolicy, CascadeAnim, CascadeStepData, CascadeTimings, CellData, CellFrameStyle, CellState, CountUpConfig, DecorationConfig, FreeSpinsSessionConfig, ReelGridConfig, ReelSpinData, ReelSpinTimings, ReelStopPlan, SymbolCellConfig, SymbolResolver, SymbolTextures, SymbolView, WinTier };