From 7c8d0174f68dfcda183848d85588e58f5d347cda Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Mon, 4 May 2020 12:26:00 +0200
Subject: [PATCH] Improve Chakart rules (captures after banana/bomb
 redirection)

---
 client/src/translations/rules/Chakart/en.pug | 1 +
 client/src/translations/rules/Chakart/es.pug | 2 +-
 client/src/translations/rules/Chakart/fr.pug | 2 +-
 client/src/variants/Chakart.js               | 4 ++--
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/client/src/translations/rules/Chakart/en.pug b/client/src/translations/rules/Chakart/en.pug
index 78704579..a89d4ae9 100644
--- a/client/src/translations/rules/Chakart/en.pug
+++ b/client/src/translations/rules/Chakart/en.pug
@@ -55,6 +55,7 @@ ul
   li.
     A piece arriving on a banana (resp. bomb) is redirected at random by one
     square in an orthogonal (resp. diagonal) direction, if possible.
+    An enemy piece could be captured in this way.
 p.
   The effects can cumulate, as illustrated on the diagram:
   the bishop "captures" the banana on e4, and is then redirected twoard e5:
diff --git a/client/src/translations/rules/Chakart/es.pug b/client/src/translations/rules/Chakart/es.pug
index b8b4781d..378edce7 100644
--- a/client/src/translations/rules/Chakart/es.pug
+++ b/client/src/translations/rules/Chakart/es.pug
@@ -59,7 +59,7 @@ ul
   li.
     Una pieza que llega en un plátano (resp. bomba) se redirige
     aleatoriamente de una casilla en una dirección ortogonal (resp. diagonal),
-    si es posible.
+    si es posible. Une pieza enemiga podría ser capturada de esta manera.
 p.
   Los efectos pueden sumar, como se muestra en el diagrama:
   el alfil "captura" el plátano en e4, luego es redirigido a e5: hongo,
diff --git a/client/src/translations/rules/Chakart/fr.pug b/client/src/translations/rules/Chakart/fr.pug
index 8bd6e7ed..ee04216a 100644
--- a/client/src/translations/rules/Chakart/fr.pug
+++ b/client/src/translations/rules/Chakart/fr.pug
@@ -58,7 +58,7 @@ ul
   li.
     Une pièce arrivant sur une banane (resp. bombe) est redirigée
     aléatoirement d'une case dans une direction orthogonale (resp. diagonale),
-    si possible.
+    si possible. Une pièce adverse pourrait être capturée de cette façon.
 p.
   Les effets peuvent se cumuler, comme illustré sur le diagramme :
   le fou "capture" la banane en e4, puis est redirigé vers e5 : champignon,
diff --git a/client/src/variants/Chakart.js b/client/src/variants/Chakart.js
index bfbca52e..73d7cfc9 100644
--- a/client/src/variants/Chakart.js
+++ b/client/src/variants/Chakart.js
@@ -320,7 +320,6 @@ export class ChakartRules extends ChessRules {
       const L = this.firstMove.length;
       const fm = this.firstMove[L-1];
       switch (fm.end.effect) {
-        // case 0: a click is required (banana or bomb)
         case "kingboo":
           // Exchange position with any piece,
           // except pawns if arriving on last rank.
@@ -370,11 +369,12 @@ export class ChakartRules extends ChessRules {
 
   // Helper for getBasicMove()
   getRandomSquare([x, y], steps) {
+    const color = this.turn;
     const validSteps = steps.filter(s => {
       const [i, j] = [x + s[0], y + s[1]];
       return (
         V.OnBoard(i, j) &&
-        (this.board[i][j] == V.EMPTY || this.getColor(i, j) == 'a')
+        (this.board[i][j] == V.EMPTY || this.getColor(i, j) != color)
       );
     });
     if (validSteps.length == 0)
-- 
2.44.0