summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2023-09-13 19:15:57 +0200
committerTor Andersson <tor@ccxvii.net>2024-04-13 19:52:15 +0200
commit21d21a8af3e62f3b4c7885913533ac3c8212b511 (patch)
tree7aa277e1f85aa04aec59dbe710b12d84fb4fe0bd
parent22ca5ba93c48880792144a2d685794d9e5b30114 (diff)
downloadserver-21d21a8af3e62f3b4c7885913533ac3c8212b511.tar.gz
WIP noise
-rw-r--r--public/common/client.js18
-rw-r--r--public/join.js16
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)