Fix parseInt() usage, rename Doubleorda --> Ordamirror, implement Clorange variant
[vchess.git] / client / src / variants / Cannibal.js
index b66ac38..bd5524f 100644 (file)
@@ -49,7 +49,7 @@ export class CannibalRules extends ChessRules {
         else if (kingWhiteCodes.includes(row[i])) kings['w']++;
         if (allPiecesCodes.includes(row[i].toLowerCase())) sumElts++;
         else {
-          const num = parseInt(row[i]);
+          const num = parseInt(row[i], 10);
           if (isNaN(num)) return false;
           sumElts += num;
         }
@@ -74,7 +74,7 @@ export class CannibalRules extends ChessRules {
             const color = (piece.charCodeAt(0) <= 90 ? 'w' : 'b');
             this.kingPos[color] = [i, k];
           } else {
-            const num = parseInt(rows[i].charAt(j));
+            const num = parseInt(rows[i].charAt(j), 10);
             if (!isNaN(num)) k += num - 1;
           }
           k++;
@@ -88,7 +88,7 @@ export class CannibalRules extends ChessRules {
     return moves.filter(m => m.vanish.length == 2 && m.appear.length == 1);
   }
 
-       // Stop at the first capture found (if any)
+  // Stop at the first capture found (if any)
   atLeastOneCapture() {
     const color = this.turn;
     const oppCol = V.GetOppCol(color);
@@ -207,8 +207,9 @@ export class CannibalRules extends ChessRules {
       this.kingPos[c][0] = move.appear[0].x;
       this.kingPos[c][1] = move.appear[0].y;
       this.castleFlags[c] = [V.size.y, V.size.y];
-      return;
     }
+    // Next call is still required because the king may eat an opponent's rook
+    // TODO: castleFlags will be turned off twice then.
     super.updateCastleFlags(move, piece);
   }
 
@@ -231,10 +232,6 @@ export class CannibalRules extends ChessRules {
     };
   }
 
-  static get SEARCH_DEPTH() {
-    return 4;
-  }
-
   getNotation(move) {
     let notation = super.getNotation(move);
     const lastRank = (move.appear[0].c == "w" ? 0 : 7);