projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Pandemonium pieces' values
[vchess.git]
/
client
/
src
/
variants
/
Madhouse.js
diff --git
a/client/src/variants/Madhouse.js
b/client/src/variants/Madhouse.js
index
5f90904
..
1ed248d
100644
(file)
--- a/
client/src/variants/Madhouse.js
+++ b/
client/src/variants/Madhouse.js
@@
-3,10
+3,13
@@
import { randInt } from "@/utils/alea";
export class MadhouseRules extends ChessRules {
export class MadhouseRules extends ChessRules {
- hoverHighlight(
x, y
) {
+ hoverHighlight(
[x, y], side
) {
// Testing move validity results in an infinite update loop.
// TODO: find a way to test validity anyway.
// 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);
+ return (
+ (this.subTurn == 2 && this.board[x][y] == V.EMPTY) &&
+ (!side || side == this.turn)
+ );
}
setOtherVariables(fen) {
}
setOtherVariables(fen) {
@@
-15,6
+18,12
@@
export class MadhouseRules extends ChessRules {
this.firstMove = [];
}
this.firstMove = [];
}
+ canIplay(side, [x, y]) {
+ if (this.subTurn == 1) return super.canIplay(side, [x, y]);
+ // subturn == 2, drop a piece:
+ return side == this.turn && this.board[x][y] == V.EMPTY;
+ }
+
getPotentialMovesFrom([x, y]) {
if (this.subTurn == 1) return super.getPotentialMovesFrom([x, y]);
// subTurn == 2: a move is a click, not handled here
getPotentialMovesFrom([x, y]) {
if (this.subTurn == 1) return super.getPotentialMovesFrom([x, y]);
// subTurn == 2: a move is a click, not handled here