X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=base_rules.js;h=e127b74284de31f8849b69454d195993ab3ddd82;hb=727f2e558776b14a29cb1552a05a88cc9a4b0297;hp=85666e209bd361f7de93df1afb92f6874705299f;hpb=bc97fdd1302473b774cfb19e65dc3ed3ed388901;p=xogo.git diff --git a/base_rules.js b/base_rules.js index 85666e2..e127b74 100644 --- a/base_rules.js +++ b/base_rules.js @@ -1321,6 +1321,11 @@ export default class ChessRules { return this.getColor(x1, y1) !== this.getColor(x2, y2); } + // TODO: currently unused, but makes sense? + canSelfTake([x1, y1], [x2, y2]) { + return true; + } + canStepOver(i, j, p) { // In some variants, objects on boards don't stop movement (Chakart) return this.board[i][j] == ""; @@ -1724,7 +1729,7 @@ export default class ChessRules { } return squares.map(s => { let mv = this.getBasicMove([x, y], s.sq); - if (this.options["cylinder"] && s.segments.length >= 2) + if (this.options["cylinder"] && !!s.segments && s.segments.length >= 2) mv.segments = s.segments; return mv; }); @@ -1742,7 +1747,7 @@ export default class ChessRules { const addSquare = ([i, j]) => { let elt = {sq: [i, j]}; if (o.segments) - elt.segments = this.getSegments(segments, segStart, end); + elt.segments = this.getSegments(segments, segStart, [i, j]); res.push(elt); }; const exploreSteps = (stepArray, mode) => {