X-Git-Url: https://git.auder.net/pieces/Checkered/cq.svg?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FAntiking.js;h=84f774a583a7ff810f84c4c23e3d825038386785;hb=cf1303697774a12ef9bb154014a38797716944cf;hp=53e5518804012813fca917a7e4e852039dbab24f;hpb=6037f1d82232e62b669018b548845baf480f9e64;p=vchess.git diff --git a/public/javascripts/variants/Antiking.js b/public/javascripts/variants/Antiking.js index 53e55188..84f774a5 100644 --- a/public/javascripts/variants/Antiking.js +++ b/public/javascripts/variants/Antiking.js @@ -59,7 +59,9 @@ class AntikingRules extends ChessRules getPotentialAntikingMoves(sq) { - return this.getSlideNJumpMoves(sq, VariantRules.steps[VariantRules.QUEEN], "oneStep"); + const V = VariantRules; + return this.getSlideNJumpMoves(sq, + V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep"); } isAttacked(sq, colors) @@ -69,18 +71,20 @@ class AntikingRules extends ChessRules isAttackedByKing([x,y], colors) { - if (this.getPiece(x,y) == VariantRules.ANTIKING) + const V = VariantRules; + if (this.getPiece(x,y) == V.ANTIKING) return false; //antiking is not attacked by king - return this.isAttackedBySlideNJump([x,y], colors, - VariantRules.KING, VariantRules.steps[VariantRules.QUEEN], "oneStep"); + return this.isAttackedBySlideNJump([x,y], colors, V.KING, + V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep"); } isAttackedByAntiking([x,y], colors) { - if (this.getPiece(x,y) == VariantRules.KING) + const V = VariantRules; + if (this.getPiece(x,y) == V.KING) return false; //king is not attacked by antiking - return this.isAttackedBySlideNJump([x,y], colors, - VariantRules.ANTIKING, VariantRules.steps[VariantRules.QUEEN], "oneStep"); + return this.isAttackedBySlideNJump([x,y], colors, V.ANTIKING, + V.steps[V.ROOK].concat(V.steps[V.BISHOP]), "oneStep"); } underCheck(move) @@ -88,8 +92,8 @@ class AntikingRules extends ChessRules const c = this.turn; const oppCol = this.getOppCol(c); this.play(move) - let res = this.isAttacked(this.kingPos[c], oppCol) - || !this.isAttacked(this.antikingPos[c], oppCol); + let res = this.isAttacked(this.kingPos[c], [oppCol]) + || !this.isAttacked(this.antikingPos[c], [oppCol]); this.undo(move); return res; } @@ -99,7 +103,7 @@ class AntikingRules extends ChessRules let res = super.getCheckSquares(move); this.play(move); const c = this.turn; - if (!this.isAttacked(this.antikingPos[c], this.getOppCol(c))) + if (!this.isAttacked(this.antikingPos[c], [this.getOppCol(c)])) res.push(JSON.parse(JSON.stringify(this.antikingPos[c]))); this.undo(move); return res; @@ -130,8 +134,8 @@ class AntikingRules extends ChessRules { const color = this.turn; const oppCol = this.getOppCol(color); - if (!this.isAttacked(this.kingPos[color], oppCol) - && this.isAttacked(this.antikingPos[color], oppCol)) + if (!this.isAttacked(this.kingPos[color], [oppCol]) + && this.isAttacked(this.antikingPos[color], [oppCol])) { return "1/2"; }