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 ComeBackMod v1.0.0
ComebackMod.dll
Decompiled 10 months agousing System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using ComebackMod.Patches; using HarmonyLib; 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("ComebackMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ComebackMod")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("1d6b8d31-4795-4b8a-b102-b2008b98fa0e")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace ComebackMod { [BepInPlugin("Legmr.ComeBackMod", "ComeBackMod", "1.0.0")] public class ComeBackModMain : BaseUnityPlugin { private const string modGUID = "Legmr.ComeBackMod"; private const string modName = "ComeBackMod"; private const string modVersion = "1.0.0"; private readonly Harmony harmony = new Harmony("Legmr.ComeBackMod"); private static ComeBackModMain Instacne; internal ManualLogSource mls; private void Awake() { if ((Object)(object)Instacne == (Object)null) { Instacne = this; } mls = Logger.CreateLogSource("Legmr.ComeBackMod"); mls.LogInfo((object)"The Comeback Mod has Begun."); harmony.PatchAll(typeof(ComeBackModMain)); harmony.PatchAll(typeof(RoundManagerChanges)); } } } namespace ComebackMod.Patches { [HarmonyPatch(typeof(RoundManager))] internal class RoundManagerChanges { private static GameObject _ship; private static int enemyMinAmount; [HarmonyPatch("SpawnScrapInLevel")] [HarmonyPrefix] private static void PatchInitailLoad(ref float ___scrapAmountMultiplier, ref float ___scrapValueMultiplier, ref TimeOfDay ___timeScript) { _ship = GameObject.Find("/Environment/HangarShip"); float num = CalculateLootValue(); if (___timeScript.timesFulfilledQuota < 7 || !(num <= (float)___timeScript.profitQuota)) { return; } float num2 = (float)___timeScript.profitQuota - num - (float)(___timeScript.daysUntilDeadline * (50 * ___timeScript.timesFulfilledQuota)); if (!(num2 > 0f)) { return; } if (___timeScript.timesFulfilledQuota >= 5) { if (num2 >= 500f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 0.6f; ___scrapAmountMultiplier = 1.2f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.5f; ___scrapAmountMultiplier = 1.1f; enemyMinAmount = 1; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.45f; ___scrapAmountMultiplier = 1.05f; enemyMinAmount = 0; } } else if (num2 >= 1500f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 0.65f; ___scrapAmountMultiplier = 1.3f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.55f; ___scrapAmountMultiplier = 1.15f; enemyMinAmount = 1; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.5f; ___scrapAmountMultiplier = 1.05f; enemyMinAmount = 0; } } } else if (___timeScript.timesFulfilledQuota >= 8) { if (num2 >= 1000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 1f; ___scrapAmountMultiplier = 1.6f; enemyMinAmount = 3; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.7f; ___scrapAmountMultiplier = 1.3f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.4f; ___scrapAmountMultiplier = 1.1f; enemyMinAmount = 1; } } else if (num2 >= 3000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 1.1f; ___scrapAmountMultiplier = 1.8f; enemyMinAmount = 4; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.7f; ___scrapAmountMultiplier = 1.1f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.45f; ___scrapAmountMultiplier = 1.05f; enemyMinAmount = 1; } } } else if (___timeScript.timesFulfilledQuota >= 12) { if (num2 >= 2000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 1.3f; ___scrapAmountMultiplier = 1.9f; enemyMinAmount = 4; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.9f; ___scrapAmountMultiplier = 1.6f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.6f; ___scrapAmountMultiplier = 1.2f; enemyMinAmount = 1; } } else if (num2 >= 6000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 1.7f; ___scrapAmountMultiplier = 2.3f; enemyMinAmount = 7; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 0.9f; ___scrapAmountMultiplier = 1.5f; enemyMinAmount = 3; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.5f; ___scrapAmountMultiplier = 1.1f; enemyMinAmount = 1; } } } else { if (___timeScript.timesFulfilledQuota < 18) { return; } if (num2 >= 2000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 1.5f; ___scrapAmountMultiplier = 2.1f; enemyMinAmount = 5; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 1.1f; ___scrapAmountMultiplier = 1.7f; enemyMinAmount = 2; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.7f; ___scrapAmountMultiplier = 1.3f; enemyMinAmount = 1; } } else if (num2 >= 8000f) { if (___timeScript.daysUntilDeadline == 1) { ___scrapValueMultiplier = 2f; ___scrapAmountMultiplier = 2.7f; enemyMinAmount = 9; } else if (___timeScript.daysUntilDeadline == 2) { ___scrapValueMultiplier = 1.4f; ___scrapAmountMultiplier = 1.9f; enemyMinAmount = 5; } else if (___timeScript.daysUntilDeadline == 3) { ___scrapValueMultiplier = 0.7f; ___scrapAmountMultiplier = 1.3f; enemyMinAmount = 2; } } } } private static float CalculateLootValue() { List<GrabbableObject> source = (from obj in _ship.GetComponentsInChildren<GrabbableObject>() where obj.itemProperties.isScrap && !(obj is RagdollGrabbableObject) select obj).ToList(); return source.Sum((GrabbableObject scrap) => scrap.scrapValue); } [HarmonyPatch("ResetEnemySpawningVariables")] [HarmonyPostfix] private static void ChangeEnemyAmount() { RoundManager.Instance.minEnemiesToSpawn = enemyMinAmount; } } }