feat: add archer tower aoe

This commit is contained in:
2021-11-30 18:01:48 +01:00
parent 6a51638b7e
commit 1843fc6f4d
3 changed files with 45 additions and 8 deletions

View File

@@ -114,7 +114,19 @@ typedef std::array<Color, 2> SpawnColorPalette;
typedef std::vector<TowerPtr> TowerList;
class World {
class WorldListener {
public:
WorldListener(){}
virtual void OnArcherTowerShot(MobPtr target, ArcherTower* shooter){}
virtual void OnArrowShot(MobPtr target, Tower* shooter){}
virtual void OnExplosion(utils::shape::Circle explosion, float centerDamage, Tower* shooter){}
virtual void OnMobDamage(MobPtr target, float damage){}
};
class World : public WorldListener{
protected:
TowerTileColorPalette m_TowerPlacePalette;
Color m_WalkablePalette;
@@ -189,8 +201,14 @@ public:
const TowerList& getTowers() const { return m_Towers; };
TowerPtr getTowerById(TowerID tower);
// Archer Tower
virtual void OnArrowShot(MobPtr target, Tower* shooter);
// WorldListener
virtual void OnArcherTowerShot(MobPtr target, ArcherTower* shooter){}
virtual void OnArrowShot(MobPtr target, Tower* shooter){}
virtual void OnExplosion(utils::shape::Circle explosion, float centerDamage, Tower* shooter){}
virtual void OnMobDamage(MobPtr target, float damage, Tower* source){}
private:
void moveMobs(std::uint64_t delta);
void moveMob(MobPtr mob, std::uint64_t delta);