Change castle flags. Eightpieces still not OK, but almost
[vchess.git] / client / src / variants / Recycle.js
index 82895f3..d91e824 100644 (file)
@@ -14,7 +14,7 @@ export const VariantRules = class RecycleRules extends ChessRules {
   static ParseFen(fen) {
     const fenParts = fen.split(" ");
     return Object.assign(ChessRules.ParseFen(fen), {
-      reserve: fenParts[5],
+      reserve: fenParts[5]
     });
   }
 
@@ -30,19 +30,11 @@ export const VariantRules = class RecycleRules extends ChessRules {
   }
 
   getFen() {
-    return (
-      super.getFen() + " " + this.getReserveFen()
-    );
+    return super.getFen() + " " + this.getReserveFen();
   }
 
   getFenForRepeat() {
-    return (
-      this.getBaseFen() + "_" +
-      this.getTurnFen() + "_" +
-      this.getFlagsFen() + "_" +
-      this.getEnpassantFen() + "_" +
-      this.getReserveFen()
-    );
+    return super.getFenForRepeat() + "_" + this.getReserveFen();
   }
 
   getReserveFen() {
@@ -231,31 +223,23 @@ export const VariantRules = class RecycleRules extends ChessRules {
     return this.getPiece(x2, y2) != V.KING;
   }
 
-  updateVariables(move) {
-    super.updateVariables(move);
+  postPlay(move) {
+    super.postPlay(move);
     if (move.vanish.length == 2 && move.appear.length == 2) return; //skip castle
-    const color = V.GetOppCol(this.turn);
-    if (move.vanish.length == 0) {
-      this.reserve[color][move.appear[0].p]--;
-      return;
-    }
-    else if (move.vanish.length == 2 && move.vanish[1].c == color) {
+    const color = move.appear[0].c;
+    if (move.vanish.length == 0) this.reserve[color][move.appear[0].p]--;
+    else if (move.vanish.length == 2 && move.vanish[1].c == color)
       // Self-capture
       this.reserve[color][move.vanish[1].p]++;
-    }
   }
 
-  unupdateVariables(move) {
-    super.unupdateVariables(move);
+  postUndo(move) {
+    super.postUndo(move);
     if (move.vanish.length == 2 && move.appear.length == 2) return;
     const color = this.turn;
-    if (move.vanish.length == 0) {
-      this.reserve[color][move.appear[0].p]++;
-      return;
-    }
-    else if (move.vanish.length == 2 && move.vanish[1].c == color) {
+    if (move.vanish.length == 0) this.reserve[color][move.appear[0].p]++;
+    else if (move.vanish.length == 2 && move.vanish[1].c == color)
       this.reserve[color][move.vanish[1].p]--;
-    }
   }
 
   static get SEARCH_DEPTH() {