1er commit
This commit is contained in:
57
src/game/server/ServerGame.cpp
Normal file
57
src/game/server/ServerGame.cpp
Normal file
@@ -0,0 +1,57 @@
|
||||
#include "game/server/ServerGame.h"
|
||||
#include "game/server/Server.h"
|
||||
|
||||
namespace td {
|
||||
namespace server {
|
||||
|
||||
ServerGame::ServerGame(server::Server* server) : m_Server(server), m_ServerWorld(server, this), game::Game(&m_ServerWorld){
|
||||
|
||||
}
|
||||
|
||||
void ServerGame::tick(std::uint64_t delta){
|
||||
Game::tick(delta);
|
||||
m_GoldMineTimer.update();
|
||||
}
|
||||
|
||||
void ServerGame::startGame(){
|
||||
protocol::WorldBeginDataPacket headerMapData(m_World);
|
||||
m_Server->broadcastPacket(&headerMapData);
|
||||
|
||||
protocol::WorldDataPacket mapData(m_World);
|
||||
m_Server->broadcastPacket(&mapData);
|
||||
|
||||
m_GameState = game::GameState::Game;
|
||||
|
||||
balanceTeams();
|
||||
|
||||
m_ServerWorld.spawnMobs(game::MobType::Zombie, 1, 0, 12);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
void ServerGame::balanceTeams(){
|
||||
for(auto playerInfo : m_Players){
|
||||
game::Player& player = playerInfo.second;
|
||||
if(player.getTeamColor() == game::TeamColor::None){
|
||||
game::Team& redTeam = getRedTeam();
|
||||
game::Team& blueTeam = getBlueTeam();
|
||||
if(blueTeam.getPlayerCount() > redTeam.getPlayerCount()){
|
||||
redTeam.addPlayer(&player);
|
||||
}else{
|
||||
blueTeam.addPlayer(&player);
|
||||
}
|
||||
protocol::UpdatePlayerTeamPacket packet(player.getID(), player.getTeamColor());
|
||||
m_Server->broadcastPacket(&packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace game
|
||||
} // namespace td
|
||||
Reference in New Issue
Block a user