"Kings cross the 8x8 board": "Kings cross the 8x8 board",
   "Kings cross the 11x11 board": "Kings cross the 11x11 board",
   "Knibis and Bisknis": "Knibis and Bisknis",
+  "Kniros and Rosknis": "Kniros and Rosknis",
   "Knight in pocket": "Knight in pocket",
   "Knight versus pawns": "Knight versus pawns",
   "Korean Chess": "Korean Chess",
 
   "Kings cross the 8x8 board": "Los reyes cruzan el 8x8 tablero",
   "Kings cross the 11x11 board": "Los reyes cruzan el 11x11 tablero",
   "Knibis and Bisknis": "Knibis y Bisknis",
+  "Kniros and Rosknis": "Kniros y Rosknis",
   "Knight in pocket": "Caballo en bolsillo",
   "Knight versus pawns": "Caballo contra peones",
   "Korean Chess": "Ajedrez coreano",
 
   "Kings cross the 8x8 board": "Les rois traversent l'échiquier 8x8",
   "Kings cross the 11x11 board": "Les rois traversent l'échiquier 11x11",
   "Knibis and Bisknis": "Knibis et Bisknis",
+  "Kniros and Rosknis": "Kniros et Rosknis",
   "Knight in pocket": "Cavalier en poche",
   "Knight versus pawns": "Cavalier contre pions",
   "Korean Chess": "Échecs coréens",
 
--- /dev/null
+p.boxed
+  | Knights capture as rooks, and rooks capture as knights.
+
+figure.diagram-container
+  .diagram.diag12
+    | fen:r1bqr1k1/pp2ppbp/2n2np1/1BpN4/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  .diagram.diag22
+    | fen:r1bNr1k1/pp2ppbp/2n2np1/1Bp5/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  figcaption Before and after Nxd8.
+
+h3 Source
+
+p
+  | The variant is mentioned 
+  a(href="https://www.chessvariants.com/play/erf/NewZChss.html")
+    | on chessvariants
+  | . It was probably invented around 1903.
 
--- /dev/null
+p.boxed
+  | Los caballos capturan como torres y las torres como caballos.
+
+figure.diagram-container
+  .diagram.diag12
+    | fen:r1bqr1k1/pp2ppbp/2n2np1/1BpN4/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  .diagram.diag22
+    | fen:r1bNr1k1/pp2ppbp/2n2np1/1Bp5/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  figcaption Antes y después de Nxd8.
+
+h3 Fuente
+
+p
+  | Se menciona la variante 
+  a(href="https://www.chessvariants.com/play/erf/NewZChss.html")
+    | en chessvariants
+  | . Probablemente fue inventado alrededor de 1903.
 
--- /dev/null
+p.boxed
+  | Les cavaliers capturent comme des tours, et les tours comme des cavaliers.
+
+figure.diagram-container
+  .diagram.diag12
+    | fen:r1bqr1k1/pp2ppbp/2n2np1/1BpN4/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  .diagram.diag22
+    | fen:r1bNr1k1/pp2ppbp/2n2np1/1Bp5/5P2/4PN2/PPP3PP/R1BQ1RK1:
+  figcaption Avant et après Nxd8.
+
+h3 Source
+
+p
+  | La variante est mentionnée 
+  a(href="https://www.chessvariants.com/play/erf/NewZChss.html")
+    | sur chessvariants
+  | . Elle a probablement été inventée vers 1903.
 
     "Grand",
     "Grasshopper",
     "Hoppelpoppel",
+    "Newzealand",
     "Omega",
     "Ordamirror",
     "Perfect",
 
     "Grand",
     "Grasshopper",
     "Hoppelpoppel",
+    "Newzealand",
     "Omega",
     "Ordamirror",
     "Perfect",
 
     "Grand",
     "Grasshopper",
     "Hoppelpoppel",
+    "Newzealand",
     "Omega",
     "Ordamirror",
     "Perfect",
 
--- /dev/null
+import { ChessRules } from "@/base_rules";
+
+// NOTE: a lot copy-pasted from Hoppelpoppel
+export class NewzealandRules extends ChessRules {
+
+  getSlideNJumpMoves_([x, y], steps, oneStep, options) {
+    options = options || {};
+    let moves = [];
+    outerLoop: for (let step of steps) {
+      let i = x + step[0];
+      let j = y + step[1];
+      while (V.OnBoard(i, j) && this.board[i][j] == V.EMPTY) {
+        if (!options.onlyTake) moves.push(this.getBasicMove([x, y], [i, j]));
+        if (!!oneStep) continue outerLoop;
+        i += step[0];
+        j += step[1];
+      }
+      if (V.OnBoard(i, j) && this.canTake([x, y], [i, j]) && !options.onlyMove)
+        moves.push(this.getBasicMove([x, y], [i, j]));
+    }
+    return moves;
+  }
+
+  getPotentialKnightMoves(sq) {
+    // The knight captures like a rook
+    return (
+      this.getSlideNJumpMoves_(
+        sq, ChessRules.steps[V.KNIGHT], "oneStep", { onlyMove: true })
+      .concat(
+        this.getSlideNJumpMoves_(
+          sq, ChessRules.steps[V.ROOK], null, { onlyTake: true }))
+    );
+  }
+
+  getPotentialRookMoves(sq) {
+    // The rook captures like a knight
+    return (
+      this.getSlideNJumpMoves_(
+        sq, ChessRules.steps[V.ROOK], null, { onlyMove: true })
+      .concat(
+        this.getSlideNJumpMoves_(
+          sq, ChessRules.steps[V.KNIGHT], "oneStep", { onlyTake: true }))
+    );
+  }
+
+  isAttackedByKnight([x, y], color) {
+    return super.isAttackedBySlideNJump(
+      [x, y],
+      color,
+      V.KNIGHT,
+      V.steps[V.ROOK]
+    );
+  }
+
+  isAttackedByROOK([x, y], color) {
+    return super.isAttackedBySlideNJump(
+      [x, y],
+      color,
+      V.ROOK,
+      V.steps[V.KNIGHT],
+      "oneStep"
+    );
+  }
+
+};
 
   ('Monocolor', 'All of the same color'),
   ('Monster', 'White move twice'),
   ('Musketeer', 'New fairy pieces'),
+  ('Newzealand', 'Kniros and Rosknis'),
   ('Omega', 'A wizard in the corner'),
   ('Orda', 'Mongolian Horde (v1)'),
   ('Ordamirror', 'Mongolian Horde (v2)'),