summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/LevelAudio.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/LevelAudio.cs')
-rw-r--r--Thronefall_v1.0/Decompile/LevelAudio.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/LevelAudio.cs b/Thronefall_v1.0/Decompile/LevelAudio.cs
new file mode 100644
index 0000000..0ced3a9
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/LevelAudio.cs
@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class LevelAudio : MonoBehaviour
+{
+ [Serializable]
+ public class CivilisationAudioSource
+ {
+ public AudioSource audioSource;
+
+ public float volumeAtCastleCenterBuild = 0.1f;
+
+ public float targetVolume;
+
+ public int targetBuildingAmount;
+ }
+
+ public List<CivilisationAudioSource> managedCivAudioSources;
+
+ private int buildingCount;
+
+ private void OnValidate()
+ {
+ foreach (CivilisationAudioSource managedCivAudioSource in managedCivAudioSources)
+ {
+ if (managedCivAudioSource.audioSource != null)
+ {
+ managedCivAudioSource.targetVolume = managedCivAudioSource.audioSource.volume;
+ }
+ }
+ }
+
+ private void Start()
+ {
+ for (int num = managedCivAudioSources.Count - 1; num >= 0; num--)
+ {
+ CivilisationAudioSource civilisationAudioSource = managedCivAudioSources[num];
+ if (civilisationAudioSource.audioSource == null)
+ {
+ managedCivAudioSources.RemoveAt(num);
+ }
+ else
+ {
+ civilisationAudioSource.targetVolume = civilisationAudioSource.audioSource.volume;
+ civilisationAudioSource.audioSource.volume = 0f;
+ }
+ }
+ ThronefallAudioManager.Instance.onBuildingBuild.AddListener(OnNewBuildingBuilt);
+ }
+
+ private void OnNewBuildingBuilt()
+ {
+ for (int num = managedCivAudioSources.Count - 1; num >= 0; num--)
+ {
+ CivilisationAudioSource civilisationAudioSource = managedCivAudioSources[num];
+ civilisationAudioSource.audioSource.volume = Mathf.Lerp(civilisationAudioSource.volumeAtCastleCenterBuild, civilisationAudioSource.targetVolume, Mathf.InverseLerp(0f, civilisationAudioSource.targetBuildingAmount, buildingCount));
+ if (buildingCount >= civilisationAudioSource.targetBuildingAmount)
+ {
+ managedCivAudioSources.RemoveAt(num);
+ }
+ }
+ buildingCount++;
+ if (managedCivAudioSources.Count < 1)
+ {
+ ThronefallAudioManager.Instance.onBuildingBuild.RemoveListener(OnNewBuildingBuilt);
+ }
+ }
+}