Fix Absorption and Chakart variants
authorBenjamin Auder <benjamin.auder@somewhere>
Thu, 11 Jun 2020 08:35:16 +0000 (10:35 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Thu, 11 Jun 2020 08:35:16 +0000 (10:35 +0200)
client/src/variants/Absorption.js
client/src/variants/Chakart.js
client/src/views/Game.vue

index b10f165..64c03e6 100644 (file)
@@ -49,8 +49,8 @@ export class AbsorptionRules extends ChessRules {
       // p1 or p2 already have knight + other piece
       return (p1 == V.KNIGHT ? p2 : p1);
     }
+    if ([p1, p2].includes(V.QN)) return V.QN;
     for (let p of [p1, p2]) {
-      if (p == V.QN) return V.QN;
       if ([V.BN, V.RN].includes(p))
         return V.MergeComposed[[p1, p2].sort().join("")];
     }
index 1d12e42..669ade1 100644 (file)
@@ -394,7 +394,7 @@ export class ChakartRules extends ChessRules {
       return (
         V.OnBoard(x + forward, y) &&
         (
-          this.board[x + forward][y] != oppCol ||
+          this.board[x + forward][y] == V.EMPTY ||
           (
             V.OnBoard(x + forward, y + 1) &&
             this.board[x + forward][y + 1] != V.EMPTY &&
index fa7ab3b..776b9ea 100644 (file)
@@ -1524,7 +1524,6 @@ console.log(data.data);
       };
       if (
         this.game.type == "corr" &&
-        V.CorrConfirm &&
         moveCol == this.game.mycolor &&
         !data.receiveMyMove
       ) {
@@ -1540,6 +1539,10 @@ console.log(data.data);
             if (data.score == "*") this.re_setClocks();
           }
         };
+        if (!V.CorrConfirm) {
+          afterSetScore();
+          return;
+        }
         let el = document.querySelector("#buttonsConfirm > .acceptBtn");
         // We may play several moves in a row: in case of, remove listener:
         let elClone = el.cloneNode(true);