Exemplo n.º 1
0
        public static PPCalcSTDReport CountStdPPC(int BeatmapID, long Combo = 0, long s100 = 0, long s50 = 0, long Misses = 0, double Acc = 0, int EnabledMods = 0)
        {
            Beatmap b    = Global.Beatmaps.LoadBeatmap(BeatmapID);
            string  mods = EnabledMods == 0 ? "" : " -m " + Commands.osu.GetShortMods(EnabledMods, " -m ");

            if (mods == " -m ")
            {
                mods = "";
            }

            string argBase = "simulate osu " + Path.Combine(Global.Beatmaps.Folder, BeatmapID + ".osu") + mods + " -j ";

            string acc   = Acc == 0 ? $" -G { s100 } -M { s50 }" : $" -a { Acc }";
            string combo = Combo == 0 ? "" : $"-c { Combo } ";

            string    ppcRaw = Process.Start(GenerateInfo(argBase + $"{combo}-X { Misses }{ acc }")).StandardOutput.ReadToEnd();
            PpcOutput ppc    = JsonConvert.DeserializeObject <PpcOutput>(ppcRaw);

            string    ppcRawFc  = Process.Start(GenerateInfo(argBase + $"-X 0 -a { ppc.Score.Accuracy }")).StandardOutput.ReadToEnd();
            string    ppcRawMax = Process.Start(GenerateInfo(argBase)).StandardOutput.ReadToEnd();
            PpcOutput ppcFc     = JsonConvert.DeserializeObject <PpcOutput>(ppcRawFc);
            PpcOutput ppcMax    = JsonConvert.DeserializeObject <PpcOutput>(ppcRawMax);

            return(new PPCalcSTDReport(ppc, ppcFc, ppcMax, b));
        }
Exemplo n.º 2
0
        public PPCalcSTDReport(PpcOutput ppc, PpcOutput ppcFc, PpcOutput ppcMax, Beatmap map)
        {
            Accuracy      = ppc.Score.Accuracy;
            MaxCombo      = ppcMax.Score.Combo;
            TotalMaxCombo = ppcMax.Score.Combo;
            MaxPP         = ppcMax.PP;
            SameAccFCPP   = ppcFc.PP;
            PP            = ppc.PP;
            Stars         = ppc.DifficultyAttributes.StarRating;
            AR            = ppc.DifficultyAttributes.ApproachRate;
            OD            = ppc.DifficultyAttributes.OverallDifficulty;
            SR            = ppc.DifficultyAttributes.StarRating;
            Beatmap       = map;
            HitCount      = map.WorkingBeatmap.Beatmap.HitObjects.Count;

            Great = ppc.Score.Statistics.Great;
            Good  = ppc.Score.Statistics.Ok;
            Meh   = ppc.Score.Statistics.Meh;
            Miss  = ppc.Score.Statistics.Miss;
        }