return this.st.tr[
(this.vr.turn == 'w' ? "White" : "Black") + " to move"];
}
- // Cannot flip: racing king or circular chess
+ // Cannot flip (racing king or circular chess), or Monochrome
return (
this.vr.movesCount == 0 && this.game.mycolor == "w"
? this.st.tr["It's your turn!"]
showTurn: function() {
return (
this.game.score == '*' &&
- !!this.vr && (this.vr.showMoves != "all" || !this.vr.canFlip)
+ !!this.vr &&
+ (
+ this.vr.showMoves != "all" ||
+ !this.vr.canFlip ||
+ this.vr.showFirstTurn
+ )
);
},
canAnalyze: function() {
this.moves = JSON.parse(JSON.stringify(game.moves || []));
// Post-processing: decorate each move with notation and FEN
this.vr = new V(game.fenStart);
+ this.inMultimove = false; //in case of
+ this.$refs["board"].resetCurrentAttempt(); //also in case of
+ let analyseBtn = document.getElementById("analyzeBtn");
+ if (!!analyseBtn) analyseBtn.classList.remove("active");
const parsedFen = V.ParseFen(game.fenStart);
const firstMoveColor = parsedFen.turn;
this.firstMoveNumber = Math.floor(parsedFen.movesCount / 2) + 1;
else this.lastMove = null;
},
toggleAnalyze: function() {
- // Autoplay has priority:
- if (this.autoplay) return;
+ // Freeze while choices are shown (and autoplay has priority)
+ if (this.$refs["board"].choices.length > 0 || this.autoplay) return;
if (this.mode != "analyze") {
// Enter analyze mode:
if (this.inMultimove) this.cancelCurrentMultimove();
}
this.vr = new V(fen);
this.inMultimove = false; //in case of
+ this.$refs["board"].resetCurrentAttempt(); //also in case of
this.incheck = this.vr.getCheckSquares();
if (this.cursor >= 0) this.lastMove = this.moves[this.cursor];
else this.lastMove = null;
if (this.inMultimove) {
this.cancelCurrentMultimove();
this.incheck = this.vr.getCheckSquares();
+ if (this.cursor >= 0) this.lastMove = this.moves[this.cursor];
+ else this.lastMove = null;
} else {
if (!move) {
const minCursor =