Change Lobby timer

This commit is contained in:
2023-08-12 12:22:36 +02:00
parent b4836847f5
commit 0a814233a4
8 changed files with 27 additions and 24 deletions

View File

@@ -33,20 +33,20 @@ Lobby::Lobby(Server* server) : m_Server(server), m_Timer(1000, std::bind(&Lobby:
}
void Lobby::Tick() {
if (m_GameStarted || m_StartTimerTime == 0)
if (m_GameStarted || m_StartTime == 0)
return;
if (utils::GetTime() - m_StartTimerTime >= LobbyWaitingTime) {
if (utils::GetTime() >= m_StartTime) {
m_Server->GetGame().NotifyListeners(&game::GameListener::OnGameBegin);
m_GameStarted = true;
return;
}
m_Timer.Update();
//m_Timer.Update();
}
void Lobby::SendTimeRemaining() {
protocol::UpdateLobbyTimePacket packet(LobbyWaitingTime - (utils::GetTime() - m_StartTimerTime)); // converting second to millis
protocol::UpdateLobbyTimePacket packet(m_StartTime); // converting second to millis
m_Server->BroadcastPacket(&packet);
}
@@ -56,7 +56,7 @@ void Lobby::OnPlayerJoin(std::uint8_t playerID) {
utils::LOG("(Server) Player Joined Lobby !");
m_Players.push_back(playerID);
if (m_Players.size() == MIN_PLAYER_WAITING) { // start timer if a second player join the match
m_StartTimerTime = utils::GetTime();
m_StartTime = utils::GetTime() + static_cast<std::uint64_t>(LobbyWaitingTime);
m_Timer.Reset();
SendTimeRemaining();
}
@@ -73,9 +73,8 @@ void Lobby::OnPlayerLeave(std::uint8_t playerID) {
m_Players.erase(it);
if (m_Players.size() == 1) {
protocol::UpdateLobbyTimePacket packet(0);
m_Server->BroadcastPacket(&packet);
m_StartTimerTime = 0; // reset timer if there is only one player left
m_StartTime = 0; // reset timer if there is only one player left
SendTimeRemaining();
}
}