fix initial stats
This commit is contained in:
@@ -33,6 +33,7 @@ public:
|
|||||||
virtual void OnGameClose() override;
|
virtual void OnGameClose() override;
|
||||||
private:
|
private:
|
||||||
void BalanceTeams();
|
void BalanceTeams();
|
||||||
|
void InitPlayerStats();
|
||||||
void UpdateMobStates();
|
void UpdateMobStates();
|
||||||
void UpdateGoldMines();
|
void UpdateGoldMines();
|
||||||
void UpdatePlayerStats();
|
void UpdatePlayerStats();
|
||||||
|
|||||||
@@ -32,24 +32,36 @@ void ServerGame::StartGame() {
|
|||||||
protocol::WorldDataPacket mapData(m_World);
|
protocol::WorldDataPacket mapData(m_World);
|
||||||
m_Server->BroadcastPacket(&mapData);
|
m_Server->BroadcastPacket(&mapData);
|
||||||
|
|
||||||
|
InitPlayerStats();
|
||||||
|
|
||||||
m_GameState = game::GameState::Game;
|
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() {
|
void ServerGame::UpdatePlayerStats() {
|
||||||
m_GoldMineTimer.Update();
|
m_GoldMineTimer.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerGame::UpdateGoldMines() {
|
void ServerGame::UpdateGoldMines() {
|
||||||
for (auto& pair : m_Server->GetPlayers()) {
|
for (auto& [id, player] : m_Server->GetPlayers()) {
|
||||||
game::Player* player = &pair.second;
|
player.AddGold(player.getUpgrades().GetGoldPerSecond());
|
||||||
player->AddGold(player->getUpgrades().GetGoldPerSecond());
|
|
||||||
|
|
||||||
// Update player money and exp every second
|
// Update player money and exp every second
|
||||||
protocol::UpdateMoneyPacket moneyPacket(player->GetGold());
|
protocol::UpdateMoneyPacket moneyPacket(player.GetGold());
|
||||||
m_Server->GetConnexions()[player->GetID()].SendPacket(&moneyPacket);
|
m_Server->GetConnexions()[player.GetID()].SendPacket(&moneyPacket);
|
||||||
|
|
||||||
protocol::UpdateExpPacket expPacket(player->GetExp());
|
protocol::UpdateExpPacket expPacket(player.GetExp());
|
||||||
m_Server->GetConnexions()[player->GetID()].SendPacket(&expPacket);
|
m_Server->GetConnexions()[player.GetID()].SendPacket(&expPacket);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user