projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some fixes + draft Avalanche
[vchess.git]
/
client
/
src
/
base_rules.js
diff --git
a/client/src/base_rules.js
b/client/src/base_rules.js
index
770561b
..
0f18dbe
100644
(file)
--- a/
client/src/base_rules.js
+++ b/
client/src/base_rules.js
@@
-275,7
+275,7
@@
export const ChessRules = class ChessRules {
// En-passant square, if any
getEpSquare(moveOrSquare) {
// En-passant square, if any
getEpSquare(moveOrSquare) {
- if (!moveOrSquare) return undefined;
+ if (!moveOrSquare) return undefined;
//TODO: necessary line?!
if (typeof moveOrSquare === "string") {
const square = moveOrSquare;
if (square == "-") return undefined;
if (typeof moveOrSquare === "string") {
const square = moveOrSquare;
if (square == "-") return undefined;
@@
-892,7
+892,6
@@
export const ChessRules = class ChessRules {
// Castling ?
const oppCol = V.GetOppCol(c);
let moves = [];
// Castling ?
const oppCol = V.GetOppCol(c);
let moves = [];
- let i = 0;
// King, then rook:
finalSquares = finalSquares || [ [2, 3], [V.size.y - 2, V.size.y - 3] ];
const castlingKing = this.board[x][y].charAt(1);
// King, then rook:
finalSquares = finalSquares || [ [2, 3], [V.size.y - 2, V.size.y - 3] ];
const castlingKing = this.board[x][y].charAt(1);
@@
-919,7
+918,7
@@
export const ChessRules = class ChessRules {
// Nothing on the path of the king ? (and no checks)
const finDist = finalSquares[castleSide][0] - y;
let step = finDist / Math.max(1, Math.abs(finDist));
// Nothing on the path of the king ? (and no checks)
const finDist = finalSquares[castleSide][0] - y;
let step = finDist / Math.max(1, Math.abs(finDist));
- i = y;
+
let
i = y;
do {
if (
(!castleInCheck && this.isAttacked([x, i], oppCol)) ||
do {
if (
(!castleInCheck && this.isAttacked([x, i], oppCol)) ||
@@
-1073,7
+1072,8
@@
export const ChessRules = class ChessRules {
V.OnBoard(rx, ry) &&
this.board[rx][ry] != V.EMPTY &&
this.getPiece(rx, ry) == piece &&
V.OnBoard(rx, ry) &&
this.board[rx][ry] != V.EMPTY &&
this.getPiece(rx, ry) == piece &&
- this.getColor(rx, ry) == color
+ this.getColor(rx, ry) == color &&
+ this.canTake([rx, ry], [x, y])
) {
return true;
}
) {
return true;
}
@@
-1173,6
+1173,7
@@
export const ChessRules = class ChessRules {
}
updateCastleFlags(move, piece, color) {
}
updateCastleFlags(move, piece, color) {
+ // TODO: check flags. If already off, no need to always re-evaluate
const c = color || V.GetOppCol(this.turn);
const firstRank = (c == "w" ? V.size.x - 1 : 0);
// Update castling flags if rooks are moved
const c = color || V.GetOppCol(this.turn);
const firstRank = (c == "w" ? V.size.x - 1 : 0);
// Update castling flags if rooks are moved