diff --git a/public/static/js/game.js b/public/static/js/game.js index 37fc295..43d44f9 100644 --- a/public/static/js/game.js +++ b/public/static/js/game.js @@ -17,6 +17,7 @@ adaptGuess: false, googleLink: null, + readyToContinue: false, timeoutEnd: null, countdownHandler: null, @@ -121,6 +122,7 @@ } if (data.place) { + Game.readyToContinue = false; Game.panoId = data.place.panoId; Game.pov = data.place.pov; @@ -156,6 +158,7 @@ Game.reset(); } + Game.readyToContinue = false; Game.panoId = data.place.panoId; Game.pov = data.place.pov; @@ -180,6 +183,18 @@ }, endRound: function (data) { + Game.readyToContinue = true; + Game.startCountdown(0); + + if (Game.rounds[Game.rounds.length - 1].guessPosition || Game.rounds[Game.rounds.length - 1].position) { + if (Game.multi.owner) { + document.getElementById('continueButton').disabled = false; + document.getElementById('startNewGameButton').disabled = false; + } + + return; + } + // TODO: refactor - it is necessary for mobile if (window.getComputedStyle(document.getElementById('guess')).visibility === 'hidden') { document.getElementById('showGuessButton').click(); @@ -189,10 +204,6 @@ document.getElementById('panoCover').style.visibility = 'visible'; Game.showResults(data.position, null, { distance: NaN, score: 0 }, data.allResults); - - if (!Game.multi.owner) { - document.getElementById('continueButton').style.display = 'none'; - } } }, @@ -463,6 +474,14 @@ if (Game.rounds.length === Game.NUMBER_OF_ROUNDS) { document.getElementById('continueButton').style.display = 'none'; document.getElementById('showSummaryButton').style.display = 'block'; + } else if (roomId) { + if (Game.multi.owner) { + if (!Game.readyToContinue) { + document.getElementById('continueButton').disabled = true; + } + } else { + document.getElementById('continueButton').style.display = 'none'; + } } }, @@ -496,10 +515,6 @@ if (this.response.place) { Game.panoId = this.response.place.panoId; Game.pov = this.response.place.pov; - } else { - if (!Game.multi.owner) { - document.getElementById('continueButton').style.display = 'none'; - } } }, data); }, @@ -625,6 +640,9 @@ if (!roomId || Game.multi.owner) { document.getElementById('startNewGameButton').style.display = 'block'; + if (!Game.readyToContinue) { + document.getElementById('startNewGameButton').disabled = true; + } } var resultBounds = new google.maps.LatLngBounds(); @@ -694,6 +712,10 @@ clearInterval(Game.countdownHandler); } + if (timeout <= 0) { + return; + } + Game.timeoutEnd = new Date(new Date().getTime() + timeout); Game.countdownElement = document.getElementById('countdown'); Game.countdownTimeElement = document.getElementById('countdownTime'); @@ -758,7 +780,7 @@ }); Game.map.addListener('click', function (e) { - if (Game.rounds[Game.rounds.length - 1].guessPosition) { + if (Game.rounds[Game.rounds.length - 1].guessPosition || Game.rounds[Game.rounds.length - 1].position) { return; } @@ -826,7 +848,7 @@ document.getElementById('continueButton').onclick = function () { if (roomId) { - if (!Game.multi.owner) { + if (!Game.multi.owner || !Game.readyToContinue) { return; }