Fix variants with captures forced: castling isn't a capture!
authorBenjamin Auder <benjamin.auder@somewhere>
Thu, 19 Mar 2020 16:13:02 +0000 (17:13 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Thu, 19 Mar 2020 16:13:02 +0000 (17:13 +0100)
client/src/variants/Cannibal.js
client/src/variants/Capture.js
client/src/variants/Losers.js

index 1508f67..6166860 100644 (file)
@@ -166,7 +166,8 @@ export class CannibalRules extends ChessRules {
 
   getAllValidMoves() {
     const moves = super.getAllValidMoves();
-    if (moves.some(m => m.vanish.length == 2)) return V.KeepCaptures(moves);
+    if (moves.some(m => m.vanish.length == 2 && m.appear.length == 1))
+      return V.KeepCaptures(moves);
     return moves;
   }
 
index f0782a6..d7cc57e 100644 (file)
@@ -36,7 +36,8 @@ export class CaptureRules extends ChessRules {
 
   getAllValidMoves() {
     const moves = super.getAllValidMoves();
-    if (moves.some(m => m.vanish.length == 2)) return V.KeepCaptures(moves);
+    if (moves.some(m => m.vanish.length == 2 && m.appear.length == 1))
+      return V.KeepCaptures(moves);
     return moves;
   }
 
index 1c087ef..4bc6a61 100644 (file)
@@ -38,7 +38,8 @@ export class LosersRules extends ChessRules {
 
   getAllValidMoves() {
     const moves = super.getAllValidMoves();
-    if (moves.some(m => m.vanish.length == 2)) return V.KeepCaptures(moves);
+    if (moves.some(m => m.vanish.length == 2 && m.appear.length == 1))
+      return V.KeepCaptures(moves);
     return moves;
   }