Sync playback to the actual beat count rather than relying on BPM #5

Open
ratijas wants to merge 43 commits from ratijas/muzika-gromche:work/r/beats into master
1 changed files with 2 additions and 9 deletions
Showing only changes of commit 0d4f180a37 - Show all commits

View File

@ -68,21 +68,12 @@ namespace MuzikaGromche
}
];
public static int IndexOfTrack(string trackName)
{
return Array.FindIndex(Tracks, track => track.Name == trackName);
}
public static Track ChooseTrack()
{
var seed = RoundManager.Instance.dungeonGenerator.Generator.ChosenSeed;
int[] weights = [.. Tracks.Select(track => track.Weight.Value)];
var rwi = new RandomWeightedIndex(weights);
var trackId = rwi.GetRandomWeightedIndex(seed);
#if DEBUG
// Override for testing
// trackId = IndexOfTrack("DeployDestroy");
#endif
var track = Tracks[trackId];
Debug.Log($"Seed is {seed}, chosen track is \"{track.Name}\", #{trackId} of {rwi}");
return Tracks[trackId];
@ -412,10 +403,12 @@ namespace MuzikaGromche
{
return CanModifyResult.False("Only for host");
}
#if !DEBUG // Changing tracks on the fly might lead to a desync. But it may speed up development process
if (!startOfRound.inShipPhase)
{
return CanModifyResult.False("Only while orbiting");
}
#endif
return CanModifyResult.True();
}