@boardgamers/container-engine
Advanced tools
Comparing version 1.0.7 to 1.0.8
@@ -12,1 +12,2 @@ import { GameOptions, GameState } from './gamestate'; | ||
export declare function reconstructState(initialState: GameState, log: LogItem[]): GameState; | ||
export declare function nextPlayer(G: GameState): void; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
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 = void 0; | ||
const assert_1 = __importDefault(require("assert")); | ||
@@ -301,3 +301,5 @@ const lodash_1 = require("lodash"); | ||
G.phase = gamestate_1.Phase.Bid; | ||
G.currentPlayers = G.players.map((p) => p.id).filter((id) => id !== G.auctioningPlayer); | ||
G.currentPlayers = G.players | ||
.filter((p) => p.id !== G.auctioningPlayer && !p.isDropped) | ||
.map((p) => p.id); | ||
} | ||
@@ -392,3 +394,3 @@ else { | ||
const highestBidders = G.players | ||
.filter((p) => p.id != G.auctioningPlayer && p.bid === highestBid) | ||
.filter((p) => p.id != G.auctioningPlayer && !p.isDropped && p.bid === highestBid) | ||
.map((p) => p.id); | ||
@@ -407,3 +409,3 @@ G.highestBidders = highestBidders; | ||
const highestBidders = G.players | ||
.filter((p) => p.id != G.auctioningPlayer && p.bid + p.additionalBid === highestBid) | ||
.filter((p) => p.id != G.auctioningPlayer && !p.isDropped && p.bid + p.additionalBid === highestBid) | ||
.map((p) => p.id); | ||
@@ -803,3 +805,6 @@ G.highestBidders = highestBidders; | ||
G.currentPlayers = [(G.currentPlayers[0] + 1) % G.players.length]; | ||
if (G.players[G.currentPlayers[0]].isDropped && G.players.some((p) => !p.isDropped)) | ||
nextPlayer(G); | ||
} | ||
exports.nextPlayer = nextPlayer; | ||
function doUpkeep(G) { | ||
@@ -806,0 +811,0 @@ const player = G.players[G.currentPlayers[0]]; |
@@ -79,2 +79,3 @@ "use strict"; | ||
G.players[player].isDropped = true; | ||
engine.nextPlayer(G); | ||
return G; | ||
@@ -81,0 +82,0 @@ } |
{ | ||
"name": "@boardgamers/container-engine", | ||
"version": "1.0.7", | ||
"version": "1.0.8", | ||
"description": "An engine for Container", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -370,3 +370,5 @@ import assert from 'assert'; | ||
G.phase = Phase.Bid; | ||
G.currentPlayers = G.players.map((p) => p.id).filter((id) => id !== G.auctioningPlayer); | ||
G.currentPlayers = G.players | ||
.filter((p) => p.id !== G.auctioningPlayer && !p.isDropped) | ||
.map((p) => p.id); | ||
} else { | ||
@@ -478,3 +480,3 @@ player.actions--; | ||
const highestBidders = G.players | ||
.filter((p) => p.id != G.auctioningPlayer && p.bid === highestBid) | ||
.filter((p) => p.id != G.auctioningPlayer && !p.isDropped && p.bid === highestBid) | ||
.map((p) => p.id); | ||
@@ -491,3 +493,5 @@ G.highestBidders = highestBidders; | ||
const highestBidders = G.players | ||
.filter((p) => p.id != G.auctioningPlayer && p.bid + p.additionalBid === highestBid) | ||
.filter( | ||
(p) => p.id != G.auctioningPlayer && !p.isDropped && p.bid + p.additionalBid === highestBid | ||
) | ||
.map((p) => p.id); | ||
@@ -906,4 +910,6 @@ G.highestBidders = highestBidders; | ||
function nextPlayer(G: GameState) { | ||
export function nextPlayer(G: GameState) { | ||
G.currentPlayers = [(G.currentPlayers[0] + 1) % G.players.length]; | ||
if (G.players[G.currentPlayers[0]].isDropped && G.players.some((p) => !p.isDropped)) nextPlayer(G); | ||
} | ||
@@ -910,0 +916,0 @@ |
@@ -68,2 +68,4 @@ import { cloneDeep } from 'lodash'; | ||
engine.nextPlayer(G); | ||
return G; | ||
@@ -70,0 +72,0 @@ } |
173551
3874