capture_system.h 836 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include "../core/entity.h"
  3. #include "../core/system.h"
  4. namespace Engine::Core {
  5. class World;
  6. }
  7. namespace Game::Systems {
  8. class CaptureSystem : public Engine::Core::System {
  9. public:
  10. void update(Engine::Core::World *world, float delta_time) override;
  11. private:
  12. static void process_barrack_capture(Engine::Core::World *world,
  13. float delta_time);
  14. static auto count_nearby_troops(Engine::Core::World *world, float barrack_x,
  15. float barrack_z, int owner_id,
  16. float radius) -> int;
  17. static void transfer_barrack_ownership(Engine::Core::World *world,
  18. Engine::Core::Entity *barrack,
  19. int new_owner_id);
  20. };
  21. } // namespace Game::Systems