//MoveList,
},
// "vr": VariantRules object, describing the game state + rules
- props: ["vname","analyze","vr","fenStart","players","mycolor"],
+ // fenStart, players, mycolor
+ props: ["vname","analyze","vr","gameInfo"],
data: function() {
return {
st: store.state,
// NOTE: all following variables must be reset at the beginning of a game
endgameMessage: "",
orientation: "w",
+ // TODO: score and moves could be also in gameInfo (when resuming)
score: "*", //'*' means 'unfinished'
moves: [],
cursor: -1, //index of the move just played
fenStart: function() {
// Reset all variables
this.endgameMessage = "";
- this.orientation = this.mycolor;
+ this.orientation = this.gameInfo.mycolor || "w";
this.score = "*";
this.moves = [];
this.cursor = -1;
this.lastMove = null;
},
+ analyze: function() {
+ if (this.analyze)
+ {
+ // Switched to analyze mode: game is over
+ this.endGame("*");
+ }
+ },
},
computed: {
showMoves: function() {
pgn += '[Site "vchess.club"]\n';
pgn += '[Variant "' + this.vname + '"]\n';
pgn += '[Date "' + getDate(new Date()) + '"]\n';
- pgn += '[White "' + this.players[0] + '"]\n';
- pgn += '[Black "' + this.players[1] + '"]\n';
+ pgn += '[White "' + this.game.players[0] + '"]\n';
+ pgn += '[Black "' + this.game.players[1] + '"]\n';
pgn += '[Fen "' + this.fenStart + '"]\n';
pgn += '[Result "' + this.score + '"]\n\n';
let counter = 1;
},
showScoreMsg: function(score) {
this.setEndgameMessage(score);
- let modalBox = document.getElementById("modal-eog");
+ let modalBox = document.getElementById("modalEog");
modalBox.checked = true;
setTimeout(() => { modalBox.checked = false; }, 2000);
},
else //just show score on screen (allow undo)
this.showScoreMsg(score);
}
- this.$emit("newmove", move); //post-processing (e.g. computer play)
+ if (!this.analyze)
+ this.$emit("newmove", move); //post-processing (e.g. computer play)
},
undo: function(move) {
let navigate = !move;
if (this.st.settings.sound == 2)
new Audio("/sounds/undo.mp3").play().catch(err => {});
this.incheck = this.vr.getCheckSquares(this.vr.turn);
- if (this.analyze) //TODO: can this happen?
+ if (!navigate)
this.moves.pop();
},
gotoMove: function(index) {