Compare commits

..

4 Commits

9 changed files with 69 additions and 15 deletions

BIN
Assets/DeployDestroyLoop.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/DeployDestroyStart.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/DurochkaLoop.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/DurochkaStart.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/GorgorodLoop.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/GorgorodStart.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/MoyaZhittyaLoop.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Assets/MoyaZhittyaStart.mp3 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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);
}
}
}