24 lines
969 B
C++
24 lines
969 B
C++
// 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 <cstdint>
|
|
|
|
#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
|