catapult_attack_system.h 767 B

1234567891011121314151617181920212223242526
  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 CatapultAttackSystem : public Engine::Core::System {
  9. public:
  10. void update(Engine::Core::World *world, float delta_time) override;
  11. private:
  12. void process_catapult_attacks(Engine::Core::World *world, float delta_time);
  13. void start_loading(Engine::Core::Entity *catapult,
  14. Engine::Core::Entity *target);
  15. void update_loading(Engine::Core::Entity *catapult, float delta_time);
  16. void fire_projectile(Engine::Core::World *world,
  17. Engine::Core::Entity *catapult);
  18. void update_firing(Engine::Core::Entity *catapult, float delta_time);
  19. };
  20. } // namespace Game::Systems