1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 02:27:25 +08:00
This commit is contained in:
DrabWeb 2017-03-17 18:21:35 -03:00
commit 27ab8e2e86
3 changed files with 37 additions and 34 deletions

View File

@ -37,16 +37,16 @@ namespace osu.Game.Screens.Select.Leaderboards
scrollFlow.Clear(); scrollFlow.Clear();
i = 0; i = 0;
foreach(var s in scores) foreach (var s in scores)
{ {
var ls = new LeaderboardScore(s, 1 + i++) var ls = new LeaderboardScore(s, 1 + i)
{ {
AlwaysPresent = true, AlwaysPresent = true,
State = Visibility.Hidden, State = Visibility.Hidden,
}; };
scrollFlow.Add(ls); scrollFlow.Add(ls);
ls.Delay((i - 1) * 50, true); ls.Delay(i++ * 50, true);
ls.Show(); ls.Show();
} }
@ -54,23 +54,6 @@ namespace osu.Game.Screens.Select.Leaderboards
} }
} }
protected override void Update()
{
base.Update();
var fadeStart = scrollContainer.DrawHeight - 10;
fadeStart += scrollContainer.IsScrolledToEnd() ? 70 : 0;
foreach (var s in scrollFlow.Children)
{
var topY = scrollContainer.ScrollContent.DrawPosition.Y + s.DrawPosition.Y;
var bottomY = topY + 70;
s.ColourInfo = ColourInfo.GradientVertical(Color4.White.Opacity(System.Math.Min((fadeStart - topY) / 70, 1)),
Color4.White.Opacity(System.Math.Min((fadeStart - bottomY) / 70, 1)));
}
}
public Leaderboard() public Leaderboard()
{ {
Children = new Drawable[] Children = new Drawable[]
@ -92,5 +75,22 @@ namespace osu.Game.Screens.Select.Leaderboards
}, },
}; };
} }
protected override void Update()
{
base.Update();
var fadeStart = scrollContainer.DrawHeight - 10;
fadeStart += scrollContainer.IsScrolledToEnd() ? 70 : 0;
foreach (var s in scrollFlow.Children)
{
var topY = scrollContainer.ScrollContent.DrawPosition.Y + s.DrawPosition.Y;
var bottomY = topY + 70;
s.ColourInfo = ColourInfo.GradientVertical(Color4.White.Opacity(System.Math.Min((fadeStart - topY) / 70, 1)),
Color4.White.Opacity(System.Math.Min((fadeStart - bottomY) / 70, 1)));
}
}
} }
} }

View File

@ -42,7 +42,7 @@ namespace osu.Game.Screens.Select.Leaderboards
private Container flagBadgeContainer; private Container flagBadgeContainer;
private FillFlowContainer<ScoreModIcon> modsContainer; private FillFlowContainer<ScoreModIcon> modsContainer;
public readonly int Index; public readonly int Rank;
public readonly Score Score; public readonly Score Score;
private Visibility state; private Visibility state;
@ -112,10 +112,10 @@ namespace osu.Game.Screens.Select.Leaderboards
base.OnHoverLost(state); base.OnHoverLost(state);
} }
public LeaderboardScore(Score score, int i) public LeaderboardScore(Score score, int rank)
{ {
Score = score; Score = score;
Index = i; Rank = rank;
RelativeSizeAxes = Axes.X; RelativeSizeAxes = Axes.X;
Height = height; Height = height;
@ -124,6 +124,8 @@ namespace osu.Game.Screens.Select.Leaderboards
flag.Width = 30; flag.Width = 30;
flag.RelativeSizeAxes = Axes.Y; flag.RelativeSizeAxes = Axes.Y;
const float rank_width = 30;
Children = new Drawable[] Children = new Drawable[]
{ {
new Container new Container
@ -138,7 +140,7 @@ namespace osu.Game.Screens.Select.Leaderboards
Origin = Anchor.CentreLeft, Origin = Anchor.CentreLeft,
Font = @"Exo2.0-MediumItalic", Font = @"Exo2.0-MediumItalic",
TextSize = 22, TextSize = 22,
Text = Index.ToString(), Text = Rank.ToString(),
}, },
}, },
}, },

View File

@ -58,20 +58,21 @@ namespace osu.Game.Screens.Select
{ {
beatmap?.Mods.BindTo(modSelect.SelectedMods); beatmap?.Mods.BindTo(modSelect.SelectedMods);
updateLeaderboard(beatmap);
base.OnBeatmapChanged(beatmap);
}
private void updateLeaderboard(WorkingBeatmap beatmap)
{
leaderboard.Scores = null; leaderboard.Scores = null;
getScoresRequest?.Cancel(); getScoresRequest?.Cancel();
if (beatmap != null) if (beatmap?.BeatmapInfo == null) return;
{
getScoresRequest = new GetScoresRequest(beatmap.BeatmapInfo);
getScoresRequest.Success += res =>
{
leaderboard.Scores = res.Scores;
};
Game.API.Queue(getScoresRequest);
}
base.OnBeatmapChanged(beatmap); getScoresRequest = new GetScoresRequest(beatmap.BeatmapInfo);
getScoresRequest.Success += r => leaderboard.Scores = r.Scores;
Game.API.Queue(getScoresRequest);
} }
protected override void OnResuming(Screen last) protected override void OnResuming(Screen last)