projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some fixes. Loser implemented. Draft Extinction,Crazyhouse,Switching
[vchess.git]
/
public
/
javascripts
/
variants
/
Magnetic.js
diff --git
a/public/javascripts/variants/Magnetic.js
b/public/javascripts/variants/Magnetic.js
index
d6cf918
..
844cc68
100644
(file)
--- a/
public/javascripts/variants/Magnetic.js
+++ b/
public/javascripts/variants/Magnetic.js
@@
-14,12
+14,13
@@
class MagneticRules extends ChessRules
if (newMove_s.length == 1)
moves.push(newMove_s[0]);
else //promotion
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
});
return moves;
}
// Complete a move with magnetic actions
+ // TODO: job is done multiple times for (normal) promotions.
applyMagneticLaws(move)
{
const V = VariantRules;
applyMagneticLaws(move)
{
const V = VariantRules;
@@
-43,8
+44,7
@@
class MagneticRules extends ChessRules
if (this.getColor(i,j) != color)
{
// Attraction
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({
{
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++)
{
// 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);
{
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";
}
// 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
+ }
}
}