// Assets/_Project/Scripts/Combat/TeslaTowerFireSound.cs using TD.Audio; using UnityEngine; namespace TD.Combat { /// /// Local-only audio for the Tesla Coil tower. Subscribes to /// and plays a one-shot fire sound /// on every peer each time the coil discharges. /// /// /// Pure client-side — nothing here is networked. Add additional /// fields and calls here /// as the Tesla Coil gains more audio (idle hum, charge-up, etc.). /// [RequireComponent(typeof(TowerCombat))] public class TeslaTowerFireSound : MonoBehaviour { [SerializeField] private SoundConfig fireSound; private TowerCombat combat; private void Awake() { combat = GetComponent(); } private void OnEnable() { if (combat != null) combat.OnAreaFired += HandleAreaFired; } private void OnDisable() { if (combat != null) combat.OnAreaFired -= HandleAreaFired; } private void HandleAreaFired(Vector3[] positions) { AudioManager.Instance?.Play(fireSound.clip, AudioCategory.TowerFire, fireSound.RandomPitch(), fireSound.volume); } } }