X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=variants%2FAlign4%2Fclass.js;h=09a79ed797c61b62a75e55eb1d888b8cb76c66fa;hb=HEAD;hp=4c191db86d9a47b9c05cf885995ad00fd1636d1b;hpb=f31de5e46015a93dca20765da61670035ce8f491;p=xogo.git diff --git a/variants/Align4/class.js b/variants/Align4/class.js index 4c191db..f5b8f83 100644 --- a/variants/Align4/class.js +++ b/variants/Align4/class.js @@ -13,6 +13,14 @@ export default class Align4Rules extends ChessRules { {label: "Random", value: 1} ] }], + input: [ + { + label: "Pawn first", + variable: "pawnfirst", + type: "checkbox", + defaut: false + } + ], styles: ["atomic", "capture", "cylinder"] }; } @@ -26,13 +34,10 @@ export default class Align4Rules extends ChessRules { genRandInitBaseFen() { let baseFen = super.genRandInitBaseFen(); - return { fen: baseFen.fen.replace("rnbqkbnr/pppppppp", "4k3/8"), o: {} }; - } - - getPartFen(o) { - let parts = super.getPartFen(o); - parts["flags"] = parts["flags"].substr(0, 2) + "88"; - return parts; + return { + fen: baseFen.fen.replace("rnbqkbnr/pppppppp", "4k3/8"), + o: {flags: baseFen.o.flags.substr(0, 2) + "88"} + }; } initReserves() { @@ -42,8 +47,19 @@ export default class Align4Rules extends ChessRules { // Just do not update any reserve (infinite supply) updateReserve() {} - getCurrentScore(move) { - const score = super.getCurrentScore(move); + canDrop([c, p], [i, j]) { + return ( + this.board[i][j] == "" && + ( + p != "p" || this.options["pawnfirst"] || + (c == 'w' && i < this.size.x - 1) || + (c == 'b' && i > 0) + ) + ); + } + + getCurrentScore(move_s) { + const score = super.getCurrentScore(move_s); if (score != "*") return score; // Check pawns connection: