F043 — Config and Sound Controls
Business Rule
The game provides two persistent icon buttons rendered as HTML overlay elements outside the Phaser canvas:
These buttons are always visible during gameplay. They are NOT part of the Phaser canvas — they live in
#fugaGameUI, a zero-height HTML div positioned at the canvas bottom.
Layout Mechanism
The game (game.min.js) adds classdesktop to #fugaGame at boot. CSS in game.css then positions the buttons:
game.css does not supply bottom: 0. Without it, #fugaGameUI defaults to top: 0 and all buttons render at y = -702px — completely clipped by #fugaGame { overflow: hidden }.
Platform fix (index-live.html):
#fugaGameUI sits at the canvas bottom and the top: -702px buttons appear near the canvas top corners.
UIGameSettings Modal
btnMenuLeft fires UI.MODALTOGGLE "UIGameSettings", which opens the settings panel. The panel includes:
- Sound Music on/off (
UISoundMusicSetting) - Sound SFX on/off (
UISoundSFXSetting) - Spacebar spin toggle
- Double-up, turbo, cashier button enable/disable (suppressed via null in
SetDatapatch)
Sound Button Levels
btnSound is type: "multilevel" — each click fires UI.SOUND.PLUS, cycling through icon states (sound_icon_level_0 → _1 → _2 → _3). The level adjusts the GDK sound volume.
Acceptance Criteria
Version Parity
Related Features
- F022 — Card Display (canvas rendering, Phaser setup)
- HEDGE-78 — Menu and help screens
- HEDGE-79 — Config button
- HEDGE-142 — UMA sounds (sound button cycles levels but no audio yet)