export class TeleportRules extends ChessRules {
hoverHighlight(x, y) {
- if (this.subTurn == 1 || this.board[x][y] != V.EMPTY)
- return false;
- // Only highlight if the move is legal
- const color = this.turn;
- const tMove = new Move({
- appear: [
- new PiPo({
- x: x,
- y: y,
- c: color,
- // The dropped piece nature has no importance:
- p: V.KNIGHT
- })
- ],
- vanish: [],
- start: { x: -1, y: -1 }
- });
- this.play(tMove);
- const moveOk = !this.underCheck(color);
- this.undo(tMove);
- return moveOk;
+ // Testing move validity results in an infinite update loop.
+ // TODO: find a way to test validity anyway.
+ return (this.subTurn == 2 && this.board[x][y] == V.EMPTY);
}
setOtherVariables(fen) {
(color == 'w' && mvEval > m.eval) ||
(color == 'b' && mvEval < m.eval)
) {
- // TODO: if many second moves have the same eval, only the
- // first is kept. Could be randomized.
m.eval = mvEval;
m.next = m2;
}