Esempio n. 1
0
        private static bool IsUserRacing(IProjectCarsStateData projectCarsStateData)
        {
            if (projectCarsStateData.GameState != GameState.GameIngamePlaying && projectCarsStateData.GameState != GameState.GameIngamePaused)
            {
                return(false);
            }

            if (projectCarsStateData.RaceState != RaceState.RacestateRacing)
            {
                return(false);
            }

            if (projectCarsStateData.SessionState != SessionState.SessionTimeAttack)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(projectCarsStateData.CarName) ||
                string.IsNullOrEmpty(projectCarsStateData.TrackLocation))
            {
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
        public void CheckProjectCarsStateData(IProjectCarsStateData state)
        {
            if (state.GameState == GameState.GameIngamePaused)
            {
                return;
            }

            if (_lastStoredState != null && _lastStoredState.Equals(state))
            {
                return;
            }

            _lastStoredState = state;

            if (!IsUserRacing(state))
            {
                ResetState();
                return;
            }

            if (state.LapInvalidated)
            {
                _ignoreNextLap = true;
                return;
            }

            if (IsWarmupLap(state))
            {
                return;
            }

            if (!IsLapFinished(state))
            {
                return;
            }

            if (_ignoreNextLap)
            {
                _ignoreNextLap = false;
                return;
            }

            InvokeChallengeResultEvent();

            _lastFiredLapTime = _lastStoredState.LastLapTime;
        }
Esempio n. 3
0
 private bool IsLapFinished(IProjectCarsStateData projectCarsStateData)
 {
     return(Math.Abs(_lastFiredLapTime - projectCarsStateData.LastLapTime) > 0.00001f);
 }
Esempio n. 4
0
 private static bool IsWarmupLap(IProjectCarsStateData projectCarsStateData)
 {
     return(projectCarsStateData.LastLapTime < 0);
 }
 public ChallengeResult(IProjectCarsStateData projectCarsData)
 {
     TrackLocationAndVariant = projectCarsData.TrackLocation + " " + projectCarsData.TrackVariant;
     CarName          = projectCarsData.CarName;
     LastValidLapTime = TimeSpan.FromSeconds(projectCarsData.LastLapTime);;
 }