X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FCheckered.js;h=a74143b9c21e89424d96318981d4ef1d71fc8053;hb=cd4cad0468612cf00c6e6879554e3cee58d4b1f9;hp=7c00ccacfa798dac1dc87bbe956d6d10d600a8cc;hpb=f3802fcd1279e5d07cdff1341fc5e17c5296dc9c;p=vchess.git diff --git a/public/javascripts/variants/Checkered.js b/public/javascripts/variants/Checkered.js index 7c00ccac..a74143b9 100644 --- a/public/javascripts/variants/Checkered.js +++ b/public/javascripts/variants/Checkered.js @@ -276,8 +276,8 @@ class CheckeredRules extends ChessRules canIplay(color, sq) { - return ((color=='w' && this.movesCount%2==0) || color=='c' - || (color=='b' && this.movesCount%2==1)) + return ((color=='w' && this.moves.length%2==0) || color=='c' + || (color=='b' && this.moves.length%2==1)) && [color,'c'].includes(this.getColor(sq[0], sq[1])); } @@ -338,11 +338,13 @@ class CheckeredRules extends ChessRules getCheckSquares(move, c) { this.play(move); + this.moves.push(move); //artifically change turn, for checkered pawns (TODO) const kingAttacked = this.isAttacked(this.kingPos[c], this.getOppCol(c)) || this.isAttacked(this.kingPos[c], 'c'); let res = kingAttacked ? [ JSON.parse(JSON.stringify(this.kingPos[c])) ] //need to duplicate! : [ ]; + this.moves.pop(); this.undo(move); return res; } @@ -385,19 +387,6 @@ class CheckeredRules extends ChessRules this.flags[1][move.start.x==6 ? "w" : "b"][move.start.y] = false; } - play(move, ingame) - { - super.play(move, ingame); - if (!ingame) - this.moves.push(move); //needed for turn indication for checkered pieces - } - - undo(move) - { - super.undo(move); - this.moves.pop(); - } - checkGameEnd(color) { if (!this.isAttacked(this.kingPos[color], this.getOppCol(color))