From: Benjamin Auder <benjamin.auder@somewhere>
Date: Tue, 4 Dec 2018 00:02:37 +0000 (+0100)
Subject: Fix and simplify variables update in Atomic
X-Git-Url: https://git.auder.net/%7B%7B%20asset%28%27mixstore/images/doc/html/css/%7B%7B%20pkg.url%20%7D%7D?a=commitdiff_plain;h=1147d89554c96691f3db32ebab7618d31b5b097d;p=vchess.git

Fix and simplify variables update in Atomic
---

diff --git a/public/javascripts/components/game.js b/public/javascripts/components/game.js
index 6d05a2a6..5c1e6024 100644
--- a/public/javascripts/components/game.js
+++ b/public/javascripts/components/game.js
@@ -755,8 +755,6 @@ Vue.component('my-game', {
 				this.possibleMoves = this.mode!="idle" && this.vr.canIplay(this.mycolor,startSquare)
 					? this.vr.getPossibleMovesFrom(startSquare)
 					: [];
-				console.log(this.possibleMoves);
-				console.log(this.vr.promoted);
 				e.target.parentNode.appendChild(this.selectedPiece);
 			}
 		},
diff --git a/public/javascripts/variants/Atomic.js b/public/javascripts/variants/Atomic.js
index 633e70a9..997a70e1 100644
--- a/public/javascripts/variants/Atomic.js
+++ b/public/javascripts/variants/Atomic.js
@@ -59,51 +59,31 @@ class AtomicRules extends ChessRules
 	updateVariables(move)
 	{
 		super.updateVariables(move);
-
-		const c = this.getColor(move.start.x,move.start.y);
+		const color = this.getColor(move.start.x,move.start.y);
 		// Next condition to avoid conflicts with harmless castle moves
-		if (c != this.getColor(move.end.x,move.end.y)
+		if (color != this.getColor(move.end.x,move.end.y)
 			&& this.board[move.end.x][move.end.y] != VariantRules.EMPTY)
 		{
-			const oppCol = this.getOppCol(c);
-			const firstRank = (c == "w" ? 7 : 0);
-			const oppFirstRank = 7 - firstRank;
-
-			// Did we explode our king ? (TODO: remove move earlier)
-			if (Math.abs(this.kingPos[c][0]-move.end.x) <= 1
-				&& Math.abs(this.kingPos[c][1]-move.end.y) <= 1)
+			const firstRank = {"w": 7, "b": 0};
+			for (let c of ["w","b"])
 			{
-				this.kingPos[c] = [-1,-1];
-				this.castleFlags[c] = [false,false];
-			}
-			else
-			{
-				// Now check if our init rook(s) exploded
-				if (Math.abs(move.end.x-firstRank) <= 1)
+				// Did we explode king of color c ? (TODO: remove move earlier)
+				if (Math.abs(this.kingPos[c][0]-move.end.x) <= 1
+					&& Math.abs(this.kingPos[c][1]-move.end.y) <= 1)
 				{
-					if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][0]) <= 1)
-						this.castleFlags[c][0] = false;
-					if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][1]) <= 1)
-						this.castleFlags[c][1] = false;
+					this.kingPos[c] = [-1,-1];
+					this.castleFlags[c] = [false,false];
 				}
-			}
-
-			// Did we explode opponent king ?
-			if (Math.abs(this.kingPos[oppCol][0]-move.end.x) <= 1
-				&& Math.abs(this.kingPos[oppCol][1]-move.end.y) <= 1)
-			{
-				this.kingPos[oppCol] = [-1,-1];
-				this.castleFlags[oppCol] = [false,false];
-			}
-			else
-			{
-				// Now check if opponent init rook(s) exploded
-				if (Math.abs(move.end.x-oppFirstRank) <= 1)
+				else
 				{
-					if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][0]) <= 1)
-						this.castleFlags[oppCol][0] = false;
-					if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][1]) <= 1)
-						this.castleFlags[oppCol][1] = false;
+					// Now check if init rook(s) exploded
+					if (Math.abs(move.end.x-firstRank[c]) <= 1)
+					{
+						if (Math.abs(move.end.y-this.INIT_COL_ROOK[c][0]) <= 1)
+							this.castleFlags[c][0] = false;
+						if (Math.abs(move.end.y-this.INIT_COL_ROOK[c][1]) <= 1)
+							this.castleFlags[c][1] = false;
+					}
 				}
 			}
 		}