X-Git-Url: https://git.auder.net/variants/%24%7Bobj.vname%7D/style.css?a=blobdiff_plain;ds=sidebyside;f=base_rules.js;h=757707da92a8713872962aaed259f0826bb58be1;hb=2c8375bb77dda7cbeaee983a09e202436be2191c;hp=0f950a240bb4b478d671d02ec9bb0dfe531ff00b;hpb=c08a5e745db2b631bedf981d1ba685b312c7e3b5;p=xogo.git diff --git a/base_rules.js b/base_rules.js index 0f950a2..757707d 100644 --- a/base_rules.js +++ b/base_rules.js @@ -235,7 +235,7 @@ export default class ChessRules { randomness: this.options["randomness"], between: [{p1: 'k', p2: 'r'}], diffCol: ['b'], - flags: ['r', 'k'] + flags: ['r'] } ); return { @@ -642,7 +642,13 @@ export default class ChessRules { else this[arrName] = ArrayFun.init(this.size.x, this.size.y, null); if (arrName == "d_pieces") - this.marks.forEach(([i, j]) => addPiece(i, j, arrName, "mark")); + this.marks.forEach((m) => { + const formattedSquare = + (this.size.x - parseInt(m.substring(1), 10)).toString(36) + + (m.charCodeAt(0) - 97).toString(36); + const mCoords = V.SquareToCoords(formattedSquare); + addPiece(mCoords.x, mCoords.y, arrName, "mark"); + }); }; if (this.marks) conditionalReset("d_pieces"); @@ -1686,10 +1692,6 @@ export default class ChessRules { getPotentialMovesOf(piece, [x, y]) { const color = this.getColor(x, y); const stepSpec = this.getStepSpec(color, x, y, piece); - - // TODO: pawns, coregal -console.log(stepSpec); - let squares = []; if (stepSpec.attack) { squares = this.findDestSquares( @@ -2254,7 +2256,7 @@ console.log(stepSpec); } // Update castling flags if start or arrive from/at rook/king locations move.appear.concat(move.vanish).forEach(psq => { - if ((!!king && psq.p == king) || this.isKing(0, 0, psq.p)) + if ((king && psq.p == king) || (!king && this.isKing(0, 0, psq.p))) castleFlags[psq.c] = [this.size.y, this.size.y]; // NOTE: not "else if" because king can capture enemy rook... let c = "";