Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7c75935
Merge branch 'AbstractPlay:main' into main
samtcifihi Sep 12, 2026
0bebce1
Add 40x40 Mirador board variant
samtcifihi Sep 13, 2026
3d026db
Clarify and generalize Mirador board sizes
samtcifihi Sep 13, 2026
734a1cc
Merge upstream develop
samtcifihi Sep 13, 2026
4f11a1d
Fix Mirador challenge placement validation
samtcifihi Sep 13, 2026
747c8f7
Add 23x23 board size variant to Asli
claude Sep 13, 2026
ab04f71
apgames fixes
Perlkonig Sep 13, 2026
76d6360
i18n: Auto-translate locale files [skip ci]
Perlkonig Sep 13, 2026
6267a2a
Merge remote-tracking branch 'upstream/develop' into claude/upbeat-pa…
claude Sep 13, 2026
240cde1
Merge pull request #467 from samtcifihi/claude/asli-board-23-oc4816
Perlkonig Sep 13, 2026
d859443
Merge pull request #466 from samtcifihi/mirador-40x40-board
Perlkonig Sep 13, 2026
77a91f2
Add "Moves until suicide" sidebar stat to Lielow
claude Sep 13, 2026
ea2a17c
Fix ESLint boolean assertions
Perlkonig Sep 13, 2026
202dcc2
Translations
Perlkonig Sep 13, 2026
00e9847
Add implementation notes for Lielow's "Moves until suicide" stat
claude Sep 13, 2026
01841cd
Tighten Lielow's "Moves until suicide" note wording
claude Sep 13, 2026
700ff46
Preserve Mirador challenge placements after invalid clicks
samtcifihi Sep 13, 2026
5b6f9a6
Merge pull request #468 from samtcifihi/claude/upbeat-pascal-v379dh
Perlkonig Sep 14, 2026
3912525
Merge pull request #469 from samtcifihi/mirador-40x40-board
Perlkonig Sep 14, 2026
78a42ef
i18n: Auto-translate locale files [skip ci]
Perlkonig Sep 14, 2026
a17b6a3
Fixing issue with bridges when there is only one action available.
humanat Sep 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions locale-src/de/apgames.json
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,8 @@
"out": "Der Spieler mit der größten kleinsten Gruppe gewinnt das Spiel."
},
"descriptions.mirador": {
"src": "Mirador is a fast and exhilarating connection game played on a 27 x 27 square grid by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador ist ein schnelles und aufregendes Verbindungsspiel auf einem 27 x 27 Quadratgitter, bei dem 2 x 2 Quadrate platziert werden, die Wachtürme darstellen. Es nutzt Sichtlinienverbindungen und gleichwertige Ziele (was es eher zu einem Rennen als zu einem reinen Verbindungsspiel macht)."
"src": "Mirador is a fast and exhilarating connection game played on a square grid (28 x 28 by default) by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador ist ein schnelles und aufregendes Verbindungsspiel, das auf einem quadratischen Raster (standardmäßig 28 x 28) gespielt wird, indem 2 x 2-Quadrate platziert werden, die Wachtürme darstellen. Es nutzt Sichtlinienverbindungen und gleichwertige Ziele (was es eher zu einem Rennen als zu einem reinen Verbindungsspiel macht)."
},
"descriptions.mixtour": {
"src": "Two players create towers with the goal of creating a tower at least five high with your colour at the top. The twist here is two-fold: (1) you can move opponent's pieces and (2) movement range is determined by the *target* stack height and not the moving stack height.",
Expand Down Expand Up @@ -3331,6 +3331,10 @@
"src": "Maneuverability is a measure of how close your pieces are to promoting. Your maximum maneuverability is the board size times the number of stacks you control.\n\nMaterial is calculated by giving you a point for every friendly piece in a stack you control, plus an extra point if you have an officer on top of that stack.",
"out": "Manövrierfähigkeit ist ein Maß dafür, wie nah deine Steine an der Umwandlung sind. Deine maximale Manövrierfähigkeit entspricht der Brettgröße multipliziert mit der Anzahl der Stapel, die du kontrollierst.\n\nMaterial wird berechnet, indem du einen Punkt für jeden eigenen Stein in einem von dir kontrollierten Stapel erhältst, plus einen Extra-Punkt, wenn sich ein Offizier an der Spitze dieses Stapels befindet."
},
"notes.lielow": {
"src": "\"Moves until suicide\" totals for each player how many moves each of their stacks could still make — growing by one each move and always choosing the direction that survives longest — before being forced to bear off. It ignores every other stack on the board, friendly or enemy, so it's a rough measure of how exposed a player's pieces are, not a count of actual legal moves remaining.",
"out": "\"Züge bis zum Selbstmord\" summiert für jeden Spieler auf, wie viele Züge jeder seiner Stapel noch machen könnte — wobei er mit jedem Zug um eins wächst und immer die Richtung wählt, die am längsten überlebt — bevor er gezwungen ist, abgetragen zu werden. Es ignoriert jeden anderen Stapel auf dem Brett, ob eigene oder gegnerische, daher ist es ein grobes Maß dafür, wie exponiert die Steine eines Spielers sind, und keine Zählung der tatsächlich verbleibenden legalen Züge."
},
"notes.linage": {
"src": "Linage is a 2016 game designed by Luis Bolaños Mures. The game is based on the following definitions: A **region** is a maximal set of orthogonally contiguous empty points. A **line** is a set of N orthogonally contiguous empty points on the same row or column (default is N=3); and a region is **owned** by Vertical if it contains no horizontal lines, and by Horizontal if it contains no vertical lines. A region is free if it is owned by neither player. Regions must always have at least one line.\n\nOn his turn, the player passes or places a stone in a free region. The game ends when both players pass in succession, and wins the one with highest score (i.e., the number of points in the regions the player owns, plus komi).",
"out": "Linage ist ein Spiel aus dem Jahr 2016 von Luis Bolaños Mures. Das Spiel basiert auf folgenden Definitionen: Eine **Region** ist eine maximale Menge orthogonal zusammenhängender leerer Punkte. Eine **Linie** ist eine Menge von N orthogonal zusammenhängenden leeren Punkten in derselben Reihe oder Spalte (Standard ist N=3); eine Region gehört **Vertikal**, wenn sie keine horizontalen Linien enthält, und **Horizontal**, wenn sie keine vertikalen Linien enthält. Eine Region ist frei, wenn sie keinem der beiden Spieler gehört. Regionen müssen immer mindestens eine Linie enthalten.\n\nIn seinem Zug passt der Spieler oder platziert einen Stein in einer freien Region. Das Spiel endet, wenn beide Spieler nacheinander passen, und es gewinnt derjenige mit der höchsten Punktzahl (d. h. die Anzahl der Punkte in den Regionen, die dem Spieler gehören, plus Komi)."
Expand Down Expand Up @@ -3811,6 +3815,10 @@
"src": "Maneuverability",
"out": "Beweglichkeit"
},
"status.lielow.MOVESUNTILSUICIDE": {
"src": "Moves until suicide",
"out": "Züge bis zum Selbstmord"
},
"status.majorities": {
"src": "Scores (─, ⟋, ⟍)",
"out": "Punktestände (─, ⟋, ⟍)"
Expand Down Expand Up @@ -14215,6 +14223,10 @@
"src": "19x19 board",
"out": "19x19-Brett"
},
"variants.asli.board-23.name": {
"src": "23x23 board",
"out": "23x23-Brett"
},
"variants.asli.board-27.name": {
"src": "27x27 board",
"out": "27x27-Brett"
Expand Down Expand Up @@ -14627,6 +14639,10 @@
"src": "Roughly 12 pieces across",
"out": "Ungefähr 12 Steine breit"
},
"variants.calculus.#board.name": {
"src": "Default board",
"out": "Standardbrett"
},
"variants.calculus.width-10.description": {
"src": "Roughly 10 pieces across",
"out": "Ungefähr 10 Steine breit"
Expand Down Expand Up @@ -16535,6 +16551,14 @@
"src": "Hexagonal board (base-8)",
"out": "Hexagonales Brett (Basis 8)"
},
"variants.mirador.#board.name": {
"src": "28x28 board",
"out": "28x28-Brett"
},
"variants.mirador.size-40.name": {
"src": "40x40 board",
"out": "40x40-Brett"
},
"variants.mixtour.five.description": {
"src": "The winner is the first to score three points.",
"out": "Gewinner ist, wer zuerst drei Punkte erzielt."
Expand Down
28 changes: 26 additions & 2 deletions locale-src/es-US/apgames.json
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,8 @@
"out": "El jugador cuyo grupo más pequeño sea el más grande gana el juego."
},
"descriptions.mirador": {
"src": "Mirador is a fast and exhilarating connection game played on a 27 x 27 square grid by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador es un juego de conexión rápido y emocionante que se juega en una cuadrícula de 27 x 27 colocando cuadrados de 2 x 2 para representar torres de vigilancia. Utiliza conexiones por línea de visión y objetivos equivalentes (lo que lo convierte más en una carrera que en un juego de conexión puro)."
"src": "Mirador is a fast and exhilarating connection game played on a square grid (28 x 28 by default) by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador es un juego de conexión rápido y emocionante que se juega en una cuadrícula cuadrada (de 28 x 28 por defecto) colocando cuadrados de 2 x 2 para representar torres de vigilancia. Usa conexiones por línea de visión y objetivos equivalentes (lo que lo convierte más en una carrera que en un juego de conexión puro)."
},
"descriptions.mixtour": {
"src": "Two players create towers with the goal of creating a tower at least five high with your colour at the top. The twist here is two-fold: (1) you can move opponent's pieces and (2) movement range is determined by the *target* stack height and not the moving stack height.",
Expand Down Expand Up @@ -3331,6 +3331,10 @@
"src": "Maneuverability is a measure of how close your pieces are to promoting. Your maximum maneuverability is the board size times the number of stacks you control.\n\nMaterial is calculated by giving you a point for every friendly piece in a stack you control, plus an extra point if you have an officer on top of that stack.",
"out": "La maniobrabilidad es una medida de qué tan cerca están tus piezas de coronarse. Tu maniobrabilidad máxima es el tamaño del tablero multiplicado por el número de pilas que controlas.\n\nEl material se calcula dándote un punto por cada pieza propia en una pila que controlas, más un punto extra si tienes un oficial en la parte superior de esa pila."
},
"notes.lielow": {
"src": "\"Moves until suicide\" totals for each player how many moves each of their stacks could still make — growing by one each move and always choosing the direction that survives longest — before being forced to bear off. It ignores every other stack on the board, friendly or enemy, so it's a rough measure of how exposed a player's pieces are, not a count of actual legal moves remaining.",
"out": "\"Movimientos hasta el suicidio\" calcula para cada jugador cuántos movimientos podría realizar aún cada una de sus pilas —creciendo en uno con cada movimiento y eligiendo siempre la dirección que sobreviva más tiempo— antes de verse obligada a retirar piezas. Ignora todas las demás pilas del tablero, ya sean propias o enemigas, por lo que es una medida aproximada de qué tan expuestas están las piezas de un jugador, y no un conteo de los movimientos legales restantes."
},
"notes.linage": {
"src": "Linage is a 2016 game designed by Luis Bolaños Mures. The game is based on the following definitions: A **region** is a maximal set of orthogonally contiguous empty points. A **line** is a set of N orthogonally contiguous empty points on the same row or column (default is N=3); and a region is **owned** by Vertical if it contains no horizontal lines, and by Horizontal if it contains no vertical lines. A region is free if it is owned by neither player. Regions must always have at least one line.\n\nOn his turn, the player passes or places a stone in a free region. The game ends when both players pass in succession, and wins the one with highest score (i.e., the number of points in the regions the player owns, plus komi).",
"out": "Linage es un juego de 2016 diseñado por Luis Bolaños Mures. El juego se basa en las siguientes definiciones: Una **región** es un conjunto máximo de puntos vacíos contiguos ortogonalmente. Una **línea** es un conjunto de N puntos vacíos contiguos ortogonalmente en la misma fila o columna (por defecto N=3); y una región es **propiedad** de Vertical si no contiene líneas horizontales, y de Horizontal si no contiene líneas verticales. Una región es libre si no pertenece a ningún jugador. Las regiones siempre deben tener al menos una línea.\n\nEn su turno, el jugador pasa o coloca una piedra en una región libre. El juego termina cuando ambos jugadores pasan sucesivamente, y gana quien tenga la puntuación más alta (es decir, el número de puntos en las regiones que posee el jugador, más el komi)."
Expand Down Expand Up @@ -3811,6 +3815,10 @@
"src": "Maneuverability",
"out": "Maniobrabilidad"
},
"status.lielow.MOVESUNTILSUICIDE": {
"src": "Moves until suicide",
"out": "Movimientos hasta el suicidio"
},
"status.majorities": {
"src": "Scores (─, ⟋, ⟍)",
"out": "Puntuación (─, ⟋, ⟍)"
Expand Down Expand Up @@ -14215,6 +14223,10 @@
"src": "19x19 board",
"out": "Tablero de 19x19"
},
"variants.asli.board-23.name": {
"src": "23x23 board",
"out": "Tablero de 23x23"
},
"variants.asli.board-27.name": {
"src": "27x27 board",
"out": "Tablero de 27x27"
Expand Down Expand Up @@ -14627,6 +14639,10 @@
"src": "Roughly 12 pieces across",
"out": "Aproximadamente 12 piezas de ancho"
},
"variants.calculus.#board.name": {
"src": "Default board",
"out": "Tablero predeterminado"
},
"variants.calculus.width-10.description": {
"src": "Roughly 10 pieces across",
"out": "Aproximadamente 10 piezas de ancho"
Expand Down Expand Up @@ -16535,6 +16551,14 @@
"src": "Hexagonal board (base-8)",
"out": "Tablero hexagonal (base 8)"
},
"variants.mirador.#board.name": {
"src": "28x28 board",
"out": "Tablero de 28x28"
},
"variants.mirador.size-40.name": {
"src": "40x40 board",
"out": "Tablero de 40x40"
},
"variants.mixtour.five.description": {
"src": "The winner is the first to score three points.",
"out": "El ganador es el primero en anotar tres puntos."
Expand Down
28 changes: 26 additions & 2 deletions locale-src/fr/apgames.json
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,8 @@
"out": "Le joueur ayant le plus grand groupe le plus petit gagne la partie."
},
"descriptions.mirador": {
"src": "Mirador is a fast and exhilarating connection game played on a 27 x 27 square grid by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador est un jeu de connexion rapide et palpitant joué sur une grille carrée de 27 x 27 en plaçant des carrés de 2 x 2 pour représenter des tours de guet. Il utilise des connexions par ligne de vue et des objectifs équivalents (ce qui en fait plus une course qu'un pur jeu de connexion)."
"src": "Mirador is a fast and exhilarating connection game played on a square grid (28 x 28 by default) by placing 2 x 2 squares to represent watchtowers. It uses line-of-sight connections and equivalent goals (making it more of a race than a pure connection game).",
"out": "Mirador est un jeu de connexion rapide et captivant qui se joue sur une grille carrée (28 x 28 par défaut) en plaçant des carrés de 2 x 2 représentant des tours de guet. Il utilise des connexions en ligne de mire et des objectifs équivalents (ce qui en fait davantage une course qu'un pur jeu de connexion)."
},
"descriptions.mixtour": {
"src": "Two players create towers with the goal of creating a tower at least five high with your colour at the top. The twist here is two-fold: (1) you can move opponent's pieces and (2) movement range is determined by the *target* stack height and not the moving stack height.",
Expand Down Expand Up @@ -3331,6 +3331,10 @@
"src": "Maneuverability is a measure of how close your pieces are to promoting. Your maximum maneuverability is the board size times the number of stacks you control.\n\nMaterial is calculated by giving you a point for every friendly piece in a stack you control, plus an extra point if you have an officer on top of that stack.",
"out": "La manœuvrabilité mesure à quel point vos pièces sont proches de la promotion. Votre manœuvrabilité maximale est égale à la taille du plateau multipliée par le nombre de piles que vous contrôlez.\n\nLe matériel est calculé en vous accordant un point pour chaque pièce alliée dans une pile que vous contrôlez, plus un point supplémentaire si vous avez un officier au sommet de cette pile."
},
"notes.lielow": {
"src": "\"Moves until suicide\" totals for each player how many moves each of their stacks could still make — growing by one each move and always choosing the direction that survives longest — before being forced to bear off. It ignores every other stack on the board, friendly or enemy, so it's a rough measure of how exposed a player's pieces are, not a count of actual legal moves remaining.",
"out": "\"Coups avant suicide\" totalise pour chaque joueur le nombre de coups que chacune de ses piles pourrait encore effectuer — augmentant d'un à chaque coup et choisissant toujours la direction qui survit le plus longtemps — avant d'être contrainte de sortir du plateau. Cet indicateur ignore toutes les autres piles sur le plateau, alliées comme ennemies ; c'est donc une mesure approximative de l'exposition des pièces d'un joueur, et non un décompte des coups légaux réellement restants."
},
"notes.linage": {
"src": "Linage is a 2016 game designed by Luis Bolaños Mures. The game is based on the following definitions: A **region** is a maximal set of orthogonally contiguous empty points. A **line** is a set of N orthogonally contiguous empty points on the same row or column (default is N=3); and a region is **owned** by Vertical if it contains no horizontal lines, and by Horizontal if it contains no vertical lines. A region is free if it is owned by neither player. Regions must always have at least one line.\n\nOn his turn, the player passes or places a stone in a free region. The game ends when both players pass in succession, and wins the one with highest score (i.e., the number of points in the regions the player owns, plus komi).",
"out": "Linage est un jeu de 2016 conçu par Luis Bolaños Mures. Le jeu repose sur les définitions suivantes : Une **région** est un ensemble maximal de points vides contigus de manière orthogonale. Une **ligne** est un ensemble de N points vides contigus de manière orthogonale sur la même rangée ou colonne (par défaut N=3) ; et une région est **possédée** par Vertical si elle ne contient aucune ligne horizontale, et par Horizontal si elle ne contient aucune ligne verticale. Une région est libre si elle n'appartient à aucun des deux joueurs. Les régions doivent toujours contenir au moins une ligne.\n\nÀ son tour, le joueur passe ou place une pierre dans une région libre. La partie se termine lorsque les deux joueurs passent consécutivement, et le joueur avec le score le plus élevé l'emporte (c'est-à-dire le nombre de points dans les régions que le joueur possède, plus le komi)."
Expand Down Expand Up @@ -3811,6 +3815,10 @@
"src": "Maneuverability",
"out": "Maniabilité"
},
"status.lielow.MOVESUNTILSUICIDE": {
"src": "Moves until suicide",
"out": "Coups avant suicide"
},
"status.majorities": {
"src": "Scores (─, ⟋, ⟍)",
"out": "Scores (─, ⟋, ⟍)"
Expand Down Expand Up @@ -14215,6 +14223,10 @@
"src": "19x19 board",
"out": "Plateau 19x19"
},
"variants.asli.board-23.name": {
"src": "23x23 board",
"out": "Plateau 23x23"
},
"variants.asli.board-27.name": {
"src": "27x27 board",
"out": "Plateau 27x27"
Expand Down Expand Up @@ -14627,6 +14639,10 @@
"src": "Roughly 12 pieces across",
"out": "Environ 12 pièces de largeur"
},
"variants.calculus.#board.name": {
"src": "Default board",
"out": "Plateau par défaut"
},
"variants.calculus.width-10.description": {
"src": "Roughly 10 pieces across",
"out": "Environ 10 pièces de largeur"
Expand Down Expand Up @@ -16535,6 +16551,14 @@
"src": "Hexagonal board (base-8)",
"out": "Plateau hexagonal (base 8)"
},
"variants.mirador.#board.name": {
"src": "28x28 board",
"out": "Plateau 28x28"
},
"variants.mirador.size-40.name": {
"src": "40x40 board",
"out": "Plateau 40x40"
},
"variants.mixtour.five.description": {
"src": "The winner is the first to score three points.",
"out": "Le gagnant est le premier à marquer trois points."
Expand Down
Loading
Loading