From 70c94aa7b7c3cb8832a728881a29feeb26118eb9 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 24 Mar 2021 14:47:33 +0100
Subject: [PATCH] Fix Titan (king tracking)

---
 client/src/variants/Titan.js | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/client/src/variants/Titan.js b/client/src/variants/Titan.js
index 836acc1f..427eecdb 100644
--- a/client/src/variants/Titan.js
+++ b/client/src/variants/Titan.js
@@ -228,11 +228,21 @@ export class TitanRules extends ChessRules {
   }
 
   postPlay(move) {
-    if (this.movesCount > 4) super.postPlay(move);
+    if (this.movesCount > 4) {
+      let piece = move.vanish[0].p;
+      if (['j', 'l'].includes(piece)) piece = V.KING;
+      if (piece == V.KING && move.appear.length > 0)
+        this.kingPos[c] = [move.appear[0].x, move.appear[0].y];
+      this.updateCastleFlags(move, piece);
+    }
   }
 
   postUndo(move) {
-    if (this.movesCount >= 4) super.postUndo(move);
+    if (this.movesCount >= 4) {
+      const c = this.getColor(move.start.x, move.start.y);
+      if (['j', 'k', 'l'].includes(this.getPiece(move.start.x, move.start.y)))
+        this.kingPos[c] = [move.start.x, move.start.y];
+    }
   }
 
   evalPosition() {
-- 
2.44.0