public static void askRepair(this InteractableVehicle Vehicle, ushort amount) { if (amount == 0 || Vehicle.isExploded) { return; } UnturnedVehicle vehicle = UnturnedServer.Vehicles.FirstOrDefault(v => v.InstanceID == Vehicle.instanceID); VehicleEvents.RunVehicleRepair(vehicle, amount); DetourManager.CallOriginal(typeof(InteractableVehicle).GetMethod("askRepair", BindingFlags.Public | BindingFlags.Instance), Vehicle, amount); }
public static void askDamageTire(this InteractableVehicle Vehicle, int index) { if (index < 0) { return; } if (Vehicle.asset != null && !Vehicle.asset.canTiresBeDamaged) { return; } UnturnedVehicle UVehicle = UnturnedServer.Vehicles.FirstOrDefault(vehicle => vehicle.InstanceID == Vehicle.instanceID); VehicleEvents.RunVehicleTireDamage(UVehicle, index); DetourManager.CallOriginal(typeof(InteractableVehicle).GetMethod("askDamageTire", BindingFlags.Public | BindingFlags.Instance), Vehicle, index); }
public void tellExitVehicle(CSteamID steamID, uint instanceID, byte seat, Vector3 point, byte angle, bool forceUpdate) { if (!VehicleManager.instance.channel.checkServer(steamID)) { return; } for (int i = 0; i < VehicleManager.vehicles.Count; i++) { if (VehicleManager.vehicles[i].instanceID != instanceID) { continue; } UnturnedVehicle Vehicle = UnturnedServer.Vehicles.FirstOrDefault(vehicle => vehicle.InstanceID == instanceID); VehicleEvents.RunVehicleExit(Vehicle, seat, point, angle, forceUpdate); break; } DetourManager.CallOriginal(typeof(VehicleManager).GetMethod("tellExitVehicle", BindingFlags.Public | BindingFlags.Instance), VehicleManager.instance, steamID, instanceID, seat, point, angle, forceUpdate); }
public void AddLapEvent(double elapsed, int lapNumber, double lapTime) { VehicleEvents.Add(new VehicleLapEvent(VehicleId, elapsed, lapNumber, lapTime)); }
public void AddPitEvent(double pitInElapsed, int pitInLap, double pitOutElapsed) { VehicleEvents.Add(new VehiclePitStopEvent(VehicleId, pitInElapsed, pitInLap, pitOutElapsed)); }
public VehicleLapEvent GetLapEventAt(int lapNumber) { return(VehicleEvents.OfType <VehicleLapEvent>().FirstOrDefault(e => e.LapNumber == lapNumber)); }
public VehiclePitStopEvent GetPitStopEventAt(double elapsed) { return(VehicleEvents.OfType <VehiclePitStopEvent>().FirstOrDefault(e => e.Elapsed == elapsed)); }