Exemplo n.º 1
0
 ///<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;
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 ///<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);
 }
Exemplo n.º 4
0
 /// <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
         });
     }
 }
Exemplo n.º 5
0
 /// <inheritdoc/>
 public double GetPerformance(OrtdpWrapper.OrtdpWrapper ortdpInfo)
 {
     return(GetPPTuple(ortdpInfo).RealTimePP);
 }
Exemplo n.º 6
0
 /// <inheritdoc/>
 public double GetMaxPerformance(OrtdpWrapper.OrtdpWrapper ortdpInfo)
 {
     return(GetPPTuple(ortdpInfo).MaxPP);
 }
Exemplo n.º 7
0
 /// <summary>
 /// 计算分数
 /// </summary>
 /// <param name="judgement"></param>
 /// <param name="ortdpInfo"></param>
 /// <returns></returns>
 public virtual double GetScore(Judgement judgement, OrtdpWrapper.OrtdpWrapper ortdpInfo)
 {
     return(0);
 }