@boardgamers/container-engine
Advanced tools
Comparing version 1.0.8 to 1.0.9
import { GameOptions, GameState } from './gamestate'; | ||
import { LogItem } from './log'; | ||
import { Move } from './move'; | ||
export declare const playerColors: string[]; | ||
export declare function setup(numPlayers: number, { beginner }: GameOptions, seed?: string): GameState; | ||
@@ -5,0 +6,0 @@ export declare function stripSecret(G: GameState, player?: number): GameState; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.nextPlayer = exports.reconstructState = exports.scores = exports.ended = exports.moveAI = exports.move = exports.currentPlayers = exports.stripSecret = exports.setup = void 0; | ||
exports.nextPlayer = exports.reconstructState = exports.scores = exports.ended = exports.moveAI = exports.move = exports.currentPlayers = exports.stripSecret = exports.setup = exports.playerColors = void 0; | ||
const assert_1 = __importDefault(require("assert")); | ||
@@ -17,3 +17,3 @@ const lodash_1 = require("lodash"); | ||
const utils_1 = require("./utils"); | ||
const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid']; | ||
exports.playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid']; | ||
function setup(numPlayers, { beginner = true }, seed) { | ||
@@ -946,3 +946,3 @@ seed = seed !== null && seed !== void 0 ? seed : Math.random().toString(); | ||
function playerNameHTML(player) { | ||
return `<span style="background-color: ${playerColors[player.id]}; font-weight: bold; padding: 0 3px;">${player.name}</span>`; | ||
return `<span style="background-color: ${exports.playerColors[player.id]}; font-weight: bold; padding: 0 3px;">${player.name}</span>`; | ||
} | ||
@@ -949,0 +949,0 @@ function containerColorHTML(containerColor) { |
@@ -8,2 +8,3 @@ import type { GameState } from './index'; | ||
export declare function move(G: GameState, move: Move, player: number): Promise<GameState>; | ||
export declare function factions(G: GameState): string[]; | ||
export { ended, scores, stripSecret } from './src/engine'; | ||
@@ -10,0 +11,0 @@ export declare function rankings(G: GameState): number[]; |
@@ -22,3 +22,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.logSlice = exports.logLength = exports.messages = exports.currentPlayer = exports.dropPlayer = exports.round = exports.replay = exports.rankings = exports.stripSecret = exports.scores = exports.ended = exports.move = exports.setPlayerMetaData = exports.init = void 0; | ||
exports.logSlice = exports.logLength = exports.messages = exports.currentPlayer = exports.dropPlayer = exports.round = exports.replay = exports.rankings = exports.stripSecret = exports.scores = exports.ended = exports.factions = exports.move = exports.setPlayerMetaData = exports.init = void 0; | ||
const lodash_1 = require("lodash"); | ||
@@ -41,2 +41,6 @@ const engine = __importStar(require("./src/engine")); | ||
exports.move = move; | ||
function factions(G) { | ||
return G.players.map((pl) => engine.playerColors[pl.id]); | ||
} | ||
exports.factions = factions; | ||
var engine_1 = require("./src/engine"); | ||
@@ -43,0 +47,0 @@ Object.defineProperty(exports, "ended", { enumerable: true, get: function () { return engine_1.ended; } }); |
{ | ||
"name": "@boardgamers/container-engine", | ||
"version": "1.0.8", | ||
"version": "1.0.9", | ||
"description": "An engine for Container", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
import { expect } from 'chai'; | ||
import { ended, setup } from './engine'; | ||
import { ended, move, setup } from './engine'; | ||
import AbstractJudge from './fixtures/Abstract-judge-7215.json'; | ||
import type { Move } from './move'; | ||
@@ -18,203 +20,13 @@ describe('Engine', () => { | ||
it('should play full game', () => { | ||
const G = setup(5, { beginner: false }, 'test'); | ||
let G = setup(5, { beginner: AbstractJudge.options.beginner }, AbstractJudge.seed); | ||
// G.currentPlayers = [0]; | ||
// G.players[0].actions = 2; | ||
// G.players[0].availableMoves = availableMoves(G, G.players[0]); | ||
// G.players[0].factories[0] = ContainerColor.Brown; | ||
// G.players[1].factories[0] = ContainerColor.Orange; | ||
// G.players[2].factories[0] = ContainerColor.Black; | ||
// G.players[3].factories[0] = ContainerColor.Tan; | ||
// G.players[4].factories[0] = ContainerColor.White; | ||
// G.players[0].containersOnFactoryStore[0] = { containerColor: ContainerColor.Brown, price: 2 }; | ||
// G.players[1].containersOnFactoryStore[0] = { containerColor: ContainerColor.Orange, price: 2 }; | ||
// G.players[2].containersOnFactoryStore[0] = { containerColor: ContainerColor.Black, price: 2 }; | ||
// G.players[3].containersOnFactoryStore[0] = { containerColor: ContainerColor.Tan, price: 2 }; | ||
// G.players[4].containersOnFactoryStore[0] = { containerColor: ContainerColor.White, price: 2 }; | ||
for (const item of AbstractJudge.log) { | ||
if (item.type === 'move') { | ||
G = move(G, item.move! as Move, item.player!); | ||
} | ||
} | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Orange } as Move, 0); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Tan } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Black } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 4); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 4 } } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 4 } } } as Move, 4); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 4); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 0); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 0); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.White } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Brown } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Brown } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 4); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 0); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 0); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 0); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.White, price: 3 }, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.White, price: 3 }, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Orange, price: 3 }, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Tan, price: 3 }, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player0 } as Move, 1); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 0, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 1); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 0, container: { containerColor: ContainerColor.Tan, price: 4 } } } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 1 } } as Move, 3); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Brown, price: 2 }, extraData: { price: 1 } } as Move, 3); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Black, price: 3 }, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Black, price: 3 }, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 1 } }, extraData: { price: 4 } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 1 } }, extraData: { price: 4 } } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 4); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 1 } } as Move, 0); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 5 } } as Move, 1); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 4 } } as Move, 2); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "accept", data: 1 } as Move, 4); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.White, price: 3 } } } as Move, 0); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.White, price: 3 } } } as Move, 0); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 2 } } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player4 } as Move, 2); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Brown, price: 4 } } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Brown, price: 4 } } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "arrangeWarehouse", data: { containerColor: ContainerColor.Orange, price: 4 }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 3); | ||
// G = execMove(G, { name: "getLoan", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 3); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 3); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 3 } } } as Move, 3); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 4 } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 3 } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 4); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 0); | ||
// G = execMove(G, { name: "getLoan", data: true } as Move, 1); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 11 } } as Move, 1); | ||
// G = execMove(G, { name: "getLoan", data: true } as Move, 2); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 8 } } as Move, 2); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 7 } } as Move, 3); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 9 } } as Move, 4); | ||
// G = execMove(G, { name: "accept", data: 1 } as Move, 0); | ||
// G = execMove(G, { name: "getLoan", data: true } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player4 } as Move, 1); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 1); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Orange, price: 3 } } } as Move, 1); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.White, price: 4 } } } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "payLoan", data: true } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 0, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 0, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 3 } } as Move, 2); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 3); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Brown, price: 3 } } } as Move, 3); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 4 } } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 4); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 2 } } as Move, 4); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 4); | ||
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Brown, price: 3 } } } as Move, 4); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 4); | ||
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 0); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 0); | ||
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 3 } } as Move, 1); | ||
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 1); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 12 } } as Move, 2); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 5 } } as Move, 3); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 20 } } as Move, 4); | ||
// G = execMove(G, { name: "bid", data: true, extraData: { price: 7 } } as Move, 0); | ||
// G = execMove(G, { name: "accept", data: 4 } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 0); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 1); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 2); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 3); | ||
// G = execMove(G, { name: "pass", data: true } as Move, 4); | ||
expect(G.currentPlayers).to.deep.equal([0]); | ||
expect(ended(G)).to.be.false; | ||
}); | ||
}); |
@@ -21,3 +21,3 @@ import assert from 'assert'; | ||
const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid']; | ||
export const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid']; | ||
@@ -24,0 +24,0 @@ export function setup(numPlayers: number, { beginner = true }: GameOptions, seed?: string): GameState { |
@@ -11,3 +11,4 @@ { | ||
// "outFile": "./", /* Concatenate and emit output to single file. */ | ||
"outDir": "./dist" /* Redirect output structure to the directory. */ | ||
"outDir": "./dist" /* Redirect output structure to the directory. */, | ||
"resolveJsonModule": true | ||
}, | ||
@@ -14,0 +15,0 @@ "types": ["node"], |
@@ -24,2 +24,6 @@ import { cloneDeep } from 'lodash'; | ||
export function factions(G: GameState) { | ||
return G.players.map((pl) => engine.playerColors[pl.id]); | ||
} | ||
export { ended, scores, stripSecret } from './src/engine'; | ||
@@ -26,0 +30,0 @@ |
187301
34
4922