From bc5d61a77f1b9f2b917221ec3f5e306818c67cf8 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Mon, 20 Jun 2022 22:33:32 +0200
Subject: [PATCH] Fix mushroom effect: more consistent

---
 variants/Chakart/class.js | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/variants/Chakart/class.js b/variants/Chakart/class.js
index a0c854b..61a8ee2 100644
--- a/variants/Chakart/class.js
+++ b/variants/Chakart/class.js
@@ -640,7 +640,7 @@ export default class ChakartRules extends ChessRules {
   }
 
   getMushroomEffect(move) {
-    if (move.koopa)
+    if (move.koopa || typeof move.start.x == "string")
       return null;
     let step = [move.end.x - move.start.x, move.end.y - move.start.y];
     if ([0, 1].some(i => Math.abs(step[i]) >= 2 && Math.abs(step[1-i]) != 1)) {
@@ -652,24 +652,11 @@ export default class ChakartRules extends ChessRules {
     const afterSquare =
       [nextSquare[0] + step[0], nextSquare[1] + step[1]];
     let nextMove = null;
-    this.playOnBoard(move); //HACK for getBasicMove() below
-    if (
-      this.onBoard(nextSquare[0], nextSquare[1]) &&
-      ['k', 'p', 'n'].includes(move.vanish[0].p) &&
-      !['w', 'b'].includes(this.getColor(nextSquare[0], nextSquare[1]))
-    ) {
-      // Speed up non-sliders
+    if (this.onBoard(nextSquare[0], nextSquare[1])) {
+      this.playOnBoard(move); //HACK for getBasicMove()
       nextMove = this.getBasicMove([move.end.x, move.end.y], nextSquare);
+      this.undoOnBoard(move);
     }
-    else if (
-      this.onBoard(afterSquare[0], afterSquare[1]) &&
-      this.board[nextSquare[0]][nextSquare[1]] != "" &&
-      this.getColor(nextSquare[0], nextSquare[1]) != 'a' &&
-      this.getColor(afterSquare[0], afterSquare[1]) != this.turn
-    ) {
-      nextMove = this.getBasicMove([move.end.x, move.end.y], afterSquare);
-    }
-    this.undoOnBoard(move);
     return nextMove;
   }
 
-- 
2.44.0