Fix Emergo. Add Avalam 1 & 2
[vchess.git] / client / src / variants / Dobutsu.js
index a5c0386..da632b8 100644 (file)
@@ -16,6 +16,10 @@ export class DobutsuRules extends ChessRules {
     return true;
   }
 
+  get showFirstTurn() {
+    return true;
+  }
+
   static IsGoodFen(fen) {
     if (!ChessRules.IsGoodFen(fen)) return false;
     const fenParsed = V.ParseFen(fen);
@@ -177,6 +181,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 +203,13 @@ export class DobutsuRules extends ChessRules {
     }
   }
 
+  getPotentialHenMoves(sq) {
+    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");
   }