Fix Dobutsu, start draft of Relayup
[vchess.git] / client / src / variants / Dobutsu.js
index a5c0386..4d151c3 100644 (file)
@@ -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");
   }