MAPG-235 results of other players shown
This commit is contained in:
parent
e7869d67f7
commit
69964acfb2
@ -19,6 +19,7 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
||||
guessMarker: null,
|
||||
adaptGuess: false,
|
||||
googleLink: null,
|
||||
history: [],
|
||||
|
||||
readyToContinue: true,
|
||||
timeoutEnd: null,
|
||||
@ -294,12 +295,23 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
||||
return;
|
||||
}
|
||||
|
||||
Game.history = this.response.history;
|
||||
|
||||
for (var i = 0; i < this.response.history.length; ++i) {
|
||||
var round = this.response.history[i];
|
||||
Game.rounds.push({ position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] });
|
||||
Game.addPositionToResultMap(true);
|
||||
if (round.result.guessPosition) {
|
||||
Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
||||
}
|
||||
Game.scoreSum += round.result.score;
|
||||
|
||||
for (var j = 0; j < round.allResults.length; ++j) {
|
||||
var result = round.allResults[j];
|
||||
if (result.guessPosition) {
|
||||
Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.response.finished) {
|
||||
@ -598,12 +610,57 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
||||
return;
|
||||
}
|
||||
|
||||
Game.history = this.response.history;
|
||||
|
||||
Game.receiveResult(this.response.position, guessPosition, this.response.result, this.response.allResults);
|
||||
|
||||
if (this.response.place) {
|
||||
Game.panoId = this.response.place.panoId;
|
||||
Game.pov = this.response.place.pov;
|
||||
}
|
||||
|
||||
// if(this.response.history) {
|
||||
|
||||
// // game finished
|
||||
// // delete everything but the last round
|
||||
// for (var i = 0; i < Game.rounds.length -1; ++i) {
|
||||
// var round = Game.rounds[i];
|
||||
|
||||
// if (round.realMarker) {
|
||||
// round.realMarker.setMap(null);
|
||||
// }
|
||||
// for (var j = 0; j < round.guessMarkers.length; ++j) {
|
||||
// var guessMarker = round.guessMarkers[j];
|
||||
// guessMarker.marker.setMap(null);
|
||||
// guessMarker.line.setMap(null);
|
||||
// if (guessMarker.info) {
|
||||
// guessMarker.info.close();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// // Game.rounds = [];
|
||||
|
||||
// for (var i = 0; i < this.response.history.length; ++i) {
|
||||
// var round = this.response.history[i];
|
||||
// Game.rounds[i] = { position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] };
|
||||
// Game.addPositionToResultMap(true);
|
||||
// if (round.result.guessPosition) {
|
||||
// Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
||||
// }
|
||||
// Game.scoreSum += round.result.score;
|
||||
|
||||
// for (var j = 0; j < round.allResults.length; ++j) {
|
||||
// var result = round.allResults[j];
|
||||
// if (result.guessPosition) {
|
||||
// Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
|
||||
}, data);
|
||||
},
|
||||
|
||||
@ -717,6 +774,41 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
||||
},
|
||||
|
||||
showSummary: function () {
|
||||
for (var i = 0; i < Game.rounds.length; ++i) {
|
||||
var round = Game.rounds[i];
|
||||
|
||||
if (round.realMarker) {
|
||||
round.realMarker.setMap(null);
|
||||
}
|
||||
for (var j = 0; j < round.guessMarkers.length; ++j) {
|
||||
var guessMarker = round.guessMarkers[j];
|
||||
guessMarker.marker.setMap(null);
|
||||
guessMarker.line.setMap(null);
|
||||
if (guessMarker.info) {
|
||||
guessMarker.info.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Game.rounds = [];
|
||||
|
||||
for (var i = 0; i < Game.history.length; ++i) {
|
||||
var round = Game.history[i];
|
||||
Game.rounds.push({ position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] });
|
||||
Game.addPositionToResultMap(true);
|
||||
if (round.result.guessPosition) {
|
||||
Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
||||
}
|
||||
Game.scoreSum += round.result.score;
|
||||
|
||||
for (var j = 0; j < round.allResults.length; ++j) {
|
||||
var result = round.allResults[j];
|
||||
if (result.guessPosition) {
|
||||
Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var distanceInfo = document.getElementById('distanceInfo');
|
||||
distanceInfo.children[0].style.display = 'none';
|
||||
distanceInfo.children[1].style.display = 'none';
|
||||
|
@ -160,19 +160,34 @@ class GameFlowController
|
||||
|
||||
$response['history'] = [];
|
||||
|
||||
$guesses = iterator_to_array($this->guessRepository->getAllInChallengeByUser($userId, $challenge));
|
||||
$guessesByUser = iterator_to_array($this->guessRepository->getAllInChallengeByUser($userId, $challenge));
|
||||
$places = iterator_to_array($this->placeRepository->getAllInChallenge($challenge));
|
||||
|
||||
for($i = 0; $i < $currentRound; ++$i)
|
||||
{
|
||||
|
||||
for($i = 0; $i < $currentRound; ++$i) {
|
||||
|
||||
$response['history'][] = [
|
||||
'position' => $places[$i]->getPosition()->toArray(),
|
||||
'result' => [
|
||||
'guessPosition' => $guesses[$i]->getPosition()->toArray(),
|
||||
'distance' => $guesses[$i]->getDistance(),
|
||||
'score' => $guesses[$i]->getScore()
|
||||
]
|
||||
'guessPosition' => $guessesByUser[$i]->getPosition()->toArray(),
|
||||
'distance' => $guessesByUser[$i]->getDistance(),
|
||||
'score' => $guessesByUser[$i]->getScore()
|
||||
],
|
||||
'allResults' => []
|
||||
];
|
||||
|
||||
foreach($this->guessRepository->getAllInChallengeByRound($i, $challenge) as $guess) {
|
||||
if($guess->getUserId() != $userId) {
|
||||
$user = $this->userRepository->getByGuess($guess);
|
||||
|
||||
$response['history'][$i]['allResults'][] = [
|
||||
'userName' => $user->getDisplayName(),
|
||||
'guessPosition' => $guess->getPosition()->toArray(),
|
||||
'distance' => $guess->getDistance(),
|
||||
'score' => $guess->getScore()
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($currentPlace)) { // game finished
|
||||
@ -347,10 +362,39 @@ class GameFlowController
|
||||
'panoId' => $nextPlace->getPanoIdCached(),
|
||||
'pov' => $nextPlace->getPov()->toArray()
|
||||
];
|
||||
|
||||
} else {
|
||||
|
||||
$guessesByUser = iterator_to_array($this->guessRepository->getAllInChallengeByUser($userId, $challenge));
|
||||
$places = iterator_to_array($this->placeRepository->getAllInChallenge($challenge));
|
||||
|
||||
for($i = 0; $i < $nextRound; ++$i) {
|
||||
|
||||
$response['history'][] = [
|
||||
'position' => $places[$i]->getPosition()->toArray(),
|
||||
'result' => [
|
||||
'guessPosition' => $guessesByUser[$i]->getPosition()->toArray(),
|
||||
'distance' => $guessesByUser[$i]->getDistance(),
|
||||
'score' => $guessesByUser[$i]->getScore()
|
||||
],
|
||||
'allResults' => []
|
||||
];
|
||||
|
||||
foreach($this->guessRepository->getAllInChallengeByRound($i, $challenge) as $guess) {
|
||||
// if($guess->getUserId() != $userId) {
|
||||
$user = $this->userRepository->getByGuess($guess);
|
||||
|
||||
$response['history'][$i]['allResults'][] = [
|
||||
'userName' => $user->getDisplayName(),
|
||||
'guessPosition' => $guess->getPosition()->toArray(),
|
||||
'distance' => $guess->getDistance(),
|
||||
'score' => $guess->getScore()
|
||||
];
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$this->saveVisit($currentPlace->getId());
|
||||
|
||||
|
@ -55,6 +55,7 @@ class GuessRepository
|
||||
$select = new Select(\Container::$dbConnection);
|
||||
$select->innerJoin('place_in_challenge', ['guesses', 'place_in_challenge_id'], '=', ['place_in_challenge', 'id']);
|
||||
$select->where('challenge_id', '=', $challenge->getId());
|
||||
$select->orderBy('order');
|
||||
|
||||
yield from $this->pdm->selectMultipleFromDb($select, Guess::class);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user