1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-19 21:52:54 +08:00

Doesn't allow randomizer to select invisible maps

This commit is contained in:
Endrik Tombak 2017-12-31 03:10:54 +02:00
parent 398d90ee52
commit d032790e19

View File

@ -231,8 +231,8 @@ namespace osu.Game.Screens.Select
public void SelectNextRandom()
{
var visible = beatmapSets.Where(s => !s.Filtered).ToList();
if (!visible.Any())
var visibleSets = beatmapSets.Where(s => !s.Filtered).ToList();
if (!visibleSets.Any())
return;
if (selectedBeatmap != null)
@ -249,20 +249,21 @@ namespace osu.Game.Screens.Select
if (RandomAlgorithm == RandomSelectAlgorithm.RandomPermutation)
{
var notYetVisitedSets = visible.Except(previouslyVisitedRandomSets).ToList();
var notYetVisitedSets = visibleSets.Except(previouslyVisitedRandomSets).ToList();
if (!notYetVisitedSets.Any())
{
previouslyVisitedRandomSets.Clear();
notYetVisitedSets = visible;
notYetVisitedSets = visibleSets;
}
set = notYetVisitedSets.ElementAt(RNG.Next(notYetVisitedSets.Count));
previouslyVisitedRandomSets.Add(set);
}
else
set = visible.ElementAt(RNG.Next(visible.Count));
set = visibleSets.ElementAt(RNG.Next(visibleSets.Count));
select(set.Beatmaps.Skip(RNG.Next(set.Beatmaps.Count())).FirstOrDefault());
var visibleBeatmaps = set.Beatmaps.Where(s => !s.Filtered).ToList();
select(visibleBeatmaps.Skip(RNG.Next(visibleBeatmaps.Count())).FirstOrDefault());
}
public void SelectPreviousRandom()