summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs')
-rw-r--r--Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs94
1 files changed, 94 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs b/Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs
new file mode 100644
index 0000000..2e951ef
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/PlayerCharacterAudio.cs
@@ -0,0 +1,94 @@
+using UnityEngine;
+
+public class PlayerCharacterAudio : MonoBehaviour
+{
+ public Hp playerHp;
+
+ public AutoRevive playerReviveComponent;
+
+ public AudioSource stepAudioSource;
+
+ public AudioSource fxAudioSource;
+
+ public AudioSource dmgAudioSource;
+
+ public PlayerMovement targetController;
+
+ public float fadeTime = 0.3f;
+
+ public float sprintPitch = 1.1f;
+
+ private PlayerWeaponAudio weaponAudio;
+
+ private float initialVolume;
+
+ private float initialPitch;
+
+ private float fadeSpeed;
+
+ private void Start()
+ {
+ initialPitch = stepAudioSource.pitch;
+ initialVolume = stepAudioSource.volume;
+ stepAudioSource.volume = 0f;
+ stepAudioSource.priority = 110;
+ fadeSpeed = initialVolume / fadeTime;
+ playerHp.OnKillOrKnockout.AddListener(OnDeath);
+ playerHp.OnReceiveDamage.AddListener(OnDmg);
+ playerReviveComponent.onReviveTrigger.AddListener(OnRevive);
+ }
+
+ public void OnWeaponEquip(ManualAttack weapon)
+ {
+ weaponAudio = weapon.GetComponent<PlayerWeaponAudio>();
+ weaponAudio.autoWeapon.onAttack.AddListener(PlayAttackSound);
+ }
+
+ private void PlayAttackSound()
+ {
+ fxAudioSource.priority = 5;
+ fxAudioSource.pitch = Random.Range(1f - weaponAudio.pitchRange, 1f + weaponAudio.pitchRange);
+ fxAudioSource.PlayOneShot(weaponAudio.AttackSound.GetRandomClip(), weaponAudio.volume);
+ }
+
+ private void OnDeath()
+ {
+ dmgAudioSource.priority = 5;
+ dmgAudioSource.pitch = 1f;
+ dmgAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerDeath.GetRandomClip(), 1f);
+ }
+
+ private void OnDmg(bool b)
+ {
+ dmgAudioSource.priority = 5;
+ dmgAudioSource.pitch = Random.Range(0.9f, 1.1f);
+ dmgAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerDamage.GetRandomClip(), 0.65f);
+ }
+
+ private void OnRevive()
+ {
+ fxAudioSource.priority = 5;
+ fxAudioSource.pitch = 1f;
+ fxAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerRevive, 0.8f);
+ }
+
+ private void Update()
+ {
+ if (targetController.Sprinting)
+ {
+ stepAudioSource.pitch = sprintPitch;
+ }
+ else
+ {
+ stepAudioSource.pitch = initialPitch;
+ }
+ if (targetController.Moving && (playerHp == null || !playerHp.KnockedOut))
+ {
+ stepAudioSource.volume = Mathf.MoveTowards(stepAudioSource.volume, initialVolume, fadeSpeed * Time.unscaledDeltaTime);
+ }
+ else
+ {
+ stepAudioSource.volume = Mathf.MoveTowards(stepAudioSource.volume, 0f, fadeSpeed * Time.unscaledDeltaTime);
+ }
+ }
+}