From be3fb7b5de79dc2295d41b593faf18c6ed895e0d Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 16 Dec 2020 16:00:52 +0100
Subject: [PATCH] Fix Hiddenqueen 'quasi-checkmate'

---
 TODO                               |  3 ---
 client/src/variants/Hiddenqueen.js | 10 +++++++---
 server/models/User.js              |  1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/TODO b/TODO
index 12c7a40c..784a65ff 100644
--- a/TODO
+++ b/TODO
@@ -8,9 +8,6 @@ On smartphone for Teleport, Chakart, Weiqi and some others: option "confirm move
 (=> comme pour corr) + option "confirm moves in corr games"?
 
 NEW VARIANTS:
-Xiangqi
-Synochess
-EmpireChess
 Isardam (type B) : https://echekk.fr/spip.php?page=article&id_article=280
 https://www.reddit.com/r/TotemChess/comments/imi3v7/totem_rules/
 https://www.chessvariants.com/other.dir/fugue.html
diff --git a/client/src/variants/Hiddenqueen.js b/client/src/variants/Hiddenqueen.js
index 0cf09677..cbe7f929 100644
--- a/client/src/variants/Hiddenqueen.js
+++ b/client/src/variants/Hiddenqueen.js
@@ -190,8 +190,12 @@ export class HiddenqueenRules extends ChessRules {
     const color = this.turn;
     if (this.kingPos[color][0] < 0)
       // King disappeared
-      return color == "w" ? "0-1" : "1-0";
-    return super.getCurrentScore();
+      return (color == "w" ? "0-1" : "1-0");
+    const oldSide = this.side;
+    this.side = color;
+    const res = super.getCurrentScore();
+    this.side = oldSide;
+    return res;
   }
 
   // Search is biased, so not really needed to explore deeply
@@ -213,7 +217,7 @@ export class HiddenqueenRules extends ChessRules {
 
   getNotation(move) {
     // Not using getPiece() method because it would transform HQ into pawn:
-    if (this.board[move.start.x][move.start.y][1] != V.HIDDEN_QUEEN)
+    if (this.board[move.start.x][move.start.y].charAt(1) != V.HIDDEN_QUEEN)
       return super.getNotation(move);
     const finalSquare = V.CoordsToSquare(move.end);
     if (move.appear[0].p == V.QUEEN) {
diff --git a/server/models/User.js b/server/models/User.js
index d62cd767..655012d8 100644
--- a/server/models/User.js
+++ b/server/models/User.js
@@ -2,6 +2,7 @@ const db = require("../utils/database");
 const genToken = require("../utils/tokenGenerator");
 const params = require("../config/parameters");
 const sendEmail = require('../utils/mailer');
+const { exec } = require("child_process");
 
 /*
  * Structure:
-- 
2.44.0