X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=variants%2FCoregal%2Fclass.js;h=23f67c757cef96331487ffbf4ed7fdd209f51bb5;hb=2c8375bb77dda7cbeaee983a09e202436be2191c;hp=15a99e2e65f126f0ffdfbcb6d6deda9a770fae5f;hpb=3ca478329f818efdfe2e03ce72c0effa6a8b0c0b;p=xogo.git diff --git a/variants/Coregal/class.js b/variants/Coregal/class.js index 15a99e2..23f67c7 100644 --- a/variants/Coregal/class.js +++ b/variants/Coregal/class.js @@ -22,7 +22,7 @@ export default class CoregalRules extends ChessRules { const col = (c == 0 ? 'w' : 'b'); let first = ""; for (let i=4*c; i<4*(c+1); i++) { - const pos = parseInt(flags.charAt(i), 10); + const pos = parseInt(s.flags.charAt(i), 10); const symb = s[col][pos]; if (['k', 'l'].includes(symb)) { if (!first) { @@ -33,7 +33,7 @@ export default class CoregalRules extends ChessRules { relPos[col][symb] = '1'; //right } else - flags += flags.charAt(i); + flags += s.flags.charAt(i); } } return { @@ -41,25 +41,27 @@ export default class CoregalRules extends ChessRules { s.w.join("").toUpperCase(), o: { flags: flags + flags, //duplicate: one for each royal piece - relPos: ( - relPos['w']['k'] + relPos['w']['l'] + - relPos['b']['k'] + relPos['b']['l'] - ) + relPos: this.getRelposFen(relPos) } }; } getPartFen(o) { return (Object.assign( - {"relpos": o.relPos}, + {"relpos": o.init ? o.relPos : this.getRelposFen()}, super.getPartFen(o) )); } + getRelposFen(relPos) { + relPos = relPos || this.relPos; + return ( + relPos['w']['k'] + relPos['w']['l'] + + relPos['b']['k'] + relPos['b']['l'] + ); + } + setOtherVariables(fenParsed, pieceArray) { - -//TODO: issue, relPos is set at init but doesn't persist --> see base_rules.js line 263 -console.log(fenParsed); super.setOtherVariables(fenParsed, pieceArray); this.relPos = { 'w': { @@ -73,11 +75,12 @@ console.log(fenParsed); }; } - pieces() { - let res = super.pieces(); + pieces(color, x, y) { + let res = super.pieces(color, x, y); res['l'] = JSON.parse(JSON.stringify(res['q'])); // TODO: CSS royal queen symbol (with cross?) res['l']["class"] = "royal_queen"; + res['='] = {"class": "castle"}; //for castle display return res; } @@ -118,8 +121,10 @@ console.log(fenParsed); this.relPos[c][p] == '0' ? [1, 2] : [2, 3], //0 == left this.relPos[c][p] == '1' ? [6, 5] : [5, 4] //1 == right ]; - const moves = + let moves = super.getCastleMoves([x, y], finalSquares, null, this.castleFlags[p][c]); + if (p == 'l') + moves.forEach(m => m.choice = '='); //required (for display) return moves; }