From e3b4fc0b7eed475508b7307c8102734e28cf814a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Jakse?= Date: Sun, 22 Nov 2020 22:20:43 +0100 Subject: [PATCH] who messed up? --- public/alert.js | 2 +- public/trivabble.js | 46 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/public/alert.js b/public/alert.js index b831465..e4901ce 100644 --- a/public/alert.js +++ b/public/alert.js @@ -220,7 +220,7 @@ for (const key of options.choices) { [].push.call(alertSelect.options, new Option(key, key)); } - alertSelect.value = defaultValue; + alertSelect.value = alertInput.value = defaultValue; divAlertContent.textContent = msg; divAlertInput.style.display = ""; diff --git a/public/trivabble.js b/public/trivabble.js index 0914a0c..7e0ede4 100644 --- a/public/trivabble.js +++ b/public/trivabble.js @@ -723,6 +723,14 @@ } function setCell(index, letter, highlight) { + if (lastPlayer) { + if (letter) { + currentTilePlayed[index] = letter; + } else { + delete currentTilePlayed[index]; + } + } + setTileParent(boardCells[index].getElementsByClassName("tile-placeholder")[0], letter, highlight); } @@ -914,7 +922,6 @@ tablePlayers[currentPlayer].classList.remove("current-player"); } - currentTilePlayed = {}; currentPlayer = player; refreshCurrentPlayer(); } @@ -1049,6 +1056,15 @@ refreshCurrentPlayer(); } + function handleLastPlayer(data) { + if (data.player) { + if (lastPlayer !== data.player) { + currentTilePlayed = {}; + } + lastPlayer = data.player; + } + } + function applyAction(data) { switch (data.action) { case "pushBag": //TODO @@ -1065,9 +1081,12 @@ sendCmds([{cmd: "hello"}]); lastPlayer = null; + currentTilePlayed = {}; break; case "moveLetter": + handleLastPlayer(data); + if (data.from === "board") { setCell(data.indexFrom, ""); } else if (data.from === "rack") { @@ -1075,27 +1094,32 @@ } if (data.to === "board") { - setCell(data.indexTo, data.letter, Object.prototype.hasOwnProperty.call(data, "player") && data.player !== getSetting("PlayerName")); + setCell( + data.indexTo, + data.letter, + data.player && data.player !== getSetting("PlayerName") + ); } else if (data.to === "rack") { setRackCell(data.indexTo, data.letter); } - if (data.player) { - lastPlayer = data.player; - } - break; + case "setCell": - setCell(data.indexTo, data.letter, Object.prototype.hasOwnProperty.call(data, "player") && data.player !== getSetting("PlayerName")); + handleLastPlayer(data); - if (data.player) { - lastPlayer = data.player; - } + setCell( + data.indexTo, + data.letter, + data.player && data.player !== getSetting("PlayerName") + ); if ((data.letter !== "") && (currentTilePlayed[data.indexTo] === "-")) { currentTilePlayed[data.indexTo] = data.letter; } + break; + case "setRackCell": setRackCell(data.indexTo, data.letter); } @@ -1906,6 +1930,8 @@ return; } + currentTilePlayed = {}; + sendCmds([{ cmd: "score", player: name, -- 2.30.2