refactor game state curator

This commit is contained in:
AlecM33
2022-12-27 18:46:38 -05:00
parent f7c31096a9
commit cc5a423168
3 changed files with 13 additions and 47 deletions

View File

@@ -5,8 +5,8 @@ const globals = require('../config/globals');
information that they shouldn't.
*/
const GameStateCurator = {
getGameStateFromPerspectiveOfPerson: (game, person, gameRunner, socket, logger) => {
return getGameStateBasedOnPermissions(game, person, gameRunner);
getGameStateFromPerspectiveOfPerson: (game, person) => {
return getGameStateBasedOnPermissions(game, person);
},
mapPeopleForModerator: (people) => {
@@ -42,7 +42,7 @@ const GameStateCurator = {
}
};
function getGameStateBasedOnPermissions (game, person, gameRunner) {
function getGameStateBasedOnPermissions (game, person) {
const client = game.status === globals.STATUS.LOBBY // people won't be able to know their role until past the lobby stage.
? { name: person.name, hasEnteredName: person.hasEnteredName, id: person.id, cookie: person.cookie, userType: person.userType }
: {
@@ -58,30 +58,6 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) {
out: person.out
};
switch (person.userType) {
case globals.USER_TYPES.PLAYER:
case globals.USER_TYPES.KILLED_PLAYER: {
const state = {
accessCode: game.accessCode,
status: game.status,
moderator: GameStateCurator.mapPerson(game.moderator),
client: client,
deck: game.deck,
gameSize: game.gameSize,
people: game.people
.filter((person) => {
return person.assigned === true;
})
.map((filteredPerson) =>
GameStateCurator.mapPerson(filteredPerson)
),
timerParams: game.timerParams,
isFull: game.isFull
};
if (game.status === globals.STATUS.ENDED) {
state.people = GameStateCurator.mapPeopleForModerator(game.people);
}
return state;
}
case globals.USER_TYPES.MODERATOR:
return {
accessCode: game.accessCode,
@@ -98,22 +74,9 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) {
)
};
case globals.USER_TYPES.TEMPORARY_MODERATOR:
return {
accessCode: game.accessCode,
status: game.status,
moderator: GameStateCurator.mapPerson(game.moderator),
client: client,
deck: game.deck,
gameSize: game.gameSize,
people: game.people
.filter((person) => {
return person.assigned === true;
})
.map((filteredPerson) => GameStateCurator.mapPerson(filteredPerson)),
timerParams: game.timerParams,
isFull: game.isFull
};
case globals.USER_TYPES.SPECTATOR:
case globals.USER_TYPES.PLAYER:
case globals.USER_TYPES.KILLED_PLAYER:
return {
accessCode: game.accessCode,
status: game.status,
@@ -127,7 +90,10 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) {
})
.map((filteredPerson) => GameStateCurator.mapPerson(filteredPerson)),
timerParams: game.timerParams,
isFull: game.isFull
isFull: game.isFull,
spectators: game.spectators.map((filteredPerson) =>
GameStateCurator.mapPerson(filteredPerson)
)
};
default:
break;