X-Git-Url: https://git.auder.net/js/index.js?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FShinobi.js;h=faa4cd7e6ea0a98c994546101a6659e08ab2d443;hb=7e98914d2cc787c5d1b1604987a9644b8d4c566f;hp=babf6e19e0682112131bfd76700af41a6638b51d;hpb=131cad32e36c0fa245ee9c185691d9f5149555ab;p=vchess.git diff --git a/client/src/variants/Shinobi.js b/client/src/variants/Shinobi.js index babf6e19..faa4cd7e 100644 --- a/client/src/variants/Shinobi.js +++ b/client/src/variants/Shinobi.js @@ -60,7 +60,7 @@ export class ShinobiRules extends ChessRules { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); // 5) Check reserve - if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-9]{6,6}$/)) + if (!fenParsed.reserve || !fenParsed.reserve.match(/^[0-9]{5,5}$/)) return false; return true; } @@ -73,12 +73,12 @@ export class ShinobiRules extends ChessRules { ); } - // In hand initially: captain, ninja, samurai + 2 x monk, horse, lance. + // In hand initially: ninja, samurai + 2 x monk, horse, lance. static GenRandInitFen(randomness) { const baseFen = ChessRules.GenRandInitFen(Math.min(randomness, 1)); return ( baseFen.substr(0, 35) + "3CK3 " + - "w 0 " + baseFen.substr(48, 2) + " - 111222" + "w 0 " + baseFen.substr(48, 2) + " - 11222" ); } @@ -101,12 +101,11 @@ export class ShinobiRules extends ChessRules { V.ParseFen(fen).reserve.split("").map(x => parseInt(x, 10)); this.reserve = { w: { - [V.CAPTAIN]: reserve[0], - [V.NINJA]: reserve[1], - [V.SAMURAI]: reserve[2], - [V.MONK]: reserve[3], - [V.HORSE]: reserve[4], - [V.LANCE]: reserve[5] + [V.NINJA]: reserve[0], + [V.SAMURAI]: reserve[1], + [V.MONK]: reserve[2], + [V.HORSE]: reserve[3], + [V.LANCE]: reserve[4] } }; } @@ -122,7 +121,7 @@ export class ShinobiRules extends ChessRules { } static get RESERVE_PIECES() { - return [V.CAPTAIN, V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE]; + return [V.NINJA, V.SAMURAI, V.MONK, V.HORSE, V.LANCE]; } getReserveMoves([x, y]) { @@ -250,6 +249,7 @@ export class ShinobiRules extends ChessRules { // Attacked by white: return ( super.isAttackedByKing(sq, 'w') || + super.isAttackedByPawn(sq, 'w') || this.isAttackedByCaptain(sq, 'w') || this.isAttackedByNinja(sq, 'w') || this.isAttackedBySamurai(sq, 'w') ||