From dce792f64ab0a311d348a6eb05c440dd1b170bd3 Mon Sep 17 00:00:00 2001 From: Benjamin Auder <benjamin.auder@somewhere> Date: Mon, 2 Dec 2019 17:36:04 +0100 Subject: [PATCH] Fix 1st move clocks don't move + add message to indicate that corr game started (TODO: debug) --- client/src/views/Game.vue | 17 +++++++++++++---- client/src/views/Hall.vue | 12 +++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/client/src/views/Game.vue b/client/src/views/Game.vue index 2fdd2238..f00dc92b 100644 --- a/client/src/views/Game.vue +++ b/client/src/views/Game.vue @@ -79,6 +79,12 @@ export default { } }, "game.clocks": function(newState) { + if (this.game.moves.length < 2) + { + // 1st move not completed yet: freeze time + this.virtualClocks = newState.map(s => ppt(s)); + return; + } const currentTurn = this.vr.turn; const colorIdx = ["w","b"].indexOf(currentTurn); let countdown = newState[colorIdx] - @@ -380,12 +386,15 @@ export default { return obj; }, {}); // Send move ("newmove" event) to opponent(s) (if ours) - let addTime = undefined; + let addTime = 0; if (move.color == this.game.mycolor) { - const elapsed = Date.now() - this.game.initime[colorIdx]; - // elapsed time is measured in milliseconds - addTime = this.game.increment - elapsed/1000; + if (this.game.moves.length >= 2) //after first move + { + const elapsed = Date.now() - this.game.initime[colorIdx]; + // elapsed time is measured in milliseconds + addTime = this.game.increment - elapsed/1000; + } this.st.conn.send(JSON.stringify({ code: "newmove", target: this.game.oppid, diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index c22c1e17..dadb597f 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -1,5 +1,11 @@ <template lang="pug"> main + input#modalInfo.modal(type="checkbox") + div(role="dialog" aria-labelledby="infoMessage") + .card.smallpad.small-modal.text-center + label.modal-close(for="modalInfo") + h3#infoMessage.section + p New game started: #[a(href="/game/" + {{ newGameId }})] input#modalNewgame.modal(type="checkbox") div(role="dialog" aria-labelledby="titleFenedit") .card.smallpad @@ -85,6 +91,7 @@ export default { games: [], challenges: [], people: [], //(all) online players + newGameId: 0, newchallenge: { fen: "", vid: 0, @@ -376,7 +383,10 @@ export default { this.startNewGame(data.gameInfo); else { - // TODO: notify with game link but do not redirect + this.newGameId = data.gameInfo.gameId; + let modalBox = document.getElementById("modalInfo"); + modalBox.checked = true; + setTimeout(() => { modalBox.checked = false; }, 2500); } break; } -- 2.44.0