Some fixes + draft newmove pingback logic (unfinished, not working)
[vchess.git] / client / src / variants / Crazyhouse.js
index 89b6f83..984c902 100644 (file)
@@ -28,8 +28,8 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
     });
   }
 
-  static GenRandInitFen() {
-    return ChessRules.GenRandInitFen() + " 0000000000 -";
+  static GenRandInitFen(randomness) {
+    return ChessRules.GenRandInitFen(randomness) + " 0000000000 -";
   }
 
   getFen() {
@@ -38,6 +38,17 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
     );
   }
 
+  getFenForRepeat() {
+    return (
+      this.getBaseFen() + "_" +
+      this.getTurnFen() + "_" +
+      this.getFlagsFen() + "_" +
+      this.getEnpassantFen() + "_" +
+      this.getReserveFen() + "_" +
+      this.getPromotedFen()
+    );
+  }
+
   getReserveFen() {
     let counts = new Array(10);
     for (
@@ -104,7 +115,7 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
   }
 
   // Used by the interface:
-  getReservePpath(color, index) {
+  getReservePpath(index, color) {
     return color + V.RESERVE_PIECES[index];
   }
 
@@ -208,8 +219,9 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
   }
 
   static get SEARCH_DEPTH() {
+    // High branching factor
     return 2;
-  } //high branching factor
+  }
 
   evalPosition() {
     let evaluation = super.evalPosition();
@@ -229,9 +241,4 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
       move.appear[0].p != V.PAWN ? move.appear[0].p.toUpperCase() : "";
     return piece + "@" + V.CoordsToSquare(move.end);
   }
-
-  getLongNotation(move) {
-    if (move.vanish.length > 0) return super.getLongNotation(move);
-    return "@" + V.CoordsToSquare(move.end);
-  }
 };