1
0

Notify when enough players are active

Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
James Ketrenos 2022-01-30 16:27:59 -08:00
parent 81082ff460
commit 1619c185d9

View File

@ -305,12 +305,20 @@ const setPlayerColor = (game, session, color) => {
return;
}
const priorActive = getActiveCount(game);
if (player) {
/* Deselect currently active player for this session */
clearPlayer(player);
let message;
if (game.state !== 'lobby') {
message = `${name} has exited to the lobby and is no longer playing as ${session.color}.`
} else {
message = `${name} is no longer ${session.color}.`;
}
game.chat.push({
date: Date.now(),
message: `${name} is no longer ${session.color}.`
message: message
});
session.player = undefined;
session.color = undefined;
@ -346,9 +354,20 @@ const setPlayerColor = (game, session, color) => {
session.player.lastActive = Date.now();
session.color = color;
game.chat.push({
from: color,
date: Date.now(),
message: `${session.name} has chosen to play as ${color}.`
});
const afterActive = getActiveCount(game);
if (afterActive !== priorActive) {
if (priorActive < 2 && afterActive >= 2) {
game.chat.push({
date: Date.now(),
message: `There are now enough players to start the game when you are ready.`
});
}
}
};
router.put("/:id/:action/:value?", async (req, res) => {
@ -470,12 +489,18 @@ router.put("/:id", (req, res/*, next*/) => {
return sendGame(req, res, game);
});
const sendGame = async (req, res, game, error) => {
const getActiveCount = (game) => {
let active = 0;
for (let color in game.players) {
const player = game.players[color];
active += ((player.status && player.status != 'Not active') ? 1 : 0);
}
return active;
}
const sendGame = async (req, res, game, error) => {
const active = getActiveCount(game);
if (active < 2 && game.state != 'lobby' && game.state != 'invalid') {
let message = "Insufficient players in game. Setting back to lobby."
game.chat.push({ date: Date.now(), message: message });