X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FUltima.js;h=04d62b7d016a992083fdfa86af0d890fd6ae4fbb;hb=643479f8d7c3622b57fc49c4f10d9950793ebf4f;hp=04ef29b0023a98058c7d10ce0dbce5a1dc5d50fa;hpb=0b7d99ecbb5dedc02cd96c457b5fc2962db9b297;p=vchess.git diff --git a/public/javascripts/variants/Ultima.js b/public/javascripts/variants/Ultima.js index 04ef29b0..04d62b7d 100644 --- a/public/javascripts/variants/Ultima.js +++ b/public/javascripts/variants/Ultima.js @@ -1,5 +1,9 @@ class UltimaRules extends ChessRules { + static get HasFlags() { return false; } + + static get HasEnpassant() { return false; } + static getPpath(b) { if (b[1] == "m") //'m' for Immobilizer (I is too similar to 1) @@ -7,7 +11,13 @@ class UltimaRules extends ChessRules return b; //usual piece } - initVariables(fen) + static get PIECES() + { + return ChessRules.PIECES.concat([V.IMMOBILIZER]); + } + + // No castling, but checks, so keep track of kings + setOtherVariables(fen) { this.kingPos = {'w':[-1,-1], 'b':[-1,-1]}; const fenParts = fen.split(" "); @@ -33,13 +43,6 @@ class UltimaRules extends ChessRules k++; } } - this.epSquares = []; //no en-passant here - } - - setFlags(fen) - { - // TODO: for compatibility? - this.castleFlags = {"w":[false,false], "b":[false,false]}; } static get IMMOBILIZER() { return 'm'; } @@ -535,7 +538,9 @@ class UltimaRules extends ChessRules } } - static get VALUES() { //TODO: totally experimental! + static get VALUES() + { + // TODO: totally experimental! return { 'p': 1, 'r': 2, @@ -599,19 +604,13 @@ class UltimaRules extends ChessRules return pieces["b"].join("") + "/pppppppp/8/8/8/8/PPPPPPPP/" + pieces["w"].join("").toUpperCase() + - " 0000"; //TODO: flags?! - } - - getFlagsFen() - { - return "0000"; //TODO: or "-" ? + " w"; } getNotation(move) { - const initialSquare = - String.fromCharCode(97 + move.start.y) + (V.size.x-move.start.x); - const finalSquare = String.fromCharCode(97 + move.end.y) + (V.size.x-move.end.x); + const initialSquare = V.CoordsToSquare(move.start); + const finalSquare = V.CoordsToSquare(move.end); let notation = undefined; if (move.appear[0].p == V.PAWN) { @@ -627,3 +626,5 @@ class UltimaRules extends ChessRules return notation; } } + +const VariantRules = UltimaRules;