Compare commits

..

2 Commits

Author SHA1 Message Date
1c1e5f051d MAPG-235 simplified highscore calculation 2021-05-26 08:16:32 +02:00
283c214c50 MAPG-235 noZoom label fix 2021-05-26 07:49:05 +02:00
3 changed files with 13 additions and 22 deletions

View File

@ -21,7 +21,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
googleLink: null, googleLink: null,
history: [], history: [],
restrictions: null, restrictions: null,
finishers: null,
readyToContinue: true, readyToContinue: true,
timeoutEnd: null, timeoutEnd: null,
@ -488,10 +487,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
} }
} }
} }
if (response.finishers) {
Game.finishers = new Set(response.finishers);
}
}, },
reset: function () { reset: function () {
@ -544,7 +539,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
document.getElementById('panningBlockerCover').style.display = null; document.getElementById('panningBlockerCover').style.display = null;
Game.history = []; Game.history = [];
Game.finishers = null;
Game.initialize(); Game.initialize();
}, },
@ -873,16 +867,21 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
var highscores = new Map(); var highscores = new Map();
highscores.set('me', Game.scoreSum); highscores.set('me', Game.scoreSum);
for (var i = 0; i < Game.history.length; ++i) { // collect the results of users who are through the last round
const round = Game.history[Game.history.length - 1];
if (round.allResults) {
for (const result of round.allResults) {
highscores.set(result.userName, result.score);
}
}
// add up scores only for the finishers
for (var i = Game.history.length - 2; i >= 0; --i) {
const round = Game.history[i]; const round = Game.history[i];
if (round.allResults) { if (round.allResults) {
for (const result of round.allResults) { for (const result of round.allResults) {
if (Game.finishers.has(result.userName)) { if (highscores.has(result.userName)) {
if (highscores.has(result.userName)) { highscores.set(result.userName, highscores.get(result.userName) + result.score);
highscores.set(result.userName, highscores.get(result.userName) + result.score);
} else {
highscores.set(result.userName, result.score);
}
} }
} }
} }

View File

@ -199,14 +199,6 @@ class GameFlowController implements ISecured
if (!isset($currentPlace)) { // game finished if (!isset($currentPlace)) { // game finished
$response['finished'] = true; $response['finished'] = true;
// list all players who finished the challenge
$response['finishers'] = [];
foreach ($this->userInChallengeRepository->getAllByChallengeWithUsers($challenge) as $userInChallenge) {
if ($userInChallenge->getCurrentRound() == $currentRound && $userInChallenge->getUser()->getId() != $userId) {
$response['finishers'][] = $userInChallenge->getUser()->getDisplayName();
}
}
} else { // continue game } else { // continue game
$response['place'] = [ $response['place'] = [
'panoId' => $currentPlace->getPanoIdCached(), 'panoId' => $currentPlace->getPanoIdCached(),

View File

@ -67,7 +67,7 @@ TODO: condition!
</div> </div>
<div> <div>
<input type="checkbox" id="noZoom" name="noZoom" value="noZoom" /> <input type="checkbox" id="noZoom" name="noZoom" value="noZoom" />
<label for="noMove">No zoom allowed</label> <label for="noZoom">No zoom allowed</label>
</div> </div>
<div> <div>
<input type="checkbox" id="noPan" name="noPan" value="noPan" /> <input type="checkbox" id="noPan" name="noPan" value="noPan" />