fix: changed gold/exp mecanic
This commit is contained in:
@@ -185,6 +185,8 @@ std::string getTowerName(TowerType type) {
|
||||
return "Necromancer";
|
||||
case TowerType::Turret:
|
||||
return "Turret";
|
||||
default:
|
||||
return "Unknow";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user