Decompiled source of Monster Plushies v1.2.9

MonsterPlushies.dll

Decompiled 7 months ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using CSync.Lib;
using CSync.Util;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
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: AssemblyCompany("MonsterPlushies")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("MonsterPlushies")]
[assembly: AssemblyTitle("MonsterPlushies")]
[assembly: AssemblyVersion("1.0.0.0")]
[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 MonsterPlushies
{
	[DataContract]
	public class MyConfig : SyncedConfig<MyConfig>
	{
		[DataMember]
		public SyncedEntry<int> BrackenSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> BrackenSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> BrackenSpawnMoonsList;

		public MyConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			ConfigManager.Register<MyConfig>(this);
			BrackenSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Bracken Spawn Settings", "Bracken Plushie Spawn Weight", 20, "The chance for a Bracken Plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			BrackenSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Bracken Spawn Settings", "Bracken Plushie Spawn All Moons", true, "If true the Bracken plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			BrackenSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Bracken Spawn Settings", "Bracken Plushie Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class CoilConfig : SyncedConfig<CoilConfig>
	{
		[DataMember]
		public SyncedEntry<int> CoilSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> CoilSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> CoilSpawnMoonsList;

		public CoilConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			CoilSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Coil Head Spawn Settings", "Coil Head Plushie Spawn Weight", 20, "The chance for a Coil Head Plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			CoilSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Coil Head Spawn Settings", "Coil Head Plushie Spawn All Moons", true, "If true the Coil Head plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			CoilSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Coil Head Spawn Settings", "Coil Head Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class ComedyTragedyConfig : SyncedConfig<ComedyTragedyConfig>
	{
		[DataMember]
		public SyncedEntry<int> CTSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> CTSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> CTSpawnMoonsList;

		public ComedyTragedyConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			CTSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Masked Spawn Settings", "Masked Plushie Spawn Weight", 10, "The chance for a Masked plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			CTSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Masked Spawn Settings", "Masked Plushie Spawn All Moons", false, "If true the Masked plushies will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			CTSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Masked Spawn Settings", "Masked Moon spawn List", "Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class BunkerSpiderConfig : SyncedConfig<BunkerSpiderConfig>
	{
		[DataMember]
		public SyncedEntry<int> BunkSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> BunkSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> BunkSpawnMoonsList;

		public BunkerSpiderConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			BunkSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Bunker Spider Spawn Settings", "Bunker Spider Plushie Spawn Weight", 25, "The chance for a Bunker Spider plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			BunkSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Bunker Spider Spawn Settings", "Bunker Spider SpawnAll Moons", true, "If true the Bunker Spider plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			BunkSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Bunker Spider Spawn Settings", "Bunker Spider Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class LootbugConfig : SyncedConfig<LootbugConfig>
	{
		[DataMember]
		public SyncedEntry<int> LootSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> LootSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> LootSpawnMoonsList;

		public LootbugConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			LootSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Hoarding bug Spawn Settings", "Hoarding bug Plushie Spawn Weight", 25, "The chance for a Hoarding bug plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			LootSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Hoarding bug Spawn Settings", "Hoarding bug SpawnAll Moons", true, "If true the Hoarding bug plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			LootSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Hoarding bug Spawn Settings", "Hoarding bug Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class JeConfig : SyncedConfig<JeConfig>
	{
		[DataMember]
		public SyncedEntry<int> JestSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> JestSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> JestSpawnMoonsList;

		public JeConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			JestSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Jester Spawn Settings", "Jester Plushie Spawn Weight", 5, "The chance for a Jester plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			JestSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Jester Spawn Settings", "Jester SpawnAll Moons", false, "If true the Jester plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			JestSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Jester Spawn Settings", "Jester Moon spawn List", "Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class GiantConfig : SyncedConfig<GiantConfig>
	{
		[DataMember]
		public SyncedEntry<int> GiantSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> GiantSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> GiantSpawnMoonsList;

		public GiantConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			GiantSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Forest Keeper Spawn Settings", "Forest Keeper Plushie Spawn Weight", 15, "The chance for a Forest Keeper plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			GiantSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Forest Keeper Spawn Settings", "Forest Keeper SpawnAll Moons", true, "If true the Forest Keeper plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			GiantSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Forest Keeper Spawn Settings", "Forest Keeper Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class nutConfig : SyncedConfig<nutConfig>
	{
		[DataMember]
		public SyncedEntry<int> NutSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> NutSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> NutSpawnMoonsList;

		public nutConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			NutSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Nutcracker Spawn Settings", "Nutcracker Plushie Spawn Weight", 10, "The chance for a Nutcracker plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			NutSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Nutcracker Spawn Settings", "Nutcracker SpawnAll Moons", false, "If true the Nutcracker plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			NutSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Nutcracker Spawn Settings", "Nutcracker Moon spawn List", "Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class eyeConfig : SyncedConfig<eyeConfig>
	{
		[DataMember]
		public SyncedEntry<int> DogSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> DogSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> DogSpawnMoonsList;

		public eyeConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			DogSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Eyeless Dog Spawn Settings", "Eyeless Dog Plushie Spawn Weight", 15, "The chance for an Eyeless Dog plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			DogSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Eyeless Dog Spawn Settings", "Eyeless Dog SpawnAll Moons", true, "If true the Eyeless Dog plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			DogSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Eyeless Dog Spawn Settings", "Eyeless Dog Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[DataContract]
	public class ThumperConfig : SyncedConfig<ThumperConfig>
	{
		[DataMember]
		public SyncedEntry<int> ThumpSpawnWeight;

		[DataMember]
		public SyncedEntry<bool> ThumpSpawnAllMoons;

		[DataMember]
		public SyncedEntry<string> ThumpSpawnMoonsList;

		public ThumperConfig(ConfigFile cfg)
			: base("scin.monsterplushies")
		{
			ThumpSpawnWeight = Extensions.BindSyncedEntry<int>(cfg, "Thumper Spawn Settings", "Thumper Plushie Spawn Weight", 15, "The chance for a Thumper plushie to spawn, Usually between 1-100. Just dont set it super high unless you want to see this thing EVERYWHERE");
			ThumpSpawnAllMoons = Extensions.BindSyncedEntry<bool>(cfg, "Thumper Spawn Settings", "Thumper SpawnAll Moons", true, "If true the Thumper plushie will spawn on all the moons, if false then it will only spawn on the moons set in the moons list");
			ThumpSpawnMoonsList = Extensions.BindSyncedEntry<string>(cfg, "Thumper Spawn Settings", "Thumper Moon spawn List", "Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan", "List of moons for the plushie to spawn on (Experimentation, Assurance, Vow, Offense, March, Rend, Dine, Titan). Only works if Spawn all moons is off");
		}
	}
	[BepInPlugin("scin.monsterplushies", "Monster Plushies", "1.2.9")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class MonsterPlushies : BaseUnityPlugin
	{
		private const string GUID = "scin.monsterplushies";

		private const string NAME = "Monster Plushies";

		private const string VERSION = "1.2.9";

		public static MonsterPlushies? instance;

		private MyConfig config;

		private CoilConfig cconfig;

		private ComedyTragedyConfig ctconfig;

		private BunkerSpiderConfig bsConfig;

		private LootbugConfig lConfig;

		private JeConfig JConfig;

		private GiantConfig GConfig;

		private nutConfig nutcrackConfig;

		private eyeConfig dogConfig;

		private ThumperConfig thumpConfig;

		private void Awake()
		{
			config = new MyConfig(((BaseUnityPlugin)this).Config);
			cconfig = new CoilConfig(((BaseUnityPlugin)this).Config);
			ctconfig = new ComedyTragedyConfig(((BaseUnityPlugin)this).Config);
			bsConfig = new BunkerSpiderConfig(((BaseUnityPlugin)this).Config);
			lConfig = new LootbugConfig(((BaseUnityPlugin)this).Config);
			JConfig = new JeConfig(((BaseUnityPlugin)this).Config);
			GConfig = new GiantConfig(((BaseUnityPlugin)this).Config);
			nutcrackConfig = new nutConfig(((BaseUnityPlugin)this).Config);
			dogConfig = new eyeConfig(((BaseUnityPlugin)this).Config);
			thumpConfig = new ThumperConfig(((BaseUnityPlugin)this).Config);
			instance = this;
			string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "monsterplushies");
			AssetBundle val = AssetBundle.LoadFromFile(text);
			Item val2 = val.LoadAsset<Item>("Assets/MY STUFF/Bracken Plush/BrackenPlush.asset");
			Item val3 = val.LoadAsset<Item>("Assets/MY STUFF/Coil head/CoilHeadPlush.asset");
			Item val4 = val.LoadAsset<Item>("Assets/MY STUFF/Masked/comedyplushitem.asset");
			Item val5 = val.LoadAsset<Item>("Assets/MY STUFF/Masked/Tragedyplushitem.asset");
			Item val6 = val.LoadAsset<Item>("Assets/MY STUFF/Bunkspid/BunkspidItem.asset");
			Item val7 = val.LoadAsset<Item>("Assets/MY STUFF/Lootbug/lootbugPlush.asset");
			Item val8 = val.LoadAsset<Item>("Assets/MY STUFF/Jester/jesterplushie.asset");
			Item val9 = val.LoadAsset<Item>("Assets/MY STUFF/Giant/Forest keeper plushie.asset");
			Item val10 = val.LoadAsset<Item>("Assets/MY STUFF/Nutcracker/Nutcracker.asset");
			Item val11 = val.LoadAsset<Item>("Assets/MY STUFF/Eyeless dog/EyelessDog.asset");
			Item val12 = val.LoadAsset<Item>("Assets/MY STUFF/Thumper/Thumper.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Utilities.FixMixerGroups(val2.spawnPrefab);
			if (config.BrackenSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (config.BrackenSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)4);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)8);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)16);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)32);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)64);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)128);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)256);
				}
				if (config.BrackenSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val2, config.BrackenSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val3.spawnPrefab);
			Utilities.FixMixerGroups(val3.spawnPrefab);
			if (cconfig.CoilSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (cconfig.CoilSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)4);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)8);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)16);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)32);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)64);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)128);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, cconfig.CoilSpawnWeight.Value, (LevelTypes)256);
				}
				if (cconfig.CoilSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val3, config.BrackenSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val4.spawnPrefab);
			Utilities.FixMixerGroups(val4.spawnPrefab);
			if (ctconfig.CTSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (ctconfig.CTSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)4);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)8);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)16);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)32);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)64);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)128);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)256);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val4, ctconfig.CTSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val5.spawnPrefab);
			Utilities.FixMixerGroups(val5.spawnPrefab);
			if (ctconfig.CTSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (ctconfig.CTSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)4);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)8);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)16);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)32);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)64);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)128);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)256);
				}
				if (ctconfig.CTSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val5, ctconfig.CTSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val6.spawnPrefab);
			Utilities.FixMixerGroups(val6.spawnPrefab);
			if (bsConfig.BunkSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)4);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)8);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)16);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)32);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)64);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)128);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)256);
				}
				if (bsConfig.BunkSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val6, bsConfig.BunkSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val7.spawnPrefab);
			Utilities.FixMixerGroups(val7.spawnPrefab);
			if (lConfig.LootSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (lConfig.LootSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)4);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)8);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)16);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)32);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)64);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)128);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)256);
				}
				if (lConfig.LootSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val7, lConfig.LootSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val8.spawnPrefab);
			Utilities.FixMixerGroups(val8.spawnPrefab);
			if (JConfig.JestSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (JConfig.JestSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)4);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)8);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)16);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)32);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)64);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)128);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)256);
				}
				if (JConfig.JestSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val8, JConfig.JestSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val9.spawnPrefab);
			Utilities.FixMixerGroups(val9.spawnPrefab);
			if (GConfig.GiantSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (GConfig.GiantSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)4);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)8);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)16);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)32);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)64);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)128);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)256);
				}
				if (GConfig.GiantSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val9, GConfig.GiantSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val10.spawnPrefab);
			Utilities.FixMixerGroups(val10.spawnPrefab);
			if (nutcrackConfig.NutSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)4);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)8);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)16);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)32);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)64);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)128);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)256);
				}
				if (nutcrackConfig.NutSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val10, nutcrackConfig.NutSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val11.spawnPrefab);
			Utilities.FixMixerGroups(val11.spawnPrefab);
			if (dogConfig.DogSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (dogConfig.DogSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)4);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)8);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)16);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)32);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)64);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)128);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)256);
				}
				if (dogConfig.DogSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val11, dogConfig.DogSpawnWeight.Value, (LevelTypes)512);
				}
			}
			NetworkPrefabs.RegisterNetworkPrefab(val12.spawnPrefab);
			Utilities.FixMixerGroups(val12.spawnPrefab);
			if (thumpConfig.ThumpSpawnAllMoons.Value)
			{
				Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)(-1));
			}
			else
			{
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("experiment", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)4);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("assurance", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)8);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("vow", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)16);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("offense", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)32);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("march", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)64);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("rend", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)128);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("dine", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)256);
				}
				if (thumpConfig.ThumpSpawnMoonsList.Value.Contains("titan", StringComparison.OrdinalIgnoreCase))
				{
					Items.RegisterScrap(val12, thumpConfig.ThumpSpawnWeight.Value, (LevelTypes)512);
				}
			}
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded Monster Plushies");
		}
	}
}