using UnityEngine; namespace DarkTonic.MasterAudio { public class DynamicGroupVariation : MonoBehaviour { [Range(0f, 1f)] public int probabilityToPlay = 100; [Range(0f, 10f)] public int importance = 5; public bool isUninterruptible; public bool useLocalization; public bool useRandomPitch; public SoundGroupVariation.RandomPitchMode randomPitchMode; public float randomPitchMin; public float randomPitchMax; public bool useRandomVolume; public SoundGroupVariation.RandomVolumeMode randomVolumeMode; public float randomVolumeMin; public float randomVolumeMax; public int weight = 1; public string clipAlias; public MasterAudio.AudioLocation audLocation; public string resourceFileName; public bool isExpanded = true; public bool isChecked = true; public bool useFades; public float fadeInTime; public float fadeOutTime; public bool useCustomLooping; public int minCustomLoops = 1; public int maxCustomLoops = 5; public bool useIntroSilence; public float introSilenceMin; public float introSilenceMax; public bool useRandomStartTime; public float randomStartMinPercent; public float randomStartMaxPercent = 100f; public float randomEndPercent = 100f; private AudioDistortionFilter _distFilter; private AudioEchoFilter _echoFilter; private AudioHighPassFilter _hpFilter; private AudioLowPassFilter _lpFilter; private AudioReverbFilter _reverbFilter; private AudioChorusFilter _chorusFilter; private DynamicSoundGroup _parentGroupScript; private Transform _trans; private AudioSource _aud; public AudioDistortionFilter DistortionFilter { get { if (_distFilter != null) { return _distFilter; } _distFilter = GetComponent(); return _distFilter; } } public AudioReverbFilter ReverbFilter { get { if (_reverbFilter != null) { return _reverbFilter; } _reverbFilter = GetComponent(); return _reverbFilter; } } public AudioChorusFilter ChorusFilter { get { if (_chorusFilter != null) { return _chorusFilter; } _chorusFilter = GetComponent(); return _chorusFilter; } } public AudioEchoFilter EchoFilter { get { if (_echoFilter != null) { return _echoFilter; } _echoFilter = GetComponent(); return _echoFilter; } } public AudioLowPassFilter LowPassFilter { get { if (_lpFilter != null) { return _lpFilter; } _lpFilter = GetComponent(); return _lpFilter; } } public AudioHighPassFilter HighPassFilter { get { if (_hpFilter != null) { return _hpFilter; } _hpFilter = GetComponent(); return _hpFilter; } } public DynamicSoundGroup ParentGroup { get { if (_parentGroupScript == null) { _parentGroupScript = Trans.parent.GetComponent(); } if (_parentGroupScript == null) { Debug.LogError("The Group that Dynamic Sound Variation '" + base.name + "' is in does not have a DynamicSoundGroup script in it!"); } return _parentGroupScript; } } public Transform Trans { get { if (_trans != null) { return _trans; } _trans = base.transform; return _trans; } } public bool HasActiveFXFilter { get { if (HighPassFilter != null && HighPassFilter.enabled) { return true; } if (LowPassFilter != null && LowPassFilter.enabled) { return true; } if (ReverbFilter != null && ReverbFilter.enabled) { return true; } if (DistortionFilter != null && DistortionFilter.enabled) { return true; } if (EchoFilter != null && EchoFilter.enabled) { return true; } if (ChorusFilter != null && ChorusFilter.enabled) { return true; } return false; } } public AudioSource VarAudio { get { if (_aud != null) { return _aud; } _aud = GetComponent(); return _aud; } } } }