diff --git a/client/src/Board.js b/client/src/Board.js
index b9b2553..3de0a5c 100755
--- a/client/src/Board.js
+++ b/client/src/Board.js
@@ -1276,15 +1276,16 @@ class Board extends React.Component {
}
updateMessage() {
- const player = (this.game && this.game.color) ? this.game.players[this.game.color] : undefined;
+ const player = (this.game && this.game.color) ? this.game.players[this.game.color] : undefined,
+ name = this.game ? this.game.name : "";
let message = [];
- if (this.state.pickName) {
+ if (this.state.pickName || !name) {
message.push((<>Enter the name you would like to be known by, then press ENTER or select SET.>));
} else {
switch (this.game && this.game.state) {
case 'lobby':
- message.push((<>You are in the lobby as {this.game.name}.>));
+ message.push((<>You are in the lobby as {name}.>));
if (!this.game.color) {
message.push((<>You need to pick your color.>));
} else {
@@ -1299,12 +1300,8 @@ class Board extends React.Component {
break;
case 'game-order':
if (!player) {
- message.push((<>This game is already active.>));
- if (!this.game.name) {
- message.push((<>Enter the name you would like to be known by, then press ENTER or select SET.>));
- } else {
- message.push((<>You can chat with other players below as {this.game.name}, but cannot play unless players go back to the Lobby.>));
- }
+ message.push((<>This game as an observer as {name}.>));
+ message.push((<>You can chat with other players below as {this.game.name}, but cannot play unless players go back to the Lobby.>));
} else {
if (!player.order) {
message.push((<>You need to roll for game order. Click Roll Dice below.>));
diff --git a/server/routes/games.js b/server/routes/games.js
index 6251aee..d30df25 100755
--- a/server/routes/games.js
+++ b/server/routes/games.js
@@ -207,6 +207,12 @@ const loadGame = async (id) => {
return game;
};
+const clearPlayer = (player) => {
+ player.status = 'Not active';
+ player.lastActive = 0;
+ player.order = 0;
+}
+
const adminActions = (game, action, value) => {
switch (action) {
case "kick":
@@ -228,12 +234,16 @@ const adminActions = (game, action, value) => {
continue;
}
console.log(`Kicking ${value} from ${game.id}.`);
- const name = session.name ? `${session.name} (${color})` : color;
+ const preamble = session.name ? `${session.name}, playing as ${color},` : color;
game.chat.push({
date: Date.now(),
- message: `${name} has been kicked from game.`
+ message: `${preamble} was kicked from game by the Admin.`
});
- session.player = undefined;
+ if (player) {
+ session.player = undefined;
+ clearPlayer(player);
+ }
+ session.color = undefined;
return;
}
return `Unable to find active session for ${color} (${value})`;
@@ -256,15 +266,19 @@ const setPlayerName = (game, session, name) => {
}
}
- const old = session.name ? session.name : "Unknown";
+ const old = session.name;
let message;
session.name = name;
if (name) {
- message = `${old} is now known as ${name}.`;
+ if (!old) {
+ message = `A new player has entered the lobby as ${name}.`;
+ } else {
+ message = `${name} has chosen to play as ${old}.`;
+ }
} else {
- message = `${old} no longer has a name.`;
+ message = `Nobody is playing ${old} any more.`;
}
game.chat.push({
@@ -287,11 +301,10 @@ const setPlayerColor = (game, session, color) => {
if (player) {
/* Deselect currently active player for this session */
- player.status = 'Not active';
- player.lastActive = 0;
+ clearPlayer(player);
game.chat.push({
date: Date.now(),
- message: `${session.color} is no longer claimed.`
+ message: `${name} is no longer ${session.color}.`
});
session.player = undefined;
session.color = undefined;
@@ -328,7 +341,7 @@ const setPlayerColor = (game, session, color) => {
session.color = color;
game.chat.push({
date: Date.now(),
- message: `${color} is now '${session.name}'.`
+ message: `${session.name} has chosen to play as ${color}.`
});
};