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:
parent
398d90ee52
commit
d032790e19
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user