Files
jaildoctors_dilemma/source/game/gameplay/enemy_manager.cpp
Sergio e13a8e5930 fix(gameplay): Corregir includes relativos a absolutos
## 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>
2025-11-13 12:13:52 +01:00

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());
});
}