#pragma once #include "Types.h" #include #include #include namespace td { namespace game { class Player; enum class TeamColor : std::int8_t{ None = -1, Red, Blue }; struct Spawn{ Direction direction; std::int32_t x, y; }; struct TeamCastle{ std::int32_t x, y; std::uint16_t life = 1000; }; class Team{ private: std::vector m_Players; TeamColor m_Color; Spawn m_Spawn; TeamCastle m_TeamCastle; public: Team(TeamColor color); void addPlayer(Player* newPlayer); void removePlayer(const Player* player); TeamColor getColor() const; const Spawn& getSpawn() const {return m_Spawn;} Spawn& getSpawn() {return m_Spawn;} const TeamCastle& getCastle() const {return m_TeamCastle;} TeamCastle& getCastle() {return m_TeamCastle;} std::uint8_t getPlayerCount() const; }; } // namespace game } // namespace td