From 6a9fc539531c3e429a5f0c25d42530419ec754c9 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Sat, 6 Feb 2021 18:51:07 +0100
Subject: [PATCH] Fix Synochess in the same way

---
 client/src/variants/Synochess.js | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/client/src/variants/Synochess.js b/client/src/variants/Synochess.js
index f8e9386b..f5ee12ad 100644
--- a/client/src/variants/Synochess.js
+++ b/client/src/variants/Synochess.js
@@ -256,9 +256,6 @@ export class SynochessRules extends ChessRules {
     // or if move.end.x == enemy king rank.
     const color = this.getColor(sq[0], sq[1]);
     const oppCol = V.GetOppCol(color);
-    // check == -1 if (row, or col) unchecked, 1 if checked and occupied,
-    //          0 if checked and clear
-    let check = [-1, -1];
     return moves.filter(m => {
       if (
         m.end.y != this.kingPos[oppCol][1] &&
@@ -266,13 +263,15 @@ export class SynochessRules extends ChessRules {
       ) {
         return true;
       }
+      // check == -1 if (row, or col) unchecked, 1 if checked and occupied,
+      //          0 if checked and clear
+      let check = [-1, -1];
       // TODO: factor two next "if"...
       if (m.end.x == this.kingPos[oppCol][0]) {
         if (check[0] < 0) {
           // Do the check:
           check[0] = 0;
-          let [kingPos1, kingPos2] =
-            [this.kingPos[color][1], this.kingPos[oppCol][1]];
+          let [kingPos1, kingPos2] = [m.end.y, this.kingPos[oppCol][1]];
           if (kingPos1 > kingPos2) [kingPos1, kingPos2] = [kingPos2, kingPos1];
           for (let i = kingPos1 + 1; i < kingPos2; i++) {
             if (this.board[m.end.x][i] != V.EMPTY) {
@@ -289,8 +288,7 @@ export class SynochessRules extends ChessRules {
       if (check[1] < 0) {
         // Do the check:
         check[1] = 0;
-        let [kingPos1, kingPos2] =
-          [this.kingPos[color][0], this.kingPos[oppCol][0]];
+        let [kingPos1, kingPos2] = [m.end.x, this.kingPos[oppCol][0]];
         if (kingPos1 > kingPos2) [kingPos1, kingPos2] = [kingPos2, kingPos1];
         for (let i = kingPos1 + 1; i < kingPos2; i++) {
           if (this.board[i][m.end.y] != V.EMPTY) {
-- 
2.44.0