Avoid direct references to (Dark) variant name in BaseGame, Analyse and Board
[vchess.git] / client / src / base_rules.js
index 056f477..5ebe499 100644 (file)
@@ -4,8 +4,8 @@
 import { ArrayFun } from "@/utils/array";
 import { randInt, shuffle } from "@/utils/alea";
 
+// class "PiPo": Piece + Position
 export const PiPo = class PiPo {
-  //Piece+Position
   // o: {piece[p], color[c], posX[x], posY[y]}
   constructor(o) {
     this.p = o.p;
@@ -15,7 +15,6 @@ export const PiPo = class PiPo {
   }
 };
 
-// TODO: for animation, moves should contains "moving" and "fading" maybe...
 export const Move = class Move {
   // o: {appear, vanish, [start,] [end,]}
   // appear,vanish = arrays of PiPo
@@ -33,13 +32,26 @@ export const ChessRules = class ChessRules {
   //////////////
   // MISC UTILS
 
+  // Some variants don't have flags:
   static get HasFlags() {
     return true;
-  } //some variants don't have flags
+  }
 
+  // Some variants don't have en-passant
   static get HasEnpassant() {
     return true;
-  } //some variants don't have ep.
+  }
+
+  // Some variants cannot have analyse mode
+  static get CanAnalyse() {
+    return true;
+  }
+
+  // Some variants show incomplete information,
+  // and thus show only a partial moves list or no list at all.
+  static get ShowMoves() {
+    return "all";
+  }
 
   // Path to pieces
   static getPpath(b) {