using Audio; namespace Harmony.XUiM { internal class XUiM_VehiclePatches { [HarmonyPatch(typeof(XUiM_Vehicle))] [HarmonyPatch("RepairVehicle")] public class RebirthUtilsXUiMFeatures { public static bool Prefix(XUi _xui, Vehicle vehicle = null) { return false; } public static void Postfix(XUi _xui, Vehicle vehicle = null) { if (vehicle == null) { vehicle = _xui.vehicle.GetVehicle(); } ItemValue item; string entityType = vehicle.GetName(); //Log.Out("Entity Type: " + entityType); if (entityType == "vehiclebicycle") { //Log.Out("Is Bicycle"); item = ItemClass.GetItem("FuriousRamsayBikeRepairKit", false); } else { //Log.Out("Is not Bicycle"); item = ItemClass.GetItem("resourceRepairKit", false); } ItemClass itemClass = item.ItemClass; if (itemClass != null) { EntityPlayerLocal entityPlayer = _xui.playerUI.entityPlayer; LocalPlayerUI playerUI = _xui.playerUI; int itemCount = entityPlayer.bag.GetItemCount(item, -1, -1, false); int itemCount2 = entityPlayer.inventory.GetItemCount(item, false, -1, -1); int repairAmountNeeded = vehicle.GetRepairAmountNeeded(); if (itemCount + itemCount2 > 0 && repairAmountNeeded > 0) { vehicle.RepairParts(itemClass.RepairAmount.Value, 100); if (itemCount2 > 0) { entityPlayer.inventory.DecItem(item, 1, false); } else { entityPlayer.bag.DecItem(item, 1, false); } playerUI.xui.CollectedItemList.RemoveItemStack(new ItemStack(item, 1)); Manager.PlayInsidePlayerHead("craft_complete_item", -1); } else if (repairAmountNeeded > itemCount + itemCount2) { Manager.PlayInsidePlayerHead("misc/missingitemtorepair"); GameManager.ShowTooltip(_xui.playerUI.entityPlayer, Localization.Get("xuiRepairMissingMats")); ItemStack @is = new ItemStack(new ItemValue(itemClass.Id, false), 0); _xui.playerUI.entityPlayer.AddUIHarvestingItem(@is, true); } } } } } }