private static Embed CreateMultiplePlayEmbed(User user, IList <UserBestBeatmap> pairs) { EmbedBuilder embed = new EmbedBuilder() { Author = new EmbedAuthorBuilder() { Name = user.Username, Url = GetUserpageFromUserId(user.Userid), IconUrl = GetAvatarUrlFromUserId(user.Userid) }, ThumbnailUrl = GetAvatarUrlFromUserId(user.Userid), Color = Color.Purple }; var i = 1; foreach (var pair in pairs) { var score = pair.UserBest; var beatmap = pair.Beatmap; var oppaiBeatmap = GetOppaiBeatmapFromUrl(GetBeatmapApiUrlFromBeatmap(beatmap)); var mods = (OppaiSharp.Mods)score.Mods; var diffCalc = new OppaiSharp.DiffCalc().Calc(oppaiBeatmap, mods); var fcPP = new OppaiSharp.PPv2(new OppaiSharp.PPv2Parameters(oppaiBeatmap, diffCalc, score.Count100, 0, c300: score.Count300 + score.Miss, mods: mods)); AddScoreFieldToEmbed(embed, i, beatmap, mods, score.Rank, score.Pp, fcPP.Total, fcPP.ComputedAccuracy.Value() * 100d, score.Accuracy, score.MaxCombo.GetValueOrDefault(), beatmap.MaxCombo.GetValueOrDefault(), score.Count300, score.Count100, score.Count50, score.Miss); i++; } return(embed); }
private static Embed CreateSinglePlayEmbed(User user, UserBest score, Beatmap beatmap) { var oppaiBeatmap = GetOppaiBeatmapFromUrl(GetBeatmapApiUrlFromBeatmap(beatmap)); var mods = (OppaiSharp.Mods)score.Mods; var diffCalc = new OppaiSharp.DiffCalc().Calc(oppaiBeatmap, mods); var fcPP = new OppaiSharp.PPv2(new OppaiSharp.PPv2Parameters(oppaiBeatmap, diffCalc, score.Count100, 0, c300: score.Count300 + score.Miss, mods: mods)); EmbedBuilder embed = new EmbedBuilder() { Author = new EmbedAuthorBuilder() { Name = user.Username, Url = GetUserpageFromUserId(user.Userid), IconUrl = GetAvatarUrlFromUserId(user.Userid) }, Title = $"{beatmap.Artist} - {beatmap.Title} [{beatmap.Difficulty}] +{score.Mods} [{beatmap.DifficultyRating:F2}⚝]", Url = GetBeatmapUrlFromBeatmap(beatmap), ThumbnailUrl = beatmap.ThumbnailUrl, Color = Color.Purple, Description = $"◉ **{score.Rank} Rank** ◉ **{score.Pp:F2}PP** ({fcPP.Total:F2} for {fcPP.ComputedAccuracy.Value() * 100:F2}% FC) ◉ {score.Accuracy:F2}% ◉ {score.ScorePoints} ◉ x{score.MaxCombo}/{beatmap.MaxCombo} ◉ [{score.Count300}/{score.Count100}/{score.Count50}/{score.Miss}]" }; return(embed); }