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.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
using BepInEx;
|
using BepInEx;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -29,6 +31,24 @@ namespace MuzikaGromche
|
||||||
Name = "DeployDestroy",
|
Name = "DeployDestroy",
|
||||||
WindUpTimer = 40.7f,
|
WindUpTimer = 40.7f,
|
||||||
Bpm = 130f,
|
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
|
// if just started winding up
|
||||||
// then stop the default music...
|
// then stop the default music...
|
||||||
__instance.farAudio.Stop();
|
__instance.farAudio.Stop();
|
||||||
__instance.farAudio.Pause();
|
__instance.creatureVoice.Stop();
|
||||||
}
|
|
||||||
|
|
||||||
if (__instance.currentBehaviourStateIndex is 1 && !__instance.farAudio.isPlaying)
|
|
||||||
{
|
|
||||||
// ...and start modded music
|
// ...and start modded music
|
||||||
var seed = RoundManager.Instance.dungeonGenerator.Generator.ChosenSeed;
|
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");
|
Debug.Log($"Seed is {seed}, chosen track is {trackId} out of {Plugin.Tracks.Length} tracks");
|
||||||
Plugin.CurrentTrack = Plugin.Tracks[trackId];
|
Plugin.CurrentTrack = Plugin.Tracks[trackId];
|
||||||
__instance.popUpTimer = Plugin.CurrentTrack.WindUpTimer;
|
__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.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)
|
if (__instance.currentBehaviourStateIndex is 2 && __state.prevStateindex != 2)
|
||||||
|
@ -146,8 +175,6 @@ namespace MuzikaGromche
|
||||||
__instance.StopCoroutine(Plugin.JesterLightSwitching);
|
__instance.StopCoroutine(Plugin.JesterLightSwitching);
|
||||||
Plugin.JesterLightSwitching = null;
|
Plugin.JesterLightSwitching = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Plugin.JesterLightSwitching = __instance.StartCoroutine(rotateColors());
|
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.maxDistance = 150;
|
||||||
__instance.creatureVoice.clip = Plugin.CurrentTrack.LoadedLoop;
|
__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