Files
Web-NibblePoker/static/resources/NibblePoker/js/nibblepoker-contributors.mjs
Herwin Bozet 0a02a1e56d Revamped site's common scripts, Many pages slightly broken
Update commons.yml, excel-password-remover.yml, and 31 more files...
2025-03-01 07:40:47 +01:00

65 lines
1.6 KiB
JavaScript

{
const rootSoundDirectory = "/resources/NibblePoker/sounds/"
class CatData {
constructor(meows, purrs) {
this.meowSounds = meows;
this.purrSounds = purrs;
}
}
const kittyData = {
"kitty-kiki": new CatData(
["meow-test-01.ogg"],
["kiki-ronron-01.ogg"]
),
"kitty-maki": new CatData(
["meow-test-02.ogg"],
[]
),
}
document.addEventListener("DOMContentLoaded", () => {
for(const [eId, catData] of Object.entries(kittyData)) {
const eHovered = document.getElementById(eId);
const audioPurr = (catData.purrSounds.length > 0) ? new Audio() : null;
if(eHovered !== null) {
eHovered.addEventListener('mouseover', function() {
// Playing the meow sound
if(catData.meowSounds.length > 0) {
const meowIndex = Math.floor(Math.random() * catData.meowSounds.length);
const audioMeow = new Audio(rootSoundDirectory + catData.meowSounds[meowIndex]);
audioMeow.volume = 0.1;
try {
audioMeow.play();
} catch(DOMException) {
}
}
// Playing the purr sound
if(audioPurr !== null) {
const purrIndex = Math.floor(Math.random() * catData.purrSounds.length);
audioPurr.src = rootSoundDirectory + catData.purrSounds[purrIndex];
audioPurr.volume = 0.075;
try {
audioPurr.load();
audioPurr.loop = true;
audioPurr.play();
} catch(DOMException) {
}
}
});
eHovered.addEventListener('mouseout', function() {
// Stopping the purring sound
if(audioPurr !== null) {
audioPurr.pause();
}
});
}
}
});
}