private void ReportExperience(string reporterName) { LastResult = GetResult(); var TimeOfLastRun = DateTime.UtcNow - _tickStartTime; var TimeOfSession = DateTime.UtcNow - _startTime; var AverageRunTime = new TimeSpan(TimeOfSession.Ticks / _tick); var ThisExpHour = CurrentExperience / TimeOfLastRun.TotalHours; if (_bestTime == TimeSpan.Zero || _bestTime > TimeOfLastRun) { _bestTime = TimeOfLastRun; } if (_worseTime < TimeOfLastRun) { _worseTime = TimeOfLastRun; } if (MaxExperienceRun < CurrentExperience) { MaxExperienceRun = CurrentExperience; } if (MinExperienceRun == 0 || MinExperienceRun > CurrentExperience) { MinExperienceRun = CurrentExperience; } if (MaxExperience < ThisExpHour) { MaxExperience = ThisExpHour; } if (MinExperience == 0 || MinExperience > ThisExpHour) { MinExperience = ThisExpHour; } Core.Logger.Warn("[{0}] Runs count: {1}", reporterName, _tick); Core.Logger.Warn("[{0}] This run time: {1}:{2:D2}:{3:D2}", reporterName, TimeOfLastRun.Hours, TimeOfLastRun.Minutes, TimeOfLastRun.Seconds); Core.Logger.Warn("[{0}] Average run time: {1}:{2:D2}:{3:D2}", reporterName, AverageRunTime.Hours, AverageRunTime.Minutes, AverageRunTime.Seconds); Core.Logger.Warn("[{0}] Best run time: {1}:{2:D2}:{3:D2}", reporterName, _bestTime.Hours, _bestTime.Minutes, _bestTime.Seconds); Core.Logger.Warn("[{0}] Worse run time: {1}:{2:D2}:{3:D2}", reporterName, _worseTime.Hours, _worseTime.Minutes, _worseTime.Seconds); Core.Logger.Warn("[{0}] This run XP Gained: {1:0,0}", reporterName, CurrentExperience); Core.Logger.Warn("[{0}] This run / Hour: {1:0,0}", reporterName, ThisExpHour); Core.Logger.Warn("[{0}] Total XP Gained: {1:0,0}", reporterName, TotalExperience); Core.Logger.Warn("[{0}] Total XP / Hour: {1:0,0}", reporterName, TotalExperience / TimeOfSession.TotalHours); Core.Logger.Warn("[{0}] Best XP / Hour (single run): {1:0,0}", reporterName, MaxExperience); Core.Logger.Warn("[{0}] Worse XP / Hour (single run): {1:0,0}", reporterName, MinExperience); Core.Logger.Warn("[{0}] Best XP / Single run: {1:0,0}", reporterName, MaxExperienceRun); Core.Logger.Warn("[{0}] Worse XP / Single run: {1:0,0}", reporterName, MinExperienceRun); }
private void ReportExperience(string reporterName) { LastResult = GetResult(); var timeOfLastRun = DateTime.UtcNow - _tickStartTime; var timeOfSession = DateTime.UtcNow - _startTime; var averageRunTime = new TimeSpan(timeOfSession.Ticks / _tick); var thisExpHour = _currentExperience / timeOfLastRun.TotalHours; if (_bestTime == TimeSpan.Zero || _bestTime > timeOfLastRun) { _bestTime = timeOfLastRun; } if (_worseTime < timeOfLastRun) { _worseTime = timeOfLastRun; } if (_maxExperienceRun < _currentExperience) { _maxExperienceRun = _currentExperience; } if (Math.Abs(_minExperienceRun) < double.Epsilon || _minExperienceRun > _currentExperience) { _minExperienceRun = _currentExperience; } if (_maxExperience < thisExpHour) { _maxExperience = thisExpHour; } if (Math.Abs(_minExperience) < double.Epsilon || _minExperience > thisExpHour) { _minExperience = thisExpHour; } s_logger.Information($"[{reporterName}] Runs count: {_tick}"); s_logger.Information($"[{reporterName}] This run time: {timeOfLastRun}"); s_logger.Information($"[{reporterName}] Average run time: {averageRunTime}"); s_logger.Information($"[{reporterName}] Best run time: {_bestTime}"); s_logger.Information($"[{reporterName}] Worse run time: {_worseTime}"); s_logger.Information($"[{reporterName}] This run XP Gained: {_currentExperience:0,0}"); s_logger.Information($"[{reporterName}] This run / Hour: {thisExpHour:0,0}"); s_logger.Information($"[{reporterName}] Total XP Gained: {_totalExperience:0,0}"); s_logger.Information($"[{reporterName}] Total XP / Hour: {(_totalExperience / timeOfSession.TotalHours):0,0}"); s_logger.Information($"[{reporterName}] Best XP / Hour (single run): {_maxExperience:0,0}"); s_logger.Information($"[{reporterName}] Worse XP / Hour (single run): {_minExperience:0,0}"); s_logger.Information($"[{reporterName}] Best XP / Single run: {_maxExperienceRun:0,0}"); s_logger.Information($"[{reporterName}] Worse XP / Single run: {_minExperienceRun:0,0}"); }