From 8cc2f6d0a723c9583a99f9228bb441d8d8c5da5a Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Mon, 23 May 2022 10:01:43 +0200
Subject: [PATCH] Current state - TODO: pawnfall fix, better pre/postPlay()

---
 base_rules.js | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/base_rules.js b/base_rules.js
index a2cb951..8ad54a4 100644
--- a/base_rules.js
+++ b/base_rules.js
@@ -1363,7 +1363,12 @@ export default class ChessRules {
       );
       if (!promotionOk)
         return; //nothing to do
-      if (!this.options["pawnfall"]) {
+      if (this.options["pawnfall"]) {
+        m.appear.shift();
+        m.pawnfall = true; //required in prePlay() /// ????????????
+        return;
+      }
+      //if (!this.options["pawnfall"]) { --> OK
         if (
           this.options["cannibal"] &&
           this.board[x2][y2] != "" &&
@@ -1373,7 +1378,7 @@ export default class ChessRules {
         }
         else
           finalPieces = this.pawnPromotions;
-      }
+      //}
       m.appear[0].p = finalPieces[0];
       if (initPiece == "!") //cannibal king-pawn
         m.appear[0].p = C.CannibalKingCode[finalPieces[0]];
@@ -1388,8 +1393,6 @@ export default class ChessRules {
         }
         let newMove = this.getBasicMove([x1, y1], [x2, y2], tr);
         if (this.options["pawnfall"]) {
-          newMove.appear.shift();
-          newMove.pawnfall = true; //required in prePlay()
         }
         moreMoves.push(newMove);
       }
@@ -1948,6 +1951,11 @@ export default class ChessRules {
     });
   }
 
+
+// TODO: englober + de cas ici...
+    // + generique start/end board or reserve
+    // + bien séparer les options... ?
+
   prePlay(move) {
     if (
       typeof move.start.x == "number" &&
-- 
2.44.0