Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of SprayPaintTzpReshMod v2.0.4
SprayPaintTzpReshMod.dll
Decompiled 2 years agousing System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using SprayPaintTzpReshMod.Patches; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("SprayPaintTzpReshMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HP")] [assembly: AssemblyProduct("SprayPaintTzpReshMod")] [assembly: AssemblyCopyright("Copyright © HP 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("3fec7b08-f094-4da4-81c7-b273443948cc")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace SprayPaintTzpReshMod { [BepInPlugin("Resh.SprayPaintTzpReshMod", "Spray Paint Tzp Resh Mod", "2.0.4")] public class SprayPaintTzpReshModBase : BaseUnityPlugin { private const string modGUID = "Resh.SprayPaintTzpReshMod"; private const string modName = "Spray Paint Tzp Resh Mod"; private const string modVersion = "2.0.4"; private readonly Harmony harmony = new Harmony("Resh.SprayPaintTzpReshMod"); private static SprayPaintTzpReshModBase Instance; internal ManualLogSource mls; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("Resh.SprayPaintTzpReshMod"); mls.LogInfo((object)"SprayPaintTzp mod is live"); harmony.PatchAll(typeof(SprayPaintTzpReshModBase)); harmony.PatchAll(typeof(SprayPaintItemPatch)); harmony.PatchAll(typeof(TetraChemicalItemPatch)); harmony.PatchAll(typeof(PlayerControllerBPatch)); } } } namespace SprayPaintTzpReshMod.Patches { [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBPatch { private static Dictionary<PlayerControllerB, PlayerControllerData> playerDataMap = new Dictionary<PlayerControllerB, PlayerControllerData>(); [HarmonyPatch("Update")] [HarmonyPostfix] private static void Update(PlayerControllerB __instance) { if (!playerDataMap.TryGetValue(__instance, out var value)) { value = new PlayerControllerData(); playerDataMap[__instance] = value; } FieldInfo fieldInfo = AccessTools.Field(typeof(PlayerControllerB), "drunkness"); FieldInfo fieldInfo2 = AccessTools.Field(typeof(PlayerControllerB), "drunknessInertia"); FieldInfo fieldInfo3 = AccessTools.Field(typeof(PlayerControllerB), "drunknessSpeed"); float num = (float)fieldInfo3.GetValue(__instance); float num2 = (float)fieldInfo2.GetValue(__instance); float num3 = (float)fieldInfo.GetValue(__instance); if (value.drunknessDup < 0.2f) { value.drunknessStage = 1f; } if (value.drunknessDup > 0.3f && value.drunknessDup < 0.85f) { value.drunknessStage = 2f; } if (value.drunknessDup > 0.99f) { value.drunknessStage = 3f; } if (num3 > 0f) { value.drunknessInertiaDup = Mathf.Clamp(num2 * 20f, -0.07f, 100f); } else if (num3 == 0f && value.drunknessDup > 0f) { value.drunknessInertiaDup = -0.07f; } else if (num3 == 0f && value.drunknessDup == 0f) { value.drunknessInertiaDup = 0f; } value.drunknessDup = Mathf.Clamp(value.drunknessDup + Time.deltaTime / 12f * num * value.drunknessInertiaDup, 0f, 1f); FieldInfo fieldInfo4 = AccessTools.Field(typeof(PlayerControllerB), "sprintMultiplier"); FieldInfo fieldInfo5 = AccessTools.Field(typeof(PlayerControllerB), "isSprinting"); FieldInfo fieldInfo6 = AccessTools.Field(typeof(PlayerControllerB), "sprintMeter"); bool flag = (bool)fieldInfo5.GetValue(__instance); float num4 = (float)fieldInfo6.GetValue(__instance); if (value.drunknessStage == 2f && !flag) { fieldInfo4.SetValue(__instance, 1.08f); fieldInfo6.SetValue(__instance, Mathf.Clamp(num4 + 0.0022f, 0f, 1f)); } if (value.drunknessStage == 3f && !flag) { fieldInfo4.SetValue(__instance, 1.08f); fieldInfo6.SetValue(__instance, 1f); } if (value.drunknessStage == 2f && flag) { fieldInfo4.SetValue(__instance, 2.43f); } if (value.drunknessStage == 3f && flag) { fieldInfo4.SetValue(__instance, 2.43f); fieldInfo6.SetValue(__instance, 1f); } } } internal class PlayerControllerData { public float drunknessDup = 0f; public float drunknessInertiaDup = 0f; public float drunknessStage = 1f; } [HarmonyPatch(typeof(SprayPaintItem))] internal class SprayPaintItemPatch { [HarmonyPatch("LateUpdate")] [HarmonyPostfix] private static void LateUpdate(SprayPaintItem __instance) { FieldInfo fieldInfo = AccessTools.Field(typeof(SprayPaintItem), "sprayCanTank"); FieldInfo fieldInfo2 = AccessTools.Field(typeof(SprayPaintItem), "sprayCanShakeMeter"); if (fieldInfo != null) { fieldInfo.SetValue(__instance, 100f); } if (fieldInfo2 != null) { fieldInfo2.SetValue(__instance, 100f); } } [HarmonyPatch("ItemInteractLeftRight")] [HarmonyPostfix] private static void ItemInteractLeftRight(bool right, SprayPaintItem __instance, ref Material[] ___sprayCanMats) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown FieldInfo fieldInfo = AccessTools.Field(typeof(GrabbableObject), "playerHeldBy"); FieldInfo fieldInfo2 = AccessTools.Field(typeof(SprayPaintItem), "isSpraying"); FieldInfo fieldInfo3 = AccessTools.Field(typeof(SprayPaintItem), "sprayCanMatsIndex"); int num = (int)fieldInfo3.GetValue(__instance); PlayerControllerB val = (PlayerControllerB)fieldInfo.GetValue(__instance); if (fieldInfo != null && (Object)(object)val != (Object)null && fieldInfo2 != null) { bool flag = (bool)fieldInfo2.GetValue(__instance); if (!right && !((Object)(object)val == (Object)null) && !flag && fieldInfo3 != null) { num = ((num != ___sprayCanMats.Length - 1) ? (num + 1) : 0); fieldInfo3.SetValue(__instance, num); } } } } [HarmonyPatch(typeof(TetraChemicalItem))] internal class TetraChemicalItemPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void Update(TetraChemicalItem __instance) { FieldInfo fieldInfo = AccessTools.Field(typeof(TetraChemicalItem), "fuel"); if (fieldInfo != null) { fieldInfo.SetValue(__instance, 10f); } } } }