// enemy_event_dispatcher.hpp - Executa les accions YAML d'un event d'enemic // © 2026 JailDesigner // // Mira la llista d'EnemyAction associada a l'event al config de l'enemic i les // executa una per una. L'acció DESTROY dispara recursivament ON_DESTROY abans // de desactivar físicament l'enemic (el parser garanteix que ON_DESTROY no // conté DESTROY, evitant recursió infinita). #pragma once #include #include "game/entities/enemy_event.hpp" #include "game/systems/collision_system.hpp" namespace Systems::EnemyEvents { // shooter_id: id del jugador que ha disparat (0xFF = sense atribució). // bullet: punter opcional a la bala que ha causat l'event (usat per APPLY_IMPULSE); // nullptr per a events no derivats d'una bala (on_hurt_end). void dispatchEvent(Systems::Collision::Context& ctx, Enemy& enemy, EnemyEventType event, uint8_t shooter_id, const Bullet* bullet = nullptr); } // namespace Systems::EnemyEvents