X-Git-Url: https://git.auder.net/pieces/Cwda/c_white_queen.svg?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=79f089e1f3bcaf07eaee1b0ed50590d551b5cc96;hb=00eef1ca12534a43cb8e2e12155a46c00353eac2;hp=70a304b8711fcf287cf44ca4f98be0b3aa11ae33;hpb=107dc1bd5361e2538b1551bdcc37c1e90a444b83;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 70a304b8..79f089e1 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -121,13 +121,15 @@ export default { // TODO: is it OK to pass "computed" as properties? // Also, some are seemingly not recomputed when vr is initialized. showMoves: function() { - return this.game.score != "*" - ? "all" - : (!!this.vr ? this.vr.showMoves : "none"); + return ( + !!this.game.score && this.game.score != "*" + ? "all" + : (!!this.vr ? this.vr.showMoves : "none") + ); }, showTurn: function() { return ( - this.game.score == '*' && + !!this.game.score && this.game.score == '*' && !!this.vr && ( this.vr.showMoves != "all" || @@ -138,7 +140,7 @@ export default { }, canAnalyze: function() { return ( - this.game.mode != "analyze" && + !!this.game.mode && this.game.mode != "analyze" && !!this.vr && this.vr.canAnalyze ); }, @@ -147,8 +149,8 @@ export default { }, allowDownloadPGN: function() { return ( - this.game.score != "*" || - (!!this.vr && this.vr.showMoves == "all") + (!!this.game.score && this.game.score != "*") || + (!!this.vr && !this.vr.someHiddenMoves) ); } }, @@ -277,12 +279,18 @@ export default { }, toggleAnalyze: function() { // Freeze while choices are shown (and autoplay has priority) - if (this.$refs["board"].choices.length > 0 || this.autoplay) return; + if ( + this.inPlay || + this.$refs["board"].choices.length > 0 || + this.autoplay + ) { + return; + } if (this.mode != "analyze") { // Enter analyze mode: + this.mode = "analyze"; if (this.inMultimove) this.cancelCurrentMultimove(); this.gameMode = this.mode; //was not 'analyze' - this.mode = "analyze"; this.gameCursor = this.cursor; this.gameMoves = JSON.parse(JSON.stringify(this.moves)); document.getElementById("analyzeBtn").classList.add("active"); @@ -461,7 +469,7 @@ export default { // To play a received move, cursor must be at the end of the game: this.gotoEnd(); } - // The board may show some the possible moves: (TODO: bad solution) + // The board may show some possible moves: (TODO: bad solution) this.$refs["board"].resetCurrentAttempt(); const playSubmove = (smove) => { smove.notation = this.vr.getNotation(smove);