71 lines
2.8 KiB
C#
71 lines
2.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |