Compare commits
4 Commits
89a41f9640
...
8518e0f62d
Author | SHA1 | Date |
---|---|---|
Nikita Vilunov | 8518e0f62d | |
Nikita Vilunov | 4558a4d942 | |
Nikita Vilunov | 5d55467b9c | |
Nikita Vilunov | f274513bb5 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,8 @@
|
|||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using BepInEx;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
@ -21,7 +23,7 @@ namespace MuzikaGromche
|
|||
new Track
|
||||
{
|
||||
Name = "VseVZale",
|
||||
WindUpTimer = 39f,
|
||||
WindUpTimer = 39f,
|
||||
Bpm = 138f,
|
||||
},
|
||||
new Track
|
||||
|
@ -29,6 +31,24 @@ namespace MuzikaGromche
|
|||
Name = "DeployDestroy",
|
||||
WindUpTimer = 40.7f,
|
||||
Bpm = 130f,
|
||||
},
|
||||
new Track
|
||||
{
|
||||
Name = "MoyaZhittya",
|
||||
WindUpTimer = 34.5f,
|
||||
Bpm = 120f,
|
||||
},
|
||||
new Track
|
||||
{
|
||||
Name = "Gorgorod",
|
||||
WindUpTimer = 43.2f,
|
||||
Bpm = 180f,
|
||||
},
|
||||
new Track
|
||||
{
|
||||
Name = "Durochka",
|
||||
WindUpTimer = 37f,
|
||||
Bpm = 130f,
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -122,20 +142,29 @@ namespace MuzikaGromche
|
|||
// if just started winding up
|
||||
// then stop the default music...
|
||||
__instance.farAudio.Stop();
|
||||
__instance.farAudio.Pause();
|
||||
}
|
||||
|
||||
if (__instance.currentBehaviourStateIndex is 1 && !__instance.farAudio.isPlaying)
|
||||
{
|
||||
__instance.creatureVoice.Stop();
|
||||
|
||||
// ...and start modded music
|
||||
var seed = RoundManager.Instance.dungeonGenerator.Generator.ChosenSeed;
|
||||
var trackId = seed % Plugin.Tracks.Length;
|
||||
var sha = SHA256.Create();
|
||||
var hash = sha.ComputeHash(BitConverter.GetBytes(seed));
|
||||
var trackId = 0;
|
||||
foreach (var t in hash)
|
||||
{
|
||||
// modulus division on byte array
|
||||
trackId *= 256 % Plugin.Tracks.Length;
|
||||
trackId %= Plugin.Tracks.Length;
|
||||
trackId += t % Plugin.Tracks.Length;
|
||||
trackId %= Plugin.Tracks.Length;
|
||||
}
|
||||
Debug.Log($"Seed is {seed}, chosen track is {trackId} out of {Plugin.Tracks.Length} tracks");
|
||||
Plugin.CurrentTrack = Plugin.Tracks[trackId];
|
||||
__instance.popUpTimer = Plugin.CurrentTrack.WindUpTimer;
|
||||
Debug.Log($"Playing start music: maxDistance: {__instance.farAudio.maxDistance}, minDistance: {__instance.farAudio.minDistance}, volume: {__instance.farAudio.volume}, spread: {__instance.farAudio.spread}");
|
||||
__instance.farAudio.maxDistance = 150;
|
||||
__instance.farAudio.PlayOneShot(Plugin.CurrentTrack.LoadedStart);
|
||||
__instance.farAudio.clip = Plugin.CurrentTrack.LoadedStart;
|
||||
__instance.farAudio.loop = false;
|
||||
Debug.Log($"Playing start music: maxDistance: {__instance.farAudio.maxDistance}, minDistance: {__instance.farAudio.minDistance}, volume: {__instance.farAudio.volume}, spread: {__instance.farAudio.spread}");
|
||||
__instance.farAudio.Play();
|
||||
}
|
||||
|
||||
if (__instance.currentBehaviourStateIndex is 2 && __state.prevStateindex != 2)
|
||||
|
@ -146,8 +175,6 @@ namespace MuzikaGromche
|
|||
__instance.StopCoroutine(Plugin.JesterLightSwitching);
|
||||
Plugin.JesterLightSwitching = null;
|
||||
}
|
||||
|
||||
|
||||
Plugin.JesterLightSwitching = __instance.StartCoroutine(rotateColors());
|
||||
}
|
||||
|
||||
|
@ -163,12 +190,15 @@ namespace MuzikaGromche
|
|||
}
|
||||
}
|
||||
|
||||
if (__instance.currentBehaviourStateIndex is 2 && !__instance.creatureVoice.isPlaying && !__instance.farAudio.isPlaying)
|
||||
if (__instance.currentBehaviourStateIndex is 2 && !__instance.creatureVoice.isPlaying)
|
||||
{
|
||||
Debug.Log($"Playing loop music: maxDistance: {__instance.creatureVoice.maxDistance}, minDistance: {__instance.creatureVoice.minDistance}, volume: {__instance.creatureVoice.volume}, spread: {__instance.creatureVoice.spread}");
|
||||
__instance.creatureVoice.maxDistance = 150;
|
||||
__instance.creatureVoice.clip = Plugin.CurrentTrack.LoadedLoop;
|
||||
__instance.creatureVoice.Play();
|
||||
var time = __instance.farAudio.time;
|
||||
var delay = Plugin.CurrentTrack.LoadedStart.length - time;
|
||||
Debug.Log($"Start length: {Plugin.CurrentTrack.LoadedStart.length}; played time: {time}");
|
||||
Debug.Log($"Playing loop music: maxDistance: {__instance.creatureVoice.maxDistance}, minDistance: {__instance.creatureVoice.minDistance}, volume: {__instance.creatureVoice.volume}, spread: {__instance.creatureVoice.spread}, in seconds: {delay}");
|
||||
__instance.creatureVoice.PlayDelayed(delay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue