From b86eedd3f259b13ceef28aa385062d8b68edf528 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Jakse?= Date: Fri, 1 May 2020 19:20:03 +0200 Subject: [PATCH] Client: always set the rack when the rack was changed --- trivabble.js | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/trivabble.js b/trivabble.js index 3a75fc7..c1d71c6 100644 --- a/trivabble.js +++ b/trivabble.js @@ -179,6 +179,7 @@ let boardBCR = null; let bagBCR = null; let moveCMD = null; + let rackChanged = false; function getLetter(l) { const tile = l.getElementsByClassName("tile")[0]; @@ -241,22 +242,26 @@ }; if (moveCMD.to === moveCMD.from) { - if (moveCMD.indexTo !== moveCMD.indexFrom) { - sendCmds([ - (moveCMD.from === "rack") - ? moveRack - : moveCMD - ]); + if (moveCMD.indexTo === moveCMD.indexFrom) { + if (rackChanged) { + sendCmds([moveRack]); + } + } else if (moveCMD.from === "rack") { + sendCmds([moveRack]); + } else if (rackChanged) { + sendCmds([moveCMD, moveRack]); + } else { + sendCmds([moveCMD]); } } else if (moveCMD.to === "rack") { moveRack.rack[moveCMD.indexTo] = ""; sendCmds([moveRack, moveCMD]); } else { - // setting the rack is not necessary in most cases, but the - // player could have moved some letters of the rack when moving - // a tile to the board so let's set the rack in any case - // FIXME this could be improved - sendCmds([moveCMD, moveRack]); + if (rackChanged) { + sendCmds([moveCMD, moveRack]); + } else { + sendCmds([moveCMD]); + } } } @@ -336,6 +341,7 @@ if (!tile) { let j = i; while (j > index) { + rackChanged = true; playerLetters[j].appendChild( playerLetters[j - 1].getElementsByClassName("tile")[0] ); @@ -406,6 +412,7 @@ loadAudio(); + rackChanged = false; movingTile = e.currentTarget; tileInitMouseCoords = e; -- 2.30.2