X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FMagnetic.js;h=1ccc192ec0c9507793ed505767050261c168f520;hb=388e4c401f05b1f6a4c54e33c9da9114969a53c0;hp=2e90e6c02b1965a78f0b225960650ea7cf48f1f0;hpb=0b7d99ecbb5dedc02cd96c457b5fc2962db9b297;p=vchess.git diff --git a/public/javascripts/variants/Magnetic.js b/public/javascripts/variants/Magnetic.js index 2e90e6c0..1ccc192e 100644 --- a/public/javascripts/variants/Magnetic.js +++ b/public/javascripts/variants/Magnetic.js @@ -1,9 +1,6 @@ class MagneticRules extends ChessRules { - getEpSquare(move) - { - return undefined; //no en-passant - } + static get HasEnpassant() { return false; } getPotentialMovesFrom([x,y]) { @@ -154,8 +151,8 @@ class MagneticRules extends ChessRules this.play(move); // The only way to be "under check" is to have lost the king (thus game over) let res = this.kingPos[c][0] < 0 - ? [ JSON.parse(JSON.stringify(saveKingPos)) ] - : [ ]; + ? [JSON.parse(JSON.stringify(saveKingPos))] + : []; this.undo(move); return res; } @@ -163,10 +160,8 @@ class MagneticRules extends ChessRules updateVariables(move) { super.updateVariables(move); - const c = this.getColor(move.start.x,move.start.y); - if (this.board[move.end.x][move.end.y] != V.EMPTY - && c != this.getColor(move.end.x,move.end.y) - && this.getPiece(move.end.x,move.end.y) == V.KING) + const c = move.vanish[0].c; + if (move.vanish.length >= 2 && move.vanish[1].p == V.KING) { // We took opponent king ! const oppCol = this.getOppCol(c); @@ -188,7 +183,7 @@ class MagneticRules extends ChessRules unupdateVariables(move) { super.unupdateVariables(move); - const c = this.getColor(move.start.x,move.start.y); + const c = move.vanish[0].c; const oppCol = this.getOppCol(c); if (this.kingPos[oppCol][0] < 0) { @@ -210,7 +205,10 @@ class MagneticRules extends ChessRules return this.turn == "w" ? "0-1" : "1-0"; } - static get THRESHOLD_MATE() { + static get THRESHOLD_MATE() + { return 500; //checkmates evals may be slightly below 1000 } } + +const VariantRules = MagneticRules;