elephant_attack_system.h 961 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "../core/system.h"
  3. namespace Engine::Core {
  4. class World;
  5. class Entity;
  6. } // namespace Engine::Core
  7. namespace Game::Systems {
  8. class ElephantAttackSystem : public Engine::Core::System {
  9. public:
  10. void update(Engine::Core::World *world, float delta_time) override;
  11. private:
  12. void process_elephant_behavior(Engine::Core::World *world, float delta_time);
  13. void process_charge_attack(Engine::Core::Entity *elephant,
  14. Engine::Core::World *world, float delta_time);
  15. void process_trample_damage(Engine::Core::Entity *elephant,
  16. Engine::Core::World *world, float delta_time);
  17. void process_panic_mechanic(Engine::Core::Entity *elephant,
  18. Engine::Core::World *world, float delta_time);
  19. void process_melee_attack(Engine::Core::Entity *elephant,
  20. Engine::Core::World *world, float delta_time);
  21. };
  22. } // namespace Game::Systems