projects
/
xogo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Current state - TODO: pawnfall fix, better pre/postPlay()
[xogo.git]
/
base_rules.js
diff --git
a/base_rules.js
b/base_rules.js
index
e7d58b2
..
8ad54a4
100644
(file)
--- a/
base_rules.js
+++ b/
base_rules.js
@@
-1347,6
+1347,8
@@
export default class ChessRules {
});
}
});
}
+// TODO: pawnfall + Cannibal issues
+
pawnPostProcess(moves, color, oppCol) {
let moreMoves = [];
const lastRank = (color == "w" ? 0 : this.size.x - 1);
pawnPostProcess(moves, color, oppCol) {
let moreMoves = [];
const lastRank = (color == "w" ? 0 : this.size.x - 1);
@@
-1361,7
+1363,12
@@
export default class ChessRules {
);
if (!promotionOk)
return; //nothing to do
);
if (!promotionOk)
return; //nothing to do
- if (!this.options["pawnfall"]) {
+ if (this.options["pawnfall"]) {
+ m.appear.shift();
+ m.pawnfall = true; //required in prePlay() /// ????????????
+ return;
+ }
+ //if (!this.options["pawnfall"]) { --> OK
if (
this.options["cannibal"] &&
this.board[x2][y2] != "" &&
if (
this.options["cannibal"] &&
this.board[x2][y2] != "" &&
@@
-1371,7
+1378,7
@@
export default class ChessRules {
}
else
finalPieces = this.pawnPromotions;
}
else
finalPieces = this.pawnPromotions;
- }
+
//
}
m.appear[0].p = finalPieces[0];
if (initPiece == "!") //cannibal king-pawn
m.appear[0].p = C.CannibalKingCode[finalPieces[0]];
m.appear[0].p = finalPieces[0];
if (initPiece == "!") //cannibal king-pawn
m.appear[0].p = C.CannibalKingCode[finalPieces[0]];
@@
-1386,8
+1393,6
@@
export default class ChessRules {
}
let newMove = this.getBasicMove([x1, y1], [x2, y2], tr);
if (this.options["pawnfall"]) {
}
let newMove = this.getBasicMove([x1, y1], [x2, y2], tr);
if (this.options["pawnfall"]) {
- newMove.appear.shift();
- newMove.pawnfall = true; //required in prePlay()
}
moreMoves.push(newMove);
}
}
moreMoves.push(newMove);
}
@@
-1946,6
+1951,11
@@
export default class ChessRules {
});
}
});
}
+
+// TODO: englober + de cas ici...
+ // + generique start/end board or reserve
+ // + bien séparer les options... ?
+
prePlay(move) {
if (
typeof move.start.x == "number" &&
prePlay(move) {
if (
typeof move.start.x == "number" &&
@@
-2154,6
+2164,10
@@
export default class ChessRules {
return;
}
let movingPiece = this.getDomPiece(move.start.x, move.start.y);
return;
}
let movingPiece = this.getDomPiece(move.start.x, move.start.y);
+ if (!movingPiece) { //TODO this shouldn't be required
+ callback();
+ return;
+ }
const initTransform = movingPiece.style.transform;
let chessboard =
document.getElementById(this.containerId).querySelector(".chessboard");
const initTransform = movingPiece.style.transform;
let chessboard =
document.getElementById(this.containerId).querySelector(".chessboard");