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 NoxFerit v1.2.0
NoxFerit.dll
Decompiled a year agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using NoxFerit.Patches; using Unity.Netcode; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("NoxFerit")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("NoxFerit")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("1ba6a3c9-91e0-401b-a30f-38752c20cd00")] [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 NoxFerit { [BepInPlugin("aslimeinahoodie.NoxFerit", "Nox Ferit", "1.2.0")] public class NFBase : BaseUnityPlugin { private const string modGUID = "aslimeinahoodie.NoxFerit"; private const string modName = "Nox Ferit"; private const string modVersion = "1.2.0"; private readonly Harmony harmony = new Harmony("aslimeinahoodie.NoxFerit"); private static NFBase Instance; internal static ManualLogSource Logger; internal static bool hasNightStruck; internal static float normalizedTimeOfDay; internal static float currentDayTime; internal static float totalTime; internal static float scrapAmountMultiplier; internal static bool isDoubledJump; internal static bool isServer; internal static bool hasMonstersSpawned; internal static float Multiplier; internal static float nightStrikeTime; internal static int ventCount; private void Awake() { hasNightStruck = false; hasMonstersSpawned = false; if ((Object)(object)Instance == (Object)null) { Instance = this; } Logger = ((BaseUnityPlugin)this).Logger; Logger.LogInfo((object)"The Nox Oculus has opened..."); harmony.PatchAll(typeof(NFBase)); harmony.PatchAll(typeof(RoundManagerPatch)); harmony.PatchAll(typeof(TimeOfDayPatch)); ConfigEntry<float> val = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Multiplier", 1.5f, "A multiplier to change how much scrap spawns, as well as how many enemies spawn. (1 = +100%, 2.5 = +250%)."); ConfigEntry<float> obj = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Night Strikes Time", 6f, "Roughly how many hours have past (including 8 am) before Night Strikes (Range between 1 for 8am, 6 for 1pm, and 15 for 12am)."); Multiplier = val.Value; nightStrikeTime = obj.Value; if (nightStrikeTime > 15f || nightStrikeTime < 1f) { nightStrikeTime = 11f; } } } } namespace NoxFerit.Patches { [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBCheats { [HarmonyPatch("Update")] [HarmonyPostfix] private static void patchUpdate(ref float ___sprintMeter) { if (___sprintMeter < 1f) { ___sprintMeter = 1f; } } [HarmonyPatch("DamagePlayer")] [HarmonyPrefix] private static void patchDamagePlayer(ref int damageNumber, PlayerControllerB __instance) { damageNumber = 0; NFBase.Logger.LogInfo((object)"Godmode saved you from taking damage"); } [HarmonyPatch("KillPlayer")] [HarmonyPrefix] private static void patchKillPlayerPrefix(ref bool ___isPlayerDead) { ___isPlayerDead = true; } [HarmonyPatch("KillPlayer")] [HarmonyPostfix] private static void patchKillPlayerPostfix(ref bool ___isPlayerDead) { ___isPlayerDead = false; NFBase.Logger.LogInfo((object)"Godmode saved you from dying"); } [HarmonyPatch("AllowPlayerDeath")] [HarmonyPrefix] private static bool patchAllowPlayerDeath() { NFBase.Logger.LogInfo((object)"Godmode saved you from dying"); return false; } } [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBPatch { [HarmonyPatch("PlayerJump")] [HarmonyPrefix] private static void patchPlayerJump() { NFBase.Logger.LogDebug((object)(" timeLeft: " + ((double)NFBase.nightStrikeTime * 0.06666 - (double)NFBase.normalizedTimeOfDay) * 900.0 + " \n normalizedTimeOfDay: " + NFBase.normalizedTimeOfDay + " \n currentDatTime / totalTime: " + NFBase.currentDayTime + "/" + NFBase.totalTime + " \n hasNightStruck: " + NFBase.hasNightStruck + " \n scrapAmountMultiplier: " + NFBase.scrapAmountMultiplier + " \n configMultiplier: " + NFBase.Multiplier + " \n configNightStrikeTime: " + NFBase.nightStrikeTime + " \n ventCount: " + NFBase.ventCount + " \n isServer: " + NFBase.isServer)); } } [HarmonyPatch(typeof(RoundManager))] internal class RoundManagerPatch { private static RoundManager instance; [HarmonyPatch("SpawnScrapInLevel")] [HarmonyPrefix] private static void patchSpawnScrapInLevel(ref float ___scrapAmountMultiplier) { if (NFBase.isServer) { NFBase.hasNightStruck = false; NFBase.hasMonstersSpawned = false; NFBase.scrapAmountMultiplier = ___scrapAmountMultiplier; } } [HarmonyPatch(typeof(RoundManager), "Update")] [HarmonyPostfix] private static void updatePostPatch(RoundManager __instance) { if (!NFBase.isServer) { return; } if (NFBase.ventCount != __instance.allEnemyVents.Length) { NFBase.ventCount = __instance.allEnemyVents.Length; NFBase.Logger.LogDebug((object)("allEnemyVents populated with count: " + NFBase.ventCount)); } if (!NFBase.hasNightStruck) { return; } if (!NFBase.hasMonstersSpawned) { NFBase.hasMonstersSpawned = true; __instance.currentMaxInsidePower += (float)NFBase.ventCount * NFBase.Multiplier; } if (!(__instance.currentEnemyPower < __instance.currentMaxInsidePower)) { return; } __instance.PlotOutEnemiesForNextHour(); for (int i = 0; i < __instance.allEnemyVents.Length; i++) { if (__instance.allEnemyVents[i].occupied) { __instance.SpawnEnemyFromVent(__instance.allEnemyVents[i]); NFBase.Logger.LogDebug((object)("Found enemy vent: " + ((Object)((Component)__instance.allEnemyVents[i]).gameObject).name + ". Spawning " + __instance.allEnemyVents[i].enemyType.enemyName + " from vent.")); } } } [HarmonyPatch(typeof(RoundManager), "Start")] [HarmonyPostfix] private static void StartPostPatch(RoundManager __instance) { NFBase.isServer = ((NetworkBehaviour)__instance).IsServer; if (NFBase.isServer) { __instance.scrapAmountMultiplier += NFBase.Multiplier; } } } [HarmonyPatch(typeof(TimeOfDay))] internal class TimeOfDayPatch { [HarmonyPatch("MoveTimeOfDay")] [HarmonyPostfix] private static void patchMoveTimeOfDay(ref float ___normalizedTimeOfDay, ref float ___currentDayTime, ref float ___totalTime) { NFBase.currentDayTime = ___currentDayTime; NFBase.totalTime = ___totalTime; if (___normalizedTimeOfDay * 900f >= NFBase.nightStrikeTime * 60f && !NFBase.hasNightStruck) { NFBase.Logger.LogInfo((object)"Night strikes..."); NFBase.hasNightStruck = true; } NFBase.normalizedTimeOfDay = ___normalizedTimeOfDay; } } }