Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions locales/en/apgames.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@
"spook": "Guide Spooky the ghost around the pyramid and try to be the first player to have all balls of your colour removed. The game takes place in two phases: the setup phase where the pyramid is built, and the getaway phase, where Spooky starts at the top of the pyramid and starts eliminating balls.",
"spree": "An impartial n-in-a-row game where players take turns handing a ball to their opponent to place. The goal is to try to make a full line of one of two colours (red and blue by default). There is a third wild neutral colour (green by default) that can play the role of either colour.",
"squaredance": "A game where you move groups of pieces by rotation, trying to force your opponent into a position where they cannot move.",
"squava": "Players try to win by making 4 in-a-row, but lose when doing just a 3 in-a-row.",
"stairs": "Stack higher than your opponent in this game of one-space, one-level jumps where you also have to move your lowest pieces first. To take the lead and win, you must surpass your opponent's tallest stack height or, failing that, their number of stacks at the tallest height.",
"stawvs": "A set collection game for 2-4 players that's similar to Amazons, with old-style Volcano scoring. On a checkerboard randomly filled with individual pyramids, player pieces can move and capture pyramids in a straight line (orthogonally or diagonally), if and only if all intervening spaces and the target space contain pyramids but not pieces.",
"stibro": "Win by forming a loop anywhere on the board, while adhering to the placement restriction that ensures loop-forming is always possible.",
Expand Down Expand Up @@ -5307,6 +5308,9 @@
"PARTIAL_DESTINATION": "Select the point where the end stone will end up. You may not cover friendly pieces, and any covered enemy pieces will be captured.",
"PARTIAL_ENDSTONE": "Select the end stone. This is the stone that will move the furthest."
},
"squava": {
"INITIAL_INSTRUCTIONS": "Select an empty cell to place a stone."
},
"stairs": {
"NORMAL_MOVE": "Choose a piece to move.",
"INVALID_MOVE": "You must move a piece to a neighboring stack of the same height. You must move one of your lowest movable pieces.",
Expand Down
8 changes: 6 additions & 2 deletions src/games/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ import { ChurnGame, IChurnState } from "./churn";
import { PenguinGame, IPenguinState } from "./penguin";
import { OwlmanGame, IOwlmanState } from "./owlman";
import { SquaredanceGame, ISquaredanceState } from "./squaredance";
import { SquavaGame, ISquavaState } from "./squava";
import { MegGame, IMegState } from "./meg";
import { YonmoqueGame, IYonmoqueState } from "./yonmoque";
import { ChameleonGame, IChameleonState } from "./chameleon";
Expand Down Expand Up @@ -408,6 +409,7 @@ export {
PenguinGame, IPenguinState,
OwlmanGame, IOwlmanState,
SquaredanceGame, ISquaredanceState,
SquavaGame, ISquavaState,
MegGame, IMegState,
YonmoqueGame, IYonmoqueState,
ChameleonGame, IChameleonState,
Expand Down Expand Up @@ -529,7 +531,7 @@ const games = new Map<string, typeof AmazonsGame | typeof BlamGame | typeof Cann
typeof EmergoGame | typeof FroggerGame | typeof ArimaaGame |
typeof RampartGame | typeof KrypteGame | typeof EnsoGame |
typeof RincalaGame | typeof WaldMeisterGame | typeof WunchunkGame |
typeof BambooGame
typeof BambooGame | typeof SquavaGame
>();
// Manually add each game to the following array
[
Expand Down Expand Up @@ -564,7 +566,7 @@ const games = new Map<string, typeof AmazonsGame | typeof BlamGame | typeof Cann
BloqueoGame, PilastriGame, TessellaGame, GorogoGame, BiscuitGame, QuincunxGame,
SiegeOfJGame, StairsGame, EmuGame, DeckfishGame, BluestoneGame, SunspotGame, StawvsGame,
LascaGame, EmergoGame, FroggerGame, ArimaaGame, RampartGame, KrypteGame, EnsoGame, RincalaGame,
WaldMeisterGame, WunchunkGame, BambooGame,
WaldMeisterGame, WunchunkGame, BambooGame, SquavaGame,
].forEach((g) => {
if (games.has(g.gameinfo.uid)) {
throw new Error("Another game with the UID '" + g.gameinfo.uid + "' has already been used. Duplicates are not allowed.");
Expand Down Expand Up @@ -938,6 +940,8 @@ export const GameFactory = (game: string, ...args: any[]): GameBase|GameBaseSimu
return new OwlmanGame(...args);
case "squaredance":
return new SquaredanceGame(...args);
case "squava":
return new SquavaGame(...args);
case "meg":
return new MegGame(...args);
case "yonmoque":
Expand Down
Loading