Files
CookieMonster/src/Disp/Notifications/Sound.js
Daniël van Noord 1c8bd79640 Fixed linting issues
2021-05-01 22:43:02 +02:00

22 lines
1.2 KiB
JavaScript

import { CMOptions } from '../../Config/VariablesAndData';
import { isInitializing } from '../../InitSaveLoad/Variables';
/**
* This function plays a sound depending on configs. It is called by all functions
* that check game-events and which have settings for sound (e.g., Golden Cookies appearing, Magic meter being full)
* @param {variable} url A variable that gives the url for the sound (e.g., CM.Options.GCSoundURL)
* @param {string} sndConfig The setting in CM.Options that is checked before creating the sound
* @param {string} volConfig The setting in CM.Options that is checked to determine volume
* @param {bool} forced Whether the sound should play regardless of settings, used to test the sound
*/
export default function PlaySound(url, sndConfig, volConfig, forced) {
// The arguments check makes the sound not play upon initialization of the mod
if ((CMOptions[sndConfig] === 1 || forced) && isInitializing === false) {
// eslint-disable-next-line new-cap
const sound = new Audio(url);
if (CMOptions.GeneralSound) sound.volume = (CMOptions[volConfig] / 100) * (Game.volume / 100);
else sound.volume = CMOptions[volConfig] / 100;
sound.play();
}
}