diff --git a/osu.Game/Overlays/NotificationOverlayToastTray.cs b/osu.Game/Overlays/NotificationOverlayToastTray.cs
index d2899f29b8..df07b4f138 100644
--- a/osu.Game/Overlays/NotificationOverlayToastTray.cs
+++ b/osu.Game/Overlays/NotificationOverlayToastTray.cs
@@ -153,8 +153,22 @@ namespace osu.Game.Overlays
{
base.Update();
- float height = toastFlow.Count > 0 ? toastFlow.DrawHeight + 120 : 0;
- float alpha = toastFlow.Count > 0 ? MathHelper.Clamp(toastFlow.DrawHeight / 41, 0, 1) * toastFlow.Children.Max(n => n.Alpha) : 0;
+ float height = 0;
+ float alpha = 0;
+
+ if (toastFlow.Count > 0)
+ {
+ float maxNotificationAlpha = 0;
+
+ foreach (var t in toastFlow)
+ {
+ if (t.Alpha > maxNotificationAlpha)
+ maxNotificationAlpha = t.Alpha;
+ }
+
+ height = toastFlow.DrawHeight + 120;
+ alpha = MathHelper.Clamp(toastFlow.DrawHeight / 41, 0, 1) * maxNotificationAlpha;
+ }
toastContentBackground.Height = (float)Interpolation.DampContinuously(toastContentBackground.Height, height, 10, Clock.ElapsedFrameTime);
toastContentBackground.Alpha = (float)Interpolation.DampContinuously(toastContentBackground.Alpha, alpha, 10, Clock.ElapsedFrameTime);
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs
index 87cea45e87..a6a6a2f585 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -857,8 +857,9 @@ namespace osu.Game.Screens.Select
// Add those items within the previously found index range that should be displayed.
foreach (var item in toDisplay)
{
- var panel = setPool.Get(p => p.Item = item);
+ var panel = setPool.Get();
+ panel.Item = item;
panel.Y = item.CarouselYPosition;
Scroll.Add(panel);
@@ -900,8 +901,8 @@ namespace osu.Game.Screens.Select
if (item is DrawableCarouselBeatmapSet set)
{
- foreach (var diff in set.DrawableBeatmaps)
- updateItem(diff, item);
+ for (int i = 0; i < set.DrawableBeatmaps.Count; i++)
+ updateItem(set.DrawableBeatmaps[i], item);
}
}
}
@@ -1101,7 +1102,7 @@ namespace osu.Game.Screens.Select
}
///
- /// Update a item's x position and multiplicative alpha based on its y position and
+ /// Update an item's x position and multiplicative alpha based on its y position and
/// the current scroll position.
///
/// The item to be updated.
diff --git a/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmapSet.cs b/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmapSet.cs
index 1cd8b065fc..eba40994e2 100644
--- a/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmapSet.cs
+++ b/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmapSet.cs
@@ -51,7 +51,7 @@ namespace osu.Game.Screens.Select.Carousel
[Resolved]
private IBindable ruleset { get; set; } = null!;
- public IEnumerable DrawableBeatmaps => beatmapContainer?.IsLoaded != true ? Enumerable.Empty() : beatmapContainer.AliveChildren;
+ public IReadOnlyList DrawableBeatmaps => beatmapContainer?.IsLoaded != true ? Array.Empty() : beatmapContainer;
private Container? beatmapContainer;