diff --git a/sockets/socketLogic.js b/sockets/socketLogic.js index 011f717ff9beffe2bbfc80438b00b5f6a32cd7ea..be4d418b07e43cb87573019f7cc7bbc10ed24928 100644 --- a/sockets/socketLogic.js +++ b/sockets/socketLogic.js @@ -85,42 +85,37 @@ async function convertLobbyToGame(lobbyId, socket) { async function showQuestions(game, socket, questionNumber) { if (questionNumber === 10) return; - let time = 15; - const interval = setInterval(async () => { - time--; - socket.to(game.getGameId()).emit("timer", time); - socket.emit("timer", time); - if (time === 0) { - clearInterval(interval); - const question = game.gameData[questionNumber]; - let reducedAnsewers = []; - for (let answer of question.answers) { - reducedAnsewers.push({ - text: answer.text, - }); - } - const reducedQuestion = { - text: question.question.text, - fact: question.question.fact, - difficulty: question.question.difficulty, - answers: reducedAnsewers, - }; - socket.to(game.getGameId()).emit("question", reducedQuestion); - socket.emit("question", reducedAnsewers); - let waitTime = 15; - const wait = setInterval(async () => { - waitTime--; - socket.to(game.getGameId()).emit("timer", waitTime); - socket.emit("timer", waitTime); - if (waitTime === 0) { - clearInterval(wait); - showQuestions(game, socket, questionNumber + 1); - } - }, 1000); - } - }, 1000); + + const showQuestion = async () => { + const question = game.gameData[questionNumber]; + const reducedAnswers = question.answers.map((answer) => ({ + text: answer.text, + })); + + const reducedQuestion = { + text: question.question.text, + fact: question.question.fact, + difficulty: question.question.difficulty, + answers: reducedAnswers, + }; + + socket.to(game.getGameId()).emit("question", reducedQuestion); + socket.emit("question", reducedQuestion); + }; + + const wait = (seconds) => new Promise((resolve) => setTimeout(resolve, seconds * 1000)); + + while (questionNumber < 10) { + await wait(15); // Wait for 15 seconds + await showQuestion(); // Show the question + await wait(15); // Wait for 15 more seconds + questionNumber++; // Move to the next question + } } +// Start the function with questionNumber = 0 +showQuestions(game, socket, 0); + function timer(lobbyId, socket) { let time = 30; const interval = setInterval(async () => {