X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMakruk.js;h=75fb1da23c5ce6bdc41ec41152583ebf485db40c;hb=f5cd0fb81ec9bd790d812c9ad02587e50427fcdf;hp=6205f2300333b40f9f69ef359b2b0b1acca850cc;hpb=107dc1bd5361e2538b1551bdcc37c1e90a444b83;p=vchess.git diff --git a/client/src/variants/Makruk.js b/client/src/variants/Makruk.js index 6205f230..75fb1da2 100644 --- a/client/src/variants/Makruk.js +++ b/client/src/variants/Makruk.js @@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array"; import { randInt, shuffle } from "@/utils/alea"; export class MakrukRules extends ChessRules { + static get HasFlags() { return false; } @@ -15,6 +16,10 @@ export class MakrukRules extends ChessRules { return true; } + static get Notoodark() { + return true; + } + static get PawnSpecs() { return Object.assign( {}, @@ -104,6 +109,12 @@ export class MakrukRules extends ChessRules { ); } + isAttacked(sq, color) { + return ( + super.isAttacked(sq, color) || this.isAttackedByPromoted(sq, color) + ); + } + isAttackedByBishop(sq, color) { const forward = (color == 'w' ? 1 : -1); return this.isAttackedBySlideNJump( @@ -125,6 +136,16 @@ export class MakrukRules extends ChessRules { ); } + isAttackedByPromoted(sq, color) { + return super.isAttackedBySlideNJump( + sq, + color, + V.PROMOTED, + V.steps[V.BISHOP], + "oneStep" + ); + } + static get VALUES() { return { p: 1, @@ -136,4 +157,5 @@ export class MakrukRules extends ChessRules { k: 1000 }; } + };