F049 — Win Level System
Business Rule
When a player wins, the duration of the win-screen sound (ramp_loop) and the title label shown on the win panel are determined by the win-to-total-bet multiplier. Small wins play a short sound and show “YOU WON”. Large wins play progressively longer sounds and escalate through “BIG WIN”, “SUPER WIN”, “GIGANTIC WIN”, and “EPIC WIN”.
The win label and sound duration are determined at river resolution and cannot be changed once set.
Win Level Table
Coin emission and auto-hide timer both scale to the same
collectTime — the win screen stays visible for soundMs + 3 000 ms after the sound ends.
V5 Source References
V6 Implementation
Files
Key Locations in GameScene.ts
Progressive Label Animation
Mirrors v5collectPlate._onShowEnd() / _updatePlate() / _bonuce(). The win screen always opens with “YOU WON”, then escalates through the label tiers at evenly-spaced intervals.
Formula (matches v5 exactly):
Each step-up fires a bounce tween on the label text: scale 1.0 → 1.3 → 1.0, 150 ms,
Back.easeOut — mirrors v5 _bonuce().
Sound Fix (also in this commit)
Prior to this feature,ramp_loop was started via this.sound.play() which returns boolean and discards the sound reference. This meant ramp_loop kept playing after ramp_loop_end fired. Fixed by storing the reference via this.sound.add('ramp_loop').play() and calling .stop() in the delayed callback.