X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FKnightpawns.js;h=bf3e773308adef49340344f73d04f6fb9776caa9;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=6b7415ccba5a179bb861440d1c0f7b84e6326215;hpb=737a5dafb39740ebe304b8d0a82df85070def571;p=vchess.git diff --git a/client/src/variants/Knightpawns.js b/client/src/variants/Knightpawns.js index 6b7415cc..bf3e7733 100644 --- a/client/src/variants/Knightpawns.js +++ b/client/src/variants/Knightpawns.js @@ -1,6 +1,11 @@ import { ChessRules } from "@/base_rules"; export class KnightpawnsRules extends ChessRules { + + static get Options() { + return null; + } + static get PawnSpecs() { return Object.assign( {}, @@ -34,14 +39,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() {} + };