Add data needed for the GameRejoined event
This commit is contained in:
parent
ee1a19ed2b
commit
9689b23007
1 changed files with 47 additions and 7 deletions
|
|
@ -18,37 +18,60 @@ export default (io: Server, socket: Socket, data: JoinGame) => {
|
||||||
)) as datastoreGame;
|
)) as datastoreGame;
|
||||||
let host = new Player(data.name, socket, true);
|
let host = new Player(data.name, socket, true);
|
||||||
let game = Game.fromJSON(host, datastore);
|
let game = Game.fromJSON(host, datastore);
|
||||||
|
|
||||||
game.log = log.getChildLogger({
|
game.log = log.getChildLogger({
|
||||||
displayLoggerName: true,
|
displayLoggerName: true,
|
||||||
name: game.id,
|
name: game.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Get the specific information for team
|
||||||
|
let playerData = datastore.players.find(p => p.name === data.name);
|
||||||
|
if (playerData) {
|
||||||
|
host.role = playerData.role;
|
||||||
|
host.team = playerData.team;
|
||||||
|
};
|
||||||
|
|
||||||
|
let hand: string[] = [];
|
||||||
if (host.team) {
|
if (host.team) {
|
||||||
let team = game.teams[host.team - 1];
|
let team = game.teams[host.team - 1];
|
||||||
|
hand = team.hand;
|
||||||
switch (host.role) {
|
switch (host.role) {
|
||||||
case "guesser":
|
case "guesser":
|
||||||
game.log.silly(`${host.name} is one of the team's guessers`);
|
game.log.silly(`${host.name} is one of the team's guessers`);
|
||||||
team.guessers.push(host);
|
team.guessers.push(host);
|
||||||
|
socket.join([
|
||||||
|
`${game.id}:*:guesser`,
|
||||||
|
`${game.id}:${team.id}:guesser`
|
||||||
|
]);
|
||||||
break;
|
break;
|
||||||
case "writer":
|
case "writer":
|
||||||
game.log.silly(`${host.name} is the team's writer`);
|
game.log.silly(`${host.name} is the team's writer`);
|
||||||
team.writer = host;
|
team.writer = host;
|
||||||
|
socket.join([
|
||||||
|
`${game.id}:*:writer`,
|
||||||
|
`${game.id}:${team.id}:writer`
|
||||||
|
]);
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
game.log.debug(`Host assigned to team object.`);
|
game.log.debug(`Host assigned to team`);
|
||||||
};
|
};
|
||||||
|
|
||||||
hibernatedGames.splice(hibernatedIndex, 1);
|
hibernatedGames.splice(hibernatedIndex, 1);
|
||||||
games[game.id] = game;
|
games[game.id] = game;
|
||||||
|
|
||||||
game.log.info(`Successfully unhibernated`);
|
game.log.info(`Successfully unhibernated`);
|
||||||
|
socket.join(game.id);
|
||||||
socket.emit(`GameRejoined`, {
|
socket.emit(`GameRejoined`, {
|
||||||
status: 200,
|
status: 200,
|
||||||
data: {
|
ingame: game.ingame,
|
||||||
players: game.players.map(p => p.toJSON()),
|
role: host.role,
|
||||||
|
team: host.team,
|
||||||
|
is_host: true,
|
||||||
|
players: game.playerData,
|
||||||
|
chosen_object: game.object,
|
||||||
|
hand: hand,
|
||||||
|
answers: {
|
||||||
|
team_1: game.teams[0].answers,
|
||||||
|
team_2: game.teams[1].answers,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|
@ -79,9 +102,26 @@ export default (io: Server, socket: Socket, data: JoinGame) => {
|
||||||
if (!sameName.socket?.connected) {
|
if (!sameName.socket?.connected) {
|
||||||
sameName.socket = socket;
|
sameName.socket = socket;
|
||||||
game.log.info(`Player Reconnected to the game (name=${data.name})`);
|
game.log.info(`Player Reconnected to the game (name=${data.name})`);
|
||||||
|
|
||||||
|
// Get the hand of the player's team
|
||||||
|
let hand: string[] = [];
|
||||||
|
if (sameName.team) {
|
||||||
|
hand = game.teams[sameName.team - 1].hand;
|
||||||
|
};
|
||||||
|
|
||||||
socket.emit(`GameRejoined`, {
|
socket.emit(`GameRejoined`, {
|
||||||
status: 200,
|
status: 200,
|
||||||
data: {},
|
ingame: game.ingame,
|
||||||
|
role: sameName.role,
|
||||||
|
team: sameName.team,
|
||||||
|
is_host: sameName.isHost,
|
||||||
|
players: game.playerData,
|
||||||
|
chosen_object: game.object,
|
||||||
|
answers: {
|
||||||
|
team_1: game.teams[0].answers,
|
||||||
|
team_2: game.teams[1].answers,
|
||||||
|
},
|
||||||
|
hand: hand,
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue