private void CarLapped(LapTrackingComponent lapTrackingComponent) { if (lapTrackingComponent.gameObject == _player.GameObject) { if (lapTrackingComponent.Laps == _laps - 1) { HandlePlayerDied(); } } }
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); }