X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMakruk.js;h=b721273b501dc56cf680614b2a5718f261ed3029;hb=4313762da3237b04f204e121a20cab3ba7bb5dd2;hp=556170253f0c6230d0a83e1952b565da8942970c;hpb=ded43c88fad60fd8f9bb46aabd67f3f2092f65f3;p=vchess.git diff --git a/client/src/variants/Makruk.js b/client/src/variants/Makruk.js index 55617025..b721273b 100644 --- a/client/src/variants/Makruk.js +++ b/client/src/variants/Makruk.js @@ -36,13 +36,13 @@ export class MakrukRules extends ChessRules { return 'f'; } - static GenRandInitFen(randomness) { - if (randomness == 0) + static GenRandInitFen(options) { + if (options.randomness == 0) return "rnbqkbnr/8/pppppppp/8/8/PPPPPPPP/8/RNBKQBNR w 0"; let pieces = { w: new Array(8), b: new Array(8) }; for (let c of ["w", "b"]) { - if (c == 'b' && randomness == 1) { + if (c == 'b' && options.randomness == 1) { pieces['b'] = pieces['w']; break; } @@ -95,39 +95,33 @@ export class MakrukRules extends ChessRules { getPotentialBishopMoves(sq) { const forward = (this.turn == 'w' ? -1 : 1); return this.getSlideNJumpMoves( - sq, - V.steps[V.BISHOP].concat([ [forward, 0] ]), - "oneStep" - ); + sq, V.steps[V.BISHOP].concat([ [forward, 0] ]), 1); } getPotentialQueenMoves(sq) { - return this.getSlideNJumpMoves( - sq, - V.steps[V.BISHOP], - "oneStep" + return this.getSlideNJumpMoves(sq, V.steps[V.BISHOP], 1); + } + + isAttacked(sq, color) { + return ( + super.isAttacked(sq, color) || this.isAttackedByPromoted(sq, color) ); } isAttackedByBishop(sq, color) { const forward = (color == 'w' ? 1 : -1); return this.isAttackedBySlideNJump( - sq, - color, - V.BISHOP, - V.steps[V.BISHOP].concat([ [forward, 0] ]), - "oneStep" - ); + sq, color, V.BISHOP, V.steps[V.BISHOP].concat([ [forward, 0] ]), 1); } isAttackedByQueen(sq, color) { return this.isAttackedBySlideNJump( - sq, - color, - V.QUEEN, - V.steps[V.BISHOP], - "oneStep" - ); + sq, color, V.QUEEN, V.steps[V.BISHOP], 1); + } + + isAttackedByPromoted(sq, color) { + return super.isAttackedBySlideNJump( + sq, color, V.PROMOTED, V.steps[V.BISHOP], 1); } static get VALUES() {