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 AdjustableZeroGravityOrb v1.0.2
AdjustableZeroGravityOrb.dll
Decompiled 2 weeks agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("AdjustableZeroGravityOrb")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("HP")] [assembly: AssemblyProduct("AdjustableZeroGravityOrb")] [assembly: AssemblyCopyright("Copyright © HP 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("f8049082-a42b-485d-95e1-5f1a1c825b3a")] [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 AdjustableZeroGravityOrb; [BepInPlugin("TechedCrayon413.AdjustableOrbRadius", "Adjustable Orb Radius", "1.0.0")] public class AdjustableZeroGravityPlugin : BaseUnityPlugin { public static ConfigEntry<float> OrbRadius; public static ConfigEntry<bool> Enabled; private static FieldInfo _orbRadiusField; private static FieldInfo _orbRadiusOriginalField; private static FieldInfo _orbRadiusMultiplierField; public static ConfigEntry<bool> TargetValuables; public static ConfigEntry<bool> TargetPlayers; public static ConfigEntry<bool> TargetEnemies; public static ConfigEntry<bool> TargetNonValuables; private static FieldInfo _targetValuablesField; private static FieldInfo _targetPlayersField; private static FieldInfo _targetEnemiesField; private static FieldInfo _targetNonValuablesField; private void Awake() { //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogMessage((object)" Hello from TechedCrayon413"); Enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("On/Off Switch", "Radius Adjuster On/Off", true, "Enable mod"); OrbRadius = ((BaseUnityPlugin)this).Config.Bind<float>("Orb Radius Adjuster", "Orb Radius", 4f, "Orb radius"); TargetValuables = ((BaseUnityPlugin)this).Config.Bind<bool>("Orb Effect Options", "Orb Effect Valuables", true, "Should the orb effect valuables?"); TargetPlayers = ((BaseUnityPlugin)this).Config.Bind<bool>("Orb Effect Options", "Orb Effect Players", true, "Should the orb effect players?"); TargetEnemies = ((BaseUnityPlugin)this).Config.Bind<bool>("Orb Effect Options", "Orb Effect Enemies", true, "Should the orb effect enemies?"); TargetNonValuables = ((BaseUnityPlugin)this).Config.Bind<bool>("Orb Effect Options", "Orb Effect Non-Valuables", true, "Should the orb effect non-valuables?"); Harmony harmony = new Harmony("adjustable.orb.radius"); PatchOrb(harmony); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Adjustable Orb Radius loaded"); } private void PatchOrb(Harmony harmony) { //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Expected O, but got Unknown try { Type type = AccessTools.TypeByName("ItemOrb"); if (type == null) { ((BaseUnityPlugin)this).Logger.LogError((object)"Orb class not found: ItemOrb"); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Found orb class: " + type.FullName)); _orbRadiusField = type.GetField("orbRadius", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _orbRadiusOriginalField = type.GetField("orbRadiusOriginal", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _orbRadiusMultiplierField = type.GetField("orbRadiusMultiplier", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _targetValuablesField = type.GetField("targetValuables", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _targetPlayersField = type.GetField("targetPlayers", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _targetEnemiesField = type.GetField("targetEnemies", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); _targetNonValuablesField = type.GetField("targetNonValuables", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); MethodInfo methodInfo = AccessTools.Method(type, "Update", (Type[])null, (Type[])null); if (methodInfo == null) { ((BaseUnityPlugin)this).Logger.LogError((object)"Update method not found on ItemOrb."); return; } MethodInfo method = typeof(AdjustableZeroGravityPlugin).GetMethod("UpdatePostfix", BindingFlags.Static | BindingFlags.Public); harmony.Patch((MethodBase)methodInfo, (HarmonyMethod)null, new HarmonyMethod(method), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogError((object)("Patch failed: " + ex)); } } public static void UpdatePostfix(object __instance) { try { if (Enabled.Value && __instance != null) { float value = OrbRadius.Value; FieldInfo orbRadiusField = _orbRadiusField; if (orbRadiusField != null) { orbRadiusField.SetValue(__instance, value); } FieldInfo orbRadiusOriginalField = _orbRadiusOriginalField; if (orbRadiusOriginalField != null) { orbRadiusOriginalField.SetValue(__instance, value); } FieldInfo orbRadiusMultiplierField = _orbRadiusMultiplierField; if (orbRadiusMultiplierField != null) { orbRadiusMultiplierField.SetValue(__instance, 1f); } FieldInfo targetValuablesField = _targetValuablesField; if (targetValuablesField != null) { targetValuablesField.SetValue(__instance, TargetValuables.Value); } FieldInfo targetPlayersField = _targetPlayersField; if (targetPlayersField != null) { targetPlayersField.SetValue(__instance, TargetPlayers.Value); } FieldInfo targetEnemiesField = _targetEnemiesField; if (targetEnemiesField != null) { targetEnemiesField.SetValue(__instance, TargetEnemies.Value); } FieldInfo targetNonValuablesField = _targetNonValuablesField; if (targetNonValuablesField != null) { targetNonValuablesField.SetValue(__instance, TargetNonValuables.Value); } } } catch { } } } public class Class1 { }