X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=index.js;h=91a74aeea4c23e6413717eaba94d266e562707f5;hb=2cad321b858e4fc9f77f4a420dd219713bbb90db;hp=cc1bcdab4f9ea8fcd756c9feb6689ac8c47c0237;hpb=02bec3ec32f0b5af59b7108354f48ed3514eb6b7;p=zombocom-ai diff --git a/index.js b/index.js index cc1bcda..91a74ae 100644 --- a/index.js +++ b/index.js @@ -179,7 +179,7 @@ const levels = [ } ]; -var show_word_interval; +var show_word_interval = 0; function show_word() { const tardis = state.tardis; @@ -191,6 +191,40 @@ function show_word() { tardis.word = 0; } +function start_level() { + const tardis = state.tardis; + + // Inform all players of the new level + io_tardis.emit("level", levels[tardis.level].title); + + // Then start the timer that shows the words + show_word_interval = setInterval(show_word, 1200); +} + +function level_up() { + const tardis = state.tardis; + + if (show_word_interval) { + clearInterval(show_word_interval); + show_word_interval = 0; + } + + if (tardis.state === "game") { + tardis.level = tardis.level + 1; + tardis.word = 0; + + if (tardis.level >= levels.length) { + tardis.state = "over"; + io_tardis.emit("state", tardis.state); + } else { + setTimeout(() => { + start_level(); + }, 2000); + } + + } +} + function start_game() { const tardis = state.tardis; @@ -201,7 +235,8 @@ function start_game() { // Let all companions know the state of the game io_tardis.emit("level", levels[tardis.level].title); io_tardis.emit("state", tardis.state); - show_word_interval = setInterval(show_word, 1200); + + start_level(); } function emit_tardis_timer() { @@ -263,6 +298,21 @@ io_tardis.on("connection", (socket) => { } tardis.companions.names.push(name); + socket.on('answer', answer => { + const tardis = state.tardis; + + if (tardis.state != "game") { + return; + } + + if (answer == levels[tardis.level].answer) { + io_tardis.emit('correct'); + level_up(); + } else { + io_tardis.emit('incorrect'); + } + }); + socket.on('disconnect', () => { const names = tardis.companions.names;