X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FPerfect.js;h=4bd2ac925116722f77e632242978b197771ad4d8;hb=7e8a7ea1cb66adb4a987badfb0a3c2f99a21bd0a;hp=a0c75c57962f9fe181f13b7d826bfd967e2c2cfb;hpb=a68362420a3a92099dfaacea10f6cbd579161183;p=vchess.git diff --git a/client/src/variants/Perfect.js b/client/src/variants/Perfect.js index a0c75c57..4bd2ac92 100644 --- a/client/src/variants/Perfect.js +++ b/client/src/variants/Perfect.js @@ -3,6 +3,7 @@ import { ArrayFun } from "@/utils/array"; import { randInt } from "@/utils/alea"; export class PerfectRules extends ChessRules { + static get PawnSpecs() { return Object.assign( {}, @@ -84,11 +85,12 @@ export class PerfectRules extends ChessRules { isAttackedByAmazon(sq, color) { return ( - super.isAttackedByQueen(sq, color) || + this.isAttackedBySlideNJump(sq, color, V.AMAZON, V.steps[V.BISHOP]) || + this.isAttackedBySlideNJump(sq, color, V.AMAZON, V.steps[V.ROOK]) || this.isAttackedBySlideNJump( sq, color, - V.MARSHALL, + V.AMAZON, V.steps[V.KNIGHT], "oneStep" ) @@ -97,11 +99,11 @@ export class PerfectRules extends ChessRules { isAttackedByEmpress(sq, color) { return ( - this.isAttackedBySlideNJump(sq, color, V.MARSHALL, V.steps[V.ROOK]) || + this.isAttackedBySlideNJump(sq, color, V.EMPRESS, V.steps[V.ROOK]) || this.isAttackedBySlideNJump( sq, color, - V.MARSHALL, + V.EMPRESS, V.steps[V.KNIGHT], "oneStep" ) @@ -110,11 +112,11 @@ export class PerfectRules extends ChessRules { isAttackedByPrincess(sq, color) { return ( - this.isAttackedBySlideNJump(sq, color, V.CARDINAL, V.steps[V.BISHOP]) || + this.isAttackedBySlideNJump(sq, color, V.PRINCESS, V.steps[V.BISHOP]) || this.isAttackedBySlideNJump( sq, color, - V.CARDINAL, + V.PRINCESS, V.steps[V.KNIGHT], "oneStep" ) @@ -199,4 +201,5 @@ export class PerfectRules extends ChessRules { " w 0 " + flags + " -" ); } + };