Message when everyone is verified
This commit is contained in:
@@ -585,6 +585,52 @@ class GameResponseService
|
||||
$setting->setValue(json_encode($rights));
|
||||
$this->entityManager->persist($setting);
|
||||
$this->entityManager->flush();
|
||||
|
||||
$this->checkIfAllPlayersVerified($player);
|
||||
}
|
||||
}
|
||||
|
||||
private function checkIfAllPlayersVerified(Player $player): void
|
||||
{
|
||||
$session = $player->getSession();
|
||||
$everyoneVerifiedSetting = $this->sessionSettingRepository->getSetting($session, SessionSettingType::EVERYONE_VERIFIED, $player);
|
||||
|
||||
if ($everyoneVerifiedSetting && $everyoneVerifiedSetting->getValue() === 'true') {
|
||||
return;
|
||||
}
|
||||
|
||||
$allVerified = true;
|
||||
foreach ([1, 2, 3] as $screen) {
|
||||
$progressSettingName = match ($screen) {
|
||||
1 => SessionSettingType::VERIFICATION_PROGRESS_FOR_PLAYER1,
|
||||
2 => SessionSettingType::VERIFICATION_PROGRESS_FOR_PLAYER2,
|
||||
3 => SessionSettingType::VERIFICATION_PROGRESS_FOR_PLAYER3,
|
||||
default => null,
|
||||
};
|
||||
|
||||
$progressSetting = $this->sessionSettingRepository->getSetting($session, $progressSettingName, $player);
|
||||
$progress = json_decode($progressSetting?->getValue() ?? '[]', true) ?? [];
|
||||
|
||||
if (count($progress) < 2) {
|
||||
$allVerified = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($allVerified) {
|
||||
if (!$everyoneVerifiedSetting) {
|
||||
$everyoneVerifiedSetting = new SessionSetting();
|
||||
$everyoneVerifiedSetting->setSession($session);
|
||||
$everyoneVerifiedSetting->setPlayer($player);
|
||||
$everyoneVerifiedSetting->setName(SessionSettingType::EVERYONE_VERIFIED);
|
||||
}
|
||||
$everyoneVerifiedSetting->setValue('true');
|
||||
$this->entityManager->persist($everyoneVerifiedSetting);
|
||||
$this->entityManager->flush();
|
||||
|
||||
$topic = $_ENV['MERCURE_TOPIC_BASE'] . '/game/hub-' . $session->getId();
|
||||
$message = "Mainframe Help Modus: Agents Doyle, Vega and Lennox rapports have been updated with coded messages.";
|
||||
$this->hub->publish(new Update($topic, json_encode([0, $message])));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user