Upload from upload_mods.ps1
This commit is contained in:
471
Harmony/Harmony_BackgroundMusicMono.cs
Normal file
471
Harmony/Harmony_BackgroundMusicMono.cs
Normal file
@@ -0,0 +1,471 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Harmony.BackgroundMusicPatches
|
||||
{
|
||||
public class MenuMusic
|
||||
{
|
||||
public static AudioType MyMusicType = AudioType.OGGVORBIS;
|
||||
public static List<int> musicLeft = new List<int>();
|
||||
|
||||
[HarmonyPatch(typeof(BackgroundMusicMono))]
|
||||
[HarmonyPatch("Start")]
|
||||
public class StartPatch
|
||||
{
|
||||
public static bool Prefix(BackgroundMusicMono __instance
|
||||
)
|
||||
{
|
||||
AudioListener[] objectsOfType = UnityEngine.Object.FindObjectsOfType<AudioListener>();
|
||||
for (int index = 0; index < objectsOfType.Length; ++index)
|
||||
{
|
||||
if (objectsOfType[index].enabled)
|
||||
{
|
||||
__instance.transform.position = objectsOfType[index].transform.position;
|
||||
break;
|
||||
}
|
||||
}
|
||||
AudioListener.volume = Mathf.Min(GamePrefs.GetFloat(EnumGamePrefs.OptionsOverallAudioVolumeLevel), 1f);
|
||||
RebirthVariables.audioSource = __instance.gameObject.AddComponent<AudioSource>();
|
||||
RebirthVariables.audioSource.volume = RebirthVariables.currentVolume = 0.01f;
|
||||
RebirthVariables.audioSource.clip = GameManager.Instance.BackgroundMusicClip;
|
||||
RebirthVariables.audioSource.loop = true;
|
||||
RebirthVariables.audioSource.Play();
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(BackgroundMusicMono), "Update")]
|
||||
public class Update
|
||||
{
|
||||
private static bool Prefix(BackgroundMusicMono __instance)
|
||||
{
|
||||
if (GameManager.Instance == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.audioSource.clip.name: " + RebirthVariables.audioSource.clip.name);
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.audioSource.isPlaying: " + RebirthVariables.audioSource.isPlaying);
|
||||
|
||||
if (RebirthVariables.audioSource.clip.name == "menu_music_long_lp")
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 1");
|
||||
string strMusicPath = "";
|
||||
|
||||
RebirthVariables.audioClip = new AudioClip[23];
|
||||
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 1a, i: " + i);
|
||||
musicLeft.Add(i);
|
||||
strMusicPath = "#@modfolder(zzz_REBIRTH__Utils):Resources/FR_Music.unity3d?Menu" + i;
|
||||
RebirthVariables.audioClip[i - 1] = DataLoader.LoadAsset<AudioClip>(strMusicPath);
|
||||
}
|
||||
|
||||
strMusicPath = "#@modfolder(zzz_REBIRTH__Utils):Resources/FR_Music.unity3d?Scratch";
|
||||
|
||||
AudioClip audioClip = DataLoader.LoadAsset<AudioClip>(strMusicPath);
|
||||
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
|
||||
if (audioClip != null)
|
||||
{
|
||||
RebirthVariables.audioSource.Stop();
|
||||
RebirthVariables.audioSource.clip = audioClip;
|
||||
RebirthVariables.audioSource.PlayOneShot(audioClip);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
else if (RebirthVariables.audioSource.clip.name == "Scratch" && RebirthVariables.audioSource.isPlaying == false)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 2");
|
||||
int num = UnityEngine.Random.Range(1, 10);
|
||||
|
||||
string strMusicPath = "#@modfolder(zzz_REBIRTH__Utils):Resources/FR_Music.unity3d?Rekt" + num;
|
||||
|
||||
AudioClip audioClip = DataLoader.LoadAsset<AudioClip>(strMusicPath);
|
||||
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
if (audioClip != null)
|
||||
{
|
||||
RebirthVariables.audioSource.clip = audioClip;
|
||||
RebirthVariables.audioSource.PlayOneShot(audioClip);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
else if (RebirthVariables.audioSource.clip.name.Contains("Rekt") && RebirthVariables.audioSource.isPlaying == false && !RebirthVariables.audioClipLoaded)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 3a, musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
//RebirthVariables.audioClip = new AudioClip[23];
|
||||
|
||||
if (musicLeft.Count == 0)
|
||||
{
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 3a, i: " + i);
|
||||
musicLeft.Add(i);
|
||||
string strMusicPath = "#@modfolder(zzz_REBIRTH__Utils):Resources/FR_Music.unity3d?Menu" + i;
|
||||
RebirthVariables.audioClip[i - 1] = DataLoader.LoadAsset<AudioClip>(strMusicPath);
|
||||
}
|
||||
}
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update 3b, musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
int num = UnityEngine.Random.Range(1, musicLeft.Count);
|
||||
RebirthVariables.songIndex = musicLeft[num];
|
||||
|
||||
musicLeft.Remove(RebirthVariables.songIndex);
|
||||
|
||||
if (RebirthVariables.audioClip[RebirthVariables.songIndex - 1] != null)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 3c");
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
RebirthVariables.secondsToFadeIn = 1f;
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.audioSource.clip = RebirthVariables.audioClip[RebirthVariables.songIndex - 1];
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeIn;
|
||||
RebirthVariables.audioSource.Play();
|
||||
|
||||
}
|
||||
|
||||
RebirthVariables.audioClipLoaded = true;
|
||||
}
|
||||
else if (RebirthVariables.audioSource.clip.name.Contains("Menu") && RebirthVariables.audioSource.volume > 0 && RebirthVariables.audioSource.isPlaying == false && RebirthVariables.musicMode == -1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 4, musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
if (musicLeft.Count == 0)
|
||||
{
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
musicLeft.Add(i);
|
||||
}
|
||||
}
|
||||
|
||||
int num = UnityEngine.Random.Range(0, musicLeft.Count - 1);
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update num: " + num);
|
||||
|
||||
RebirthVariables.songIndex = musicLeft[num];
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.songIndex: " + RebirthVariables.songIndex);
|
||||
|
||||
musicLeft.Remove(RebirthVariables.songIndex);
|
||||
|
||||
if (RebirthVariables.audioClip[RebirthVariables.songIndex - 1] != null)
|
||||
{
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
RebirthVariables.secondsToFadeIn = 1f;
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.audioSource.clip = RebirthVariables.audioClip[RebirthVariables.songIndex - 1];
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeIn;
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
}
|
||||
else if (RebirthVariables.audioSource.clip.name.Contains("Menu") && RebirthVariables.audioSource.volume > 0 && RebirthVariables.audioSource.isPlaying == false && RebirthVariables.musicMode == 1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 5, musicLeft.Count: " + musicLeft.Count);
|
||||
EntityPlayerLocal primaryPlayer = GameManager.Instance.World.GetPrimaryPlayer();
|
||||
|
||||
if (primaryPlayer != null)
|
||||
{
|
||||
if (musicLeft.Count == 0)
|
||||
{
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
ProgressionValue progressionValue = primaryPlayer.Progression.GetProgressionValue("FuriousRamsayAchievementCassette" + i);
|
||||
|
||||
if (progressionValue != null && progressionValue.Level > 0)
|
||||
{
|
||||
musicLeft.Add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RebirthVariables.songIndex = -1;
|
||||
|
||||
if (musicLeft.Count > 0)
|
||||
{
|
||||
int num = UnityEngine.Random.Range(0, musicLeft.Count - 1);
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update num: " + num);
|
||||
|
||||
RebirthVariables.songIndex = musicLeft[num];
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.songIndex: " + RebirthVariables.songIndex);
|
||||
|
||||
musicLeft.Remove(RebirthVariables.songIndex);
|
||||
|
||||
if (RebirthVariables.audioClip[RebirthVariables.songIndex - 1] != null)
|
||||
{
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
RebirthVariables.secondsToFadeIn = 1f;
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.audioSource.clip = RebirthVariables.audioClip[RebirthVariables.songIndex - 1];
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeIn;
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.musicMode: " + RebirthVariables.musicMode);
|
||||
|
||||
if (GameStats.GetInt(EnumGameStats.GameState) == 1 && !GameManager.Instance.IsPaused())
|
||||
{
|
||||
if (RebirthVariables.musicMode == 3 && RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 6");
|
||||
RebirthVariables.audioSource.Stop();
|
||||
RebirthVariables.musicMode = -1;
|
||||
musicLeft.Clear();
|
||||
}
|
||||
else if (RebirthVariables.musicMode == 4 && RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 7, BEFORE RebirthVariables.musicVolume: " + RebirthVariables.musicVolume);
|
||||
RebirthVariables.musicVolume += 0.02f;
|
||||
if (RebirthVariables.musicVolume > 1f)
|
||||
{
|
||||
RebirthVariables.musicVolume = 1f;
|
||||
}
|
||||
//Log.Out("BackgroundMusicPatches-Update 7, AFTER RebirthVariables.musicVolume: " + RebirthVariables.musicVolume);
|
||||
RebirthVariables.musicMode = 1;
|
||||
}
|
||||
else if (RebirthVariables.musicMode == 5 && RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 8, BEFORE RebirthVariables.musicVolume: " + RebirthVariables.musicVolume);
|
||||
RebirthVariables.musicVolume -= 0.02f;
|
||||
if (RebirthVariables.musicVolume < 0f)
|
||||
{
|
||||
RebirthVariables.musicVolume = 0f;
|
||||
}
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update 8, AFTER RebirthVariables.musicVolume: " + RebirthVariables.musicVolume);
|
||||
RebirthVariables.musicMode = 1;
|
||||
}
|
||||
else if (RebirthVariables.musicMode == 2 && RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 9");
|
||||
|
||||
RebirthVariables.audioSource.Stop();
|
||||
|
||||
EntityPlayerLocal primaryPlayer = GameManager.Instance.World.GetPrimaryPlayer();
|
||||
|
||||
if (primaryPlayer != null)
|
||||
{
|
||||
if (musicLeft.Count == 0)
|
||||
{
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
ProgressionValue progressionValue = primaryPlayer.Progression.GetProgressionValue("FuriousRamsayAchievementCassette" + i);
|
||||
|
||||
if (progressionValue != null && progressionValue.Level > 0)
|
||||
{
|
||||
musicLeft.Add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RebirthVariables.songIndex = -1;
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
if (musicLeft.Count > 0)
|
||||
{
|
||||
/*for (int i = 0; i <= musicLeft.Count - 1; i++)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update BEFORE musicLeft[" + i + "]: " + musicLeft[i]);
|
||||
}*/
|
||||
|
||||
int num = UnityEngine.Random.Range(0, musicLeft.Count - 1);
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update num: " + num);
|
||||
|
||||
RebirthVariables.songIndex = musicLeft[num];
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.songIndex: " + RebirthVariables.songIndex);
|
||||
|
||||
musicLeft.Remove(RebirthVariables.songIndex);
|
||||
|
||||
/*if (musicLeft.Count > 0)
|
||||
{
|
||||
for (int i = 0; i <= musicLeft.Count - 1; i++)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update AFTER musicLeft[" + i + "]: " + musicLeft[i]);
|
||||
}
|
||||
}*/
|
||||
|
||||
if (RebirthVariables.audioClip[RebirthVariables.songIndex - 1] != null)
|
||||
{
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
RebirthVariables.secondsToFadeIn = 1f;
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.audioSource.clip = RebirthVariables.audioClip[RebirthVariables.songIndex - 1];
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.audioSource.clip.name: " + RebirthVariables.audioSource.clip.name);
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeIn;
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
}
|
||||
|
||||
RebirthVariables.musicMode = 1;
|
||||
}
|
||||
}
|
||||
else if (RebirthVariables.musicMode == 1 && !RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 10");
|
||||
|
||||
EntityPlayerLocal primaryPlayer = GameManager.Instance.World.GetPrimaryPlayer();
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update BEFORE musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
musicLeft.Clear();
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update AFTER musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
if (primaryPlayer != null)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 10a");
|
||||
|
||||
if (musicLeft.Count == 0)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 10b");
|
||||
|
||||
for (int i = 1; i <= 23; i++)
|
||||
{
|
||||
ProgressionValue progressionValue = primaryPlayer.Progression.GetProgressionValue("FuriousRamsayAchievementCassette" + i);
|
||||
|
||||
if (progressionValue != null && progressionValue.Level > 0)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 10c, i: " + i);
|
||||
musicLeft.Add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RebirthVariables.songIndex = -1;
|
||||
|
||||
if (musicLeft.Count > 0)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 10d, musicLeft.Count: " + musicLeft.Count);
|
||||
|
||||
int num = UnityEngine.Random.Range(0, musicLeft.Count - 1);
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update num: " + num);
|
||||
|
||||
RebirthVariables.songIndex = musicLeft[num];
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update RebirthVariables.songIndex: " + RebirthVariables.songIndex);
|
||||
|
||||
musicLeft.Remove(RebirthVariables.songIndex);
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update 6a, RebirthVariables.songIndex: " + RebirthVariables.songIndex);
|
||||
|
||||
if (RebirthVariables.audioClip[RebirthVariables.songIndex - 1] != null)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 6b, SONG FOUND");
|
||||
RebirthVariables.audioSource.loop = false;
|
||||
RebirthVariables.secondsToFadeIn = 1f;
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.audioSource.clip = RebirthVariables.audioClip[RebirthVariables.songIndex - 1];
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeIn;
|
||||
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (RebirthVariables.musicMode == 0 && RebirthVariables.audioSource.isPlaying)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 11");
|
||||
RebirthVariables.secondsToFadeOut = 1f;
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeOut;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (RebirthVariables.audioSource.isPlaying && RebirthVariables.musicMode == -1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 12");
|
||||
RebirthVariables.secondsToFadeOut = 10f;
|
||||
RebirthVariables.controlOption = MusicControlOption.FadeOut;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (RebirthVariables.controlOption == MusicControlOption.FadeIn)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 13, RebirthVariables.currentVolume: " + RebirthVariables.currentVolume);
|
||||
//Log.Out("BackgroundMusicPatches-Update 13, musicLeft: " + musicLeft.Count);
|
||||
if (RebirthVariables.currentVolume < 1f)
|
||||
{
|
||||
RebirthVariables.currentVolume += Time.deltaTime / RebirthVariables.secondsToFadeIn;
|
||||
}
|
||||
}
|
||||
else if (RebirthVariables.controlOption == MusicControlOption.FadeOut && RebirthVariables.currentVolume > 0f)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 14");
|
||||
RebirthVariables.currentVolume -= Time.deltaTime / RebirthVariables.secondsToFadeOut;
|
||||
}
|
||||
RebirthVariables.currentVolume = Mathf.Clamp01(RebirthVariables.currentVolume);
|
||||
|
||||
float volume = Mathf.Clamp01(GamePrefs.GetFloat(EnumGamePrefs.OptionsMenuMusicVolumeLevel) * RebirthVariables.currentVolume);
|
||||
|
||||
//if (volume == 0f && RebirthVariables.musicMode == 1)
|
||||
if (RebirthVariables.musicMode == 1)
|
||||
{
|
||||
volume = Mathf.Clamp01(RebirthVariables.musicVolume) * RebirthVariables.currentVolume;
|
||||
}
|
||||
|
||||
//Log.Out("BackgroundMusicPatches-Update volume: " + volume);
|
||||
|
||||
RebirthVariables.audioSource.volume = volume; // Mathf.Clamp01(GamePrefs.GetFloat(EnumGamePrefs.OptionsMenuMusicVolumeLevel) * RebirthVariables.currentVolume);
|
||||
if (RebirthVariables.audioSource.isPlaying && RebirthVariables.audioSource.volume <= 0f && RebirthVariables.musicMode != 1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update STOP");
|
||||
RebirthVariables.audioSource.Stop();
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!RebirthVariables.audioSource.isPlaying && RebirthVariables.audioSource.volume > 0f)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 15, RebirthVariables.musicMode: " + RebirthVariables.musicMode);
|
||||
if (RebirthVariables.musicMode == 1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 15a");
|
||||
if (RebirthVariables.songIndex > -1)
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 15b");
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 15c");
|
||||
RebirthVariables.musicMode = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log.Out("BackgroundMusicPatches-Update 15d");
|
||||
|
||||
if (RebirthVariables.musicMode == 3)
|
||||
{
|
||||
RebirthVariables.musicMode = -1;
|
||||
RebirthVariables.songIndex = -1;
|
||||
musicLeft.Clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
RebirthVariables.audioSource.Play();
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static List<int> musicLeft = new List<int>();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user