Some fixes, draw lines on board, add 7 variants
[vchess.git] / client / src / variants / Shogi.js
index 082d939..1b2ba03 100644 (file)
@@ -11,6 +11,10 @@ export class ShogiRules extends ChessRules {
     return false;
   }
 
+  static get Monochrome() {
+    return true;
+  }
+
   static IsGoodFen(fen) {
     if (!ChessRules.IsGoodFen(fen)) return false;
     const fenParsed = V.ParseFen(fen);
@@ -372,6 +376,18 @@ export class ShogiRules extends ChessRules {
     );
   }
 
+  getPotentialLanceMoves(sq) {
+    const forward = (this.turn == 'w' ? -1 : 1);
+    return this.getSlideNJumpMoves(
+      sq,
+      [[forward, 0]],
+      {
+        promote: V.P_LANCE,
+        force: true
+      }
+    );
+  }
+
   getPotentialRookMoves(sq) {
     return this.getSlideNJumpMoves(
       sq, V.steps[V.ROOK], { promote: V.P_ROOK });
@@ -382,12 +398,6 @@ export class ShogiRules extends ChessRules {
       sq, V.steps[V.BISHOP], { promote: V.P_BISHOP });
   }
 
-  getPotentialLanceMoves(sq) {
-    const forward = (this.turn == 'w' ? -1 : 1);
-    return this.getSlideNJumpMoves(
-      sq, [[forward, 0]], { promote: V.P_LANCE });
-  }
-
   getPotentialDragonMoves(sq) {
     return (
       this.getSlideNJumpMoves(sq, V.steps[V.ROOK]).concat(