X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FDobutsu.js;h=4d151c3d98a1063b580f8f1557f77a3d0c6c8d94;hb=ecb8f91b8b8ea909baabc8077baf1ca92b4b6664;hp=a5c038680a63c3f13ed7d58d5b5a6a250c5e26c8;hpb=2a1563cab10625abed663a3909a5be3625577e2f;p=vchess.git diff --git a/client/src/variants/Dobutsu.js b/client/src/variants/Dobutsu.js index a5c03868..4d151c3d 100644 --- a/client/src/variants/Dobutsu.js +++ b/client/src/variants/Dobutsu.js @@ -177,6 +177,7 @@ export class DobutsuRules extends ChessRules { } switch (this.getPiece(sq[0], sq[1])) { case V.PAWN: return this.getPotentialPawnMoves(sq); + case V.HEN: return this.getPotentialHenMoves(sq); case V.ELEPHANT: return this.getPotentialElephantMoves(sq); case V.GIRAFFE: return this.getPotentialGiraffeMoves(sq); case V.KING: return super.getPotentialKingMoves(sq); @@ -198,6 +199,13 @@ export class DobutsuRules extends ChessRules { } } + getPotentialHenMoves([x, y]) { + const c = this.turn; + const forward = (c == 'w' ? -1 : 1); + const steps = V.steps[V.ROOK].concat([[forward, 1], [forward, -1]]); + return super.getSlideNJumpMoves(sq, steps, "oneStep"); + } + getPotentialElephantMoves(sq) { return super.getSlideNJumpMoves(sq, V.steps[V.BISHOP], "oneStep"); }