Skip to content
Merged
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
39 changes: 35 additions & 4 deletions locales/en/apgames.json
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@
"pletore": "Territorial line-of-sight game. Intersections are controlled and pieces on them are flipped based on the number and direction of pieces that can see them. The winner is the player who occupies more of the board at the end.",
"plurality": "Territorial game where players place trominos to enclosure areas. The player with more stones on a given area's perimeter owns that area.",
"pods": "Natal Seas - Pods is a territorial game where the players take on the metaphorical role of competing whales vying for space to protect their young. Played on a hexagonal board, it uses an innovative mechanism of placements and movements.",
"pollux": "A mix of Hex and Amazons: shoot to connect your edges or block the adversary.",
"pontedd": "Players build islands and attempt to connect as many of them as possible by bridge. Most points wins.",
"product": "Players score by multiplying their two largest groups. Largest score wins. If tied, the second player wins.",
"prudh": "Prudh (\"prew\") is a game of shared pieces where one player owns the light squares and the other owns the dark. Manipulate stacks of pieces to earn points. Highest score at the end of the game wins.",
Expand Down Expand Up @@ -2258,6 +2259,23 @@
"name": "19x19 board"
}
},
"pollux": {
"#board": {
"name": "10x10 board"
},
"size-12": {
"name": "12x12 board"
},
"size-14": {
"name": "14x14 board"
},
"size-16": {
"name": "16x16 board"
},
"size-18": {
"name": "18x18 board"
}
},
"pontedd": {
"size-8": {
"name": "8x8 board"
Expand Down Expand Up @@ -3165,16 +3183,16 @@
},
"twinflames": {
"#board": {
"name": "Hex board (base-6), 4 blockers"
"name": "Hex board (base-6)"
},
"size-7": {
"name": "Hex board (base-7), 6 blockers"
"name": "Hex board (base-7)"
},
"size-8": {
"name": "Hex board (base-8), 8 blockers"
"name": "Hex board (base-8)"
},
"#blockers": {
"name": "Use standard number of blockers"
"name": "Use default blockers"
},
"blocker-0": {
"name": "Don't use blockers"
Expand Down Expand Up @@ -5751,6 +5769,19 @@
"INVALID_MOVEMENT": "You may only move around other pieces without passing through enemy controlled spaces. Legal landing spaces are highlighted when clicking to move.",
"INVALID_MOVER": "You may only move your own nonisolated pieces."
},
"pollux": {
"INITIAL_INSTRUCTIONS_1": "Place your first tower.",
"INITIAL_INSTRUCTIONS_2": "Place your two towers.",
"INITIAL_INSTRUCTIONS_3": "Place your second tower.",
"INSTRUCTION_SLIDE": "Move a tower in a straight line over empty hexes, then shoot a piece also in a straight line.",
"INSTRUCTION_SHOOT": "Shoot a piece over a straight line of empty hexes.",
"NEED_FRIENDLY_TOWER": "Need to select a friendly tower!",
"TOWER_ADJACENT": "Initially, towers cannot be adjacent!",
"TOWER_OCCUPIED_CELL": "Need to move the tower to an empty hex!",
"PIECE_OCCUPIED_CELL": "Need to shoot the piece to an empty hex!",
"TOWER_STRAIGHT_LINE": "A Tower moves over a line of empty hexes!",
"PIECE_STRAIGHT_LINE": "A Tower shoots a piece over a line of empty hexes!"
},
"pontedd": {
"BAD_BRIDGE_BLOCKED": "There may be no tiles under the bridge.",
"BAD_BRIDGE_COLOUR": "Bridges must connect two tiles of the same colour.",
Expand Down
8 changes: 6 additions & 2 deletions src/games/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ import { AtariGoGame, IAtariGoState } from "./atarigo";
import { TanboGame, ITanboState } from "./tanbo";
import { UnaneGame, IUnaneState } from "./unane";
import { LinageGame, ILinageState } from "./linage";
import { PolluxGame, IPolluxState } from "./pollux";

export {
APGamesInformation, GameBase, GameBaseSimultaneous, IAPGameState,
Expand Down Expand Up @@ -511,6 +512,7 @@ export {
TanboGame, ITanboState,
UnaneGame, IUnaneState,
LinageGame, ILinageState,
PolluxGame, IPolluxState,
};

const games = new Map<string, typeof AmazonsGame | typeof BlamGame | typeof CannonGame |
Expand Down Expand Up @@ -599,7 +601,7 @@ const games = new Map<string, typeof AmazonsGame | typeof BlamGame | typeof Cann
typeof SoccolotGame | typeof CourtGame | typeof HalmaGame |
typeof MinimizeGame | typeof HalmaClimbersGame | typeof SynapseGame |
typeof AtariGoGame | typeof TanboGame | typeof UnaneGame |
typeof LinageGame
typeof LinageGame | typeof PolluxGame
>();
// Manually add each game to the following array
[
Expand Down Expand Up @@ -638,7 +640,7 @@ const games = new Map<string, typeof AmazonsGame | typeof BlamGame | typeof Cann
ProductGame, OonpiaGame, GoGame, StilettoGame, BTTGame, MinefieldGame, SentinelGame,
XanaGame, SporaGame, SquirmGame, PinchGame, DomineeringGame, TwinFlamesGame, YGame, ShapeChessGame,
SlimetrailGame, CatsDogsGame, SoccolotGame, CourtGame, HalmaGame, MinimizeGame, HalmaClimbersGame,
SynapseGame, AtariGoGame, TanboGame, UnaneGame, LinageGame
SynapseGame, AtariGoGame, TanboGame, UnaneGame, LinageGame, PolluxGame
].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 @@ -1158,6 +1160,8 @@ export const GameFactory = (game: string, ...args: any[]): GameBase|GameBaseSimu
return new UnaneGame(...args);
case "linage":
return new LinageGame(...args);
case "pollux":
return new PolluxGame(...args);
}
return;
}
Loading
Loading