fertig-classic-games/public/src/ui/Sounds.js

44 lines
1.6 KiB
JavaScript

// Sound effect keys — must match the keys loaded in PreloadScene.
export const SFX = {
CARD_DEAL: 'sfx-card-deal',
CARD_PLACE: 'sfx-card-place',
CARD_SHOW: 'sfx-card-show',
CARD_SHUFFLE: 'sfx-card-shuffle',
COINS: 'sfx-coins',
PURCHASE: 'sfx-purchase',
CASINO_BLACKJACK: 'sfx-casino-blackjack',
CASINO_LOSE: 'sfx-casino-lose',
CASINO_WIN: 'sfx-casino-win',
CHIP_BET: 'sfx-chip-bet',
DICE_ROLL: 'sfx-dice-roll',
PENCIL_WRITE: 'sfx-pencil-write',
BINGO_BALLS: 'sfx-bingo-balls',
PIECE_CLICK: 'sfx-piece-click',
ROULETTE: 'sfx-roulette',
BATTLESHIP_HIT: 'sfx-battleship-hit',
BATTLESHIP_MISS: 'sfx-battleship-miss',
BATTLESHIP_LAUNCH: 'sfx-battleship-launch',
MASTERMIND_GLITCH_1: 'sfx-mastermind-glitch-1',
MASTERMIND_GLITCH_2: 'sfx-mastermind-glitch-2',
MASTERMIND_PLACE: 'sfx-mastermind-place',
MASTERMIND_GRANTED: 'sfx-mastermind-access-granted',
MASTERMIND_DENIED: 'sfx-mastermind-access-denied',
MASTERMIND_COLOR: 'sfx-mastermind-color',
MASTERMIND_MATCH: 'sfx-mastermind-match',
MASTERMIND_CALCULATE: 'sfx-mastermind-calculate',
VICTORY_SHORT: 'sfx-victory-short',
};
export function playSound(scene, key) {
try { scene.sound.play(key); } catch (_) {}
}
// chip-bet is limited to one simultaneous instance.
let _chipBetSound = null;
export function playChipBet(scene) {
if (_chipBetSound?.isPlaying) return;
_chipBetSound?.destroy();
_chipBetSound = scene.sound.add(SFX.CHIP_BET);
_chipBetSound.play();
}