From: Benjamin Auder Date: Sun, 22 Mar 2020 03:16:42 +0000 (+0100) Subject: Fix Hawk and Elephant movements in S-chess X-Git-Url: https://git.auder.net/doc/current/%7B%7B%20asset%28%27mixstore/DESCRIPTION?a=commitdiff_plain;h=40ac07d9dfc8a58911550aa9c87a0f0736723f1f;p=vchess.git Fix Hawk and Elephant movements in S-chess --- diff --git a/client/src/variants/Schess.js b/client/src/variants/Schess.js index 7cbb47a1..ebc2c7c2 100644 --- a/client/src/variants/Schess.js +++ b/client/src/variants/Schess.js @@ -199,16 +199,14 @@ export class SchessRules extends ChessRules { } getPotentialHawkMoves(sq) { - return this.getSlideNJumpMoves( - sq, - V.steps[V.BISHOP].concat(V.steps[V.KNIGHT]) + return this.getSlideNJumpMoves(sq, V.steps[V.BISHOP]).concat( + this.getSlideNJumpMoves(sq, V.steps[V.KNIGHT], "oneStep") ); } getPotentialElephantMoves(sq) { - return this.getSlideNJumpMoves( - sq, - V.steps[V.ROOK].concat(V.steps[V.KNIGHT]) + return this.getSlideNJumpMoves(sq, V.steps[V.ROOK]).concat( + this.getSlideNJumpMoves(sq, V.steps[V.KNIGHT], "oneStep") ); } @@ -221,20 +219,28 @@ export class SchessRules extends ChessRules { } isAttackedByHawk(sq, color) { - return this.isAttackedBySlideNJump( - sq, - color, - V.HAWK, - V.steps[V.BISHOP].concat(V.steps[V.KNIGHT]) + return ( + this.isAttackedBySlideNJump(sq, color, V.HAWK, V.steps[V.BISHOP]) || + this.isAttackedBySlideNJump( + sq, + color, + V.HAWK, + V.steps[V.KNIGHT], + "oneStep" + ) ); } isAttackedByElephant(sq, color) { - return this.isAttackedBySlideNJump( - sq, - color, - V.ELEPHANT, - V.steps[V.ROOK].concat(V.steps[V.KNIGHT]) + return ( + this.isAttackedBySlideNJump(sq, color, V.ELEPHANT, V.steps[V.ROOK]) || + this.isAttackedBySlideNJump( + sq, + color, + V.ELEPHANT, + V.steps[V.KNIGHT], + "oneStep" + ) ); }