// Assets/_Project/Scripts/Combat/EnemyDeathSound.cs
using TD.Audio;
using TD.Gameplay;
using UnityEngine;
namespace TD.Combat
{
///
/// Local-only audio for enemy death. Subscribes to
/// and plays a randomly chosen clip from .
/// Attach to any enemy prefab and assign its clips in the Inspector.
///
[RequireComponent(typeof(EnemyHealth))]
public class EnemyDeathSound : MonoBehaviour
{
[SerializeField] private SoundConfig[] deathSounds;
private EnemyHealth enemyHealth;
private void Awake()
{
enemyHealth = GetComponent();
}
private void OnEnable()
{
if (enemyHealth != null) enemyHealth.OnDiedClient += HandleDied;
}
private void OnDisable()
{
if (enemyHealth != null) enemyHealth.OnDiedClient -= HandleDied;
}
private void HandleDied()
{
if (deathSounds == null || deathSounds.Length == 0) return;
var sound = deathSounds[Random.Range(0, deathSounds.Length)];
AudioManager.Instance?.Play(sound.clip, AudioCategory.EnemyHitDeath, sound.RandomPitch(), sound.volume);
}
}
}