Advertisement
social1986

Untitled

Mar 15th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.86 KB | None | 0 0
  1. private void CheckForOvertaking(List<Driver> drivers, StringBuilder sb)
  2.     {
  3.         drivers = drivers.OrderByDescending(d => d.TotalTime).ToList();
  4.  
  5.         for (int count = 0; count < drivers.Count - 1; count++)
  6.         {
  7.             var firstDriver = drivers[count];
  8.             var secondDriver = drivers[count + 1];
  9.  
  10.             var timeDifference = Math.Abs(firstDriver.TotalTime - secondDriver.TotalTime);
  11.  
  12.             if (firstDriver.GetType().Name == "AggressiveDriver" && firstDriver.Car.Tyre.Name == "Ultrasoft" && timeDifference <= 3)
  13.             {
  14.                 if (this.Weather == "Foggy")
  15.                 {
  16.                     firstDriver.FailureReason = "Crashed";
  17.                     RemoveFailedDruiver(firstDriver, drivers, lostDrivers);
  18.                 }
  19.                 else
  20.                 {
  21.                     ChangeDriversPositions(firstDriver, secondDriver, 3);
  22.                     sb.Append(ReturningOvertakingInfo(firstDriver, secondDriver));
  23.                     count++;
  24.                 }
  25.             }
  26.             else if (firstDriver.GetType().Name == "EnduranceDriver" && firstDriver.Car.Tyre.Name == "Hard" && timeDifference <= 3)
  27.             {
  28.                 if (this.Weather == "Rainy")
  29.                 {
  30.                     firstDriver.FailureReason = "Crashed";
  31.                     RemoveFailedDruiver(firstDriver, drivers, lostDrivers);
  32.                 }
  33.                 else
  34.                 {
  35.                     ChangeDriversPositions(firstDriver, secondDriver, 3);
  36.                     sb.Append(ReturningOvertakingInfo(firstDriver, secondDriver));
  37.                 }
  38.             }
  39.             else if (timeDifference <= 2)
  40.             {
  41.                 ChangeDriversPositions(firstDriver, secondDriver, 2);
  42.                 sb.Append(ReturningOvertakingInfo(firstDriver, secondDriver));
  43.             }
  44.         }
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement