Files
WoWLoginScreens/assets/js/audiohandler.js
T
2020-10-03 16:20:32 -04:00

273 lines
8.9 KiB
JavaScript

var expansion = 8;
var audioSelect = {
'Vanilla' : './assets/audio/Vanilla.ogg',
'BurningCrusade' : './assets/audio/BurningCrusade.ogg',
'WrathOfTheLichKing' : './assets/audio/WrathOfTheLichKing.ogg',
'Cataclysm' : './assets/audio/Cataclysm.ogg',
'MistsOfPandaria' : './assets/audio/MistsOfPandaria.ogg',
'WarlordsOfDraenor' : './assets/audio/WarlordsOfDraenor.ogg',
'Legion' : './assets/audio/Legion.ogg',
'BattleForAzeroth' : './assets/audio/BattleForAzeroth.ogg',
'Shadowlands' : './assets/audio/Shadowlands.ogg'
}
var videoSelect = {
'Vanilla' : './assets/img/bg/Vanilla.webm',
'BurningCrusade' : './assets/img/bg/BurningCrusade.webm',
'WrathOfTheLichKing' : './assets/img/bg/WrathOfTheLichKing.webm',
'Cataclysm' : './assets/img/bg/Cataclysm.webm',
'MistsOfPandaria' : './assets/img/bg/MistsOfPandaria.webm',
'WarlordsOfDraenor' : './assets/img/bg/WarlordsOfDraenor.webm',
'Legion' : './assets/img/bg/Legion.webm',
'BattleForAzeroth' : './assets/img/bg/BattleForAzeroth.webm',
'Shadowlands' : './assets/img/bg/Shadowlands.webm'
}
var logoSelect = {
'Vanilla' : './assets/img/ui/logos/Vanilla.png',
'BurningCrusade' : './assets/img/ui/logos/BurningCrusade.png',
'WrathOfTheLichKing' : './assets/img/ui/logos/WrathOfTheLichKing.png',
'Cataclysm' : './assets/img/ui/logos/Cataclysm.png',
'MistsOfPandaria' : './assets/img/ui/logos/MistsOfPandaria.png',
'WarlordsOfDraenor' : './assets/img/ui/logos/WarlordsOfDraenor.png',
'Legion' : './assets/img/ui/logos/Legion.png',
'BattleForAzeroth' : './assets/img/ui/logos/BattleForAzeroth.png',
'Shadowlands' : './assets/img/ui/logos/Shadowlands.png',
}
var audio = new Audio();
var buttonAudio = new Audio();
var audioInitialPlayback = false;
var queuePos = null;
var disconnected = false;
function init()
{
switchExpansion();
window.addEventListener('click', waitForInteractionToPlayAudio);
getPositionInQueue();
setInterval(determineIfDisconnect, 8000);
}
function waitForInteractionToPlayAudio()
{
if(!audioInitialPlayback)
{
buttonAudio.volume = 0.5;
audio.volume = 0.5;
audio.loop = true;
audio.play();
audioInitialPlayback = true;
}
}
function determineIfDisconnect()
{
if(!disconnected)
{
var rand = Math.random();
if(rand < 0.75)
getPositionInQueue();
}
}
function getPositionInQueue()
{
var number;
if(queuePos === null)
{
number = Math.floor(Math.random() * Math.floor(10000));
queuePos = number;
}
else
{
number = Math.floor(queuePos - (Math.random() * Math.floor(15)));
queuePos = number;
if(queuePos < 3)
{
number = 0;
queuePos = 0;
doDisconnect();
}
}
document.getElementById('queuePosition').innerHTML = 'Position in Queue: ' + number;
getEstimatedTime(number)
}
function getEstimatedTime(qPos)
{
var time = Math.floor(Math.floor(qPos*2*3*2 + ((qPos*2*3*3) - (qPos*2*3*2)) * Math.random()) * 0.01);
document.getElementById('queueTime').innerHTML = 'Estimated time: ' + time + ' min';
}
function doDisconnect()
{
hideQueue();
showDisconnect();
playButtonAudio(1);
disconnected = true;
console.log("DC'd")
}
function manualChangeExpac()
{
console.log("Changing xpac to: ");
expansion += 1;
if(expansion > 8)
expansion = 0;
var bg = document.getElementById('background');
bg.muted = false;
switchExpansion();
}
function switchExpansion()
{
if(disconnected)
{
disconnected = false;
hideQueue();
showDisconnect();
}
queuePos = null;
getPositionInQueue();
var bg = document.getElementById('background');
var logo = document.getElementById('logo');
var version = document.getElementById('buildVersion');
var date = document.getElementById('buildDate');
var copyright = document.getElementById('copyrightText');
audio.pause();
switch(expansion)
{
case 0:
console.log('Vanilla');
audio.src = audioSelect.Vanilla;
bg.setAttribute('src', videoSelect.Vanilla);
logo.style.background = `url(${logoSelect.Vanilla})`;
version.innerHTML = 'Version 1.12.1 (5875) (Release)';
date.innerHTML = 'Sept 19 2006';
copyright.innerHTML = 'Copyright 2004-2006 Blizzard Entertainment. All Right Reserved.';
break;
case 1:
console.log('Burning Crusade');
audio.src = audioSelect.BurningCrusade;
bg.setAttribute('src', videoSelect.BurningCrusade);
logo.style.background = `url(${logoSelect.BurningCrusade})`;
version.innerHTML = 'Version 2.4.3 (8606) (Release)';
date.innerHTML = 'Jul 10 2008';
copyright.innerHTML = 'Copyright 2004-2008 Blizzard Entertainment. All Right Reserved.';
break;
case 2:
console.log('Wrath of the Lich King');
audio.src = audioSelect.WrathOfTheLichKing;
bg.setAttribute('src', videoSelect.WrathOfTheLichKing);
logo.style.background = `url(${logoSelect.WrathOfTheLichKing})`;
version.innerHTML = 'Version 3.3.5 (12340) (Release)';
date.innerHTML = 'Jun 24 2010';
copyright.innerHTML = 'Copyright 2004-2010 Blizzard Entertainment. All Right Reserved.';
break;
case 3:
console.log('Cataclysm');
audio.src = audioSelect.Cataclysm;
bg.setAttribute('src', videoSelect.Cataclysm);
logo.style.background = `url(${logoSelect.Cataclysm})`;
version.innerHTML = 'Version 4.3.4 (15595) (Release x86)';
date.innerHTML = 'Feb 9 2011';
copyright.innerHTML = 'Copyright 2004-2011 Blizzard Entertainment. All Right Reserved.';
break;
case 4:
console.log('Mists of Pandaria');
audio.src = audioSelect.MistsOfPandaria;
bg.setAttribute('src', videoSelect.MistsOfPandaria);
logo.style.background = `url(${logoSelect.MistsOfPandaria})`;
version.innerHTML = 'Version 5.4.8 (18414) (Release x86)';
date.innerHTML = 'Jun 13 2014';
copyright.innerHTML = 'Copyright 2004-2014 Blizzard Entertainment. All Right Reserved.';
break;
case 5:
console.log('Warlords of Draenor');
audio.src = audioSelect.WarlordsOfDraenor;
bg.setAttribute('src', videoSelect.WarlordsOfDraenor);
logo.style.background = `url(${logoSelect.WarlordsOfDraenor})`;
version.innerHTML = 'Version 6.2.0 (20173) (Release x64)';
date.innerHTML = 'Jun 20 2015';
copyright.innerHTML = 'Copyright 2004-2015 Blizzard Entertainment. All Right Reserved.';
break;
case 6:
console.log('Legion');
audio.src = audioSelect.Legion;
bg.setAttribute('src', videoSelect.Legion);
logo.style.background = `url(${logoSelect.Legion})`;
version.innerHTML = 'Version 7.3.5 (26365) (Release x64)';
date.innerHTML = 'Apr 3 2018';
copyright.innerHTML = 'Copyright 2004-2018 Blizzard Entertainment. All Right Reserved.';
break;
case 7:
console.log('Battle for Azeroth');
audio.src = audioSelect.BattleForAzeroth;
bg.setAttribute('src', videoSelect.BattleForAzeroth);
logo.style.background = `url(${logoSelect.BattleForAzeroth})`;
version.innerHTML = 'Version 8.3.7 (35662) (Release x64)';
date.innerHTML = 'Aug 24 2020';
copyright.innerHTML = 'Copyright 2004-2020 Blizzard Entertainment. All Right Reserved.';
break;
case 8:
console.log('Shadowlands');
audio.src = audioSelect.Shadowlands;
bg.setAttribute('src', videoSelect.Shadowlands);
logo.style.background = `url(${logoSelect.Shadowlands})`;
version.innerHTML = 'Version 9.0.1 (35944) (Release x64)';
date.innerHTML = 'Oct 13 2020';
copyright.innerHTML = 'Copyright 2004-2020 Blizzard Entertainment. All Right Reserved.';
break;
}
audio.play();
}
function playButtonAudio(index)
{
buttonAudio.pause();
buttonAudio.time = 0;
if(index === 0)
buttonAudio.src = './assets/audio/ui/button_click.ogg';
else
buttonAudio.src = './assets/audio/ui/button_click_big.ogg';
buttonAudio.play();
}
function hideQueue()
{
var x = document.getElementById("queue");
if(x.style.display === "none")
x.style.display = "flex";
else
x.style.display = "none";
}
function showDisconnect()
{
var x = document.getElementById("disconnectBox");
if(x.style.display === "none")
x.style.display = "flex";
else
x.style.display = "none";
}
function resetQueue()
{
disconnected = false;
showDisconnect();
hideQueue();
}