X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMakruk.js;h=75fb1da23c5ce6bdc41ec41152583ebf485db40c;hb=f5cd0fb81ec9bd790d812c9ad02587e50427fcdf;hp=2eeeaeaf8be2fd356fbac89c6056b7a4bd351619;hpb=1c15969ecec2a86ee7dffe570e53dfd61fd06b22;p=vchess.git diff --git a/client/src/variants/Makruk.js b/client/src/variants/Makruk.js index 2eeeaeaf..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; } @@ -11,6 +12,14 @@ export class MakrukRules extends ChessRules { return false; } + static get Monochrome() { + return true; + } + + static get Notoodark() { + return true; + } + static get PawnSpecs() { return Object.assign( {}, @@ -100,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( @@ -121,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, @@ -132,4 +157,5 @@ export class MakrukRules extends ChessRules { k: 1000 }; } + };