Fix swap distance issue.

This commit is contained in:
yukirij 2024-09-04 01:05:10 -07:00
parent 9c636058dd
commit 0dc3b63ea4

View File

@ -501,7 +501,7 @@ GAME.Game = class {
pieces_blocking += 2; pieces_blocking += 2;
// Move is only valid if pieces are swappable. // Move is only valid if pieces are swappable.
if(this.movement_swappable(piece, target, mask, dist, tile)) { if(dist == 1 && this.movement_swappable(piece, target, mask, tile)) {
swap = true; swap = true;
} else { } else {
result = false; result = false;
@ -560,7 +560,7 @@ GAME.Game = class {
return tiles; return tiles;
} }
movement_swappable(piece, target, mask, range, tile) { movement_swappable(piece, target, mask, tile) {
if(piece.piece == target.piece && piece.promoted == target.promoted) { if(piece.piece == target.piece && piece.promoted == target.promoted) {
return false; return false;
} }
@ -574,7 +574,7 @@ GAME.Game = class {
&& (this.board.tiles[tile].threaten[+(!target.player)] > 0 || piece.blocking != 0)) { && (this.board.tiles[tile].threaten[+(!target.player)] > 0 || piece.blocking != 0)) {
return false; return false;
} }
return ((moves.direction & mask) != 0 && (range == 1 || (moves.stride & mask) != 0)); return (moves.direction & mask) != 0;
} }
movement_tiles_alt(piece) { movement_tiles_alt(piece) {