X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FSpartan.js;h=acab8ad36c95cd689c9d96cd91b930427d095152;hb=0760d861aac62ed093d95ab86f7226dc6b8d3a70;hp=5b0ccecb8a53c0686cdd1553b0b2a4511086212c;hpb=b90120e062404b8c656d4f38e66727df8a7e1c5a;p=vchess.git diff --git a/client/src/variants/Spartan.js b/client/src/variants/Spartan.js index 5b0ccecb..acab8ad3 100644 --- a/client/src/variants/Spartan.js +++ b/client/src/variants/Spartan.js @@ -12,8 +12,7 @@ export class SpartanRules extends ChessRules { } getPpath(b) { - if ([V.LIEUTENANT, V.GENERAL, V.CAPTAIN, V.WARLORD].includes(b[1])) - return "Spartan/" + b; + if (b[0] == 'b' && b[1] != 'k') return "Spartan/" + b; return b; } @@ -398,4 +397,26 @@ export class SpartanRules extends ChessRules { return 2; } + getNotation(move) { + const piece = this.getPiece(move.start.x, move.start.y); + if (piece == V.PAWN) { + // Pawn move + const finalSquare = V.CoordsToSquare(move.end); + let notation = ""; + if (move.vanish.length == 2) + // Capture + notation = "Px" + finalSquare; + else { + // No capture: indicate the initial square for potential ambiguity + const startSquare = V.CoordsToSquare(move.start); + notation = startSquare + finalSquare; + } + if (move.appear[0].p != V.PAWN) + // Promotion + notation += "=" + move.appear[0].p.toUpperCase(); + return notation; + } + return super.getNotation(move); //OK for all other pieces + } + };