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 Sell Dead Enemies Mod v1.2.0
SellCorpses.dll
Decompiled 2 years agousing System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using LethalLib.Modules; using SellCorpses; using SellCorpses.Patches; using Unity.Netcode; 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("SellCorpses")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SellCorpses")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("d874e430-3aad-4944-bee0-1f37913276e4")] [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 ViniMod.Patches { [HarmonyPatch(typeof(RoundManager))] internal class RoundManagerPatch { [HarmonyPatch(typeof(RoundManager), "LoadNewLevel")] [HarmonyPrefix] public static void spawnYippees(ref List<EnemyAI> ___SpawnedEnemies, ref SelectableLevel newLevel) { EnemyAI val = null; for (int i = 0; i < newLevel.Enemies.Count; i++) { newLevel.maxEnemyPowerCount = 1000; newLevel.Enemies[i].rarity = 0; if ((Object)(object)newLevel.Enemies[i].enemyType.enemyPrefab.GetComponent<HoarderBugAI>() != (Object)null) { newLevel.Enemies[i].rarity = 999; val = (EnemyAI)(object)newLevel.Enemies[i].enemyType.enemyPrefab.GetComponent<HoarderBugAI>(); newLevel.Enemies[i].enemyType.MaxCount = 40; SellCorpsesBase.mls.LogDebug((object)("Found a " + ((Object)val).name)); } else { SellCorpsesBase.mls.LogDebug((object)("Found a " + ((Object)newLevel.Enemies[i].enemyType).name + ":(")); } } } } } namespace SellCorpses { [BepInPlugin("SellCorpsesMod", "Sell corpses mod", "1.2")] public class SellCorpsesBase : BaseUnityPlugin { private const string modGUID = "SellCorpsesMod"; private const string modName = "Sell corpses mod"; private const string modVersion = "1.2"; private const string assetPackageName = "SellCorpses"; private readonly Harmony harmony = new Harmony("SellCorpsesMod"); public static SellCorpsesBase Instance; public static ManualLogSource mls; public static Item deadHoardingBug; public static Item deadSpider; public static Item deadCentipede; public static Item deadEyelessDog; public static Item deadThumper; public static Item deadNutcracker; public static Item deadBaboonHawk; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("SellCorpsesMod"); mls.LogDebug((object)"ViniMod has awoken!"); mls.LogDebug((object)"Config has awoken!"); mls = ((BaseUnityPlugin)this).Logger; string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "SellCorpses"); mls.LogDebug((object)File.Exists(text)); AssetBundle val = AssetBundle.LoadFromFile(text); deadHoardingBug = val.LoadAsset<Item>("Assets/ViniStuffs/DeadHoarderBugItem.asset"); deadBaboonHawk = val.LoadAsset<Item>("Assets/ViniStuffs/DeadBaboonHawkItem.asset"); deadCentipede = val.LoadAsset<Item>("Assets/ViniStuffs/DeadCentipedeItem.asset"); deadThumper = val.LoadAsset<Item>("Assets/ViniStuffs/DeadCrawlerItem.asset"); deadEyelessDog = val.LoadAsset<Item>("Assets/ViniStuffs/DeadEyelessDogItem.asset"); deadNutcracker = val.LoadAsset<Item>("Assets/ViniStuffs/DeadNutcrackerItem.asset"); deadSpider = val.LoadAsset<Item>("Assets/ViniStuffs/DeadSandSpiderItem.asset"); NetworkPrefabs.RegisterNetworkPrefab(deadHoardingBug.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadBaboonHawk.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadCentipede.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadThumper.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadEyelessDog.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadNutcracker.spawnPrefab); NetworkPrefabs.RegisterNetworkPrefab(deadSpider.spawnPrefab); Utilities.FixMixerGroups(deadHoardingBug.spawnPrefab); Utilities.FixMixerGroups(deadBaboonHawk.spawnPrefab); Utilities.FixMixerGroups(deadCentipede.spawnPrefab); Utilities.FixMixerGroups(deadThumper.spawnPrefab); Utilities.FixMixerGroups(deadEyelessDog.spawnPrefab); Utilities.FixMixerGroups(deadSpider.spawnPrefab); Utilities.FixMixerGroups(deadNutcracker.spawnPrefab); Items.RegisterScrap(deadHoardingBug, 0, (LevelTypes)1); Items.RegisterScrap(deadBaboonHawk, 0, (LevelTypes)1); Items.RegisterScrap(deadCentipede, 0, (LevelTypes)1); Items.RegisterScrap(deadThumper, 0, (LevelTypes)1); Items.RegisterScrap(deadEyelessDog, 0, (LevelTypes)1); Items.RegisterScrap(deadNutcracker, 0, (LevelTypes)1); Items.RegisterScrap(deadSpider, 0, (LevelTypes)1); harmony.PatchAll(typeof(SellCorpsesBase)); harmony.PatchAll(typeof(HoardingBugPatch)); harmony.PatchAll(typeof(BaboonHawkPatch)); harmony.PatchAll(typeof(CentipedePatch)); harmony.PatchAll(typeof(EyelessDogPatch)); harmony.PatchAll(typeof(NutcrackerPatch)); harmony.PatchAll(typeof(SandSpiderPatch)); harmony.PatchAll(typeof(ThumperPatch)); } } } namespace SellCorpses.Patches { internal class ThumperPatch { [HarmonyPatch(typeof(CrawlerAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(CrawlerAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadThumper.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 100; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class CentipedePatch { [HarmonyPatch(typeof(CentipedeAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(CentipedeAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadCentipede.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 40; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class BaboonHawkPatch { [HarmonyPatch(typeof(BaboonBirdAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(BaboonBirdAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadBaboonHawk.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 80; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class SandSpiderPatch { [HarmonyPatch(typeof(SandSpiderAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(SandSpiderAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadSpider.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 160; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class EyelessDogPatch { [HarmonyPatch(typeof(MouthDogAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(MouthDogAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadEyelessDog.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 180; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class NutcrackerPatch { [HarmonyPatch(typeof(NutcrackerEnemyAI), "SpawnShotgunShells")] [HarmonyPostfix] public static void spawnDeadBody(NutcrackerEnemyAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadNutcracker.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 100; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } internal class HoardingBugPatch { [HarmonyPatch(typeof(HoarderBugAI), "KillEnemy")] [HarmonyPostfix] public static void spawnDeadBody(HoarderBugAI __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(SellCorpsesBase.deadHoardingBug.spawnPrefab, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation); GrabbableObject component = val.GetComponent<GrabbableObject>(); ((Component)component).transform.rotation = Quaternion.Euler(component.itemProperties.restingRotation); component.fallTime = 0f; component.scrapValue = 60; NetworkObject component2 = val.GetComponent<NetworkObject>(); component2.Spawn(false); Debug.Log((object)"Despawn network object in kill enemy called!"); RoundManager.Instance.DespawnEnemyOnServer(((Component)__instance).GetComponent<NetworkObject>()); } } }