public static void Event_InteractPressed(Client player, int id) { switch (id) { case 54: NAPI.Entity.SetEntityPosition(player, ExitAlcoShop[player.GetData("CLUB")] + new Vector3(0, 0, 1.2)); return; case 55: NAPI.Entity.SetEntityPosition(player, EnterAlcoShop[player.GetData("CLUB")] + new Vector3(0, 0, 1.2)); return; case 56: if (!Main.Players.ContainsKey(player)) { return; } if (Main.Players[player].FractionID != player.GetData("CLUB")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не состоите в {Fractions.Manager.getName(player.GetData("CLUB"))}", 3000); return; } if (!player.IsInVehicle) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы должны находиться в машине", 3000); return; } int club = player.GetData("CLUB"); var matCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material); if (matCount == 0) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "В машине нет материала", 3000); return; } if (ClubsStocks[club].Materials >= MaxMats) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Склад заполнен", 3000); return; } VehicleInventory.Remove(player.Vehicle, ItemType.Material, matCount); ClubsStocks[club].Materials += matCount; ClubsStocks[club].UpdateLabel(); Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, "Вы выгрузили весь материал из машины на склад клуба", 3000); return; case 57: if (!Main.Players.ContainsKey(player)) { return; } OpenBuyAlcoholMenu(player); return; } }
public void TestMethod_Statistics() { IVehicleInventory inventory = new VehicleInventory(); var mfg = new Manufacturer("Toyota", "100 main", "800-999-9999"); var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Ford, "model", 2017, "yellow", 1500, 10000, 10000); inventory.Add(vehicle); vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 60000, 60000); inventory.Add(vehicle); vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.Toyota, "model", 2016, "red", 2500, 20000, 20000); inventory.Add(vehicle); var vehicleList = inventory.List(); Assert.AreEqual(30000, vehicleList.AverageMSRP()); Assert.AreEqual(10000, vehicleList.MinMSRP()); Assert.AreEqual(60000, vehicleList.MaxMSRP()); Assert.AreEqual(30000, vehicleList.AverageMileage()); Assert.AreEqual(10000, vehicleList.MinMileage()); Assert.AreEqual(60000, vehicleList.MaxMileage()); Assert.AreEqual(3, vehicleList.CountDueForOilChange()); //do an oil change, then re-check count vehicle.LastOilChangeDate = DateTime.Now; vehicle.LastOilChangeMiles = 20000; Assert.AreEqual(2, vehicleList.CountDueForOilChange()); }
public void CanDeleteVehicle() { VehicleInventory vehicleToAdd = new VehicleInventory(); var repo = new VehicleInventoryRepositoryDapper(); vehicleToAdd.ModelID = 1; vehicleToAdd.MakeID = 1; vehicleToAdd.SalesTypeID = 1; vehicleToAdd.BodyTypeID = 3; vehicleToAdd.YearBuilt = 2020; vehicleToAdd.TransmissionID = 1; vehicleToAdd.ExtColorID = 1; vehicleToAdd.IntColorID = 3; vehicleToAdd.Mileage = 233; vehicleToAdd.VINNumber = "3A4FY48B87T593601"; vehicleToAdd.MSRP = 24900; vehicleToAdd.SalesPrice = 23000; vehicleToAdd.VehicleDescription = "Brand New!"; vehicleToAdd.IsFeaturedVehicle = true; vehicleToAdd.ImageFileName = "placeholder.png"; repo.AddVehicle(vehicleToAdd); var loaded = repo.GetByID(5); Assert.IsNotNull(loaded); repo.DeleteVehicle(5); loaded = repo.GetByID(5); Assert.IsNull(loaded); }
public static BOLCarInventory UpDataTo_db(BOLCarInventory oldCar, BOLCarInventory newCar) { try { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory dbUser = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == oldCar.VehicleNumber); if (dbUser != null) { dbUser.CarsTypeID = newCar.CarsTypeID; dbUser.UpdatedMileage = newCar.UpdatedMileage; dbUser.VehiclePic = newCar.VehiclePic; dbUser.IsProperForRent = newCar.IsProperForRent; dbUser.VehicleNumber = newCar.VehicleNumber; dbUser.BranchesID = newCar.BranchesID; ef.SaveChanges(); return(newCar); } else { throw new InvalidOperationException($"this car type is not exist please change the values and try again"); } } } catch { return(null); } }
private static void DemoVehicleInventory() { IVehicleInventory inventory = new VehicleInventory(); var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "Model S", 2017, "yellow", 1500, 2500, 100); //var temp = vehicle.Mfg; inventory.Add(vehicle); vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "325i", 2016, "red", 2500, 4000, 100); inventory.Add(vehicle); inventory.Remove(vehicle); inventory.Add(vehicle); var v1 = inventory.List(SortOrder.Vin); Console.WriteLine("List of Vehicles"); v1.ForEach(v => Console.WriteLine($"{v.VinNumber}, {v.Make}, {v.Model}")); var v2 = inventory.FindByYear(2017); var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW); v3.AddToMileage(99); var v3_1 = inventory.List().FindByMake(VehicleMake.BMW); var v4 = inventory.List().FindByMake(VehicleMake.Ford); var stringList = inventory.ListAsString(SortOrder.Vin); Console.WriteLine("List of Vehicles - in Json(string) format"); Console.WriteLine($"{stringList}"); }
public static BOLCarInventory AddCarTo_db(BOLCarInventory car) { try { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory isExist = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == car.VehicleNumber); if (isExist == null) { ef.VehicleInventories.Add(new VehicleInventory { CarsTypeID = car.CarsTypeID, UpdatedMileage = car.UpdatedMileage, VehiclePic = car.VehiclePic, IsProperForRent = car.IsProperForRent, VehicleNumber = car.VehicleNumber, BranchesID = car.BranchesID }); ef.SaveChanges(); return(car); } else { throw new InvalidOperationException($"this car number is already exist please change and try again"); } } } catch { return(null); } }
public static string deleteFrom_db(int VehicleNumber) { try { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory dbvehicle = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == VehicleNumber); List <Order> isItInOrder = ef.Orders.Where(u => u.VehiclesID == dbvehicle.VehiclesID && u.ActualReturnDate != null).ToList(); if (isItInOrder.Count == 0) { if (dbvehicle != null) { ef.VehicleInventories.Remove(dbvehicle); ef.SaveChanges(); return("deleted"); } else { throw new InvalidOperationException($"this car type is not exist please change the values and try again"); } } else { return("this vehicle is in order"); } } } catch { return("wrong vehicle number"); } }
public void TestMethod_OilChange() { IVehicleInventory inventory = new VehicleInventory(); var mfg = new Manufacturer("Subaru", "100 main", "800-999-9999"); var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Subaru, "Impreza", 2017, "yellow", 1500, 2500, 10000); vehicle.LastOilChangeDate = new DateTime(2016, 10, 1); vehicle.LastOilChangeMiles = 1000; Assert.IsTrue(vehicle.IsDueForOilChange()); vehicle.LastOilChangeMiles = 10000; vehicle.LastOilChangeDate = DateTime.Now; Assert.IsFalse(vehicle.IsDueForOilChange()); vehicle = VehicleFactory.CreateVehicle("vinnumberVW", VehicleMake.Volkswagen, "Jetta", 2017, "yellow", 1500, 2500, 10000); vehicle.LastOilChangeDate = new DateTime(2016, 10, 1); vehicle.LastOilChangeMiles = 2100; Assert.IsFalse(vehicle.IsDueForOilChange()); vehicle = VehicleFactory.CreateVehicle("vinnumbertesla", VehicleMake.Tesla, "Models", 2017, "yellow", 1500, 2500, 10000); Assert.IsFalse(vehicle.IsDueForOilChange()); vehicle = VehicleFactory.CreateVehicle("vinnumbertoyota", VehicleMake.Toyota, "4runner", 2017, "yellow", 1500, 2500, 10000); Assert.IsTrue(vehicle.IsDueForOilChange()); vehicle.LastOilChangeDate = new DateTime(2017, 1, 1); vehicle.LastOilChangeMiles = 11000; Assert.IsFalse(vehicle.IsDueForOilChange()); // alternative - use separate class to check for oil change var dueForOilChange = OilChangeRules.IsDueForOilChange(vehicle); Assert.IsFalse(dueForOilChange); }
public static List <int> GetListOrderByDate(DateTime start, DateTime end) { List <int> orderedCars = new List <int>(); try { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { List <Order> dbOrder = ef.Orders.Where(u => u.ActualReturnDate == null).ToList(); if (dbOrder.Count != 0) { foreach (var item in dbOrder) { if (item.ReturnDate >= start && item.StartDate <= end || item.StartDate <= start && item.ReturnDate >= end) { VehicleInventory getCarInfo = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == item.VehiclesID); orderedCars.Add(getCarInfo.VehicleNumber); } } } return(orderedCars); } } catch { return(null); } }
public void CanUpdateListing() { VehicleInventory vehicleToAdd = new VehicleInventory(); var repo = new VehicleInventoryRepositoryDapper(); vehicleToAdd.ModelID = 1; vehicleToAdd.MakeID = 1; vehicleToAdd.SalesTypeID = 1; vehicleToAdd.BodyTypeID = 3; vehicleToAdd.YearBuilt = 2020; vehicleToAdd.TransmissionID = 1; vehicleToAdd.ExtColorID = 1; vehicleToAdd.IntColorID = 3; vehicleToAdd.Mileage = 233; vehicleToAdd.VINNumber = "3A4FY48B87T593601"; vehicleToAdd.MSRP = 24900; vehicleToAdd.SalesPrice = 23000; vehicleToAdd.VehicleDescription = "Brand New!"; vehicleToAdd.IsFeaturedVehicle = true; vehicleToAdd.ImageFileName = "placeholder.png"; repo.AddVehicle(vehicleToAdd); vehicleToAdd.ModelID = 2; vehicleToAdd.MakeID = 2; vehicleToAdd.SalesTypeID = 2; vehicleToAdd.BodyTypeID = 3; vehicleToAdd.YearBuilt = 2017; vehicleToAdd.TransmissionID = 1; vehicleToAdd.ExtColorID = 2; vehicleToAdd.IntColorID = 1; vehicleToAdd.Mileage = 2300; vehicleToAdd.VINNumber = "3A4FY48Z87T593601"; vehicleToAdd.MSRP = 22900; vehicleToAdd.SalesPrice = 22000; vehicleToAdd.VehicleDescription = "Slightly New!"; vehicleToAdd.IsFeaturedVehicle = true; vehicleToAdd.ImageFileName = "updated.png"; repo.UpdateVehicle(vehicleToAdd); var updatedVehicle = repo.GetByID(5); Assert.AreEqual(2, updatedVehicle.ModelID); Assert.AreEqual(2, updatedVehicle.MakeID); Assert.AreEqual(2, updatedVehicle.SalesTypeID); Assert.AreEqual(3, updatedVehicle.BodyTypeID); Assert.AreEqual(2017, updatedVehicle.YearBuilt); Assert.AreEqual(1, updatedVehicle.TransmissionID); Assert.AreEqual(2, updatedVehicle.ExtColorID); Assert.AreEqual(1, updatedVehicle.IntColorID); Assert.AreEqual(2300, updatedVehicle.Mileage); Assert.AreEqual("3A4FY48Z87T593601", updatedVehicle.VINNumber); Assert.AreEqual(22900, updatedVehicle.MSRP); Assert.AreEqual(22000, updatedVehicle.SalesPrice); Assert.AreEqual("Slightly New!", updatedVehicle.VehicleDescription); Assert.AreEqual(true, updatedVehicle.IsFeaturedVehicle); Assert.AreEqual("updated.png", updatedVehicle.ImageFileName); }
public void AddVehicle(VehicleInventory vehicle) { using (var cn = new SqlConnection(Settings.GetConnectionString())) { var parameters = new DynamicParameters(); parameters.Add("@VehicleID", dbType: DbType.Int32, direction: ParameterDirection.Output); parameters.Add("@ModelID", vehicle.ModelID); parameters.Add("@MakeID", vehicle.MakeID); parameters.Add("@SalesTypeID", vehicle.SalesTypeID); parameters.Add("@BodyTypeID", vehicle.BodyTypeID); parameters.Add("@YearBuilt", vehicle.YearBuilt); parameters.Add("@TransmissionID", vehicle.TransmissionID); parameters.Add("@ExtColorID", vehicle.ExtColorID); parameters.Add("@IntColorID", vehicle.IntColorID); parameters.Add("@Mileage", vehicle.Mileage); parameters.Add("@VINNumber", vehicle.VINNumber); parameters.Add("@MSRP", vehicle.MSRP); parameters.Add("@SalesPrice", vehicle.SalesPrice); parameters.Add("@VehicleDescription", vehicle.VehicleDescription); parameters.Add("@IsFeaturedVehicle", vehicle.IsFeaturedVehicle); parameters.Add("@ImageFileName", vehicle.ImageFileName); cn.Execute("VehicleInsert", parameters, commandType: CommandType.StoredProcedure); vehicle.VehicleID = parameters.Get <int>("@VehicleID"); } }
public static int GetCarsTypeID(int vehiclesID) { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory getCarTypeId = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == vehiclesID); return(getCarTypeId.CarsTypeID); } }
public void TestMethod_BasicFeatures() { IVehicleInventory inventory = new VehicleInventory(); var vehicle = VehicleFactory.CreateVehicle("vinnumber3", VehicleMake.Tesla, "model", 2017, "yellow", 1500, 2500, 100); //var temp = vehicle.Mfg; inventory.Add(vehicle); vehicle = VehicleFactory.CreateVehicle("vinnumber1", VehicleMake.BMW, "model", 2016, "red", 2500, 4000, 100); inventory.Add(vehicle); var v1 = inventory.List(SortOrder.Vin); Assert.AreEqual(2, v1.Count); Assert.AreEqual(v1[0].VinNumber, "vinnumber1"); inventory.Remove(vehicle); v1 = inventory.List(SortOrder.Vin); Assert.AreEqual(1, v1.Count); inventory.Add(vehicle); var v2 = inventory.FindByYear(2017); Assert.AreEqual(1, v2.Count); var v3 = inventory.List(SortOrder.Vin).FindByMake(VehicleMake.BMW); Assert.AreEqual(1, v3.Count); Assert.IsTrue(v3[0].Disclaimer.Contains("Copyright BMW AG, Munich, Germany")); v3.AddToMileage(99); var v3_1 = inventory.List().FindByMake(VehicleMake.BMW); Assert.AreEqual(199, v3_1[0].Miles); var v4 = inventory.List().FindByMake(VehicleMake.Ford); Assert.AreEqual(0, v4.Count); var stringList = inventory.ListAsString(SortOrder.Vin); Assert.IsTrue(stringList.Contains("vinnumber3")); Assert.IsTrue(stringList.Contains("vinnumber1")); // verify that the BMW has the disclaimer Assert.IsTrue(stringList.Contains("Copyright BMW AG, Munich, Germany")); // test for tesla manufacturer info Assert.IsTrue(stringList.Contains("Teslaphone")); }
public void AddVehicle(VehicleInventory vehicle) { var repo = GetAll(); VehicleInventory newVehicle = new VehicleInventory(); newVehicle.MakeID = vehicle.MakeID; newVehicle.ModelID = vehicle.ModelID; newVehicle.SalesTypeID = vehicle.SalesTypeID; newVehicle.BodyTypeID = vehicle.BodyTypeID; newVehicle.YearBuilt = vehicle.YearBuilt; newVehicle.TransmissionID = vehicle.TransmissionID; newVehicle.ExtColorID = vehicle.ExtColorID; newVehicle.IntColorID = vehicle.IntColorID; newVehicle.Mileage = vehicle.Mileage; newVehicle.VINNumber = vehicle.VINNumber; newVehicle.MSRP = vehicle.MSRP; newVehicle.SalesPrice = vehicle.SalesPrice; newVehicle.VehicleDescription = vehicle.VehicleDescription; newVehicle.IsFeaturedVehicle = vehicle.IsFeaturedVehicle; newVehicle.ImageFileName = vehicle.ImageFileName; }
public static void BuyDrugs(Client player, int amount) { if (!Main.Players.ContainsKey(player)) { return; } if (!player.IsInVehicle || !player.Vehicle.HasData("CANDRUGS")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы должны находиться в машине, которая может перевозить наркотики", 3000); return; } if (Fractions.Manager.FractionTypes[Main.Players[player].FractionID] != 1) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не можете закупать наркотики", 3000); return; } if (!Fractions.Manager.canUseCommand(player, "buydrugs")) { return; } var tryAdd = VehicleInventory.TryAdd(player.Vehicle, new nItem(ItemType.Drugs, amount)); if (tryAdd == -1 || tryAdd > 0) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Недостаточно места в машине", 3000); return; } if (Fractions.Stocks.fracStocks[Main.Players[player].FractionID].Money < amount * PricePerDrug) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Недостаточно средств на складе банды", 3000); return; } VehicleInventory.Add(player.Vehicle, new nItem(ItemType.Drugs, amount)); Fractions.Stocks.fracStocks[Main.Players[player].FractionID].Money -= amount * PricePerDrug; Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы закупили {amount}г наркотиков", 3000); }
public IHttpActionResult DeleteVehicle(int vehicleID) { var repo = VehicleRepositoryFactory.GetRepository(); VehicleInventory vehicle = repo.GetByID(vehicleID); if (vehicle == null) { return(NotFound()); } else { var filepath = "~/images/" + vehicle.ImageFileName; FileInfo file = new FileInfo(filepath); if (file.Exists) { file.Delete(); } repo.DeleteVehicle(vehicleID); return(Ok()); } }
public static int GetVehicleNumber(int vehiclesID) { try { using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory dbUser = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == vehiclesID); if (dbUser != null) { return(dbUser.VehicleNumber); } else { throw new InvalidOperationException($"this car is not exist please change the values and try again"); } } } catch (Exception EX) { throw new Exception(EX.ToString()); } }
public static BOLCarInventory GetCarFrom_db(int carNumber) { try { BOLCarInventory carsInventory = new BOLCarInventory(); using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { VehicleInventory orderedCar = ef.VehicleInventories.FirstOrDefault(u => u.VehicleNumber == carNumber); carsInventory.CarsTypeID = orderedCar.CarsTypeID; carsInventory.UpdatedMileage = orderedCar.UpdatedMileage; carsInventory.VehiclePic = orderedCar.VehiclePic; carsInventory.IsProperForRent = orderedCar.IsProperForRent; carsInventory.VehicleNumber = orderedCar.VehicleNumber; carsInventory.BranchesID = orderedCar.BranchesID; return(carsInventory); } } catch { } return(null); }
public static List <BOLCarInventory> GetCarFrom_db(List <BOLOrder> orderlist) { List <BOLCarInventory> carsInventory = new List <BOLCarInventory>(); using (RentalcarsEntities1 ef = new RentalcarsEntities1()) { foreach (var item in orderlist) { VehicleInventory orderedCar = ef.VehicleInventories.FirstOrDefault(u => u.VehiclesID == item.VehiclesID); carsInventory.Add(new BOLCarInventory { CarsTypeID = orderedCar.CarsTypeID, UpdatedMileage = orderedCar.UpdatedMileage, VehiclePic = orderedCar.VehiclePic, IsProperForRent = orderedCar.IsProperForRent, VehicleNumber = orderedCar.VehicleNumber, BranchesID = orderedCar.BranchesID }); } return(carsInventory); } }
public void UpdateVehicle(VehicleInventory vehicle) { var repo = VehicleRepositoryFactory.GetRepository(); VehicleInventory updateVehicle = new VehicleInventory(); updateVehicle.MakeID = vehicle.MakeID; updateVehicle.ModelID = vehicle.ModelID; updateVehicle.SalesTypeID = vehicle.SalesTypeID; updateVehicle.BodyTypeID = vehicle.BodyTypeID; updateVehicle.YearBuilt = vehicle.YearBuilt; updateVehicle.TransmissionID = vehicle.TransmissionID; updateVehicle.ExtColorID = vehicle.ExtColorID; updateVehicle.IntColorID = vehicle.IntColorID; updateVehicle.Mileage = vehicle.Mileage; updateVehicle.VINNumber = vehicle.VINNumber; updateVehicle.MSRP = vehicle.MSRP; updateVehicle.SalesPrice = vehicle.SalesPrice; updateVehicle.VehicleDescription = vehicle.VehicleDescription; updateVehicle.IsFeaturedVehicle = vehicle.IsFeaturedVehicle; updateVehicle.ImageFileName = vehicle.ImageFileName; repo.UpdateVehicle(updateVehicle); }
public async Task <Inventory> Update(bool isVeh, string vehPlate = "") { Log.Debug("Requesting inv"); if (isVeh) { vehicleInventory = null; Magicallity.Client.Client.Instance.TriggerServerEvent("Inventory.RequestInventory", vehPlate); while (vehicleInventory == null) { await BaseScript.Delay(0); } } else { playerInventory = null; Magicallity.Client.Client.Instance.TriggerServerEvent("Inventory.RequestInventory"); while (playerInventory == null) { await BaseScript.Delay(0); } } return(isVeh ? vehicleInventory as Inventory : playerInventory as Inventory); }
public static void interactPressed(Client player, int interact) { switch (interact) { case 15: if (player.IsInVehicle) { return; } if (player.HasData("FOLLOWING")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000); return; } player.SetData("IN_HOSPITAL", true); NAPI.Entity.SetEntityPosition(player, emsCheckpoints[1] + new Vector3(0, 0, 1.12)); Main.PlayerEnterInterior(player, emsCheckpoints[1] + new Vector3(0, 0, 1.12)); return; case 16: if (player.HasData("FOLLOWING")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000); return; } if (NAPI.Player.GetPlayerHealth(player) < 100) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны сначала закончить лечение", 3000); break; } /*if (player.HasData("HEAL_TIMER")) * { * Main.StopT(player.GetData("HEAL_TIMER")); * player.ResetData("HEAL_TIMER"); * Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Ваше лечение закончено", 3000); * }*/ player.SetData("IN_HOSPITAL", false); NAPI.Entity.SetEntityPosition(player, emsCheckpoints[0] + new Vector3(0, 0, 1.12)); Main.PlayerEnterInterior(player, emsCheckpoints[0] + new Vector3(0, 0, 1.12)); return; case 17: if (Main.Players[player].FractionID != 8) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000); return; } if (!player.GetData("ON_DUTY")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не начали рабочий день", 3000); return; } if (!Stocks.fracStocks[8].IsOpen) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000); return; } OpenHospitalStockMenu(player); return; case 18: if (Main.Players[player].FractionID == 8) { if (!NAPI.Data.GetEntityData(player, "ON_DUTY")) { Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы начали рабочий день", 3000); Manager.setSkin(player, 8, Main.Players[player].FractionLVL); NAPI.Data.SetEntityData(player, "ON_DUTY", true); break; } else { Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы закончили рабочий день", 3000); Customization.ApplyCharacter(player); if (player.HasData("HAND_MONEY")) { player.SetClothes(5, 45, 0); } else if (player.HasData("HEIST_DRILL")) { player.SetClothes(5, 41, 0); } NAPI.Data.SetEntityData(player, "ON_DUTY", false); break; } } else { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000); } return; case 19: if (NAPI.Player.GetPlayerHealth(player) > 99) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не нуждаетесь в лечении", 3000); break; } if (player.HasData("HEAL_TIMER")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже лечитесь", 3000); break; } Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы начали лечение", 3000); //player.SetData("HEAL_TIMER", Main.StartT(3750, 3750, (o) => healTimer(player), "HEAL_TIMER")); player.SetData("HEAL_TIMER", Timers.Start(3750, () => healTimer(player))); return; case 51: OpenTattooDeleteMenu(player); return; case 58: if (Main.Players[player].FractionID != 8) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000); break; } if (!player.IsInVehicle || !player.Vehicle.HasData("CANMEDKITS")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не в машине или Ваша машина не может перевозить аптечки", 3000); break; } var medCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.HealthKit); if (medCount >= 50) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимум аптечек", 3000); break; } if (HumanMedkitsLefts <= 0) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Аптечки закончились. Приезжайте за новыми через час", 3000); break; } var toAdd = (HumanMedkitsLefts > 50 - medCount) ? 50 - medCount : HumanMedkitsLefts; HumanMedkitsLefts = toAdd; VehicleInventory.Add(player.Vehicle, new nItem(ItemType.HealthKit, toAdd)); Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы заполнили машину аптечками", 3000); return; case 63: if (Main.Players[player].FractionID != 8) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не сотрудник EMS", 3000); break; } if (player.IsInVehicle) { return; } if (player.Position.Z > 50) { if (player.HasData("FOLLOWING")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000); return; } player.SetData("IN_HOSPITAL", true); NAPI.Entity.SetEntityPosition(player, emsCheckpoints[8] + new Vector3(0, 0, 1.12)); Main.PlayerEnterInterior(player, emsCheckpoints[8] + new Vector3(0, 0, 1.12)); } else { if (player.HasData("FOLLOWING")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000); return; } player.SetData("IN_HOSPITAL", false); NAPI.Entity.SetEntityPosition(player, emsCheckpoints[7] + new Vector3(0, 0, 1.12)); Main.PlayerEnterInterior(player, emsCheckpoints[7] + new Vector3(0, 0, 1.12)); } return; } }
public static void interactPressed(Client player, int interact) { switch (interact) { case 34: if (Main.Players[player].FractionID != 14) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000); return; } if (!Stocks.fracStocks[14].IsOpen) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000); return; } Trigger.ClientEvent(player, "armyguns"); return; case 35: if (Main.Players[player].FractionID != 14) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000); return; } OpenArmyClothesMenu(player); return; case 36: if (Main.Players[player].FractionID != 14) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000); return; } if (!player.IsInVehicle) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны находиться в машине", 3000); return; } if (!player.Vehicle.HasData("CANMATS")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"На этой машине нельзя перевозить маты", 3000); return; } if (player.HasData("loadMatsTimer")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже загружаете материалы в машину", 3000); return; } if (!Fractions.Stocks.maxMats.ContainsKey(player.Vehicle.DisplayName)) { return; } var count = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material); if (count >= Fractions.Stocks.maxMats[player.Vehicle.DisplayName]) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимальное кол-во материала", 3000); return; } //player.SetData("loadMatsTimer", Main.StartT(20000, 99999999, (o) => loadMaterialsTimer(player), "ALOADMATS_TIMER")); player.SetData("loadMatsTimer", Timers.StartOnce(20000, () => loadMaterialsTimer(player))); player.Vehicle.SetData("loaderMats", player); Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Загрузка материалов началась (20 секунд)", 3000); Trigger.ClientEvent(player, "showLoader", "Загрузка материалов", 1); player.SetData("vehicleMats", player.Vehicle); player.SetData("whereLoad", "ARMY"); return; case 25: if (player.IsInVehicle) { return; } if (player.HasData("FOLLOWING")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вас кто-то тащит за собой", 3000); return; } if (player.Position.Z > 50) { NAPI.Entity.SetEntityPosition(player, new Vector3(ArmyCheckpoints[3].X, ArmyCheckpoints[3].Y, ArmyCheckpoints[3].Z + 1)); Main.PlayerEnterInterior(player, new Vector3(ArmyCheckpoints[3].X, ArmyCheckpoints[3].Y, ArmyCheckpoints[3].Z + 1)); } else { NAPI.Entity.SetEntityPosition(player, new Vector3(ArmyCheckpoints[4].X, ArmyCheckpoints[4].Y, ArmyCheckpoints[4].Z + 1)); Main.PlayerEnterInterior(player, new Vector3(ArmyCheckpoints[4].X, ArmyCheckpoints[4].Y, ArmyCheckpoints[4].Z + 1)); } return; case 60: // open stock gun if (Main.Players[player].FractionID != 14) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000); return; } if (!NAPI.Data.GetEntityData(player, "ON_DUTY")) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны начать рабочий день", 3000); return; } if (!Stocks.fracStocks[14].IsOpen) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Склад закрыт", 3000); return; } player.SetData("ONFRACSTOCK", 14); GUI.Dashboard.OpenOut(player, Stocks.fracStocks[14].Weapons, "Склад оружия", 6); return; } }
private void DoInstall(PlayerSession session, string[] args, string vehicleType, VehicleInventory vehicleInventory) { string steamId = session.SteamId.ToString(); if (!permission.UserHasPermission(steamId, InstallPermission)) { Player.Message(session, GetMsg("NoPermission", steamId).Replace("{permission}", InstallPermission)); return; } //Check if player is installing a correct vehicle attachment int slot; if (!int.TryParse(args[1], out slot) || slot < 1 || slot > 8) { Player.Message(session, GetMsg("HelpCommand", steamId)); return; } PlayerInventory playerInventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>(); ItemObject playerItemObject = playerInventory.GetSlot(slot - 1); if (playerItemObject != null) { ESlotType itemSlotType = GetSlotType(playerItemObject); string slotTypeString = itemSlotType.ToString().ToLower(); Puts(slotTypeString); if (!slotTypeString.Contains(vehicleType)) { Player.Message(session, GetMsg("NotVehicleAttachment", steamId)); return; } //Correct item. Can install/switch. //Check if vehicle has the same attachment type installed. If not, install player's item. If yes, switch with player's item. bool updated = false; bool notSwitched = false; for (int slotNumber = 0; slotNumber < vehicleInventory.StorageConfig.Slots.Length; ++slotNumber) { StorageSlotConfig storageSlotConfig = vehicleInventory.StorageConfig.Slots[slotNumber]; if (storageSlotConfig.SlotRestrictions.Contains(itemSlotType)) { ItemObject switchslot = vehicleInventory.GetSlot(storageSlotConfig.SlotNumber); if (switchslot == null) { //Vehicle doesn't have attachment on that slot. Can install. VehicleInstall(session, playerItemObject, vehicleInventory, storageSlotConfig.SlotNumber); Player.Message(session, GetMsg("VehicleInstall", steamId).Replace("{attachInstalled}", playerItemObject.Generator.name).Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType))); updated = true; } else { ItemObject vehicleAttach = vehicleInventory.GetSlot(storageSlotConfig.SlotNumber); if (RuntimeHurtDB.Instance.GetGuid(vehicleAttach.Generator) == RuntimeHurtDB.Instance.GetGuid(playerItemObject.Generator)) { notSwitched = true; continue; } else { //Vehicle have attachment on that slot. Can switch. string attachSwitched = VehicleSwitch(session, playerItemObject, vehicleInventory, storageSlotConfig.SlotNumber); Player.Message(session, GetMsg("VehicleSwitch", steamId).Replace("{attachSwitched}", attachSwitched).Replace("{vehicleType}", GetMsg("vehicles/" + vehicleType)).Replace("{attachInstalled}", playerItemObject.Generator.name)); updated = true; } } vehicleInventory.Invalidate(false); } if (updated) { break; } } if (notSwitched && !updated) { Player.Message(session, GetMsg("VehicleAttachmentAlreadyInstalled", steamId).Replace("{attachment}", playerItemObject.Generator.name)); } } else { Player.Message(session, GetMsg("NoAttachmentFound", steamId).Replace("{slot}", slot.ToString())); } }
public static void loadMaterialsTimer(Client player) { NAPI.Task.Run(() => { try { if (!player.HasData("vehicleMats")) { return; } if (!player.IsInVehicle) { return; } Vehicle vehicle = player.GetData("vehicleMats"); var itemCount = VehicleInventory.GetCountOfType(player.Vehicle, ItemType.Material); if (player.GetData("whereLoad") == "WAR" && !Fractions.MatsWar.isWar) { player.SetData("INTERACTIONCHECK", 0); //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer"); player.ResetData("loadMatsTimer"); Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Корабль уже уехал", 3000); return; } if (itemCount >= Fractions.Stocks.maxMats[vehicle.DisplayName]) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"В машине максимальное кол-во материала", 3000); //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer_1"); player.ResetData("loadMatsTimer"); return; } var data = new nItem(ItemType.Material); if (player.GetData("whereLoad") == "WAR") { var count = Fractions.Stocks.maxMats[vehicle.DisplayName] - itemCount; if (count >= Fractions.MatsWar.matsLeft) { data.Count = itemCount + Fractions.MatsWar.matsLeft; Fractions.MatsWar.matsLeft = 0; Fractions.MatsWar.endWar(); } else { data.Count = count; Fractions.MatsWar.matsLeft -= count; } } else { data.Count = Fractions.Stocks.maxMats[vehicle.DisplayName] - itemCount; } VehicleInventory.Add(vehicle, data); NAPI.Data.ResetEntityData(vehicle, "loaderMats"); //Main.StopT(player.GetData("loadMatsTimer"), "loadMaterialsTimer_2"); player.ResetData("loadMatsTimer"); Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы загрузили материалы в машину", 3000); } catch (Exception e) { Log.Write("LoadMatsTimer: " + e.Message, nLog.Type.Error); } }); }
public bool SaveInventoryVehicle(VehicleInventoryDTO dto, string mode) { var flag = false; try { using (var entities = new ManiMotorsEntities1()) { if (mode == "EDIT") { var info = entities.VehicleInventories.FirstOrDefault(v => v.VehicleInventoryID == dto.VehicleInventoryID); info.VehicleInfoID = dto.VehicleInfoID; info.ChasisNo = dto.ChasisNo; info.EngineNo = dto.EngineNo; info.Color = dto.Color; info.ManfgDate = dto.MfgDate; info.ServiceBookNo = dto.ServiceBookNo; info.KeyNo = dto.KeyNo; info.BatteryMake = dto.BatteryMake; info.BatteryNo = dto.BatteryNo; info.CreatedDate = dto.CreatedDate; info.Createdby = dto.CreatedBy; info.ModifiedDate = dto.ModifiedDate; info.Modifiedby = dto.ModifiedBy; info.IsMarginPrice = dto.IsMarginPrice; info.Is50PercentMarginPrice = dto.Is50PerMarginPrice; info.Is70PercentMarginPrice = dto.Is70PerMarginPrice; info.ExShowroomPrice = dto.ExShowRoomPrice; info.LT_RT_OtherExp = dto.LT_RT_OtherExp; info.InsurancePrice = dto.InsurancePrice; info.OnRoadPrice = dto.OnRoadPrice; info.MarginPrice = dto.MarginPrice; info.CreditPercentMargin = dto.Margin50; info.FullCashPercentMargin = dto.Margin70; info.WarrantyPrice = dto.WarrantyPrice; entities.SaveChanges(); var invInfo = entities.VehicleInventoryStatus.FirstOrDefault(vi => vi.VehicleInventoryID == dto.VehicleInventoryID); if (invInfo != null) { invInfo.VehicleInventoryStatusTypeID = dto.VehicleInventoryStatusTypeID; invInfo.Remarks = dto.Remarks; invInfo.Modifiedby = dto.ModifiedBy; invInfo.ModifiedDate = dto.ModifiedDate; entities.SaveChanges(); } flag = true; } else { VehicleInventory info = new VehicleInventory() { VehicleInfoID = dto.VehicleInfoID, ChasisNo = dto.ChasisNo, EngineNo = dto.EngineNo, Color = dto.Color, ManfgDate = dto.MfgDate, ServiceBookNo = dto.ServiceBookNo, KeyNo = dto.KeyNo, BatteryNo = dto.BatteryNo, BatteryMake = dto.BatteryMake, CreatedDate = dto.CreatedDate, Createdby = dto.CreatedBy, ModifiedDate = dto.ModifiedDate, Modifiedby = dto.ModifiedBy, IsMarginPrice = dto.IsMarginPrice, Is50PercentMarginPrice = dto.Is50PerMarginPrice, Is70PercentMarginPrice = dto.Is70PerMarginPrice, ExShowroomPrice = dto.ExShowRoomPrice, LT_RT_OtherExp = dto.LT_RT_OtherExp, InsurancePrice = dto.InsurancePrice, OnRoadPrice = dto.OnRoadPrice, MarginPrice = dto.MarginPrice, CreditPercentMargin = dto.Margin50, FullCashPercentMargin = dto.Margin70, WarrantyPrice = dto.WarrantyPrice, }; entities.VehicleInventories.Add(info); entities.SaveChanges(); VehicleInventoryStatu obj = new VehicleInventoryStatu(); obj.VehicleInventoryID = info.VehicleInventoryID; obj.VehicleInventoryStatusTypeID = dto.VehicleInventoryStatusTypeID;//InStock Status obj.Remarks = dto.Remarks; entities.VehicleInventoryStatus.Add(obj); entities.SaveChanges(); flag = true; } } } catch (Exception ex) { throw ex; } return(flag); }
private void VehicleInstall(PlayerSession session, ItemObject playerItemObject, VehicleInventory vehicleInventory, int slotNumber) { //Add attachment to vehicle. vehicleInventory.GiveItemServer(playerItemObject, slotNumber, slotNumber); vehicleInventory.Invalidate(false); //Remove attachment from player inventory playerItemObject.InvalidateStorage(); }
private string VehicleSwitch(PlayerSession session, ItemObject playerItemObject, VehicleInventory vehicleInventory, int slotNumber) { //Give vehicle attachment to player PlayerInventory playerInventory = session.WorldPlayerEntity.GetComponent <PlayerInventory>(); ItemObject vehicleAttach = vehicleInventory.GetSlot(slotNumber); playerInventory.GiveItemServer(vehicleAttach); playerItemObject.InvalidateStorage(); //Add attachment to vehicle vehicleInventory.GiveItemServer(playerItemObject, slotNumber, slotNumber); vehicleInventory.Invalidate(false); return(vehicleAttach.Generator.name); }
public ActionResult AddVehicle(AddVehicleViewModel model) { VehicleInventory vehicle = new VehicleInventory(); var repo = VehicleRepositoryFactory.GetRepository(); var makeRepo = CarMakesRepositoryFactory.GetRepository(); List <CarMakes> carMakes = makeRepo.GetAll(); var makeID = (from make in carMakes where model.CarMakeName == make.MakeName select make.MakeID).FirstOrDefault(); vehicle.MakeID = makeID; var modelRepo = CarModelItemRepositoryFactory.GetRepository(); List <CarModelItem> carModels = modelRepo.GetAll(); var modelID = (from carmodel in carModels where model.ModelName == carmodel.ModelName select carmodel.ModelID).FirstOrDefault(); vehicle.ModelID = modelID; vehicle.SalesTypeID = model.SalesTypeID; vehicle.BodyTypeID = model.BodyTypeID; vehicle.YearBuilt = model.YearBuilt; vehicle.TransmissionID = model.TransmissionID; vehicle.ExtColorID = model.ExtColorID; vehicle.IntColorID = model.IntColorID; vehicle.Mileage = model.Mileage; if (vehicle.SalesTypeID == 1 && vehicle.Mileage > 1000) { ModelState.AddModelError("Mileage", "Mileage on new car must be below 1000"); } if (vehicle.SalesTypeID == 2 && vehicle.Mileage < 1000) { ModelState.AddModelError("Mileage", "Mileage on used car must be above 1000"); } vehicle.VINNumber = model.VINNumber; vehicle.MSRP = model.MSRP; if (vehicle.MSRP < 0) { ModelState.AddModelError("MSRP", "MSRP must be a positive number"); } vehicle.SalesPrice = model.SalesPrice; if (vehicle.SalesPrice < 0) { ModelState.AddModelError("SalesPrice", "Sales price must be a positive number"); } vehicle.VehicleDescription = model.VehicleDescription; vehicle.IsFeaturedVehicle = null; if (model.UploadedFile != null) { if (model.UploadedFile.ContentType != "image/jpeg" && model.UploadedFile.ContentType != "image/jpg" && model.UploadedFile.ContentType != "image/png") { ModelState.AddModelError("UploadedFile", "Please upload a Jpeg, Jpg, or Png file"); } } if (ModelState.IsValid) { repo.AddVehicle(vehicle); if (model.UploadedFile != null && model.UploadedFile.ContentLength > 0) { if (model.UploadedFile.ContentType == "image/jpeg") { vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".jpeg"; string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".jpeg"); model.UploadedFile.SaveAs(path); repo.UpdateVehicle(vehicle); } if (model.UploadedFile.ContentType == "image/png") { vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".png"; string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".png"); model.UploadedFile.SaveAs(path); repo.UpdateVehicle(vehicle); } if (model.UploadedFile.ContentType == "image/jpg") { vehicle.ImageFileName = "inventory-" + vehicle.VehicleID + ".jpg"; string path = Path.Combine(Server.MapPath("~/images"), "inventory-" + vehicle.VehicleID + ".jpg"); model.UploadedFile.SaveAs(path); repo.UpdateVehicle(vehicle); } } return(RedirectToAction("Vehicles")); } else { var mRepo = CarMakesRepositoryFactory.GetRepository(); List <CarMakes> makes = mRepo.GetAll(); var carMakeNames = (from carmake in makes select carmake.MakeName).ToList(); model.CarMakeNames = new SelectList(carMakes, "MakeName", "MakeName", 1); return(View("AddVehicle", model)); } }
private List <int> GetRestrictedSlots(string attach, string vehicleType, VehicleInventory vehicleInventory) { List <int> slots = new List <int>(); List <ESlotType> results = new List <ESlotType>() { ESlotType.None }; switch (attach) { case "rotors": case "rotor": results.Add(ESlotType.MozzyRearRotors); results.Add(ESlotType.MozzyMainRotors); break; case "bumper": results.Add(ESlotType.RoachBullBar); break; case "left": results.Add(vehicleType == "roach" ? ESlotType.RoachLeftPanel : ESlotType.MozzyLeftPanel); break; case "right": results.Add(vehicleType == "roach" ? ESlotType.RoachRightPanel : ESlotType.MozzyRightPanel); break; case "roof": results.Add(vehicleType == "roach" ? ESlotType.RoachRoofBay : ESlotType.MozzyRoofPanel); break; case "rear": switch (vehicleType) { case "roach": results.Add(ESlotType.RoachRearBay); break; case "mozzy": results.Add(ESlotType.MozzyTail); break; case "kanga": results.Add(ESlotType.KangaBackpanel); break; case "goat": results.Add(ESlotType.GoatBackpanel); break; } break; case "front": switch (vehicleType) { case "roach": results.Add(ESlotType.RoachFrontBay); break; case "mozzy": results.Add(ESlotType.MozzyFrontPanel); break; case "kanga": results.Add(ESlotType.KangaFrontpanel); break; case "goat": results.Add(ESlotType.GoatFrontpanel); break; } break; case "tire": case "wheel": switch (vehicleType) { case "roach": results.Add(ESlotType.RoachWheel); break; case "kanga": results.Add(ESlotType.KangaRearWheel); results.Add(ESlotType.KangaFrontWheel); break; case "goat": results.Add(ESlotType.QuadWheel); break; case "slug": results.Add(ESlotType.SlugWheel); break; } break; case "gearbox": case "gear": switch (vehicleType) { case "roach": results.Add(ESlotType.RoachGearbox); break; case "kanga": results.Add(ESlotType.KangaGearbox); break; case "goat": results.Add(ESlotType.QuadGearbox); break; case "slug": results.Add(ESlotType.SlugGearbox); break; } break; case "engine": switch (vehicleType) { case "roach": results.Add(ESlotType.RoachEngine); break; case "mozzy": results.Add(ESlotType.MozzyEngine); break; case "kanga": results.Add(ESlotType.KangaEngine); break; case "goat": results.Add(ESlotType.QuadEngine); break; case "slug": results.Add(ESlotType.SlugEngine); break; } break; default: break; } for (int slotNumber = 0; slotNumber < vehicleInventory.StorageConfig.Slots.Length; ++slotNumber) { StorageSlotConfig storageSlotConfig = vehicleInventory.StorageConfig.Slots[slotNumber]; if (vehicleInventory.GetSlot(storageSlotConfig.SlotNumber) == null) { continue; } List <ESlotType> slotRestrictions = storageSlotConfig.SlotRestrictions; IEnumerable <ESlotType> slot = slotRestrictions.Where(x => results.Contains(x)); if (slot != null && slot.Count() > 0) { slots.Add(slotNumber); } } return(slots); }