X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FSchess.js;h=95118982ec155c3e372bd5c77ea0a6e039947c5b;hb=c3ff3a0c807d97c0311a06491318fe02440266db;hp=ba5730e6fdbc731202dcd11e7599312ffb86942b;hpb=58bf4670c6bf01d94fe1f798cd5d63493d15e196;p=vchess.git diff --git a/client/src/variants/Schess.js b/client/src/variants/Schess.js index ba5730e6..95118982 100644 --- a/client/src/variants/Schess.js +++ b/client/src/variants/Schess.js @@ -50,7 +50,7 @@ export class SchessRules extends ChessRules { setFlags(fenflags) { super.setFlags(fenflags); //castleFlags this.pieceFlags = { - w: [...Array(8)], //pawns can move 2 squares? + w: [...Array(8)], //pieces can generate Hawk or Elephant? b: [...Array(8)] }; const flags = fenflags.substr(4); //skip first 4 letters, for castle @@ -119,12 +119,12 @@ export class SchessRules extends ChessRules { const fenParsed = V.ParseFen(fen); this.pocket = { "w": { - h: parseInt(fenParsed.pocket[0]), - e: parseInt(fenParsed.pocket[1]) + h: parseInt(fenParsed.pocket[0], 10), + e: parseInt(fenParsed.pocket[1], 10) }, "b": { - h: parseInt(fenParsed.pocket[2]), - e: parseInt(fenParsed.pocket[3]) + h: parseInt(fenParsed.pocket[2], 10), + e: parseInt(fenParsed.pocket[3], 10) } }; } @@ -172,7 +172,8 @@ export class SchessRules extends ChessRules { ( m.appear.length == shift+1 || // Special castle case: is initial king square free? - ![m.appear[shift].y, m.appear[shift+1].y].includes(m.vanish[0].y) + ![m.appear[shift].y, m.appear[shift+1].y] + .includes(m.vanish[0].y) ) ) { let pMove = JSON.parse(JSON.stringify(m)); @@ -191,7 +192,8 @@ export class SchessRules extends ChessRules { if ( m.appear.length >= 2 + shift && m.vanish.length == 2 && - ![m.appear[shift].y, m.appear[shift+1].y].includes(m.vanish[1].y) + ![m.appear[shift].y, m.appear[shift+1].y] + .includes(m.vanish[1].y) ) { // Special castle case: rook flag was necessarily on let pMove = JSON.parse(JSON.stringify(m)); @@ -289,11 +291,10 @@ export class SchessRules extends ChessRules { ([V.HAWK, V.ELEPHANT, V.NOTHING].includes(move.appear[0].p) ? 1 : 0); this.kingPos[color][0] = move.appear[shift].x; this.kingPos[color][1] = move.appear[shift].y; - return; } this.updateCastleFlags(move, piece); - const oppCol = V.GetOppCol(color); + const oppCol = this.turn; const firstRank = (color == 'w' ? 7 : 0); const oppFirstRank = 7 - firstRank; // Does this move turn off a piece init square flag?