X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fvariants%2FPacosako.js;fp=client%2Fsrc%2Fvariants%2FPacosako.js;h=b67d429b6f2b38ce1d10c3fb0c51751680d3793a;hb=da9e846e41622111a4f877742dc0b35406635b5c;hp=9f0abf88cbe1053bfbb302428c33e5b8fb02eabc;hpb=e7cb433fafb1aa8dc83dabd4286332e808a544e3;p=vchess.git diff --git a/client/src/variants/Pacosako.js b/client/src/variants/Pacosako.js index 9f0abf88..b67d429b 100644 --- a/client/src/variants/Pacosako.js +++ b/client/src/variants/Pacosako.js @@ -666,6 +666,28 @@ export class PacosakoRules extends ChessRules { return res; } + isAttackedBySlideNJump([x, y], color, piece, steps, oneStep) { + for (let step of steps) { + let rx = x + step[0], + ry = y + step[1]; + while (V.OnBoard(rx, ry) && this.board[rx][ry] == V.EMPTY && !oneStep) { + rx += step[0]; + ry += step[1]; + } + if ( + V.OnBoard(rx, ry) && + this.board[rx][ry] != V.EMPTY && + this.getPiece(rx, ry) == piece && + this.getColor(rx, ry) == color && + this.canTake([rx, ry], [x, y]) //TODO: necessary line? + //If not, generic method is OK + ) { + return true; + } + } + return false; + } + // Do not consider checks, except to forbid castling getCheckSquares() { return [];