LethalCompany/Lethal Company/ExportedProject/Assets/Scripts/Assembly-CSharp/PlayAudioAnimationEvent.cs
2023-12-22 18:30:10 -05:00

200 lines
4.2 KiB
C#

using UnityEngine;
using UnityEngine.Events;
public class PlayAudioAnimationEvent : MonoBehaviour
{
public AudioSource audioToPlay;
public AudioSource audioToPlayB;
public AudioClip audioClip;
public AudioClip audioClip2;
public AudioClip audioClip3;
public AudioClip[] randomClips;
public AudioClip[] randomClips2;
public bool randomizePitch;
public ParticleSystem particle;
public UnityEvent onAnimationEventCalled;
public GameObject destroyObject;
private float timeAtStart;
public bool playAudibleNoise;
private void Start()
{
timeAtStart = Time.timeSinceLevelLoad;
}
public void PlayAudio1()
{
if (!(Time.timeSinceLevelLoad - timeAtStart < 2f))
{
audioToPlay.clip = audioClip;
audioToPlay.Play();
WalkieTalkie.TransmitOneShotAudio(audioToPlay, audioClip);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayAudio1RandomClip()
{
int num = Random.Range(0, randomClips.Length);
if (!(randomClips[num] == null))
{
audioToPlay.spatialize = false;
audioToPlay.PlayOneShot(randomClips[num]);
WalkieTalkie.TransmitOneShotAudio(audioToPlayB, randomClips[num]);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayAudio2RandomClip()
{
int num = Random.Range(0, randomClips2.Length);
if (!(randomClips[num] == null))
{
audioToPlayB.PlayOneShot(randomClips2[num]);
Debug.Log("Playing random clip 2");
WalkieTalkie.TransmitOneShotAudio(audioToPlayB, randomClips2[num]);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayAudioB1()
{
if (!(Time.timeSinceLevelLoad - timeAtStart < 2f))
{
audioToPlayB.clip = audioClip;
audioToPlayB.Play();
WalkieTalkie.TransmitOneShotAudio(audioToPlayB, audioClip);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayParticle()
{
particle.Play();
}
public void StopParticle()
{
particle.Stop(withChildren: false, ParticleSystemStopBehavior.StopEmitting);
}
public void PlayAudio1Oneshot()
{
if (!TooEarlySinceInitializing())
{
if (randomizePitch)
{
audioToPlay.pitch = Random.Range(0.8f, 1.4f);
}
audioToPlay.PlayOneShot(audioClip);
WalkieTalkie.TransmitOneShotAudio(audioToPlay, audioClip);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayAudio2()
{
audioToPlay.clip = audioClip2;
audioToPlay.Play();
}
public void PlayAudioB2()
{
if (!(Time.timeSinceLevelLoad - timeAtStart < 2f))
{
audioToPlayB.clip = audioClip2;
audioToPlayB.Play();
}
}
public void PlayAudio2Oneshot()
{
if (!TooEarlySinceInitializing())
{
if (randomizePitch)
{
audioToPlay.pitch = Random.Range(0.6f, 1.4f);
}
audioToPlay.PlayOneShot(audioClip2);
WalkieTalkie.TransmitOneShotAudio(audioToPlay, audioClip2);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void PlayAudio3Oneshot()
{
if (!TooEarlySinceInitializing())
{
if (randomizePitch)
{
audioToPlay.pitch = Random.Range(0.6f, 1.2f);
}
audioToPlay.PlayOneShot(audioClip3);
WalkieTalkie.TransmitOneShotAudio(audioToPlay, audioClip3);
if (playAudibleNoise)
{
RoundManager.Instance.PlayAudibleNoise(base.transform.position, 10f, 0.65f, 0, noiseIsInsideClosedShip: false, 546);
}
}
}
public void StopAudio()
{
audioToPlay.Stop();
}
public void PauseAudio()
{
audioToPlay.Pause();
}
public void PlayAudio1DefaultClip()
{
audioToPlay.Play();
}
public void OnAnimationEvent()
{
onAnimationEventCalled.Invoke();
}
private bool TooEarlySinceInitializing()
{
return Time.timeSinceLevelLoad - timeAtStart < 2f;
}
public void DestroyObject()
{
Object.Destroy(destroyObject);
}
}