fix initial stats

This commit is contained in:
2022-07-04 10:42:31 +02:00
parent 377e98f583
commit 3fbb6acac7
2 changed files with 20 additions and 7 deletions

View File

@@ -33,6 +33,7 @@ public:
virtual void OnGameClose() override;
private:
void BalanceTeams();
void InitPlayerStats();
void UpdateMobStates();
void UpdateGoldMines();
void UpdatePlayerStats();

View File

@@ -32,24 +32,36 @@ void ServerGame::StartGame() {
protocol::WorldDataPacket mapData(m_World);
m_Server->BroadcastPacket(&mapData);
InitPlayerStats();
m_GameState = game::GameState::Game;
}
void ServerGame::InitPlayerStats() {
static const unsigned int START_GOLD = 100;
static const unsigned int START_EXP = 0;
static const unsigned int START_GOLD_PER_SEC = 5;
for (auto& [id, player] : m_Server->GetPlayers()) {
player.SetGold(START_GOLD);
player.SetExp(START_EXP);
player.getUpgrades().SetGoldPerSecond(5);
}
}
void ServerGame::UpdatePlayerStats() {
m_GoldMineTimer.Update();
}
void ServerGame::UpdateGoldMines() {
for (auto& pair : m_Server->GetPlayers()) {
game::Player* player = &pair.second;
player->AddGold(player->getUpgrades().GetGoldPerSecond());
for (auto& [id, player] : m_Server->GetPlayers()) {
player.AddGold(player.getUpgrades().GetGoldPerSecond());
// Update player money and exp every second
protocol::UpdateMoneyPacket moneyPacket(player->GetGold());
m_Server->GetConnexions()[player->GetID()].SendPacket(&moneyPacket);
protocol::UpdateMoneyPacket moneyPacket(player.GetGold());
m_Server->GetConnexions()[player.GetID()].SendPacket(&moneyPacket);
protocol::UpdateExpPacket expPacket(player->GetExp());
m_Server->GetConnexions()[player->GetID()].SendPacket(&expPacket);
protocol::UpdateExpPacket expPacket(player.GetExp());
m_Server->GetConnexions()[player.GetID()].SendPacket(&expPacket);
}
}