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 10QLS3NutcrackerOnly v1.0.0
10QLS3NutcrackerOnly.dll
Decompiled 9 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using LobbyCompatibility.Attributes; using Microsoft.CodeAnalysis; using Nutcracker_Only.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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("EasyTextEffects")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: AssemblyCompany("NutcrackerOnly")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.4.0")] [assembly: AssemblyInformationalVersion("1.0.4-dev.7+797c04fd33f7fceeef9e894a0336da2a4e3886e0")] [assembly: AssemblyProduct("Nutcracker Only")] [assembly: AssemblyTitle("NutcrackerOnly")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Nutcracker_Only { [BepInPlugin("NutcrackerOnly", "Nutcracker Only", "1.0.4")] [BepInDependency(/*Could not decode attribute arguments.*/)] [LobbyCompatibility(/*Could not decode attribute arguments.*/)] public class NutcrackerOnly : BaseUnityPlugin { public static AssetBundle SecondNutAsset; public static NutcrackerOnly Instance { get; private set; } internal static ManualLogSource Logger { get; private set; } internal static Harmony? Harmony { get; set; } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; Patch(); Logger.LogInfo((object)"NutcrackerOnly v1.0.4 has loaded!"); Logger.LogInfo((object)"I am NutCowBoy!"); } internal static void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("NutcrackerOnly"); } Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(typeof(LevelGen)); Harmony.PatchAll(typeof(NutChanges)); Harmony.PatchAll(typeof(EggSpawns)); Logger.LogDebug((object)"Finished patching!"); } internal static void Unpatch() { Logger.LogDebug((object)"Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } Logger.LogDebug((object)"Finished unpatching!"); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "NutcrackerOnly"; public const string PLUGIN_NAME = "Nutcracker Only"; public const string PLUGIN_VERSION = "1.0.4"; } } namespace Nutcracker_Only.Patches { public class LevelGen { private static SpawnableEnemyWithRarity Crack = StartOfRound.Instance.levels[1].Enemies[8]; private static SpawnableEnemyWithRarity Bracken = StartOfRound.Instance.levels[5].Enemies[5]; private static SpawnableEnemyWithRarity Coil = StartOfRound.Instance.levels[5].Enemies[6]; private static SpawnableEnemyWithRarity GhostGirl = StartOfRound.Instance.levels[5].Enemies[0]; private static SpawnableEnemyWithRarity OutsideNut = new SpawnableEnemyWithRarity(); private static SelectableLevel NutLevel = new SelectableLevel(); private static SelectableLevel previousLevel = new SelectableLevel(); private static EnemyType outCracker = new EnemyType(); [HarmonyPatch(typeof(StartOfRound), "StartGame")] [HarmonyPostfix] public static void MakeOutcracker(StartOfRound __instance) { //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Expected O, but got Unknown outCracker = ScriptableObject.CreateInstance<EnemyType>(); outCracker.enemyName = "Outcracker"; outCracker.probabilityCurve = Crack.enemyType.probabilityCurve; outCracker.spawningDisabled = Crack.enemyType.spawningDisabled; outCracker.spawnFromWeeds = Crack.enemyType.spawnFromWeeds; outCracker.numberSpawnedFalloff = Crack.enemyType.numberSpawnedFalloff; outCracker.useNumberSpawnedFalloff = Crack.enemyType.useNumberSpawnedFalloff; outCracker.enemyPrefab = Crack.enemyType.enemyPrefab; outCracker.PowerLevel = Crack.enemyType.PowerLevel; outCracker.MaxCount = 70; outCracker.numberSpawned = Crack.enemyType.numberSpawned; outCracker.isOutsideEnemy = true; outCracker.isDaytimeEnemy = Crack.enemyType.isDaytimeEnemy; outCracker.increasedChanceInterior = Crack.enemyType.increasedChanceInterior; outCracker.normalizedTimeInDayToLeave = Crack.enemyType.normalizedTimeInDayToLeave; outCracker.stunTimeMultiplier = Crack.enemyType.stunTimeMultiplier; outCracker.doorSpeedMultiplier = Crack.enemyType.doorSpeedMultiplier; outCracker.stunGameDifficultyMultiplier = Crack.enemyType.stunGameDifficultyMultiplier; outCracker.canBeStunned = Crack.enemyType.canBeStunned; outCracker.canDie = Crack.enemyType.canDie; outCracker.canBeDestroyed = Crack.enemyType.canBeDestroyed; outCracker.destroyOnDeath = Crack.enemyType.destroyOnDeath; outCracker.canSeeThroughFog = Crack.enemyType.canSeeThroughFog; outCracker.pushPlayerForce = Crack.enemyType.pushPlayerForce; outCracker.pushPlayerDistance = Crack.enemyType.pushPlayerDistance; outCracker.SizeLimit = Crack.enemyType.SizeLimit; outCracker.timeToPlayAudio = Crack.enemyType.timeToPlayAudio; outCracker.loudnessMultiplier = Crack.enemyType.loudnessMultiplier; outCracker.overrideVentSFX = Crack.enemyType.overrideVentSFX; outCracker.nestSpawnPrefab = Crack.enemyType.nestSpawnPrefab; outCracker.nestSpawnPrefabWidth = Crack.enemyType.nestSpawnPrefabWidth; outCracker.useMinEnemyThresholdForNest = Crack.enemyType.useMinEnemyThresholdForNest; outCracker.hitBodySFX = Crack.enemyType.hitBodySFX; outCracker.hitEnemyVoiceSFX = Crack.enemyType.hitEnemyVoiceSFX; outCracker.deathSFX = Crack.enemyType.deathSFX; outCracker.stunSFX = Crack.enemyType.stunSFX; outCracker.miscAnimations = Crack.enemyType.miscAnimations; outCracker.audioClips = Crack.enemyType.audioClips; OutsideNut = new SpawnableEnemyWithRarity { enemyType = outCracker, rarity = Crack.rarity }; } [HarmonyPatch(typeof(StartOfRound), "StartGame")] [HarmonyPostfix] public static void CreateUpdatedAnimationCurve(StartOfRound __instance) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Expected O, but got Unknown //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Expected O, but got Unknown //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Expected O, but got Unknown //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Expected O, but got Unknown //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Expected O, but got Unknown //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Expected O, but got Unknown //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Expected O, but got Unknown //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Expected O, but got Unknown //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Expected O, but got Unknown SelectableLevel[] levels = __instance.levels; foreach (SelectableLevel val in levels) { Debug.Log((object)val.PlanetName); } __instance.levels[0].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, -3f), new Keyframe(0.195999f, 4.73351f), new Keyframe(0.7593884f, 4.973001f), new Keyframe(1f, 15f) }); __instance.levels[1].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, -3f), new Keyframe(0.4999272f, 6.038967f), new Keyframe(1f, 15f) }); __instance.levels[2].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 1.240476f), new Keyframe(0.504f, 6.507092f), new Keyframe(1f, 15f) }); __instance.levels[4].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, -3f), new Keyframe(0.224f, 4.410501f), new Keyframe(1f, 15f) }); __instance.levels[4].outsideEnemySpawnChanceThroughDay = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, 1f), new Keyframe(0.28f, 2f), new Keyframe(0.8769338f, 3.964059f), new Keyframe(1f, 5.359401f) }); __instance.levels[5].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[5] { new Keyframe(0f, -3f), new Keyframe(0.1625553f, 0.006106406f), new Keyframe(0.504f, 5f), new Keyframe(0.7631003f, 11.27556f), new Keyframe(1f, 15f) }); __instance.levels[6].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, -3f), new Keyframe(0.056f, 2.817775f), new Keyframe(1f, 15f) }); __instance.levels[7].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 2.817775f), new Keyframe(0.336f, 6.660501f), new Keyframe(1f, 15f) }); __instance.levels[8].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, -3f), new Keyframe(0.2077699f, 1.22323f), new Keyframe(0.504f, 7.363626f), new Keyframe(1f, 15f) }); __instance.levels[9].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 5f), new Keyframe(0.504f, 11.27556f), new Keyframe(1f, 15f) }); __instance.levels[10].maxEnemyPowerCount = 24; __instance.levels[10].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 7f), new Keyframe(0.448f, 12f), new Keyframe(1f, 15f) }); __instance.levels[12].enemySpawnChanceThroughoutDay = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 1.516304f), new Keyframe(0.448f, 7.363626f), new Keyframe(1f, 15f) }); } [HarmonyPatch(typeof(RoundManager), "FinishGeneratingLevel")] [HarmonyPostfix] public static void SetNutcrackersOnly(RoundManager __instance) { //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Invalid comparison between Unknown and I4 Crack.rarity = 90; Bracken.rarity = 7; Coil.rarity = 2; GhostGirl.rarity = 1; Crack.enemyType.MaxCount = 30; NutLevel = ScriptableObject.CreateInstance<SelectableLevel>(); NutLevel.Enemies = new List<SpawnableEnemyWithRarity>(); NutLevel.Enemies.Add(Crack); NutLevel.Enemies.Add(Bracken); NutLevel.Enemies.Add(Coil); NutLevel.Enemies.Add(GhostGirl); NutLevel.OutsideEnemies = new List<SpawnableEnemyWithRarity>(); NutLevel.OutsideEnemies.Add(OutsideNut); __instance.scrapValueMultiplier = 0f; if ((int)__instance.currentLevel.currentWeather == 5) { previousLevel = ScriptableObject.CreateInstance<SelectableLevel>(); previousLevel.levelID = __instance.currentLevel.levelID; previousLevel.OutsideEnemies = ((IEnumerable<SpawnableEnemyWithRarity>)__instance.currentLevel.OutsideEnemies).Select((Func<SpawnableEnemyWithRarity, SpawnableEnemyWithRarity>)((SpawnableEnemyWithRarity e) => new SpawnableEnemyWithRarity { enemyType = e.enemyType, rarity = e.rarity })).ToList(); __instance.currentLevel.OutsideEnemies.Clear(); __instance.currentLevel.OutsideEnemies.Add(NutLevel.OutsideEnemies[0]); } if (__instance.currentLevel.levelID == 0) { __instance.currentLevel.Enemies.Clear(); __instance.currentLevel.Enemies.Add(NutLevel.Enemies[0]); __instance.minEnemiesToSpawn = 1; return; } if (__instance.currentLevel.levelID == 4) { __instance.currentLevel.OutsideEnemies.Clear(); __instance.currentLevel.OutsideEnemies.Add(NutLevel.OutsideEnemies[0]); } if (__instance.currentLevel.levelID == 9) { Crack.enemyType.MaxCount = 45; } if (__instance.currentLevel.levelID == 10) { Crack.enemyType.MaxCount = 70; } __instance.currentLevel.Enemies.Clear(); __instance.currentLevel.Enemies.Add(NutLevel.Enemies[0]); __instance.minEnemiesToSpawn = 2; } [HarmonyPatch(typeof(RoundManager), "UnloadSceneObjectsEarly")] [HarmonyPostfix] public static void RevertEclipsed(RoundManager __instance) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 if ((int)__instance.currentLevel.currentWeather == 5) { __instance.currentLevel.OutsideEnemies = previousLevel.OutsideEnemies; } } } public class NutChanges { [HarmonyPatch(typeof(NutcrackerEnemyAI), "GrabGun")] [HarmonyPrefix] public static bool RedoShotgun(NutcrackerEnemyAI __instance) { return false; } [HarmonyPatch(typeof(NutcrackerEnemyAI), "GrabGun")] [HarmonyPostfix] public static void SetScrapValue(NutcrackerEnemyAI __instance, GameObject gunObject) { __instance.gun = gunObject.GetComponent<ShotgunItem>(); if ((Object)(object)__instance.gun == (Object)null) { ((EnemyAI)__instance).LogEnemyError("Gun in GrabGun function did not contain ShotgunItem component."); return; } Debug.Log((object)"Setting gun scrap value"); ((GrabbableObject)__instance.gun).SetScrapValue(60); RoundManager instance = RoundManager.Instance; instance.totalScrapValueInLevel += (float)((GrabbableObject)__instance.gun).scrapValue; ((GrabbableObject)__instance.gun).parentObject = __instance.gunPoint; ((GrabbableObject)__instance.gun).isHeldByEnemy = true; ((GrabbableObject)__instance.gun).grabbableToEnemies = false; ((GrabbableObject)__instance.gun).grabbable = false; __instance.gun.shellsLoaded = 2; ((GrabbableObject)__instance.gun).GrabItemFromEnemy((EnemyAI)(object)__instance); } [HarmonyPatch(typeof(NutcrackerEnemyAI), "SpawnShotgunShells")] [HarmonyPrefix] public static bool RedoShells(NutcrackerEnemyAI __instance) { return false; } [HarmonyPatch(typeof(NutcrackerEnemyAI), "Update")] [HarmonyPostfix] public static void CheckIfOutside(NutcrackerEnemyAI __instance) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) if ((double)((Component)__instance).transform.position.y > -80.0) { ((EnemyAI)__instance).SetEnemyOutside(true); } } } public class EggSpawns { private static SpawnableItemWithRarity Egg = StartOfRound.Instance.levels[0].spawnableScrap[22]; private static SelectableLevel EggLevel = new SelectableLevel(); [HarmonyPatch(typeof(RoundManager), "FinishGeneratingLevel")] [HarmonyPostfix] public static void SetEggsOnly(RoundManager __instance) { EggLevel = ScriptableObject.CreateInstance<SelectableLevel>(); EggLevel.spawnableScrap = new List<SpawnableItemWithRarity>(); EggLevel.spawnableScrap.Add(Egg); __instance.currentLevel.spawnableScrap.Clear(); __instance.currentLevel.spawnableScrap.Add(EggLevel.spawnableScrap[0]); } [HarmonyPatch(typeof(RoundManager), "waitForScrapToSpawnToSync")] [HarmonyPostfix] public static void SetValueToZero(RoundManager __instance, NetworkObjectReference[] spawnedScrap, int[] scrapValues) { foreach (int num in scrapValues) { Debug.Log((object)num); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }