A few fixes (for updateCastleFlags()) + add Madhouse and Pocketknight variants
[vchess.git] / client / src / components / BaseGame.vue
index d60a16f..87d18ab 100644 (file)
@@ -87,6 +87,7 @@ export default {
       endgameMessage: "",
       orientation: "w",
       mode: "",
+      gameMode: "",
       score: "*", //'*' means 'unfinished'
       moves: [],
       cursor: -1, //index of the move just played
@@ -141,7 +142,7 @@ export default {
     },
     canAnalyze: function() {
       return (
-        !!this.game.mode && this.game.mode != "analyze" &&
+        (!this.game.mode || this.game.mode != "analyze") &&
         !!this.vr && this.vr.canAnalyze
       );
     },
@@ -251,12 +252,10 @@ export default {
             const checkSquares = this.vr.getCheckSquares();
             if (checkSquares.length > 0) m.notation += "+";
             if (idxM == Lm - 1) m.fen = this.vr.getFen();
-            if (idx == L - 1 && idxM == Lm - 1) {
-              this.incheck = checkSquares;
-              this.score = this.vr.getCurrentScore();
-              if (["1-0", "0-1"].includes(this.score)) m.notation += "#";
-            }
+            if (idx == L - 1 && idxM == Lm - 1) this.incheck = checkSquares;
           });
+          this.score = this.vr.getCurrentScore();
+          if (["1-0", "0-1"].includes(this.score)) m.notation += "#";
         });
       }
       if (firstMoveColor == "b") {
@@ -298,7 +297,7 @@ export default {
       }
       else {
         // Exit analyze mode:
-        this.mode = this.gameMode ;
+        this.mode = this.gameMode;
         this.cursor = this.gameCursor;
         this.moves = this.gameMoves;
         let fen = this.game.fenStart;
@@ -464,11 +463,11 @@ export default {
           this.stackToPlay.unshift(move);
           return;
         }
-        this.inPlay = true;
         if (this.mode == "analyze") this.toggleAnalyze();
         if (this.cursor < this.moves.length - 1)
           // To play a received move, cursor must be at the end of the game:
           this.gotoEnd();
+        this.inPlay = true;
       }
       // The board may show some possible moves: (TODO: bad solution)
       this.$refs["board"].resetCurrentAttempt();