Riskless/static/js/dom.js

55 lines
1.6 KiB
JavaScript
Raw Normal View History

2023-01-31 12:34:13 +00:00
function updatePlayerDom() {
2023-01-29 16:47:37 +00:00
let list = document.querySelector("#playerList");
list.replaceChildren();
for (let playerId of Object.keys(players).sort()) {
let player = players[playerId];
let statusSpan = document.createElement("div");
statusSpan.classList.add("status-span");
2023-02-06 11:04:37 +00:00
if (gameState === WAITING) {
if (player.ready) {
statusSpan.textContent = "R";
statusSpan.classList.add("ready");
} else {
statusSpan.textContent = "N";
statusSpan.classList.add("not-ready");
}
} else {
if (player.isPlaying) {
statusSpan.textContent = "P";
}
}
let idSpan = document.createElement("span");
if (playerId === ID) {
idSpan.textContent = `${playerId} (you)`;
} else {
idSpan.textContent = playerId;
2023-01-29 16:47:37 +00:00
}
let newDom = document.createElement("li");
newDom.appendChild(statusSpan);
newDom.appendChild(idSpan);
list.appendChild(newDom);
2023-01-29 16:47:37 +00:00
}
}
document.addEventListener("DOMContentLoaded", () => {
document.querySelector("#ready-button").addEventListener("click", async (ev) => {
let nowReady = ev.target.textContent === "Not ready";
us.ready = nowReady;
ev.target.classList.toggle("active");
ev.target.textContent = nowReady ? "Ready" : "Not ready";
socket.emit("message", Packet.createSetReady(nowReady));
updatePlayerDom();
if (allPlayersReady()) {
await startPregame();
}
});
});