fix: changed gold/exp mecanic

This commit is contained in:
2021-11-05 18:12:57 +01:00
parent afcfce1328
commit 18a090df06
6 changed files with 44 additions and 16 deletions

View File

@@ -185,6 +185,8 @@ std::string getTowerName(TowerType type) {
return "Necromancer";
case TowerType::Turret:
return "Turret";
default:
return "Unknow";
}
}

View File

@@ -249,7 +249,7 @@ void World::cleanDeadMobs() {
//reward players
Player& sender = m_Game->getPlayerById(mob->getSender());
sender.addEXP(mob->getStats()->getExpReward());
sender.addExp(mob->getStats()->getExpReward());
Player& killer = m_Game->getPlayerById(mob->getKillTower()->getBuilder());
killer.addGold(mob->getStats()->getMoneyCost());

View File

@@ -11,7 +11,7 @@ ServerGame::ServerGame(server::Server* server) : game::Game(&m_ServerWorld), m_S
void ServerGame::tick(std::uint64_t delta) {
if(m_GameState == game::GameState::Game){
Game::tick(delta);
m_GoldMineTimer.update();
updatePlayerStats();
}
}
@@ -27,12 +27,27 @@ void ServerGame::startGame() {
m_GameState = game::GameState::Game;
}
void ServerGame::updatePlayerStats(){
m_GoldMineTimer.update();
for (auto& pair : m_Server->getPlayers()) {
game::Player& player = pair.second;
if(player.hasGoldChanged()){
protocol::UpdateMoneyPacket packet(player.getGold());
m_Server->getConnexions()[player.getID()].sendPacket(&packet);
player.updateGold();
}
if(player.hasExpChanged()){
protocol::UpdateExpPacket packet(player.getExp());
m_Server->getConnexions()[player.getID()].sendPacket(&packet);
player.updateExp();
}
}
}
void ServerGame::updateGoldMines() {
for (auto& pair : m_Server->getPlayers()) {
game::Player* player = &pair.second;
player->setGold(player->getGold() + player->getGoldPerSecond());
protocol::UpdateMoneyPacket packet(player->getGold());
m_Server->getConnexions()[player->getID()].sendPacket(&packet);
player->addGold(player->getGoldPerSecond());
}
}