public DrawableProfileScore(APIScoreInfo score) { Score = score; RelativeSizeAxes = Axes.X; Height = height; }
public TestCaseBeatmapScoresContainer() { Container container; ScoresContainer scoresContainer; Child = container = new Container { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, Width = 0.8f, Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both }, scoresContainer = new ScoresContainer(), } }; IEnumerable <APIScoreInfo> scores = new[] { new APIScoreInfo { User = new User { Id = 6602580, Username = @"waaiiru", Country = new Country { FullName = @"Spain", FlagName = @"ES", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), new OsuModFlashlight(), new OsuModHardRock(), }, Rank = ScoreRank.XH, TotalScore = 1234567890, Accuracy = 1, }, new APIScoreInfo { User = new User { Id = 4608074, Username = @"Skycries", Country = new Country { FullName = @"Brazil", FlagName = @"BR", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), new OsuModFlashlight(), }, Rank = ScoreRank.S, TotalScore = 1234789, Accuracy = 0.9997, }, new APIScoreInfo { User = new User { Id = 1014222, Username = @"eLy", Country = new Country { FullName = @"Japan", FlagName = @"JP", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), }, Rank = ScoreRank.B, TotalScore = 12345678, Accuracy = 0.9854, }, new APIScoreInfo { User = new User { Id = 1541390, Username = @"Toukai", Country = new Country { FullName = @"Canada", FlagName = @"CA", }, }, Mods = new Mod[] { new OsuModDoubleTime(), }, Rank = ScoreRank.C, TotalScore = 1234567, Accuracy = 0.8765, }, new APIScoreInfo { User = new User { Id = 7151382, Username = @"Mayuri Hana", Country = new Country { FullName = @"Thailand", FlagName = @"TH", }, }, Rank = ScoreRank.F, TotalScore = 123456, Accuracy = 0.6543, }, }; foreach (var s in scores) { s.Statistics.Add(HitResult.Great, RNG.Next(2000)); s.Statistics.Add(HitResult.Good, RNG.Next(2000)); s.Statistics.Add(HitResult.Meh, RNG.Next(2000)); } IEnumerable <APIScoreInfo> anotherScores = new[] { new APIScoreInfo { User = new User { Id = 4608074, Username = @"Skycries", Country = new Country { FullName = @"Brazil", FlagName = @"BR", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), new OsuModFlashlight(), }, Rank = ScoreRank.S, TotalScore = 1234789, Accuracy = 0.9997, }, new APIScoreInfo { User = new User { Id = 6602580, Username = @"waaiiru", Country = new Country { FullName = @"Spain", FlagName = @"ES", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), new OsuModFlashlight(), new OsuModHardRock(), }, Rank = ScoreRank.XH, TotalScore = 1234567890, Accuracy = 1, }, new APIScoreInfo { User = new User { Id = 7151382, Username = @"Mayuri Hana", Country = new Country { FullName = @"Thailand", FlagName = @"TH", }, }, Rank = ScoreRank.F, TotalScore = 123456, Accuracy = 0.6543, }, new APIScoreInfo { User = new User { Id = 1014222, Username = @"eLy", Country = new Country { FullName = @"Japan", FlagName = @"JP", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModHidden(), }, Rank = ScoreRank.B, TotalScore = 12345678, Accuracy = 0.9854, }, new APIScoreInfo { User = new User { Id = 1541390, Username = @"Toukai", Country = new Country { FullName = @"Canada", FlagName = @"CA", }, }, Mods = new Mod[] { new OsuModDoubleTime(), }, Rank = ScoreRank.C, TotalScore = 1234567, Accuracy = 0.8765, }, }; foreach (var s in anotherScores) { s.Statistics.Add(HitResult.Great, RNG.Next(2000)); s.Statistics.Add(HitResult.Good, RNG.Next(2000)); s.Statistics.Add(HitResult.Meh, RNG.Next(2000)); } var topScoreInfo = new APIScoreInfo { User = new User { Id = 2705430, Username = @"Mooha", Country = new Country { FullName = @"France", FlagName = @"FR", }, }, Mods = new Mod[] { new OsuModDoubleTime(), new OsuModFlashlight(), new OsuModHardRock(), }, Rank = ScoreRank.B, TotalScore = 987654321, Accuracy = 0.8487, }; topScoreInfo.Statistics.Add(HitResult.Great, RNG.Next(2000)); topScoreInfo.Statistics.Add(HitResult.Good, RNG.Next(2000)); topScoreInfo.Statistics.Add(HitResult.Meh, RNG.Next(2000)); AddStep("scores pack 1", () => scoresContainer.Scores = scores); AddStep("scores pack 2", () => scoresContainer.Scores = anotherScores); AddStep("only top score", () => scoresContainer.Scores = new[] { topScoreInfo }); AddStep("remove scores", () => scoresContainer.Scores = null); AddStep("resize to big", () => container.ResizeWidthTo(1, 300)); AddStep("resize to normal", () => container.ResizeWidthTo(0.8f, 300)); AddStep("online scores", () => scoresContainer.Beatmap = new BeatmapInfo { OnlineBeatmapID = 75, Ruleset = new OsuRuleset().RulesetInfo }); }
public DrawableScore(int index, APIScoreInfo score) { ScoreModsContainer modsContainer; RelativeSizeAxes = Axes.X; Height = 30; CornerRadius = 3; Masking = true; Children = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both, Alpha = 0, }, new OsuSpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Text = $"#{index + 1}", Font = @"Exo2.0-RegularItalic", Margin = new MarginPadding { Left = side_margin } }, new DrawableFlag(score.User.Country) { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Size = new Vector2(30, 20), Margin = new MarginPadding { Left = 60 } }, new ClickableUsername { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, User = score.User, Margin = new MarginPadding { Left = 100 } }, modsContainer = new ScoreModsContainer { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, Width = 0.06f, RelativePositionAxes = Axes.X, X = 0.42f }, new DrawableRank(score.Rank) { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Size = new Vector2(30, 20), FillMode = FillMode.Fit, RelativePositionAxes = Axes.X, X = 0.55f }, new OsuSpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreRight, Text = $@"{score.TotalScore:N0}", Font = @"Venera", RelativePositionAxes = Axes.X, X = 0.75f, FixedWidth = true, }, new OsuSpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreRight, Text = $@"{score.Accuracy:P2}", Font = @"Exo2.0-RegularItalic", RelativePositionAxes = Axes.X, X = 0.85f }, new OsuSpriteText { Anchor = Anchor.CentreRight, Origin = Anchor.CentreRight, Text = $"{score.Statistics[HitResult.Great]}/{score.Statistics[HitResult.Good]}/{score.Statistics[HitResult.Meh]}", Font = @"Exo2.0-RegularItalic", Margin = new MarginPadding { Right = side_margin } }, }; foreach (Mod mod in score.Mods) { modsContainer.Add(new ModIcon(mod) { AutoSizeAxes = Axes.Both, Scale = new Vector2(0.35f), }); } }
public DrawableProfileWeightedScore(APIScoreInfo score, double weight) : base(score) { this.weight = weight; }
public TestSceneUserProfileScores() { var firstScore = new APIScoreInfo { PP = 1047.21, Rank = ScoreRank.SH, Beatmap = new APIBeatmap { BeatmapSet = new APIBeatmapSet { Title = "JUSTadICE (TV Size)", Artist = "Oomori Seiko", }, DifficultyName = "Extreme" }, Date = DateTimeOffset.Now, Mods = new[] { new APIMod { Acronym = new OsuModHidden().Acronym }, new APIMod { Acronym = new OsuModHardRock().Acronym }, new APIMod { Acronym = new OsuModDoubleTime().Acronym }, }, Accuracy = 0.9813 }; var secondScore = new APIScoreInfo { PP = 134.32, Rank = ScoreRank.A, Beatmap = new APIBeatmap { BeatmapSet = new APIBeatmapSet { Title = "Triumph & Regret", Artist = "typeMARS", }, DifficultyName = "[4K] Regret" }, Date = DateTimeOffset.Now, Mods = new[] { new APIMod { Acronym = new OsuModHardRock().Acronym }, new APIMod { Acronym = new OsuModDoubleTime().Acronym }, }, Accuracy = 0.998546 }; var thirdScore = new APIScoreInfo { PP = 96.83, Rank = ScoreRank.S, Beatmap = new APIBeatmap { BeatmapSet = new APIBeatmapSet { Title = "Idolize", Artist = "Creo", }, DifficultyName = "Insane" }, Date = DateTimeOffset.Now, Accuracy = 0.9726 }; var noPPScore = new APIScoreInfo { Rank = ScoreRank.B, Beatmap = new APIBeatmap { BeatmapSet = new APIBeatmapSet { Title = "C18H27NO3(extend)", Artist = "Team Grimoire", }, DifficultyName = "[4K] Cataclysmic Hypernova" }, Date = DateTimeOffset.Now, Accuracy = 0.55879 }; Add(new FillFlowContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, Spacing = new Vector2(0, 10), Children = new[] { new ColourProvidedContainer(OverlayColourScheme.Green, new DrawableProfileScore(firstScore)), new ColourProvidedContainer(OverlayColourScheme.Green, new DrawableProfileScore(secondScore)), new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileScore(noPPScore)), new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(firstScore, 0.97)), new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(secondScore, 0.85)), new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(thirdScore, 0.66)), } }); }