From f4221ff17c58c277660865a11bf6358268fbda10 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Thu, 11 Jun 2020 10:35:16 +0200
Subject: [PATCH] Fix Absorption and Chakart variants

---
 client/src/variants/Absorption.js | 2 +-
 client/src/variants/Chakart.js    | 2 +-
 client/src/views/Game.vue         | 5 ++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/client/src/variants/Absorption.js b/client/src/variants/Absorption.js
index b10f1653..64c03e68 100644
--- a/client/src/variants/Absorption.js
+++ b/client/src/variants/Absorption.js
@@ -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("")];
     }
diff --git a/client/src/variants/Chakart.js b/client/src/variants/Chakart.js
index 1d12e42e..669ade11 100644
--- a/client/src/variants/Chakart.js
+++ b/client/src/variants/Chakart.js
@@ -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 &&
diff --git a/client/src/views/Game.vue b/client/src/views/Game.vue
index fa7ab3b2..776b9eaf 100644
--- a/client/src/views/Game.vue
+++ b/client/src/views/Game.vue
@@ -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);
-- 
2.44.0