X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=variants%2FBenedict%2Fclass.js;h=bbaf8e9522c2b553b14e06a54264d719a37c1041;hb=535c464b0543306a0ea36c66f07dcfad7a951efc;hp=88609d7b719b5a172710b0345c439a7be4405348;hpb=6997e386b546c650870d64176029aff55d13edb7;p=xogo.git diff --git a/variants/Benedict/class.js b/variants/Benedict/class.js index 88609d7..bbaf8e9 100644 --- a/variants/Benedict/class.js +++ b/variants/Benedict/class.js @@ -6,7 +6,6 @@ export default class BenedictRules extends ChessRules { static get Options() { return { select: C.Options.select, - check: [], styles: [ "balance", "cylinder", @@ -22,6 +21,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 +55,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 +110,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; }