private OsuJsonUserBest[] ProcessJson(OsuJsonUserBest[] array) { var oldarray = array; if (Recent) { array = array.OrderByDescending(x => x.date).Take(5).ToArray(); } foreach (var item in array) { item.play_number = (Array.IndexOf(oldarray, item) + 1); OsuUtil.GetCalculatedAccuracy(item, Mode); //Get Beatmap last update item.Beatmap = GetBeatmap(item.beatmap_id); if (item.enabled_mods > 0) { //Star rating var data = OsuDlBeatmap.FindMap(item.beatmap_id, item.Beatmap.last_update.DateTime); var diff = new DiffCalc().Calc(Beatmap.Read(new StreamReader(new MemoryStream(data, false))), (Mods)item.enabled_mods); item.starrating = diff.Total; } } return(array); }
private OsuJsonUserRecent[] ProcessJson(OsuJsonUserRecent[] array, bool retrycount) { foreach (var item in array) { if (retrycount) { continue; } //Get Beatmap last update var beatmapBuilder = new OsuBeatmapBuilder { Mode = Mode, ConvertedIncluded = "1", BeatmapId = item.beatmap_id }; item.Beatmap = beatmapBuilder.Execute().First(); OsuUtil.GetCalculatedAccuracy(item, Mode); var data = OsuDlBeatmap.FindMap(item.beatmap_id, item.Beatmap.last_update.DateTime); var beatmapData = Beatmap.Read(new StreamReader(new MemoryStream(data, false))); var diff = new DiffCalc().Calc(beatmapData, (Mods)item.enabled_mods); var rawPp = new PPv2(new PPv2Parameters(beatmapData, diff, new Accuracy(item.count300, item.count100, item.count50, item.countmiss).Value(), item.countmiss, item.maxcombo, (Mods)item.enabled_mods)); item.nochokeaccuracy = new Accuracy(item.count300 + item.countmiss, item.count100, item.count50, 0).Value() * 100; var nochokePp = new PPv2(new PPv2Parameters(beatmapData, diff, item.nochokeaccuracy / 100, 0, diff.Beatmap.GetMaxCombo(), (Mods)item.enabled_mods)); item.pp = rawPp.Total; item.nochokepp = nochokePp.Total; item.rounded_score = item.score.ToString("C0", _nfi); if (item.maxcombo <= (beatmapData.GetMaxCombo() - (item.count100 + item.count50)) || item.rank == "XH" || item.rank == "SH") { item.choked = true; } else if (item.countmiss > 0) { item.choked = true; } item.starrating = diff.Total; item.counttotal = beatmapData.CountCircles + beatmapData.CountSliders + beatmapData.CountSpinners; item.rounded_score = item.score.ToString("C0", _nfi); item.standardhit = item.count300 + item.count100 + item.count50 + item.countmiss; item.hitted = item.countkatu + item.countgeki + item.count300 + item.count100 + item.count50 + item.countmiss; item.completion = item.standardhit / (double)item.counttotal * 100; } return(array); }
private List <OsuJsonUserBest> ProcessSingle(OsuJsonUserBest[] array) { List <OsuJsonUserBest> list = new List <OsuJsonUserBest> { array[(int)PlayNumber - 1] }; if (list[0].enabled_mods > 0) { var data = OsuDlBeatmap.FindMap(list[0].beatmap_id, list[0].Beatmap.last_update.DateTime); var diff = new DiffCalc().Calc(Beatmap.Read(new StreamReader(new MemoryStream(data, false))), (Mods)list[0].enabled_mods); list[0].starrating = diff.Total; } list[0].Beatmap = GetBeatmap(list[0].beatmap_id); return(list); }