From d1aa5cd8aaf16620c6a8e2336712e8f57543ef1a Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Mon, 14 Aug 2023 18:54:36 +0200 Subject: [PATCH] balance team on player join --- include/server/game/ServerGame.h | 2 ++ src/server/ServerConnexion.cpp | 2 ++ src/server/game/ServerGame.cpp | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/include/server/game/ServerGame.h b/include/server/game/ServerGame.h index 7d743f7..08a5a01 100644 --- a/include/server/game/ServerGame.h +++ b/include/server/game/ServerGame.h @@ -33,6 +33,8 @@ public: virtual void OnGameBegin() override; virtual void OnGameEnd() override; virtual void OnGameClose() override; + + virtual void OnPlayerJoin(game::PlayerID id) override; private: void BalanceTeams(); void InitPlayerStats(); diff --git a/src/server/ServerConnexion.cpp b/src/server/ServerConnexion.cpp index 4bc5b56..5b4c370 100644 --- a/src/server/ServerConnexion.cpp +++ b/src/server/ServerConnexion.cpp @@ -115,6 +115,8 @@ void ServerConnexion::HandlePacket(const protocol::PlayerLoginPacket* packet) { protocol::PlayerListPacket listPacket(playerNames); SendPacket(&listPacket); + + m_Server->GetGame().NotifyListeners(&game::GameListener::OnPlayerJoin, m_ID); } } diff --git a/src/server/game/ServerGame.cpp b/src/server/game/ServerGame.cpp index 626a3b4..a1f74de 100644 --- a/src/server/game/ServerGame.cpp +++ b/src/server/game/ServerGame.cpp @@ -134,5 +134,10 @@ void ServerGame::OnGameClose() { m_Server->Restart(); } +void ServerGame::OnPlayerJoin(game::PlayerID id){ + if (m_GameState == game::GameState::Game) + BalanceTeams(); +} + } // namespace game } // namespace td