X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=e0bd9376740b68b2b8de5873b1bcac26122c7600;hb=92b82defacccf9c4d3755924a71fcb584002ccc6;hp=254741d53964848b10bbf12e265a872984ee6d2a;hpb=967a2686ea801d4b33129d78087651451ef1904b;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 254741d5..e0bd9376 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -16,6 +16,7 @@ button(@click="flip") Flip button(@click="gotoBegin") GotoBegin button(@click="gotoEnd") GotoEnd + #messageDiv.section-content {{ curMoveMessage() }} #fenDiv.section-content(v-if="showFen && !!vr") p#fenString.text-center {{ vr.getFen() }} #pgnDiv.section-content @@ -85,18 +86,25 @@ export default { this.moves = JSON.parse(JSON.stringify(this.game.moves || [])); // Post-processing: decorate each move with color + current FEN: // (to be able to jump to any position quickly) + let vr_tmp = new V(this.game.fenStart); //vr is already at end of game this.moves.forEach(move => { // NOTE: this is doing manually what play() function below achieve, // but in a lighter "fast-forward" way - move.color = this.vr.turn; - move.notation = this.vr.getNotation(move); - this.vr.play(move); - move.fen = this.vr.getFen(); + move.color = vr_tmp.turn; + move.notation = vr_tmp.getNotation(move); + vr_tmp.play(move); + move.fen = vr_tmp.getFen(); }); const L = this.moves.length; this.cursor = L-1; this.lastMove = (L > 0 ? this.moves[L-1] : null); }, + // For corr games, potential message with each move sent + curMoveMessage: function() { + if (this.cursor < 0) + return ""; + return this.game.moves[this.cursor].message || ""; + }, download: function() { const content = this.getPgn(); // Prepare and trigger download link @@ -234,10 +242,12 @@ export default { this.moves = this.moves.slice(0,this.cursor).concat([move]); } } - // Is opponent in check? (TODO: generalize, find all check squares) + if (!this.analyze) + this.$emit("newmove", move); //post-processing (e.g. computer play) + // Is opponent in check? this.incheck = this.vr.getCheckSquares(this.vr.turn); const score = this.vr.getCurrentScore(); - if (score != "*") //TODO: generalize score for 3 or 4 players + if (score != "*") { if (!this.analyze) this.endGame(score); @@ -248,8 +258,6 @@ export default { this.showEndgameMsg(score + " . " + message); } } - if (!this.analyze) - this.$emit("newmove", move); //post-processing (e.g. computer play) }, undo: function(move) { const navigate = !move;