Example #1
0
 private void CarLapped(LapTrackingComponent lapTrackingComponent)
 {
     if (lapTrackingComponent.gameObject == _player.GameObject)
     {
         if (lapTrackingComponent.Laps == _laps - 1)
         {
             HandlePlayerDied();
         }
     }
 }
Example #2
0
        public int GetPosition(LapTrackingComponent lapTrackingComponent)
        {
            var carsOnLapAbove = LapTrackers()
                                 .Where(l => l.Laps > lapTrackingComponent.Laps).ToList();

            var carsWithHigherProgress = LapTrackers()
                                         .Where(l => l.Laps == lapTrackingComponent.Laps)
                                         .Where(l => l.ProgressOnCurrentLap > lapTrackingComponent.ProgressOnCurrentLap);

            var carsCloserToNextTarget = LapTrackers()
                                         .Where(l => l.Laps == lapTrackingComponent.Laps)
                                         .Where(l => l.ProgressOnCurrentLap == lapTrackingComponent.ProgressOnCurrentLap)
                                         .Where(l => l.DistanceToNextTarget < lapTrackingComponent.DistanceToNextTarget);

            return(carsOnLapAbove.Concat(carsWithHigherProgress).Concat(carsCloserToNextTarget).Distinct().Count() + 1);
        }