feat: add basic towers rendering
This commit is contained in:
@@ -146,7 +146,7 @@ void ServerConnexion::initConnection() {
|
||||
void ServerConnexion::HandlePacket(protocol::PlaceTowerPacket* packet) {
|
||||
game::TowerType towerType = packet->getTowerType();
|
||||
const game::TowerInfo& towerInfo = game::getTowerInfo(towerType);
|
||||
game::World* world = m_Server->getGame().getWorld();
|
||||
server::ServerWorld* world = m_Server->getGame().getServerWorld();
|
||||
if (towerInfo.isBigTower()) {
|
||||
if (!world->CanPlaceBigTower({ packet->getTowerX(), packet->getTowerY() }, m_ID))
|
||||
return;
|
||||
@@ -155,9 +155,9 @@ void ServerConnexion::HandlePacket(protocol::PlaceTowerPacket* packet) {
|
||||
return;
|
||||
}
|
||||
|
||||
world->placeTowerAt(towerType, packet->getTowerX(), packet->getTowerY(), m_ID);
|
||||
game::TowerPtr tower = world->placeTowerAt(towerType, packet->getTowerX(), packet->getTowerY(), m_ID);
|
||||
|
||||
protocol::WorldAddTowerPacket addTowerPacket(packet->getTowerX(), packet->getTowerY(), packet->getTowerType(), m_ID);
|
||||
protocol::WorldAddTowerPacket addTowerPacket(tower->getID(), packet->getTowerX(), packet->getTowerY(), packet->getTowerType(), m_ID);
|
||||
m_Server->broadcastPacket(&addTowerPacket);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,14 +37,16 @@ void ServerGame::updateGoldMines() {
|
||||
}
|
||||
|
||||
void ServerGame::balanceTeams() {
|
||||
for (auto playerInfo : m_Players) {
|
||||
for (auto& playerInfo : Game::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()) {
|
||||
player.setTeamColor(game::TeamColor::Red);
|
||||
redTeam.addPlayer(&player);
|
||||
} else {
|
||||
player.setTeamColor(game::TeamColor::Blue);
|
||||
blueTeam.addPlayer(&player);
|
||||
}
|
||||
protocol::UpdatePlayerTeamPacket packet(player.getID(), player.getTeamColor());
|
||||
|
||||
@@ -46,5 +46,11 @@ void ServerWorld::spawnMobs(game::MobType type, std::uint8_t level, game::Player
|
||||
}
|
||||
}
|
||||
|
||||
game::TowerPtr ServerWorld::placeTowerAt(game::TowerType type, std::int32_t x, std::int32_t y, game::PlayerID builder){
|
||||
game::TowerPtr tower = World::placeTowerAt(m_CurrentTowerID, type, x, y, builder);
|
||||
m_CurrentTowerID++;
|
||||
return tower;
|
||||
}
|
||||
|
||||
} // namespace server
|
||||
} // namespace td
|
||||
|
||||
Reference in New Issue
Block a user