212 lines
5.0 KiB
JavaScript
212 lines
5.0 KiB
JavaScript
var audioSettings = {
|
|
meiThresholdComplete: false,
|
|
isMusicMuted: false,
|
|
isSFXMuted: false,
|
|
shouldPlayMusic: false,
|
|
isBattleMusic: false,
|
|
sfxPlayers: null,
|
|
musicPlayer: null,
|
|
battlePlayer: null,
|
|
};
|
|
|
|
// map sounds to files (filename minus directory and .mp3)
|
|
var soundEffect = {
|
|
slotMachine: "InsertCoin",
|
|
win: "Win",
|
|
loose: "Lose",
|
|
buy: "Purchase",
|
|
explosion: "Explosion",
|
|
click: "pop-low",
|
|
cheer: "Cheer",
|
|
cry: "Cry",
|
|
derek: "Derek",
|
|
beating: "Arrr",
|
|
beating2: "Arrr2",
|
|
beating3: "Arrr3",
|
|
beating4: "Arrr4",
|
|
beating5: "Arrr5",
|
|
punch1: "Punch1",
|
|
punch2: "Punch2",
|
|
punch3: "Punch3",
|
|
punch4: "Punch1",
|
|
text: "5",
|
|
burger: "Burger",
|
|
worm: "Worm",
|
|
wormHole: "Wormhole",
|
|
sven: "Sven",
|
|
burgulon: "Burgulon",
|
|
wifyHello: "WifyHello",
|
|
wifyWrong: "WifyWrong",
|
|
wifyCorrect: "WifyCorrect",
|
|
fart: "Fart",
|
|
ghost: "Ghost",
|
|
heal: "Heal",
|
|
potion: "Potion",
|
|
thirsty: "Thirsty",
|
|
vomit: "Vomit",
|
|
doorOfRegret: "DoorOfRegret",
|
|
party: "Party",
|
|
hi: "Hi",
|
|
baby: "Baby",
|
|
babyCry: "BabyCry",
|
|
ding: "Ding",
|
|
heavy: "Heavy",
|
|
house: "House",
|
|
jack: "Jack",
|
|
jazz: "Jazz",
|
|
jerkSquad: "JerkSquad",
|
|
shock: "Shock",
|
|
stanley: "Stanley",
|
|
tadaa: "Tadaa",
|
|
techno: "Techno",
|
|
canOpen: "CanOpen",
|
|
core: "Core",
|
|
beanie: "Beanie",
|
|
mouladin: "Mouladin",
|
|
slopnax: "Slopnax",
|
|
bentLords: "BentLords",
|
|
technoLow: "TechnoLow",
|
|
mayonada: "Mayonada",
|
|
};
|
|
|
|
function loadAudioState() {
|
|
audioSettings.isSFXMuted = state.soundMuted;
|
|
audioSettings.isMusicMuted = state.musicMuted;
|
|
}
|
|
|
|
function playSound(filename) {
|
|
if (audioSettings.isSFXMuted) { return; }
|
|
// First interaction with DOM has not yet happened
|
|
if (!audioSettings.meiThresholdComplete) { return; }
|
|
|
|
if (audioSettings.sfxPlayers === null) {
|
|
audioSettings.sfxPlayers = {};
|
|
for (var key in soundEffect) {
|
|
if (soundEffect.hasOwnProperty(key)) {
|
|
let value = soundEffect[key];
|
|
audioSettings.sfxPlayers[value] = new Audio("audio/" + value + ".mp3");
|
|
}
|
|
}
|
|
}
|
|
|
|
audioSettings.sfxPlayers[filename].play();
|
|
}
|
|
|
|
function playBattleMusic() {
|
|
if (audioSettings.isMusicMuted) { return; }
|
|
if (!audioSettings.shouldPlayMusic) { return; }
|
|
// First interaction with DOM has not yet happened
|
|
if (!audioSettings.meiThresholdComplete) { return; }
|
|
|
|
audioSettings.isBattleMusic = true;
|
|
|
|
if (audioSettings.battlePlayer === null) {
|
|
audioSettings.battlePlayer = new Audio("audio/Honk_DereksTheme.mp3");
|
|
|
|
audioSettings.battlePlayer.addEventListener("ended", function () {
|
|
if (audioSettings.isMusicMuted || !audioSettings.isBattleMusic) { return; }
|
|
audioSettings.battlePlayer.currentTime = 0;
|
|
audioSettings.battlePlayer.play();
|
|
});
|
|
|
|
}
|
|
|
|
if (audioSettings.musicPlayer !== null) {
|
|
audioSettings.musicPlayer.pause();
|
|
}
|
|
|
|
if (audioSettings.battlePlayer !== null) {
|
|
audioSettings.battlePlayer.play();
|
|
}
|
|
}
|
|
|
|
function playMusic() {
|
|
if (audioSettings.isMusicMuted) { return; }
|
|
if (!audioSettings.shouldPlayMusic) { return; }
|
|
// First interaction with DOM has not yet happened
|
|
if (!audioSettings.meiThresholdComplete) { return; }
|
|
|
|
audioSettings.isBattleMusic = false;
|
|
|
|
if (audioSettings.musicPlayer === null) {
|
|
audioSettings.musicPlayer = new Audio("audio/rumsang_v2.mp3");;
|
|
|
|
audioSettings.musicPlayer.addEventListener("ended", function () {
|
|
if (audioSettings.isMusicMuted || audioSettings.isBattleMusic) { return; }
|
|
audioSettings.musicPlayer.currentTime = 0;
|
|
audioSettings.musicPlayer.play();
|
|
});
|
|
audioSettings.musicPlayer.play();
|
|
}
|
|
|
|
if (audioSettings.battlePlayer !== null) {
|
|
audioSettings.battlePlayer.pause();
|
|
}
|
|
|
|
if (audioSettings.musicPlayer !== null) {
|
|
audioSettings.musicPlayer.play();
|
|
}
|
|
}
|
|
|
|
function resetMusic() {
|
|
if (audioSettings.isMusicMuted) { return; }
|
|
|
|
if (audioSettings.musicPlayer !== null) {
|
|
audioSettings.musicPlayer.pause();
|
|
audioSettings.musicPlayer.currentTime = 0;
|
|
}
|
|
|
|
if (audioSettings.battlePlayer !== null) {
|
|
audioSettings.battlePlayer.pause();
|
|
audioSettings.battlePlayer.currentTime = 0;
|
|
}
|
|
}
|
|
|
|
function muteSound() {
|
|
audioSettings.isSFXMuted = true;
|
|
updateState("soundMuted", true);
|
|
|
|
for (var key in audioSettings.sfxPlayers) {
|
|
if (audioSettings.sfxPlayers.hasOwnProperty(key)) {
|
|
audioSettings.sfxPlayers[key].pause();
|
|
}
|
|
}
|
|
}
|
|
|
|
function unMuteSound() {
|
|
audioSettings.isSFXMuted = false;
|
|
updateState("soundMuted", false);
|
|
}
|
|
|
|
function muteMusic() {
|
|
audioSettings.isMusicMuted = true;
|
|
updateState("musicMuted", true);
|
|
|
|
if (audioSettings.musicPlayer !== null) {
|
|
audioSettings.musicPlayer.pause();
|
|
}
|
|
|
|
if (audioSettings.battlePlayer !== null) {
|
|
audioSettings.battlePlayer.pause();
|
|
}
|
|
}
|
|
|
|
function unMuteMusic() {
|
|
audioSettings.isMusicMuted = false;
|
|
updateState("musicMuted", false);
|
|
|
|
playMusic();
|
|
}
|
|
|
|
function playRandomPunchSound() {
|
|
var punches = [soundEffect.punch1,soundEffect.punch2,soundEffect.punch3];
|
|
var chosenPunch = Math.floor(Math.random() * punches.length);
|
|
playSound(punches[chosenPunch]);
|
|
}
|
|
|
|
function playRandomDerekSound() {
|
|
var punches = [soundEffect.beating,soundEffect.beating2,soundEffect.beating3,soundEffect.beating4,soundEffect.beating5];
|
|
var chosenPunch = Math.floor(Math.random() * punches.length);
|
|
playSound(punches[chosenPunch]);
|
|
}
|