mirror of
https://github.com/osukey/osukey.git
synced 2025-05-09 15:47:38 +09:00
parent
166d6b555b
commit
26bb3715fe
@ -29,7 +29,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
{
|
{
|
||||||
public class Leaderboard : Container
|
public class Leaderboard : Container
|
||||||
{
|
{
|
||||||
private const double fade_duration = 200;
|
private const double fade_duration = 300;
|
||||||
|
|
||||||
private readonly ScrollContainer scrollContainer;
|
private readonly ScrollContainer scrollContainer;
|
||||||
private readonly Container placeholderContainer;
|
private readonly Container placeholderContainer;
|
||||||
@ -51,7 +51,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
{
|
{
|
||||||
scores = value;
|
scores = value;
|
||||||
|
|
||||||
scrollFlow?.FadeOut(fade_duration).Expire();
|
scrollFlow?.FadeOut(fade_duration, Easing.OutQuint).Expire();
|
||||||
scrollFlow = null;
|
scrollFlow = null;
|
||||||
|
|
||||||
loading.Hide();
|
loading.Hide();
|
||||||
@ -90,6 +90,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
}
|
}
|
||||||
|
|
||||||
private LeaderboardScope scope;
|
private LeaderboardScope scope;
|
||||||
|
|
||||||
public LeaderboardScope Scope
|
public LeaderboardScope Scope
|
||||||
{
|
{
|
||||||
get { return scope; }
|
get { return scope; }
|
||||||
@ -103,6 +104,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
}
|
}
|
||||||
|
|
||||||
private PlaceholderState placeholderState;
|
private PlaceholderState placeholderState;
|
||||||
|
|
||||||
protected PlaceholderState PlaceholderState
|
protected PlaceholderState PlaceholderState
|
||||||
{
|
{
|
||||||
get { return placeholderState; }
|
get { return placeholderState; }
|
||||||
@ -118,19 +120,18 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
OnRetry = updateScores,
|
OnRetry = updateScores,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case PlaceholderState.Unavailable:
|
||||||
|
replacePlaceholder(new MessagePlaceholder(@"Leaderboards are not available for this beatmap!"));
|
||||||
|
break;
|
||||||
case PlaceholderState.NoScores:
|
case PlaceholderState.NoScores:
|
||||||
replacePlaceholder(new MessagePlaceholder(@"No records yet!"));
|
replacePlaceholder(new MessagePlaceholder(@"No records yet!"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PlaceholderState.NotLoggedIn:
|
case PlaceholderState.NotLoggedIn:
|
||||||
replacePlaceholder(new MessagePlaceholder(@"Please login to view online leaderboards!"));
|
replacePlaceholder(new MessagePlaceholder(@"Please login to view online leaderboards!"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PlaceholderState.NotSupporter:
|
case PlaceholderState.NotSupporter:
|
||||||
replacePlaceholder(new MessagePlaceholder(@"Please invest in a supporter tag to view this leaderboard!"));
|
replacePlaceholder(new MessagePlaceholder(@"Please invest in a supporter tag to view this leaderboard!"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
replacePlaceholder(null);
|
replacePlaceholder(null);
|
||||||
break;
|
break;
|
||||||
@ -150,10 +151,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
loading = new LoadingAnimation(),
|
loading = new LoadingAnimation(),
|
||||||
placeholderContainer = new Container
|
placeholderContainer = new Container
|
||||||
{
|
{
|
||||||
Alpha = 0,
|
RelativeSizeAxes = Axes.Both
|
||||||
AutoSizeAxes = Axes.Both,
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -229,15 +227,15 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (api?.IsLoggedIn != true)
|
if (Beatmap?.OnlineBeatmapID == null)
|
||||||
{
|
{
|
||||||
PlaceholderState = PlaceholderState.NotLoggedIn;
|
PlaceholderState = PlaceholderState.Unavailable;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Beatmap?.OnlineBeatmapID == null)
|
if (api?.IsLoggedIn != true)
|
||||||
{
|
{
|
||||||
PlaceholderState = PlaceholderState.NetworkFailure;
|
PlaceholderState = PlaceholderState.NotLoggedIn;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,23 +270,22 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
|
|
||||||
private void replacePlaceholder(Placeholder placeholder)
|
private void replacePlaceholder(Placeholder placeholder)
|
||||||
{
|
{
|
||||||
if (placeholder == null)
|
var existingPlaceholder = placeholderContainer.Children.LastOrDefault() as Placeholder;
|
||||||
{
|
|
||||||
placeholderContainer.FadeOutFromOne(fade_duration, Easing.OutQuint);
|
if (placeholder != null && placeholder.Equals(existingPlaceholder))
|
||||||
placeholderContainer.Clear(true);
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
var existingPlaceholder = placeholderContainer.Children.FirstOrDefault() as Placeholder;
|
existingPlaceholder?.FadeOut(150, Easing.OutQuint).Expire();
|
||||||
|
|
||||||
if (placeholder.Equals(existingPlaceholder))
|
if (placeholder == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Scores = null;
|
Scores = null;
|
||||||
|
|
||||||
placeholderContainer.Clear(true);
|
placeholderContainer.Add(placeholder);
|
||||||
placeholderContainer.Child = placeholder;
|
|
||||||
placeholderContainer.FadeInFromZero(fade_duration, Easing.OutQuint);
|
placeholder.ScaleTo(0.8f).Then().ScaleTo(1, fade_duration * 3, Easing.OutQuint);
|
||||||
|
placeholder.FadeInFromZero(fade_duration, Easing.OutQuint);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
@ -322,6 +319,12 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
|
|
||||||
private abstract class Placeholder : FillFlowContainer, IEquatable<Placeholder>
|
private abstract class Placeholder : FillFlowContainer, IEquatable<Placeholder>
|
||||||
{
|
{
|
||||||
|
protected Placeholder()
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre;
|
||||||
|
Origin = Anchor.Centre;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual bool Equals(Placeholder other) => GetType() == other?.GetType();
|
public virtual bool Equals(Placeholder other) => GetType() == other?.GetType();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,6 +432,7 @@ namespace osu.Game.Screens.Select.Leaderboards
|
|||||||
Successful,
|
Successful,
|
||||||
Retrieving,
|
Retrieving,
|
||||||
NetworkFailure,
|
NetworkFailure,
|
||||||
|
Unavailable,
|
||||||
NoScores,
|
NoScores,
|
||||||
NotLoggedIn,
|
NotLoggedIn,
|
||||||
NotSupporter,
|
NotSupporter,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user