///<inheritdoc/> public double GetMaxPerformance(OrtdpWrapper.OrtdpWrapper wrapper) { _innerBeatmap = new CatchBeatmap(wrapper.Beatmap); _performanceCalculator = _performanceCalculator ?? new CatchPerformanceCalculator(_innerBeatmap, wrapper.Mods); return(_performanceCalculator.CalculatePerformance(1, _innerBeatmap.MaxCombo, 0));//GetPPTuple(ortdpInfo).MaxPP; }
internal double TestPerformanceCalculator(OrtdpWrapper.OrtdpWrapper wrapper) { _innerBeatmap = _innerBeatmap ?? new CatchBeatmap(wrapper.Beatmap); _performanceCalculator = _performanceCalculator ?? new CatchPerformanceCalculator(_innerBeatmap, wrapper.Mods); return(_performanceCalculator.CalculatePerformance(wrapper.Accuracy, wrapper.MaxCombo, wrapper.CountMiss)); }
///<inheritdoc/> public double GetPerformance(OrtdpWrapper.OrtdpWrapper ortdpInfo) { /*if (_innerBeatmap == null) * SetBeatmap(ortdpInfo.Beatmap); * if (_performanceCalculator == null) * _performanceCalculator = * new CatchPerformanceCalculator(_innerBeatmap, ortdpInfo.Mods); * return _performanceCalculator.CalculatePerformance(ortdpInfo.Accuracy, ortdpInfo.Combo, ortdpInfo.CountMiss);*/ return(GetPPTuple(ortdpInfo).RealTimePP); }
/// <inheritdoc/> public PPTuple GetPPTuple(OrtdpWrapper.OrtdpWrapper ortdpInfo) { try { _calculator = _calculator ?? new StdPerformanceCalculator(); _calculator.ClearCache(); _calculator.Beatmap = new BeatmapReader(ortdpInfo.OrtdpBeatmap, (int)ortdpInfo.Beatmap.Mode); if (ortdpInfo.DebugMode) { OutputHelper.Output( $"[osuTools::PrePPCalc::Std] Current ORTDP Beatmap:{_calculator.Beatmap.OrtdpBeatmap.Artist} - {_calculator.Beatmap.OrtdpBeatmap.Title} [{_calculator.Beatmap.OrtdpBeatmap.Difficulty}]", true, false); } _calculator.Count50 = 0; _calculator.CountGeki = ortdpInfo.Beatmap.HitObjects.Count; _calculator.CountKatu = 0; _calculator.Count100 = 0; _calculator.CountMiss = 0; _calculator.Mods = (uint)ortdpInfo.Mods.ToIntMod(); _calculator.MaxCombo = ortdpInfo.Beatmap.HitObjects.Count; _calculator.Count300 = 0; if (ortdpInfo.DebugMode) { OutputHelper.Output("[osuTools::PrePPCalc::Std] Calc Completed", true, false); } return(_calculator.GetPerformance()); } catch (Exception ex) { OutputHelper.Output("Error when PreCalc PP."); if (ortdpInfo.DebugMode) { OutputHelper.Output($"[osuTools::PrePPCalc::Std] Exception:{ex.Message}"); } return(new PPTuple { FullComboAccuracyPP = -1, FullComboAimPP = -1, FullComboPP = -1, FullComboSpeedPP = -1, MaxAccuracyPP = -1, MaxAimPP = -1, MaxPP = -1, MaxSpeedPP = -1, RealTimeAccuracyPP = -1, RealTimeAimPP = -1, RealTimePP = -1, RealTimeSpeedPP = -1 }); } }
/// <inheritdoc/> public double GetPerformance(OrtdpWrapper.OrtdpWrapper ortdpInfo) { return(GetPPTuple(ortdpInfo).RealTimePP); }
/// <inheritdoc/> public double GetMaxPerformance(OrtdpWrapper.OrtdpWrapper ortdpInfo) { return(GetPPTuple(ortdpInfo).MaxPP); }
/// <summary> /// 计算分数 /// </summary> /// <param name="judgement"></param> /// <param name="ortdpInfo"></param> /// <returns></returns> public virtual double GetScore(Judgement judgement, OrtdpWrapper.OrtdpWrapper ortdpInfo) { return(0); }