public void Accelerate(int delta) { // If this car is "dead," send dead message. carSpeedHandlers?.Invoke(CurrentSpeed); carNameHandlers?.Invoke(PetName); if (carIsDead) { listOfHandlers?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); Exploded?.Invoke(this, new CarEventArgs("BABAH!!!")); } else { CurrentSpeed += delta; // Is this car "almost dead"? if (10 == (MaxSpeed - CurrentSpeed)) { listOfHandlers?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); AboutToExplode?.Invoke(this, new CarEventArgs("ABOUT TO BABAH!!!!!!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }