Upload from upload_mods.ps1
This commit is contained in:
93
Harmony/Harmony_VehiclePart.cs
Normal file
93
Harmony/Harmony_VehiclePart.cs
Normal file
@@ -0,0 +1,93 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Harmony.VehiclePartPatches
|
||||
{
|
||||
[HarmonyPatch(typeof(VehiclePart))]
|
||||
[HarmonyPatch("IsBroken")]
|
||||
public class DamageVehiclePartPatch
|
||||
{
|
||||
public static bool Prefix(VehiclePart __instance, ref bool __result,
|
||||
Vehicle ___vehicle
|
||||
)
|
||||
{
|
||||
__result = false;
|
||||
|
||||
//Log.Out("VehiclePartPatches-IsBroken START");
|
||||
|
||||
if (___vehicle.GetHealth() <= 0)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken 1");
|
||||
__result = true;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken 2");
|
||||
|
||||
if (___vehicle.entity.HasDriver && ___vehicle.entity is global::EntityVehicleRebirth)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken 3");
|
||||
global::EntityVehicleRebirth entityVehicle = (global::EntityVehicleRebirth)___vehicle.entity;
|
||||
|
||||
if (___vehicle.entity.EntityClass.Properties.Values.ContainsKey("VehicleType"))
|
||||
{
|
||||
string vehicleType = ___vehicle.entity.EntityClass.Properties.Values["VehicleType"];
|
||||
|
||||
//Log.Out("VehiclePartPatches-IsBroken 4, vehicleType: " + vehicleType);
|
||||
|
||||
int currentPart = 0;
|
||||
|
||||
foreach (string vehicleTypeKey in RebirthVariables.localVehicleTypes.Keys)
|
||||
{
|
||||
if (vehicleType == vehicleTypeKey)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken 5");
|
||||
|
||||
List<RepairableVehicleSlotsEnum> partsList = RebirthVariables.localVehicleTypes[vehicleTypeKey];
|
||||
|
||||
//Log.Out("VehiclePartPatches-IsBroken 6, partsList.Count: " + partsList.Count);
|
||||
|
||||
for (int i = 0; i < partsList.Count; i++)
|
||||
{
|
||||
RepairableVehicleSlotsEnum partName = partsList[i];
|
||||
|
||||
//Log.Out("VehiclePartPatches-IsBroken 7, partName: " + partName);
|
||||
|
||||
foreach (RepairableVehicleSlotsEnum key in RebirthVariables.localVehicleParts.Keys)
|
||||
{
|
||||
if (key == partName && RebirthVariables.localVehicleParts[key].requiredToOperate)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken 6");
|
||||
if (entityVehicle.itemValues[i].type == ItemValue.None.type)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken MISSING OR BROKEN: " + partName);
|
||||
__result = true;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
int maxUSerTimes = entityVehicle.itemValues[i].MaxUseTimes;
|
||||
int useTimes = (int)entityVehicle.itemValues[i].UseTimes;
|
||||
|
||||
bool flag = entityVehicle.itemValues[i].MaxUseTimes - entityVehicle.itemValues[i].UseTimes == 0;
|
||||
|
||||
if (flag)
|
||||
{
|
||||
//Log.Out("VehiclePartPatches-IsBroken MISSING OR BROKEN: " + partName);
|
||||
__result = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user