projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Eightpieces: prevent lancer to orient toward outside board (except if being pushed)
[vchess.git]
/
client
/
src
/
variants
/
Eightpieces.js
diff --git
a/client/src/variants/Eightpieces.js
b/client/src/variants/Eightpieces.js
index
a232890
..
38f0d30
100644
(file)
--- a/
client/src/variants/Eightpieces.js
+++ b/
client/src/variants/Eightpieces.js
@@
-622,13
+622,18
@@
export class EightpiecesRules extends ChessRules {
let chooseMoves = [];
dirMoves.forEach(m => {
Object.keys(V.LANCER_DIRS).forEach(k => {
let chooseMoves = [];
dirMoves.forEach(m => {
Object.keys(V.LANCER_DIRS).forEach(k => {
- let mk = JSON.parse(JSON.stringify(m));
- mk.appear[0].p = k;
- moves.push(mk);
+ const newDir = V.LANCER_DIRS[k];
+ // Prevent orientations toward outer board:
+ if (V.OnBoard(m.end.x + newDir[0], m.end.y + newDir[1])) {
+ let mk = JSON.parse(JSON.stringify(m));
+ mk.appear[0].p = k;
+ chooseMoves.push(mk);
+ }
});
});
Array.prototype.push.apply(moves, chooseMoves);
});
});
Array.prototype.push.apply(moves, chooseMoves);
- } else Array.prototype.push.apply(moves, dirMoves);
+ }
+ else Array.prototype.push.apply(moves, dirMoves);
});
return moves;
}
});
return moves;
}
@@
-640,13
+645,18
@@
export class EightpiecesRules extends ChessRules {
if (this.subTurn == 1) {
monodirMoves.forEach(m => {
Object.keys(V.LANCER_DIRS).forEach(k => {
if (this.subTurn == 1) {
monodirMoves.forEach(m => {
Object.keys(V.LANCER_DIRS).forEach(k => {
- let mk = JSON.parse(JSON.stringify(m));
- mk.appear[0].p = k;
- moves.push(mk);
+ const newDir = V.LANCER_DIRS[k];
+ // Prevent orientations toward outer board:
+ if (V.OnBoard(m.end.x + newDir[0], m.end.y + newDir[1])) {
+ let mk = JSON.parse(JSON.stringify(m));
+ mk.appear[0].p = k;
+ moves.push(mk);
+ }
});
});
return moves;
});
});
return moves;
- } else {
+ }
+ else {
// I'm pushed: add potential nudges, except for current orientation
let potentialNudges = [];
for (let step of V.steps[V.ROOK].concat(V.steps[V.BISHOP])) {
// I'm pushed: add potential nudges, except for current orientation
let potentialNudges = [];
for (let step of V.steps[V.ROOK].concat(V.steps[V.BISHOP])) {