X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FMagnetic.js;h=a59ce41198806f2b4125c39edd2b2fc90579037f;hp=4549e846d9de4b78dbf772e4d2c9872778e25a34;hb=3a2a7b5fd3c6bfd0752838094c27e1fb6172d109;hpb=afbf3ca7151ef15a9e579b0f913683ab212396c4 diff --git a/client/src/variants/Magnetic.js b/client/src/variants/Magnetic.js index 4549e846..a59ce411 100644 --- a/client/src/variants/Magnetic.js +++ b/client/src/variants/Magnetic.js @@ -145,34 +145,37 @@ export const VariantRules = class MagneticRules extends ChessRules { return []; } - updateVariables(move) { - super.updateVariables(move); + postPlay(move) { + super.postPlay(move); const c = move.vanish[0].c; if (move.vanish.length >= 2 && move.vanish[1].p == V.KING) { // We took opponent king ! const oppCol = V.GetOppCol(c); this.kingPos[oppCol] = [-1, -1]; - this.castleFlags[oppCol] = [false, false]; + this.castleFlags[oppCol] = [8, 8]; } // Did we magnetically move our (init) rooks or opponents' ones ? const firstRank = c == "w" ? 7 : 0; const oppFirstRank = 7 - firstRank; const oppCol = V.GetOppCol(c); move.vanish.forEach(psq => { - if (psq.x == firstRank && this.INIT_COL_ROOK[c].includes(psq.y)) - this.castleFlags[c][psq.y == this.INIT_COL_ROOK[c][0] ? 0 : 1] = false; + if ( + psq.x == firstRank && + this.castleFlags[c].includes(psq.y) + ) { + this.castleFlags[c][psq.y == this.castleFlags[c][0] ? 0 : 1] = 8; + } else if ( psq.x == oppFirstRank && - this.INIT_COL_ROOK[oppCol].includes(psq.y) - ) - this.castleFlags[oppCol][ - psq.y == this.INIT_COL_ROOK[oppCol][0] ? 0 : 1 - ] = false; + this.castleFlags[oppCol].includes(psq.y) + ) { + this.castleFlags[oppCol][psq.y == this.castleFlags[oppCol][0] ? 0 : 1] = 8; + } }); } - unupdateVariables(move) { - super.unupdateVariables(move); + postUndo(move) { + super.postUndo(move); const c = move.vanish[0].c; const oppCol = V.GetOppCol(c); if (this.kingPos[oppCol][0] < 0) {