feat: add upgrade tower (non gui)
This commit is contained in:
@@ -185,6 +185,7 @@ public:
|
||||
const Team& getTeam(TeamColor team) const;
|
||||
|
||||
const TowerList& getTowers() const { return m_Towers; };
|
||||
TowerPtr getTowerById(TowerID tower);
|
||||
|
||||
// Archer Tower
|
||||
virtual void OnArrowShot(MobPtr target, Tower* shooter);
|
||||
|
||||
@@ -42,6 +42,7 @@ public:
|
||||
|
||||
void selectTeam(game::TeamColor team);
|
||||
void sendMobs(const std::vector<protocol::MobSend>& mobSends);
|
||||
void upgradeTower(game::TowerID tower, game::TowerLevel level);
|
||||
};
|
||||
|
||||
} // namespace client
|
||||
|
||||
@@ -17,6 +17,7 @@ public:
|
||||
virtual void HandlePacket(protocol::WorldBeginDataPacket* packet) override;
|
||||
virtual void HandlePacket(protocol::WorldDataPacket* packet) override;
|
||||
virtual void HandlePacket(protocol::SpawnMobPacket* packet) override;
|
||||
virtual void HandlePacket(protocol::UpgradeTowerPacket* packet) override;
|
||||
|
||||
virtual void OnArrowShot(game::MobPtr target, game::Tower* shooter) override;
|
||||
};
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
virtual void HandlePacket(protocol::DisconnectPacket* packet);
|
||||
virtual void HandlePacket(protocol::PlaceTowerPacket* packet);
|
||||
virtual void HandlePacket(protocol::SendMobsPacket* packet);
|
||||
virtual void HandlePacket(protocol::UpgradeTowerPacket* packet);
|
||||
|
||||
std::uint8_t getID() const { return m_ID; }
|
||||
const game::Player* getPlayer() const { return m_Player; }
|
||||
|
||||
@@ -37,6 +37,7 @@ public:
|
||||
virtual void HandlePacket(WorldAddTowerPacket* packet) {}
|
||||
virtual void HandlePacket(WorldRemoveTowerPacket* packet) {}
|
||||
virtual void HandlePacket(SendMobsPacket* packet) {}
|
||||
virtual void HandlePacket(UpgradeTowerPacket* packet) {}
|
||||
};
|
||||
|
||||
} // namespace protocol
|
||||
|
||||
@@ -36,6 +36,7 @@ enum class PacketType : std::uint8_t {
|
||||
// client <--> server
|
||||
KeepAlive,
|
||||
Disconnect,
|
||||
UpgradeTower,
|
||||
};
|
||||
|
||||
struct WorldHeader {
|
||||
@@ -490,6 +491,24 @@ public:
|
||||
virtual PacketType getType() const { return PacketType::WorldRemoveTower; }
|
||||
};
|
||||
|
||||
class UpgradeTowerPacket : public Packet {
|
||||
private:
|
||||
game::TowerID m_TowerID;
|
||||
game::TowerLevel m_TowerLevel;
|
||||
public:
|
||||
UpgradeTowerPacket() {}
|
||||
UpgradeTowerPacket(game::TowerID tower, game::TowerLevel level) : m_TowerID(tower), m_TowerLevel(level) {}
|
||||
virtual ~UpgradeTowerPacket() {}
|
||||
|
||||
virtual DataBuffer Serialize() const;
|
||||
virtual void Deserialize(DataBuffer& data);
|
||||
virtual void Dispatch(PacketHandler* handler);
|
||||
|
||||
game::TowerID getTowerID() const { return m_TowerID; }
|
||||
game::TowerLevel getTowerLevel() const { return m_TowerLevel; }
|
||||
|
||||
virtual PacketType getType() const { return PacketType::UpgradeTower; }
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user