Compare commits
7 Commits
d849349ad0
...
a05fa0c85a
Author | SHA1 | Date | |
---|---|---|---|
a05fa0c85a | |||
b71d918a8d | |||
39fb0b89ca | |||
7114248f70 | |||
0798d146f9 | |||
0a428fa6af | |||
68eace5ca8 |
@ -40,8 +40,14 @@ class GameFlowController implements ISecured
|
|||||||
|
|
||||||
private PlaceRepository $placeRepository;
|
private PlaceRepository $placeRepository;
|
||||||
|
|
||||||
|
private MapRepository $mapRepository;
|
||||||
|
|
||||||
|
private UserRepository $userRepository;
|
||||||
|
|
||||||
private UserPlayedPlaceRepository $userPlayedPlaceRepository;
|
private UserPlayedPlaceRepository $userPlayedPlaceRepository;
|
||||||
|
|
||||||
|
private ChallengeRepository $challengeRepository;
|
||||||
|
|
||||||
private UserInChallengeRepository $userInChallengeRepository;
|
private UserInChallengeRepository $userInChallengeRepository;
|
||||||
|
|
||||||
private PlaceInChallengeRepository $placeInChallengeRepository;
|
private PlaceInChallengeRepository $placeInChallengeRepository;
|
||||||
@ -55,7 +61,10 @@ class GameFlowController implements ISecured
|
|||||||
$this->multiConnector = new MultiConnector();
|
$this->multiConnector = new MultiConnector();
|
||||||
$this->multiRoomRepository = new MultiRoomRepository();
|
$this->multiRoomRepository = new MultiRoomRepository();
|
||||||
$this->placeRepository = new PlaceRepository();
|
$this->placeRepository = new PlaceRepository();
|
||||||
|
$this->mapRepository = new MapRepository();
|
||||||
|
$this->userRepository = new UserRepository();
|
||||||
$this->userPlayedPlaceRepository = new UserPlayedPlaceRepository();
|
$this->userPlayedPlaceRepository = new UserPlayedPlaceRepository();
|
||||||
|
$this->challengeRepository = new ChallengeRepository();
|
||||||
$this->userInChallengeRepository = new UserInChallengeRepository();
|
$this->userInChallengeRepository = new UserInChallengeRepository();
|
||||||
$this->placeInChallengeRepository = new PlaceInChallengeRepository();
|
$this->placeInChallengeRepository = new PlaceInChallengeRepository();
|
||||||
$this->guessRepository = new GuessRepository();
|
$this->guessRepository = new GuessRepository();
|
||||||
@ -145,16 +154,16 @@ class GameFlowController implements ISecured
|
|||||||
private function prepareChallengeResponse(int $userId, Challenge $challenge, int $currentRound, bool $withHistory = false): array
|
private function prepareChallengeResponse(int $userId, Challenge $challenge, int $currentRound, bool $withHistory = false): array
|
||||||
{
|
{
|
||||||
$currentPlace = $this->placeRepository->getByRoundInChallenge($challenge, $currentRound);
|
$currentPlace = $this->placeRepository->getByRoundInChallenge($challenge, $currentRound);
|
||||||
|
|
||||||
// if the last round was played ($currentPlace == null) or history is explicitly requested (for initializing)
|
// if the last round was played ($currentPlace == null) or history is explicitly requested (for initializing)
|
||||||
if (!isset($currentPlace) || $withHistory) {
|
if (!isset($currentPlace) || $withHistory) {
|
||||||
|
|
||||||
$withRelations = [User::class, PlaceInChallenge::class, Place::class];
|
$withRelations = [User::class, PlaceInChallenge::class, Place::class];
|
||||||
foreach ($this->guessRepository->getAllInChallenge($challenge, $withRelations) as $guess) {
|
foreach ($this->guessRepository->getAllInChallenge($challenge, $withRelations) as $guess) {
|
||||||
$round = $guess->getPlaceInChallenge()->getRound();
|
$round = $guess->getPlaceInChallenge()->getRound();
|
||||||
|
|
||||||
if ($guess->getUser()->getId() === $userId) {
|
if ($guess->getUser()->getId() === $userId) {
|
||||||
$response['history'][$round]['position'] =
|
$response['history'][$round]['position'] =
|
||||||
$guess->getPlaceInChallenge()->getPlace()->getPosition()->toArray();
|
$guess->getPlaceInChallenge()->getPlace()->getPosition()->toArray();
|
||||||
$response['history'][$round]['result'] = [
|
$response['history'][$round]['result'] = [
|
||||||
'guessPosition' => $guess->getPosition()->toArray(),
|
'guessPosition' => $guess->getPosition()->toArray(),
|
||||||
@ -179,8 +188,8 @@ class GameFlowController implements ISecured
|
|||||||
'distance' => null,
|
'distance' => null,
|
||||||
'score' => 0
|
'score' => 0
|
||||||
];
|
];
|
||||||
|
|
||||||
$response['history'][$i]['position'] =
|
$response['history'][$i]['position'] =
|
||||||
$this->placeRepository->getByRoundInChallenge($challenge, $i)->getPosition()->toArray();
|
$this->placeRepository->getByRoundInChallenge($challenge, $i)->getPosition()->toArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,7 +250,7 @@ class GameFlowController implements ISecured
|
|||||||
if ($challenge->getTimeLimitType() === 'game' && $challenge->getTimeLimit() !== null && $userInChallenge->getCurrentRound() > 0) {
|
if ($challenge->getTimeLimitType() === 'game' && $challenge->getTimeLimit() !== null && $userInChallenge->getCurrentRound() > 0) {
|
||||||
$timeLimit = max(10, $userInChallenge->getTimeLeft());
|
$timeLimit = max(10, $userInChallenge->getTimeLeft());
|
||||||
$response['restrictions']['timeLimit'] = $timeLimit * 1000;
|
$response['restrictions']['timeLimit'] = $timeLimit * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new JsonContent($response);
|
return new JsonContent($response);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user