#pragma once class MoveableEntity; class AIComponent { public: MoveableEntity* owner = nullptr; virtual ~AIComponent(); virtual void Update(int delta_time); virtual float GetAttackRate() { return 0;}; virtual void Reset() {}; void SetAiLevel(int ai_level); void SetAiMode(int ai_mode); int GetAiLevel(); int GetAiMode(); private: int ai_level_ = 0; int ai_mode_ = 0; };