mirror of
https://github.com/AlecM33/Werewolf.git
synced 2025-12-26 15:57:50 +01:00
deal roles
This commit is contained in:
@@ -2,7 +2,7 @@ import { UserUtility } from "../modules/UserUtility.js";
|
||||
import { globals } from "../config/globals.js";
|
||||
import {templates} from "../modules/Templates.js";
|
||||
import {GameStateRenderer} from "../modules/GameStateRenderer.js";
|
||||
import {toast} from "../modules/Toast.js";
|
||||
import {cancelCurrentToast, toast} from "../modules/Toast.js";
|
||||
|
||||
export const game = () => {
|
||||
socket.emit(globals.COMMANDS.GET_ENVIRONMENT, function(environment) {
|
||||
@@ -15,6 +15,7 @@ export const game = () => {
|
||||
window.location.replace('/not-found');
|
||||
} else {
|
||||
console.log(gameState);
|
||||
gameState.accessCode = accessCode;
|
||||
userId = gameState.client.id;
|
||||
UserUtility.setAnonymousUserId(userId, environment);
|
||||
let gameStateRenderer = new GameStateRenderer(gameState);
|
||||
@@ -29,8 +30,9 @@ export const game = () => {
|
||||
};
|
||||
|
||||
function processGameState (gameState, userId, socket, gameStateRenderer) {
|
||||
cancelCurrentToast();
|
||||
switch (gameState.status) {
|
||||
case globals.GAME_STATE.LOBBY:
|
||||
case globals.STATUS.LOBBY:
|
||||
document.getElementById("game-state-container").innerHTML = templates.LOBBY;
|
||||
gameStateRenderer.renderLobbyHeader();
|
||||
gameStateRenderer.renderLobbyPlayers();
|
||||
@@ -41,9 +43,16 @@ function processGameState (gameState, userId, socket, gameStateRenderer) {
|
||||
|| gameState.userType === globals.USER_TYPES.TEMPORARY_MODERATOR
|
||||
)
|
||||
) {
|
||||
displayStartGamePromptForModerators();
|
||||
displayStartGamePromptForModerators(gameStateRenderer);
|
||||
}
|
||||
break;
|
||||
case globals.STATUS.IN_PROGRESS:
|
||||
document.querySelector("#start-game-prompt")?.remove();
|
||||
gameStateRenderer.gameState = gameState;
|
||||
document.getElementById("game-state-container").innerHTML = templates.GAME;
|
||||
gameStateRenderer.renderGameHeader();
|
||||
gameStateRenderer.renderPlayerRole();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -61,14 +70,32 @@ function setClientSocketHandlers(gameStateRenderer, socket) {
|
||||
|| gameStateRenderer.gameState.userType === globals.USER_TYPES.TEMPORARY_MODERATOR
|
||||
)
|
||||
) {
|
||||
displayStartGamePromptForModerators();
|
||||
displayStartGamePromptForModerators(gameStateRenderer);
|
||||
}
|
||||
});
|
||||
|
||||
socket.on(globals.EVENTS.SYNC_GAME_STATE, () => {
|
||||
socket.emit(
|
||||
globals.COMMANDS.FETCH_GAME_STATE,
|
||||
gameStateRenderer.gameState.accessCode,
|
||||
gameStateRenderer.gameState.client.id,
|
||||
function (gameState) {
|
||||
processGameState(gameState, gameState.client.id, socket, gameStateRenderer);
|
||||
}
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
function displayStartGamePromptForModerators() {
|
||||
function displayStartGamePromptForModerators(gameStateRenderer) {
|
||||
document.getElementById("lobby-players").setAttribute("style", 'margin-bottom: 130px');
|
||||
let div = document.createElement("div");
|
||||
div.innerHTML = templates.START_GAME_PROMPT;
|
||||
document.body.appendChild(div);
|
||||
document.getElementById("start-game-button").addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
if (confirm("Start the game and deal roles?")) {
|
||||
socket.emit(globals.COMMANDS.START_GAME, gameStateRenderer.gameState.accessCode, gameStateRenderer.gameState.client.id);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user