X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FZen.js;h=bc51e6ad364f93011e412abaf858a107d33c78ad;hp=a6067f9c697c4e4c1de5eddad523a3206f3d6922;hb=e9b736ee3e72e2ddb9bf4da0c0f1e22a70f7448f;hpb=78d64531113d4b5045ff588dd43f301a332ebae8 diff --git a/client/src/variants/Zen.js b/client/src/variants/Zen.js index a6067f9c..bc51e6ad 100644 --- a/client/src/variants/Zen.js +++ b/client/src/variants/Zen.js @@ -88,45 +88,14 @@ export const VariantRules = class ZenRules extends ChessRules { return moves; } - getPotentialPawnMoves([x, y]) { - const color = this.getColor(x, y); - let moves = []; - const sizeY = V.size.y; - const shift = color == "w" ? -1 : 1; - const startRank = color == "w" ? sizeY - 2 : 1; - const firstRank = color == "w" ? sizeY - 1 : 0; - const lastRank = color == "w" ? 0 : sizeY - 1; - - if (x + shift != lastRank) { - // Normal moves - if (this.board[x + shift][y] == V.EMPTY) { - moves.push(this.getBasicMove([x, y], [x + shift, y])); - if ( - [startRank, firstRank].includes(x) && - this.board[x + 2 * shift][y] == V.EMPTY - ) { - // Two squares jump - moves.push(this.getBasicMove([x, y], [x + 2 * shift, y])); - } - } - } - else { - // Promotion - let promotionPieces = [V.ROOK, V.KNIGHT, V.BISHOP, V.QUEEN]; - promotionPieces.forEach(p => { - // Normal move - if (this.board[x + shift][y] == V.EMPTY) - moves.push( - this.getBasicMove([x, y], [x + shift, y], { c: color, p: p }) - ); - }); - } - - // No en passant here + canTake(sq1, sq2) { + return false; //captures handled separately + } + getPotentialPawnMoves([x, y]) { + let moves = super.getPotentialPawnMoves([x, y]); // Add "zen" captures Array.prototype.push.apply(moves, this.findCaptures([x, y])); - return moves; }