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 = "";
}
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);
}
tablePlayers[currentPlayer].classList.remove("current-player");
}
- currentTilePlayed = {};
currentPlayer = player;
refreshCurrentPlayer();
}
refreshCurrentPlayer();
}
+ function handleLastPlayer(data) {
+ if (data.player) {
+ if (lastPlayer !== data.player) {
+ currentTilePlayed = {};
+ }
+ lastPlayer = data.player;
+ }
+ }
+
function applyAction(data) {
switch (data.action) {
case "pushBag": //TODO
sendCmds([{cmd: "hello"}]);
lastPlayer = null;
+ currentTilePlayed = {};
break;
case "moveLetter":
+ handleLastPlayer(data);
+
if (data.from === "board") {
setCell(data.indexFrom, "");
} else if (data.from === "rack") {
}
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);
}
return;
}
+ currentTilePlayed = {};
+
sendCmds([{
cmd: "score",
player: name,