X-Git-Url: https://git.auder.net/img/rock_paper_scissors_lizard_spock.gif?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FOrda.js;h=308ae2f400a2e6f7e3dc8b900857fe65dd3529e9;hb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;hp=f1bfc911ef30ea6cf8d29c041199ee4282c1a84c;hpb=79e05a1ac8a396aa3655b195998ef1f07cdba68e;p=vchess.git diff --git a/client/src/variants/Orda.js b/client/src/variants/Orda.js index f1bfc911..308ae2f4 100644 --- a/client/src/variants/Orda.js +++ b/client/src/variants/Orda.js @@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array"; import { randInt } from "@/utils/alea"; export class OrdaRules extends ChessRules { + static get PawnSpecs() { return Object.assign( {}, @@ -143,7 +144,7 @@ export class OrdaRules extends ChessRules { let j = y + step[1]; while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) { if (!options.onlyTake) moves.push(this.getBasicMove([x, y], [i, j])); - if (oneStep) continue outerLoop; + if (!!oneStep) continue outerLoop; i += step[0]; j += step[1]; } @@ -234,13 +235,14 @@ export class OrdaRules extends ChessRules { this.isAttackedByKheshig(sq, color) ); } - // Horde: only pawn and queen (if promotions) in common: + // Horde: only pawn, king and queen (if promotions) in common: return ( super.isAttackedByPawn(sq, color) || this.isAttackedByLancer(sq, color) || this.isAttackedByKheshig(sq, color) || this.isAttackedByArcher(sq, color) || this.isAttackedByYurt(sq, color) || + super.isAttackedByKing(sq, color) || super.isAttackedByQueen(sq, color) ); } @@ -320,4 +322,5 @@ export class OrdaRules extends ChessRules { } ); } + };