X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FGridolina.js;h=6efff14e1011c9fe93371c2e33bff4ab37cae79d;hb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;hp=fd43be3f00561a8320e405590085790b1f82c816;hpb=107dc1bd5361e2538b1551bdcc37c1e90a444b83;p=vchess.git diff --git a/client/src/variants/Gridolina.js b/client/src/variants/Gridolina.js index fd43be3f..6efff14e 100644 --- a/client/src/variants/Gridolina.js +++ b/client/src/variants/Gridolina.js @@ -2,6 +2,7 @@ import { ChessRules } from "@/base_rules"; import { BerolinaRules } from "@/variants/Berolina"; export class GridolinaRules extends BerolinaRules { + static get Lines() { return [ [[2, 0], [2, 8]], @@ -34,4 +35,25 @@ export class GridolinaRules extends BerolinaRules { }) ); } + + 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.getPiece(rx, ry) == piece && + this.getColor(rx, ry) == color && + V.OnDifferentGrids([x, y], [rx, ry]) + ) { + return true; + } + } + return false; + } + };