X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=c3387e82b6b545b91be9a0dd8746ac1abbb13fc2;hb=49dad26138d3dee0cacbb94ad8d3d3eff12c477a;hp=51d087a34b5ce8834a5de6da53725a56332bc6e4;hpb=616561273f216debfeab7f5fc532d0b0a8bc8e2d;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 51d087a3..c3387e82 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -54,6 +54,7 @@ div#baseGame @showrules="showRules" @analyze="analyzePosition" @goto-move="gotoMove" + @reset-arrows="resetArrows" ) .clearer @@ -186,6 +187,10 @@ export default { if (e.deltaY < 0) this.undo(); else if (e.deltaY > 0) this.play(); }, + resetArrows: function() { + // TODO: make arrows scale with board, and remove this + this.$refs["board"].cancelResetArrows(); + }, showRules: function() { //this.$router.push("/variants/" + this.game.vname); window.open("#/variants/" + this.game.vname, "_blank"); //better @@ -228,10 +233,8 @@ export default { this.incheck = this.vr.getCheckSquares(this.vr.turn); const score = this.vr.getCurrentScore(); if (L > 0 && this.moves[L - 1].notation != "...") { - if (["1-0","0-1"].includes(score)) - this.moves[L - 1].notation += "#"; - else if (this.vr.getCheckSquares(this.vr.turn).length > 0) - this.moves[L - 1].notation += "+"; + if (["1-0","0-1"].includes(score)) this.moves[L - 1].notation += "#"; + else if (this.incheck.length > 0) this.moves[L - 1].notation += "+"; } }, positionCursorTo: function(index) { @@ -252,11 +255,8 @@ export default { this.game.vname + "/?fen=" + this.vr.getFen().replace(/ /g, "_"); - if (this.game.mycolor) - newUrl += "&side=" + this.game.mycolor; - // Open in same tab in live games (against cheating) - if (this.game.type == "live") this.$router.push(newUrl); - else window.open("#" + newUrl); + if (!!this.game.mycolor) newUrl += "&side=" + this.game.mycolor; + window.open("#" + newUrl); }, download: function() { const content = this.getPgn(); @@ -281,15 +281,22 @@ export default { pgn += '\n'; for (let i = 0; i < this.moves.length; i += 2) { if (i > 0) pgn += " "; - pgn += (i/2+1) + "." + getFullNotation(this.moves[i]); + // Adjust dots notation for a better display: + let fullNotation = getFullNotation(this.moves[i]); + if (fullNotation == "...") fullNotation = ".."; + pgn += (i/2+1) + "." + fullNotation; if (i+1 < this.moves.length) pgn += " " + getFullNotation(this.moves[i+1]); } pgn += "\n\n"; for (let i = 0; i < this.moves.length; i += 2) { - pgn += getFullNotation(this.moves[i], "unambiguous") + "\n"; - if (i+1 < this.moves.length) - pgn += getFullNotation(this.moves[i+1], "unambiguous") + "\n"; + const moveNumber = i / 2 + 1; + pgn += moveNumber + "." + i + " " + + getFullNotation(this.moves[i], "unambiguous") + "\n"; + if (i+1 < this.moves.length) { + pgn += moveNumber + "." + (i+1) + " " + + getFullNotation(this.moves[i+1], "unambiguous") + "\n"; + } } return pgn; }, @@ -434,10 +441,8 @@ export default { const computeScore = () => { const score = this.vr.getCurrentScore(); if (!navigate) { - if (["1-0","0-1"].includes(score)) - this.lastMove.notation += "#"; - else if (this.vr.getCheckSquares(this.vr.turn).length > 0) - this.lastMove.notation += "+"; + if (["1-0","0-1"].includes(score)) this.lastMove.notation += "#"; + else if (this.incheck.length > 0) this.lastMove.notation += "+"; } if (score != "*" && this.game.mode == "analyze") { const message = getScoreMessage(score);