mirror of
https://github.com/AlecM33/Werewolf.git
synced 2025-12-26 15:57:50 +01:00
simpler routing, fix socket reconnection bug, expand mod view
This commit is contained in:
@@ -244,7 +244,16 @@ function handleRequestForGameState(namespace, logger, gameRunner, accessCode, pe
|
||||
matchingPerson.socketId = socket.id;
|
||||
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, socket, logger));
|
||||
} else {
|
||||
rejectClientRequestForGameState(ackFn);
|
||||
logger.trace('this person is already associated with a socket connection');
|
||||
let alreadyConnectedSocket = namespace.connected[matchingPerson.socketId];
|
||||
if (alreadyConnectedSocket && alreadyConnectedSocket.leave) {
|
||||
alreadyConnectedSocket.leave(accessCode, ()=> {
|
||||
logger.trace('kicked existing connection out of room ' + accessCode);
|
||||
socket.join(accessCode);
|
||||
matchingPerson.socketId = socket.id;
|
||||
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, socket, logger));
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -271,11 +280,13 @@ function handleRequestForGameState(namespace, logger, gameRunner, accessCode, pe
|
||||
);
|
||||
} else {
|
||||
rejectClientRequestForGameState(ackFn);
|
||||
logger.trace('this game is full');
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
rejectClientRequestForGameState(ackFn);
|
||||
logger.trace('the game' + accessCode + ' was not found');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,8 @@ function mapPeopleForModerator(people, client) {
|
||||
userType: person.userType,
|
||||
gameRole: person.gameRole,
|
||||
gameRoleDescription: person.gameRoleDescription,
|
||||
alignment: person.alignment
|
||||
alignment: person.alignment,
|
||||
out: person.out
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -82,12 +83,13 @@ function mapPeopleForTempModerator(people, client) {
|
||||
})
|
||||
.map((person) => ({
|
||||
name: person.name,
|
||||
userType: person.userType
|
||||
userType: person.userType,
|
||||
out: person.out
|
||||
}));
|
||||
}
|
||||
|
||||
function mapPerson(person) {
|
||||
return { name: person.name, userType: person.userType };
|
||||
return { name: person.name, userType: person.userType, out: person.out };
|
||||
}
|
||||
|
||||
module.exports = GameStateCurator;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
|
||||
function stepFn (serverTimerInstance, expected) {
|
||||
const now = Date.now();
|
||||
const now = Date.now(); //
|
||||
serverTimerInstance.currentTimeInMillis = serverTimerInstance.totalTime - (now - serverTimerInstance.start);
|
||||
if (now - serverTimerInstance.start >= serverTimerInstance.totalTime) {
|
||||
clearTimeout(serverTimerInstance.ticking);
|
||||
if (now - serverTimerInstance.start >= serverTimerInstance.totalTime) { // check if the time has elapsed
|
||||
serverTimerInstance.logger.debug(
|
||||
'ELAPSED: ' + (now - serverTimerInstance.start) + 'ms (~'
|
||||
+ (Math.abs(serverTimerInstance.totalTime - (now - serverTimerInstance.start)) / serverTimerInstance.totalTime).toFixed(3) + '% error).'
|
||||
);
|
||||
serverTimerInstance.timesUpResolver(); // this is a reference to the callback defined in the construction of the promise in runTimer()
|
||||
clearTimeout(serverTimerInstance.ticking);
|
||||
return;
|
||||
}
|
||||
const delta = now - expected;
|
||||
@@ -64,10 +64,6 @@ class ServerTimer {
|
||||
clearTimeout(this.ticking);
|
||||
}
|
||||
let now = Date.now();
|
||||
this.logger.debug(
|
||||
'ELAPSED (PAUSE): ' + (now - this.start) + 'ms (~'
|
||||
+ (Math.abs(this.totalTime - (now - this.start)) / this.totalTime).toFixed(3) + '% error).'
|
||||
);
|
||||
}
|
||||
|
||||
resumeTimer() {
|
||||
|
||||
Reference in New Issue
Block a user