MAPG-235 time limit restriction for the whole game feature added

This commit is contained in:
Balázs Vigh 2021-05-20 21:32:01 +02:00
parent c2df9b7713
commit b78d564f6f
2 changed files with 19 additions and 2 deletions

View File

@ -341,6 +341,7 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
},
disableRestrictions: function () {
Game.panorama.setOptions({
clickToGo: true,
linksControl: true,
@ -350,6 +351,7 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
document.getElementById('panningBlockerCover').style.display = null;
Game.startCountdown(0);
Game.timeoutEnd = null;
},
transitToResultMap: function () {
@ -649,11 +651,16 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
},
guess: function () {
Game.disableRestrictions();
var data = new FormData();
if (Game.timeoutEnd) {
var timeLeft = Math.ceil((Game.timeoutEnd - new Date()) / 1000);
data.append('timeLeft', timeLeft);
}
Game.disableRestrictions();
if (Game.guessMarker) {
var guessPosition = Game.guessMarker.getPosition().toJSON();
Game.rounds[Game.rounds.length - 1].guessPosition = guessPosition;

View File

@ -381,9 +381,19 @@ class GameFlowController
$response['result'] = ['distance' => null, 'score' => 0];
}
// save user relevant state of challenge
$userInChallenge->setCurrentRound($nextRound);
if ($this->request->post('timeLeft')) {
$userInChallenge->setTimeLeft(intval($this->request->post('timeLeft')));
}
$this->pdm->saveToDb($userInChallenge);
if ($challenge->getTimeLimitType() === 'game' && $this->request->post('timeLeft')) {
$timeLimit = max(10, intval($this->request->post('timeLeft')));
$response['restrictions']['timeLimit'] = $timeLimit * 1000;
}
if(isset($response['history'][$currentRound]['allResults'])) {
$response['allResults'] = $response['history'][$currentRound]['allResults'];
}