## Problema Durante la refactorización de Room (Fases 1-3), se introdujeron includes relativos con ".." en 4 archivos, violando el estándar del proyecto que requiere includes absolutos desde la raíz source/. ## Cambios Realizados ### collision_map.hpp (1 corrección) - "../../utils/utils.hpp" → "utils/utils.hpp" ### collision_map.cpp (2 correcciones) - "../../core/system/debug.hpp" → "core/system/debug.hpp" - "../../utils/defines.hpp" → "utils/defines.hpp" ### enemy_manager.cpp (2 correcciones) - "../../utils/utils.hpp" → "utils/utils.hpp" - "../entities/enemy.hpp" → "game/entities/enemy.hpp" ### item_manager.cpp (4 correcciones) - "../../core/audio/audio.hpp" → "core/audio/audio.hpp" - "../../utils/utils.hpp" → "utils/utils.hpp" - "../entities/item.hpp" → "game/entities/item.hpp" - "../options.hpp" → "game/options.hpp" ## Validación ✓ Compilación exitosa ✓ 325 assets cargados correctamente ✓ Room files verificados ✓ Funcionamiento del juego confirmado ## Total 9 includes corregidos en 4 archivos, cumpliendo con el estándar de includes absolutos del proyecto definido en CLAUDE.md. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
#include "enemy_manager.hpp"
|
|
|
|
#include <algorithm> // Para std::ranges::any_of
|
|
|
|
#include "utils/utils.hpp" // Para checkCollision
|
|
#include "game/entities/enemy.hpp" // Para Enemy
|
|
|
|
// Añade un enemigo a la colección
|
|
void EnemyManager::addEnemy(std::shared_ptr<Enemy> 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());
|
|
});
|
|
}
|