X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FKnightpawns.js;h=c8c1ceaa395a1e99b1a7c78f99cef9587351c852;hb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;hp=6b7415ccba5a179bb861440d1c0f7b84e6326215;hpb=737a5dafb39740ebe304b8d0a82df85070def571;p=vchess.git diff --git a/client/src/variants/Knightpawns.js b/client/src/variants/Knightpawns.js index 6b7415cc..c8c1ceaa 100644 --- a/client/src/variants/Knightpawns.js +++ b/client/src/variants/Knightpawns.js @@ -1,6 +1,7 @@ import { ChessRules } from "@/base_rules"; export class KnightpawnsRules extends ChessRules { + static get PawnSpecs() { return Object.assign( {}, @@ -34,14 +35,19 @@ export class KnightpawnsRules extends ChessRules { if (this.board.every(b => b.every(cell => !cell || cell[0] != c))) return (c == 'w' ? "0-1" : "1-0"); } - // Did a black pawn promote? Can the rook take it? + // Did a black pawn promote? Can the knight take it? const qIdx = this.board[7].findIndex(cell => cell[1] == V.QUEEN); - if (qIdx >= 0 && !super.isAttackedByKnight([7, qIdx], 'w')) + if ( + qIdx >= 0 && + (this.turn == 'b' || !super.isAttackedByKnight([7, qIdx], 'w')) + ) { return "0-1"; + } if (!this.atLeastOneMove()) return "1/2"; return "*"; } postPlay() {} postUndo() {} + };