Some fixes. Loser implemented. Draft Extinction,Crazyhouse,Switching
[vchess.git] / public / javascripts / variants / Magnetic.js
index d6cf918..844cc68 100644 (file)
@@ -14,12 +14,13 @@ class MagneticRules extends ChessRules
                        if (newMove_s.length == 1)
                                moves.push(newMove_s[0]);
                        else //promotion
-                               moves = moves.concat(moves, newMove_s);
+                               moves = moves.concat(newMove_s);
                });
                return moves;
        }
 
        // Complete a move with magnetic actions
+       // TODO: job is done multiple times for (normal) promotions.
        applyMagneticLaws(move)
        {
                const V = VariantRules;
@@ -43,8 +44,7 @@ class MagneticRules extends ChessRules
                                        if (this.getColor(i,j) != color)
                                        {
                                                // Attraction
-                                               if ((Math.abs(i-x)>=2 || Math.abs(j-y)>=2)
-                                                       && this.getPiece(i,j) != V.KING)
+                                               if ((Math.abs(i-x)>=2 || Math.abs(j-y)>=2) && this.getPiece(i,j) != V.KING)
                                                {
                                                        move.vanish.push(
                                                                new PiPo({
@@ -112,7 +112,7 @@ class MagneticRules extends ChessRules
                // Scan move for pawn (max 1) on 8th rank
                for (let i=1; i<move.appear.length; i++)
                {
-                       if (move.appear[i].p==V.PAWN && move.appear[i].x==lastRank)
+                       if (move.appear[i].p==V.PAWN && move.appear[i].c==color && move.appear[i].x==lastRank)
                        {
                                move.appear[i].p = V.ROOK;
                                moves.push(move);
@@ -212,4 +212,8 @@ class MagneticRules extends ChessRules
                // No valid move: our king disappeared
                return this.turn == "w" ? "0-1" : "1-0";
        }
+
+       static get THRESHOLD_MATE() {
+               return 500; //checkmates evals may be slightly below 1000
+       }
 }