X-Git-Url: https://git.auder.net/?p=xogo.git;a=blobdiff_plain;f=variants%2FBenedict%2Fclass.js;h=68667e132296272b8351cf5e13b5366d4b7c0733;hp=88609d7b719b5a172710b0345c439a7be4405348;hb=082e639a3ed0a38a91fbe8d0e8bfa7b262b5227d;hpb=9db5050a189571c9f3018d4d25c7d304ca1a22dc diff --git a/variants/Benedict/class.js b/variants/Benedict/class.js index 88609d7..68667e1 100644 --- a/variants/Benedict/class.js +++ b/variants/Benedict/class.js @@ -22,6 +22,10 @@ export default class BenedictRules extends ChessRules { return false; } + canTake() { + return false; + } + // Find potential captures from a square // follow steps from x,y until something is met. findAttacks([x, y]) { @@ -52,20 +56,12 @@ export default class BenedictRules extends ChessRules { } postProcessPotentialMoves(moves) { - if (moves.length == 0) - return moves; - const color = this.getColor(moves[0].start.x, moves[0].start.y); - const oppCol = C.GetOppCol(color); - // Remove captures (NOTE: altering canTake has side effects, - // Benedict is still based on captures even if they are forbidden): - moves = super.postProcessPotentialMoves(moves) - .filter(m => this.board[m.end.x][m.end.y] == ""); moves.forEach(m => { super.playOnBoard(m); let attacks = this.findAttacks([m.end.x, m.end.y]) if (this.options["zen"]) { let endSquares = {}; - super.findCapturesOn([m.end.x, m.end.y], true).forEach(c => { + super.findCapturesOn([m.end.x, m.end.y], {zen: true}).forEach(c => { endSquares[C.CoordsToSquare(c.end)] = true; }); Array.prototype.push.apply(attacks, Object.keys(endSquares)); @@ -115,7 +111,7 @@ export default class BenedictRules extends ChessRules { } // A king under (regular) check flips color, and the game is over. - underCheck(square, color) { + underCheck() { return false; }