Now in Dynamo, only getPotentialMoves to write
[vchess.git] / client / src / components / BaseGame.vue
index fd26d87..dd15f13 100644 (file)
@@ -409,6 +409,8 @@ export default {
         smove.unambiguous = V.GetUnambiguousNotation(smove);
         this.vr.play(smove);
         this.lastMove = smove;
+        // Is opponent (or me) in check?
+        this.incheck = this.vr.getCheckSquares(this.vr.turn);
         if (!this.inMultimove) {
           // Condition is "!navigate" but we mean "!this.autoplay"
           if (!navigate) {
@@ -423,8 +425,7 @@ export default {
           const L = this.moves.length;
           if (!Array.isArray(this.moves[L-1]))
             this.$set(this.moves, L-1, [this.moves[L-1], smove]);
-          else
-            this.$set(this.moves, L-1, this.moves.concat([smove]));
+          else this.moves[L-1].push(smove);
         }
       };
       const playMove = () => {
@@ -471,8 +472,6 @@ export default {
           if (!smove.fen)
             // NOTE: only FEN of last sub-move is required (=> setting it here)
             smove.fen = this.vr.getFen();
-          // Is opponent in check?
-          this.incheck = this.vr.getCheckSquares(this.vr.turn);
           this.emitFenIfAnalyze();
           this.inMultimove = false;
           this.score = computeScore();
@@ -533,6 +532,8 @@ export default {
       for (let i=move.length -1; i >= 0; i--) this.vr.undo(move[i]);
       this.moves.pop();
       this.cursor--;
+      // The board may still show the possible moves: (TODO: bad solution)
+      this.$refs["board"].resetCurrentAttempt();
       this.inMultimove = false;
     },
     cancelLastMove: function() {