Fix tabbing

This commit is contained in:
Dominic Ferrando
2026-06-14 13:14:01 -04:00
parent 42f47c8601
commit 05dc26adb5
31 changed files with 9137 additions and 8508 deletions
+20 -19
View File
@@ -6,7 +6,7 @@ function playAudio(newAudio) {
// HELPERS
// --------------
const TIME_STEP = 500;
const VOL_STEP = .05;
const VOL_STEP = 0.05;
function fadeOut(audio) {
const intervalId = setInterval(() => {
@@ -14,7 +14,7 @@ function playAudio(newAudio) {
if (audio.volume <= 0) {
clearInterval(intervalId);
}
}, TIME_STEP)
}, TIME_STEP);
}
function fadeIn(audio) {
@@ -25,18 +25,17 @@ function playAudio(newAudio) {
if (audio.volume >= 1) {
clearInterval(intervalId);
}
}, TIME_STEP)
}, TIME_STEP);
}
// --------------
// --------------
// MAIN LOGIC
// MAIN LOGIC
// --------------
const prevAudio = currentAudio;
if (prevAudio === newAudio)
return;
if (prevAudio === newAudio) return;
if (prevAudio) {
fadeOut(prevAudio);
@@ -48,7 +47,7 @@ function playAudio(newAudio) {
// --------------
}
document.addEventListener("DOMContentLoaded", async function() {
document.addEventListener("DOMContentLoaded", async function () {
const $ = (id) => document.getElementById(id);
const classNames = ["rogue", "knight", "warrior"];
@@ -64,26 +63,28 @@ document.addEventListener("DOMContentLoaded", async function() {
audios[className] = audio;
}
await Promise.all(classNames.map(async (className) => {
const audio = audios[className];
try {
await audio.play();
audio.pause();
audio.currentTime = 0;
} catch (e) {
console.warn(`Autoplay failed for ${className}:`, e);
}
}));
await Promise.all(
classNames.map(async (className) => {
const audio = audios[className];
try {
await audio.play();
audio.pause();
audio.currentTime = 0;
} catch (e) {
console.warn(`Autoplay failed for ${className}:`, e);
}
}),
);
// Start all in perfect sync
classNames.forEach(className => {
classNames.forEach((className) => {
const audio = audios[className];
audio.currentTime = 0;
audio.play();
});
// Hook up buttons
classNames.forEach(className => {
classNames.forEach((className) => {
$(`btn-${className}`).onclick = () => {
$("currentClass").textContent = className;
playAudio(audios[className]);