Fill statistic area.

This commit is contained in:
Huo Yaoyuan 2017-06-16 01:04:20 +08:00
parent 9a77332063
commit a7e3157363

View File

@ -20,11 +20,10 @@ namespace osu.Game.Users.Profile
{ {
public class ProfileHeader : Container public class ProfileHeader : Container
{ {
//private readonly User user;
private readonly OsuTextFlowContainer infoText; private readonly OsuTextFlowContainer infoText;
private readonly FillFlowContainer<SpriteText> scoreText, scoreNumberText; private readonly FillFlowContainer<SpriteText> scoreText, scoreNumberText;
private readonly Container coverContainer;
private readonly Sprite levelBadge; private readonly Sprite levelBadge;
private readonly SpriteText levelText; private readonly SpriteText levelText;
private readonly GradeBadge gradeSSPlus, gradeSS, gradeSPlus, gradeS, gradeA; private readonly GradeBadge gradeSSPlus, gradeSS, gradeSPlus, gradeS, gradeA;
@ -32,29 +31,17 @@ namespace osu.Game.Users.Profile
private const float cover_height = 350, info_height = 150, avatar_size = 110, avatar_bottom_position = -20, level_position = 30, level_height = 60; private const float cover_height = 350, info_height = 150, avatar_size = 110, avatar_bottom_position = -20, level_position = 30, level_height = 60;
public ProfileHeader(User user) public ProfileHeader(User user)
{ {
//this.user = user;
RelativeSizeAxes = Axes.X; RelativeSizeAxes = Axes.X;
Height = cover_height + info_height; Height = cover_height + info_height;
Children = new Drawable[] Children = new Drawable[]
{ {
new Container coverContainer = new Container
{ {
RelativeSizeAxes = Axes.X, RelativeSizeAxes = Axes.X,
Height = cover_height, Height = cover_height,
Children = new Drawable[] Children = new Drawable[]
{ {
new AsyncLoadWrapper(new UserCoverBackground(user)
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
FillMode = FillMode.Fill,
OnLoadComplete = d => d.FadeInFromZero(200)
})
{
Masking = true,
RelativeSizeAxes = Axes.Both
},
new Box new Box
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
@ -143,7 +130,8 @@ namespace osu.Game.Users.Profile
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre, Origin = Anchor.Centre,
Height = 50, Height = 50,
Width = 50 Width = 50,
Alpha = 0
}, },
levelText = new OsuSpriteText levelText = new OsuSpriteText
{ {
@ -194,8 +182,8 @@ namespace osu.Game.Users.Profile
Spacing = new Vector2(20, 0), Spacing = new Vector2(20, 0),
Children = new[] Children = new[]
{ {
gradeSSPlus = new GradeBadge("SSPlus"), gradeSSPlus = new GradeBadge("SSPlus") { Alpha = 0 },
gradeSS = new GradeBadge("SS"), gradeSS = new GradeBadge("SS") { Alpha = 0 },
} }
}, },
new FillFlowContainer<GradeBadge> new FillFlowContainer<GradeBadge>
@ -208,9 +196,9 @@ namespace osu.Game.Users.Profile
Spacing = new Vector2(20, 0), Spacing = new Vector2(20, 0),
Children = new[] Children = new[]
{ {
gradeSPlus = new GradeBadge("SPlus"), gradeSPlus = new GradeBadge("SPlus") { Alpha = 0 },
gradeS = new GradeBadge("S"), gradeS = new GradeBadge("S") { Alpha = 0 },
gradeA = new GradeBadge("A"), gradeA = new GradeBadge("A") { Alpha = 0 },
} }
} }
} }
@ -270,34 +258,47 @@ namespace osu.Game.Users.Profile
infoText.NewParagraph(); infoText.NewParagraph();
infoText.AddText("Play with "); infoText.AddText("Play with ");
infoText.AddText("Mouse, Keyboard, Tablet", bold); infoText.AddText("Mouse, Keyboard, Tablet", bold);
levelText.Text = "98";
scoreText.Add(createScoreText("Ranked Score"));
scoreNumberText.Add(createScoreNumberText("1,870,716,897"));
scoreText.Add(createScoreText("Accuracy"));
scoreNumberText.Add(createScoreNumberText("98.51%"));
scoreText.Add(createScoreText("Play Count"));
scoreNumberText.Add(createScoreNumberText("25,287"));
scoreText.Add(createScoreText("Total Score"));
scoreNumberText.Add(createScoreNumberText("28,444,797,570"));
scoreText.Add(createScoreText("Total Hits"));
scoreNumberText.Add(createScoreNumberText("4,612,765"));
scoreText.Add(createScoreText("Max Combo"));
scoreNumberText.Add(createScoreNumberText("2,056"));
scoreText.Add(createScoreText("Replay Watched"));
scoreNumberText.Add(createScoreNumberText("23"));
gradeSSPlus.Count = 12;
gradeSS.Count = 34;
gradeSPlus.Count = 567;
gradeS.Count = 890;
gradeA.Count = 1234;
} }
public void FillFullData(User user) public void FillFullData(User user)
{ {
coverContainer.Add(new AsyncLoadWrapper(new UserCoverBackground(user)
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
FillMode = FillMode.Fill,
OnLoadComplete = d => d.FadeInFromZero(200)
})
{
Masking = true,
RelativeSizeAxes = Axes.Both,
Depth = float.MaxValue
});
levelBadge.Show();
levelText.Text = user.Statistics.Level.Current.ToString();
scoreText.Add(createScoreText("Ranked Score"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.RankedScore.ToString(@"#,0")));
scoreText.Add(createScoreText("Accuracy"));
scoreNumberText.Add(createScoreNumberText($"{user.Statistics.Accuracy}%"));
scoreText.Add(createScoreText("Play Count"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.PlayCount.ToString(@"#,0")));
scoreText.Add(createScoreText("Total Score"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.TotalScore.ToString(@"#,0")));
scoreText.Add(createScoreText("Total Hits"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.TotalHits.ToString(@"#,0")));
scoreText.Add(createScoreText("Max Combo"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.MaxCombo.ToString(@"#,0")));
scoreText.Add(createScoreText("Replay Watched by Others"));
scoreNumberText.Add(createScoreNumberText(user.Statistics.ReplayWatched.ToString(@"#,0")));
gradeSS.Count = user.Statistics.GradesCount.SS;
gradeSS.Show();
gradeS.Count = user.Statistics.GradesCount.S;
gradeS.Show();
gradeA.Count = user.Statistics.GradesCount.A;
gradeA.Show();
} }
private OsuSpriteText createScoreText(string text) => new OsuSpriteText private OsuSpriteText createScoreText(string text) => new OsuSpriteText
@ -326,7 +327,7 @@ namespace osu.Game.Users.Profile
{ {
set set
{ {
numberText.Text = value.ToString(@"#,#"); numberText.Text = value.ToString(@"#,0");
} }
} }