X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FAtomic.js;h=a6934e739af546744f14d78a4a605ba8d3c14d30;hb=cf1303697774a12ef9bb154014a38797716944cf;hp=2b7b1ac343693c7f13cde637265f7f3e181086b0;hpb=2526c041baf44968b0aa7b98af56730e88f6a595;p=vchess.git diff --git a/public/javascripts/variants/Atomic.js b/public/javascripts/variants/Atomic.js index 2b7b1ac3..a6934e73 100644 --- a/public/javascripts/variants/Atomic.js +++ b/public/javascripts/variants/Atomic.js @@ -30,10 +30,11 @@ class AtomicRules extends ChessRules getPotentialKingMoves([x,y]) { + const V = VariantRules; // King cannot capture: let moves = []; - let [sizeX,sizeY] = VariantRules.size; - const steps = VariantRules.steps[VariantRules.QUEEN]; + let [sizeX,sizeY] = V.size; + const steps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]); for (let step of steps) { var i = x + step[0]; @@ -126,7 +127,7 @@ class AtomicRules extends ChessRules res = false; // Otherwise, if we remain under check, move is not valid else - res = this.isAttacked(this.kingPos[c], oppCol); + res = this.isAttacked(this.kingPos[c], [oppCol]); this.undo(move); return res; } @@ -140,7 +141,7 @@ class AtomicRules extends ChessRules let res = [ ]; if (this.kingPos[c][0] < 0) res = [saveKingPos]; - else if (this.isAttacked(this.kingPos[c], this.getOppCol(c))) + else if (this.isAttacked(this.kingPos[c], [this.getOppCol(c)])) res = [ JSON.parse(JSON.stringify(this.kingPos[c])) ] this.undo(move); return res; @@ -152,7 +153,7 @@ class AtomicRules extends ChessRules const kp = this.kingPos[color]; if (kp[0] < 0) //king disappeared return color == "w" ? "0-1" : "1-0"; - if (!this.isAttacked(kp, this.getOppCol(color))) + if (!this.isAttacked(kp, [this.getOppCol(color)])) return "1/2"; // Checkmate return color == "w" ? "0-1" : "1-0";