#include "enemy_manager.hpp" #include // Para std::ranges::any_of #include "game/entities/enemy.hpp" // Para Enemy #include "utils/utils.hpp" // Para checkCollision // Añade un enemigo a la colección void EnemyManager::addEnemy(std::shared_ptr enemy) { enemies_.push_back(std::move(enemy)); } // Elimina todos los enemigos void EnemyManager::clear() { enemies_.clear(); } // Elimina el último enemigo de la colección void EnemyManager::removeLastEnemy() { if (!enemies_.empty()) { enemies_.pop_back(); } } // Comprueba si no hay enemigos auto EnemyManager::isEmpty() const -> bool { return enemies_.empty(); } // Actualiza todos los enemigos void EnemyManager::update(float delta_time) { for (const auto& enemy : enemies_) { enemy->update(delta_time); } } // Renderiza todos los enemigos void EnemyManager::render() { for (const auto& enemy : enemies_) { enemy->render(); } } // Comprueba si hay colisión con algún enemigo auto EnemyManager::checkCollision(SDL_FRect& rect) -> bool { return std::ranges::any_of(enemies_, [&rect](const auto& enemy) { return ::checkCollision(rect, enemy->getCollider()); }); }