@energy8platform/platform-core 0.30.3 → 0.30.5

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.
@@ -91,6 +91,10 @@ interface ActionSpec {
91
91
  /** Shell display for buy/feature actions (SSOT). */
92
92
  title?: string;
93
93
  description?: string;
94
+ /** Transparent hero art for the top of the buy/feature card (no background plate). Forwarded
95
+ * verbatim to `BonusOption.thumbnail` by `toBonusOptions` — the shell loads it as-is (pixi
96
+ * `Assets.load`, html `<img src>`), so it's the same path/URL a static `thumbnail` would take. */
97
+ art?: string;
94
98
  /** Volatility rating (1–5 lightning bolts) shown on the buy/feature card in the shell's Buy bonus
95
99
  * overlay. Forwarded to `BonusOption.volatility` by `toBonusOptions`. */
96
100
  volatility?: 1 | 2 | 3 | 4 | 5;
@@ -1,6 +1,9 @@
1
1
  /** Minimal, renderer-agnostic base every normalized slot result satisfies. */
2
2
  interface SlotSpinResultBase {
3
- /** Currency win amount for this play (PlatformSession.play() already applied the bet). */
3
+ /** Currency win for the round SO FAR — CUMULATIVE, not this segment's win (PlatformSession.play()
4
+ * already applied the bet). In a bonus every drained segment must report the running total, so
5
+ * the host derives each spin's WIN readout as `totalWin - prevSegmentTotal` and the final base
6
+ * return shows the round total. Feed the RGS `total_win` (accumulated), never `spin_win`. */
4
7
  totalWin: number;
5
8
  freeSpins?: {
6
9
  awarded?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@energy8platform/platform-core",
3
- "version": "0.30.3",
3
+ "version": "0.30.5",
4
4
  "description": "Energy8 platform core: Lua engine, DevBridge, RTP simulation, and SDK session orchestration. Renderer-agnostic — pair with any game framework (Pixi, Phaser, Three.js, custom).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs.js",
@@ -23,6 +23,10 @@ export interface ActionSpec {
23
23
  /** Shell display for buy/feature actions (SSOT). */
24
24
  title?: string;
25
25
  description?: string;
26
+ /** Transparent hero art for the top of the buy/feature card (no background plate). Forwarded
27
+ * verbatim to `BonusOption.thumbnail` by `toBonusOptions` — the shell loads it as-is (pixi
28
+ * `Assets.load`, html `<img src>`), so it's the same path/URL a static `thumbnail` would take. */
29
+ art?: string;
26
30
  /** Volatility rating (1–5 lightning bolts) shown on the buy/feature card in the shell's Buy bonus
27
31
  * overlay. Forwarded to `BonusOption.volatility` by `toBonusOptions`. */
28
32
  volatility?: 1 | 2 | 3 | 4 | 5;
@@ -1,6 +1,9 @@
1
1
  /** Minimal, renderer-agnostic base every normalized slot result satisfies. */
2
2
  export interface SlotSpinResultBase {
3
- /** Currency win amount for this play (PlatformSession.play() already applied the bet). */
3
+ /** Currency win for the round SO FAR — CUMULATIVE, not this segment's win (PlatformSession.play()
4
+ * already applied the bet). In a bonus every drained segment must report the running total, so
5
+ * the host derives each spin's WIN readout as `totalWin - prevSegmentTotal` and the final base
6
+ * return shows the round total. Feed the RGS `total_win` (accumulated), never `spin_win`. */
4
7
  totalWin: number;
5
8
  freeSpins?: { awarded?: number; total?: number; remaining?: number };
6
9
  // ── Round-continuation metadata (Stake segment-drain) ──────────────────