X-Git-Url: https://git.auder.net/images/pieces/current/gitweb.js?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=0b6fa05545b00ca92cc653c7b26a470732d27f49;hb=cafe016679ee9c14bf7bf0a37104ade7f74aff89;hp=ac8b32366ca0e2784746caf5ae91a9672f7a8c1a;hpb=feaf1bf73fa8c6054e353585dee0b8a4fdcfbc4e;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index ac8b3236..0b6fa055 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -87,9 +87,10 @@ export default { }; }, watch: { - // game initial FEN changes when a new game starts - "game.fenStart": function() { - this.re_setVariables(); + // game initial FEN changes when a new game starts. + // NOTE: when game ID change on Game page, fenStart may be temporarily undefined + "game.fenStart": function(fenStart) { + if (!!fenStart) this.re_setVariables(); }, }, computed: { @@ -256,11 +257,7 @@ export default { }, showEndgameMsg: function(message) { this.endgameMessage = message; - let modalBox = document.getElementById("modalEog"); - modalBox.checked = true; - setTimeout(() => { - modalBox.checked = false; - }, 2000); + document.getElementById("modalEog").checked = true; }, // Animate an elementary move animateMove: function(move, callback) { @@ -371,20 +368,21 @@ export default { this.emitFenIfAnalyze(); } this.inMultimove = false; - const score = this.vr.getCurrentScore(); - if (score != "*") { - const message = getScoreMessage(score); - if (!navigate && this.game.mode != "analyze") - this.$emit("gameover", score, message); - else if (this.game.mode == "analyze") + if (!noemit) { + var score = this.vr.getCurrentScore(); + if (score != "*" && this.game.mode == "analyze") { + const message = getScoreMessage(score); // Just show score on screen (allow undo) this.showEndgameMsg(score + " . " + this.st.tr[message]); + } } if (!navigate && this.game.mode != "analyze") { const L = this.moves.length; if (!noemit) - // Post-processing (e.g. computer play) - this.$emit("newmove", this.moves[L-1]); + // Post-processing (e.g. computer play). + // NOTE: always emit the score, even in unfinished, + // to tell Game::processMove() that it's not a received move. + this.$emit("newmove", this.moves[L-1], { score: score }); else { this.inPlay = false; if (this.stackToPlay.length > 0)