extends Node

# Intentionen (Input → System)
signal ability_use(player, ability_index)
signal role_change_requested(player, role)
signal target_requested(player, target)
signal enemy_detected(enemy, player)
signal enemy_lost(enemy, player)
signal portal_entered(portal, player)

# Kampf
signal attack_executed(attacker, position, direction, damage)
signal damage_dealt(attacker, target, damage)
signal damage_requested(attacker, target, amount)
signal heal_requested(healer, target, amount)

# Entity
signal entity_died(entity)
signal health_changed(entity, current, max_val)
signal shield_changed(entity, current, max_val)
signal shield_broken(entity)
signal shield_regenerated(entity)

# Spieler
signal target_changed(player, target)
signal player_respawned(player)
signal role_changed(player, role_type)
signal respawn_tick(timer)
signal cooldown_tick(cooldowns, max_cooldowns, gcd_timer)

# Buff
signal buff_changed(entity, stat, value)

# Gegner
signal enemy_engaged(enemy, target)

# Portal
signal portal_spawn(portal, enemies)
signal portal_defeated(portal)

# Dungeon
signal dungeon_cleared()

# Effects
signal effect_requested(target, effect, source)
signal effect_applied(target, effect)
signal effect_expired(target, effect)

# Elements
signal element_damage_dealt(attacker, target, amount, element)
signal element_applied(target, element)
signal element_reaction(target, element_a, element_b, reaction_name)

# Wave
signal run_started(wave_number)
signal wave_started(wave_number)
signal wave_timer_tick(seconds_remaining)
signal wave_ended(wave_number, success)

# XP / Level
signal xp_gained(player, amount)
signal level_up(player, new_level)

# Taverne
signal tavern_damaged(current, max_val)
signal tavern_destroyed()

# Invasion
signal invasion_started(enemies)
signal invasion_ended(success)

# Game-Over
signal game_over()
