diff options
author | Tor Andersson <tor@ccxvii.net> | 2023-09-13 19:15:57 +0200 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2024-04-13 19:52:15 +0200 |
commit | 21d21a8af3e62f3b4c7885913533ac3c8212b511 (patch) | |
tree | 7aa277e1f85aa04aec59dbe710b12d84fb4fe0bd | |
parent | 22ca5ba93c48880792144a2d685794d9e5b30114 (diff) | |
download | server-21d21a8af3e62f3b4c7885913533ac3c8212b511.tar.gz |
WIP noise
-rw-r--r-- | public/common/client.js | 18 | ||||
-rw-r--r-- | public/join.js | 16 |
2 files changed, 33 insertions, 1 deletions
diff --git a/public/common/client.js b/public/common/client.js index 367cbb0..ef1a0bc 100644 --- a/public/common/client.js +++ b/public/common/client.js @@ -118,6 +118,17 @@ function drag_element_with_mouse(element_sel, grabber_sel) { grabber.addEventListener("mousedown", md) } +/* NOTIFICATION SOUNDS */ + +let sound_effects = {} + +function play_sound(type) { + if (!sound_effects[type]) + sound_effects[type] = new Audio("/sounds/" + type + ".mp3") + sound_effects[type].currentTime = 0 + sound_effects[type].play() +} + /* TITLE BLINKER */ let blink_title = document.title @@ -246,6 +257,7 @@ function fetch_chat() { function update_chat_new() { let button = document.getElementById("chat_button") start_blinker("NEW MESSAGE") + play_sound("new_message") if (chat && chat.is_visible) fetch_chat() else @@ -362,6 +374,8 @@ function toggle_notepad() { /* REMATCH & REPLAY BUTTONS WHEN GAME OVER */ function on_game_over() { + play_sound("game_over") + remove_resign_menu() add_icon_button(1, "replay_button", "sherlock-holmes-mirror", @@ -590,8 +604,10 @@ function on_update_header() { document.querySelector("header").classList.remove("replay") if (view.actions) { document.querySelector("header").classList.add("your_turn") - if (!is_your_turn || old_active !== view.active) + if (!is_your_turn || old_active !== view.active) { start_blinker("YOUR TURN") + play_sound("your_turn") + } is_your_turn = true } else { document.querySelector("header").classList.remove("your_turn") diff --git a/public/join.js b/public/join.js index f3279ad..8298837 100644 --- a/public/join.js +++ b/public/join.js @@ -61,11 +61,21 @@ function hide_invite() { document.getElementById("invite").close() } +let sound_effects = {} + +function play_sound(type) { + if (!sound_effects[type]) + sound_effects[type] = new Audio("/sounds/" + type + ".mp3") + sound_effects[type].currentTime = 0 + sound_effects[type].play() +} + let blink_title = document.title let blink_timer = 0 function start_blinker(message) { let tick = false + if (blink_timer) stop_blinker() if (!document.hasFocus()) { @@ -96,12 +106,18 @@ function start_event_source() { }) evtsrc.addEventListener("ready", function (evt) { console.log("READY:", evt.data) + let old_ready = ready ready = JSON.parse(evt.data) + if (ready && !old_ready) + play_sound("your_turn") update() }) evtsrc.addEventListener("game", function (evt) { console.log("GAME:", evt.data) + let old_status = game.status game = JSON.parse(evt.data) + if (old_status === 0 && game.status === 1) + play_sound("your_turn") if (game.status > 1) { console.log("CLOSED EVENT SOURCE") clearInterval(timer) |