Decompiled source of Eeveelutions v5.1.0

Eeveelutions.dll

Decompiled 2 weeks ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using Dissonance;
using GameNetcodeStuff;
using HarmonyLib;
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: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: AssemblyCompany("Eeveelutions")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Eeveelutions")]
[assembly: AssemblyTitle("Eeveelutions")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
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;
		}
	}
}
namespace ModelReplacement
{
	public class MREEVEE1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Eevee1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRESPEON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Espeon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRFLAREON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Flareon (1)";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRGLACEON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Glaceon 1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRJOLTEON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Jolteon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void AddModelScripts()
		{
			GameObject gameObject = ((Component)base.replacementModel.transform.Find("Armature/pm0135_00/Origin/Waist/Spine1/Spine2/Neck/Head/Jaw")).gameObject;
			JawSync jawSync = gameObject.AddComponent(typeof(JawSync)) as JawSync;
			jawSync.player = ((BodyReplacementBase)this).controller;
			jawSync.init();
		}
	}
	public class JawSync : MonoBehaviour
	{
		public PlayerControllerB player;

		public float initialJawOpening = 62.568f;

		public float maxJawOpening = 37.568f;

		private Vector3 startingLocalRotation;

		protected VoicePlayerState voice;

		public float sensitivity => Plugin.voiceSensitivity.Value;

		private void Start()
		{
			//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)
			startingLocalRotation = ((Component)this).gameObject.transform.localEulerAngles;
		}

		private void Update()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Expected O, but got Unknown
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)StartOfRound.Instance.voiceChatModule == (Object)null))
			{
				if (voice == null)
				{
					init();
					return;
				}
				float y = ((voice.IsSpeaking && !player.isPlayerDead) ? Mathf.Clamp(Map(voice.Amplitude * sensitivity, 1f, 0f, initialJawOpening, maxJawOpening), maxJawOpening, initialJawOpening) : maxJawOpening);
				Vector3 val = startingLocalRotation;
				val.y = y;
				((Component)this).gameObject.transform.localRotation = Quaternion.Euler(val);
			}
		}

		public void init()
		{
			//IL_002b: 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_0044: Expected O, but got Unknown
			//IL_0044: Expected O, but got Unknown
			StartOfRound.Instance.RefreshPlayerVoicePlaybackObjects();
			voice = player.voicePlayerState;
			if (voice == null && (Object)player == (Object)StartOfRound.Instance.localPlayerController)
			{
				voice = StartOfRound.Instance.voiceChatModule.FindPlayer(StartOfRound.Instance.voiceChatModule.LocalPlayerName);
			}
		}

		private float Map(float value, float min1, float max1, float min2, float max2)
		{
			float num = (value - min1) / (max1 - min1);
			return num * (max2 - min2) + min2;
		}
	}
	public class MRLEAFEON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Leafeon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRUMBREON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Umbreon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRVAPOREONARM : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Vaporeonarm";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRESPEON1_ : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Espeon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRGLACEON1_ : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Glaceon 1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRVAPOREONARM_ : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Vaporeonarm";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MREEVEE1SHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Eevee1Shiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRESPEON1SHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Espeon1Shiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRFLAREONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "FlareonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRGLACEONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "GlaceonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRJOLTEONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "JolteonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void AddModelScripts()
		{
			GameObject gameObject = ((Component)base.replacementModel.transform.Find("Armature/pm0135_00/Origin/Waist/Spine1/Spine2/Neck/Head/Jaw")).gameObject;
			JawSync1 jawSync = gameObject.AddComponent(typeof(JawSync1)) as JawSync1;
			jawSync.player = ((BodyReplacementBase)this).controller;
			jawSync.init();
		}
	}
	public class JawSync1 : MonoBehaviour
	{
		public PlayerControllerB player;

		public float initialJawOpening = 62.568f;

		public float maxJawOpening = 37.568f;

		private Vector3 startingLocalRotation;

		protected VoicePlayerState voice;

		public float sensitivity => Plugin.voiceSensitivity.Value;

		private void Start()
		{
			//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)
			startingLocalRotation = ((Component)this).gameObject.transform.localEulerAngles;
		}

		private void Update()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Expected O, but got Unknown
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)StartOfRound.Instance.voiceChatModule == (Object)null))
			{
				if (voice == null)
				{
					init();
					return;
				}
				float y = ((voice.IsSpeaking && !player.isPlayerDead) ? Mathf.Clamp(Map(voice.Amplitude * sensitivity, 1f, 0f, initialJawOpening, maxJawOpening), maxJawOpening, initialJawOpening) : maxJawOpening);
				Vector3 val = startingLocalRotation;
				val.y = y;
				((Component)this).gameObject.transform.localRotation = Quaternion.Euler(val);
			}
		}

		public void init()
		{
			//IL_002b: 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_0044: Expected O, but got Unknown
			//IL_0044: Expected O, but got Unknown
			StartOfRound.Instance.RefreshPlayerVoicePlaybackObjects();
			voice = player.voicePlayerState;
			if (voice == null && (Object)player == (Object)StartOfRound.Instance.localPlayerController)
			{
				voice = StartOfRound.Instance.voiceChatModule.FindPlayer(StartOfRound.Instance.voiceChatModule.LocalPlayerName);
			}
		}

		private float Map(float value, float min1, float max1, float min2, float max2)
		{
			float num = (value - min1) / (max1 - min1);
			return num * (max2 - min2) + min2;
		}
	}
	public class MRLEAFEONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeafeonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRUMBREONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "UmbreonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRVAPOREONSHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "VaporeonShiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSYLVEON1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sylveon1";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSYLVEON1SHINY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sylveon1 Shiny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	[BepInPlugin(".com.Ghost.Eeveelutions", "Eeveelutions", "0.1.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public static ConfigFile config;

		public static ConfigEntry<float> voiceSensitivity { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits1 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault1 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel1 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits2 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault2 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel2 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits3 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault3 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel3 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits4 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault4 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel4 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits5 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault5 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel5 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits6 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault6 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel6 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits7 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault7 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel7 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits8 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault8 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel8 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits9 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault9 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel9 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits10 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault10 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel10 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits11 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault11 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel11 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits12 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault12 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel12 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits13 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault13 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel13 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits14 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault14 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel14 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits15 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault15 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel15 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits16 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault16 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel16 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits17 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault17 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel17 { get; private set; }

		public static ConfigEntry<bool> enableModelForAllSuits18 { get; private set; }

		public static ConfigEntry<bool> enableModelAsDefault18 { get; private set; }

		public static ConfigEntry<string> suitNamesToEnableModel18 { get; private set; }

		private static void InitConfig()
		{
			voiceSensitivity = config.Bind<float>("Voice Sensitivity For Jolteon and Shiny Jolteon Jaw", "Sensitivity Value", 5f, "Number from 5 to 20");
			enableModelForAllSuits1 = config.Bind<bool>("Suits to Replace Settings", "Enable Eevee Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits2 = config.Bind<bool>("Suits to Replace Settings", "Enable Espeon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits3 = config.Bind<bool>("Suits to Replace Settings", "Enable Flareon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits4 = config.Bind<bool>("Suits to Replace Settings", "Enable Glaceon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits5 = config.Bind<bool>("Suits to Replace Settings", "Enable Jolteon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits6 = config.Bind<bool>("Suits to Replace Settings", "Enable Leafon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits7 = config.Bind<bool>("Suits to Replace Settings", "Enable Sylveon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits8 = config.Bind<bool>("Suits to Replace Settings", "Enable Umbreon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits9 = config.Bind<bool>("Suits to Replace Settings", "Enable Vaporeon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits10 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Eevee Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits11 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Espeon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits12 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Flareon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits13 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Glaceon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits14 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Jolteon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits15 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Leafeon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits16 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Sylveon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits17 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Umbreon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelForAllSuits18 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Vaporeon Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits");
			enableModelAsDefault1 = config.Bind<bool>("Suits to Replace Settings", "Enable Eevee Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault2 = config.Bind<bool>("Suits to Replace Settings", "Enable Espeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault3 = config.Bind<bool>("Suits to Replace Settings", "Enable Flareon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault4 = config.Bind<bool>("Suits to Replace Settings", "Enable Glaceon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault5 = config.Bind<bool>("Suits to Replace Settings", "Enable Jolteon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault6 = config.Bind<bool>("Suits to Replace Settings", "Enable Leafeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault7 = config.Bind<bool>("Suits to Replace Settings", "Enable Sylveon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault8 = config.Bind<bool>("Suits to Replace Settings", "Enable Umbreon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault9 = config.Bind<bool>("Suits to Replace Settings", "Enable Vaporeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault10 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Eevee Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault11 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Espeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault12 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Flareon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault13 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Glaceon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault14 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Jolteon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault15 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Leafeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault16 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Sylveon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault17 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Umbreon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			enableModelAsDefault18 = config.Bind<bool>("Suits to Replace Settings", "Enable Shiny Vaporeon Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered.");
			suitNamesToEnableModel1 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Eevee for", "Eevee", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel2 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Espeon for", "Espeon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel3 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Flareon for", "Flareon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel4 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Glaceon for", "Glaceon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel5 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Jolteon for", "Jolteon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel6 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Leafeon for", "Leafeon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel7 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Sylveon for", "Sylveon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel8 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Umbreon for", "Umbreon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel9 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Vaporeon for", "Vaporeon", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel10 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Eevee for", "Eevee Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel11 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Espeon for", "Espeon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel12 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Flareon for", "Flareon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel13 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Glaceon for", "Glaceon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel14 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Jolteon for", "Jolteon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel15 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Leafeon for", "Leafeon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel16 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Sylveon for", "Sylveon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel17 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Umbreon for", "Umbreon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
			suitNamesToEnableModel18 = config.Bind<string>("Suits to Replace Settings", "Suits to enable Shiny Vaporeon for", "Vaporeon Shiny", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])");
		}

		private void Awake()
		{
			//IL_09db: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e2: Expected O, but got Unknown
			config = ((BaseUnityPlugin)this).Config;
			InitConfig();
			Assets.PopulateAssets();
			if (enableModelForAllSuits1.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MREEVEE1));
			}
			if (enableModelAsDefault1.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MREEVEE1));
			}
			string[] array = suitNamesToEnableModel1.Value.Split(',');
			string[] array2 = array;
			foreach (string text in array2)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MREEVEE1));
			}
			if (enableModelForAllSuits2.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRESPEON1));
			}
			if (enableModelAsDefault2.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRESPEON1));
			}
			string[] array3 = suitNamesToEnableModel2.Value.Split(',');
			string[] array4 = array3;
			foreach (string text2 in array4)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text2, typeof(MRESPEON1));
			}
			if (enableModelForAllSuits3.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRFLAREON1));
			}
			if (enableModelAsDefault3.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRFLAREON1));
			}
			string[] array5 = suitNamesToEnableModel3.Value.Split(',');
			string[] array6 = array5;
			foreach (string text3 in array6)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text3, typeof(MRFLAREON1));
			}
			if (enableModelForAllSuits4.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRGLACEON1));
			}
			if (enableModelAsDefault4.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRGLACEON1));
			}
			string[] array7 = suitNamesToEnableModel4.Value.Split(',');
			string[] array8 = array7;
			foreach (string text4 in array8)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text4, typeof(MRGLACEON1));
			}
			if (enableModelForAllSuits5.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRJOLTEON1));
			}
			if (enableModelAsDefault5.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRJOLTEON1));
			}
			string[] array9 = suitNamesToEnableModel5.Value.Split(',');
			string[] array10 = array9;
			foreach (string text5 in array10)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text5, typeof(MRJOLTEON1));
			}
			if (enableModelForAllSuits6.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRLEAFEON1));
			}
			if (enableModelAsDefault6.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRLEAFEON1));
			}
			string[] array11 = suitNamesToEnableModel6.Value.Split(',');
			string[] array12 = array11;
			foreach (string text6 in array12)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text6, typeof(MRLEAFEON1));
			}
			if (enableModelForAllSuits7.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRSYLVEON1));
			}
			if (enableModelAsDefault7.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRSYLVEON1));
			}
			string[] array13 = suitNamesToEnableModel7.Value.Split(',');
			string[] array14 = array13;
			foreach (string text7 in array14)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text7, typeof(MRSYLVEON1));
			}
			if (enableModelForAllSuits8.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRUMBREON1));
			}
			if (enableModelAsDefault8.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRUMBREON1));
			}
			string[] array15 = suitNamesToEnableModel8.Value.Split(',');
			string[] array16 = array15;
			foreach (string text8 in array16)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text8, typeof(MRUMBREON1));
			}
			if (enableModelForAllSuits9.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRVAPOREONARM_));
			}
			if (enableModelAsDefault9.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRVAPOREONARM_));
			}
			string[] array17 = suitNamesToEnableModel9.Value.Split(',');
			string[] array18 = array17;
			foreach (string text9 in array18)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text9, typeof(MRVAPOREONARM_));
			}
			if (enableModelForAllSuits10.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MREEVEE1SHINY));
			}
			if (enableModelAsDefault10.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MREEVEE1SHINY));
			}
			string[] array19 = suitNamesToEnableModel10.Value.Split(',');
			string[] array20 = array19;
			foreach (string text10 in array20)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text10, typeof(MREEVEE1SHINY));
			}
			if (enableModelForAllSuits11.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRESPEON1SHINY));
			}
			if (enableModelAsDefault11.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRESPEON1SHINY));
			}
			string[] array21 = suitNamesToEnableModel11.Value.Split(',');
			string[] array22 = array21;
			foreach (string text11 in array22)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text11, typeof(MRESPEON1SHINY));
			}
			if (enableModelForAllSuits12.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRFLAREONSHINY));
			}
			if (enableModelAsDefault12.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRFLAREONSHINY));
			}
			string[] array23 = suitNamesToEnableModel12.Value.Split(',');
			string[] array24 = array23;
			foreach (string text12 in array24)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text12, typeof(MRFLAREONSHINY));
			}
			if (enableModelForAllSuits13.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRGLACEONSHINY));
			}
			if (enableModelAsDefault13.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRGLACEONSHINY));
			}
			string[] array25 = suitNamesToEnableModel13.Value.Split(',');
			string[] array26 = array25;
			foreach (string text13 in array26)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text13, typeof(MRGLACEONSHINY));
			}
			if (enableModelForAllSuits14.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRJOLTEONSHINY));
			}
			if (enableModelAsDefault14.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRJOLTEONSHINY));
			}
			string[] array27 = suitNamesToEnableModel14.Value.Split(',');
			string[] array28 = array27;
			foreach (string text14 in array28)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text14, typeof(MRJOLTEONSHINY));
			}
			if (enableModelForAllSuits15.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRLEAFEONSHINY));
			}
			if (enableModelAsDefault15.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRLEAFEONSHINY));
			}
			string[] array29 = suitNamesToEnableModel15.Value.Split(',');
			string[] array30 = array29;
			foreach (string text15 in array30)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text15, typeof(MRLEAFEONSHINY));
			}
			if (enableModelForAllSuits16.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRSYLVEON1SHINY));
			}
			if (enableModelAsDefault16.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRSYLVEON1SHINY));
			}
			string[] array31 = suitNamesToEnableModel16.Value.Split(',');
			string[] array32 = array31;
			foreach (string text16 in array32)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text16, typeof(MRSYLVEON1SHINY));
			}
			if (enableModelForAllSuits17.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRUMBREONSHINY));
			}
			if (enableModelAsDefault17.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRUMBREONSHINY));
			}
			string[] array33 = suitNamesToEnableModel17.Value.Split(',');
			string[] array34 = array33;
			foreach (string text17 in array34)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text17, typeof(MRUMBREONSHINY));
			}
			if (enableModelForAllSuits18.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRVAPOREONSHINY));
			}
			if (enableModelAsDefault18.Value)
			{
				ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRVAPOREONSHINY));
			}
			string[] array35 = suitNamesToEnableModel18.Value.Split(',');
			string[] array36 = array35;
			foreach (string text18 in array36)
			{
				ModelReplacementAPI.RegisterSuitModelReplacement(text18, typeof(MRVAPOREONSHINY));
			}
			Harmony val = new Harmony(".com.Ghost.Eeveelutions");
			val.PatchAll();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin .com.Ghost.Eeveelutions is loaded!");
		}
	}
	public static class Assets
	{
		public static string mainAssetBundleName = "EeveelutionsGhost";

		public static AssetBundle MainAssetBundle = null;

		private static string GetAssemblyName()
		{
			return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_");
		}

		public static void PopulateAssets()
		{
			if ((Object)(object)MainAssetBundle == (Object)null)
			{
				Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName);
				using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName);
				MainAssetBundle = AssetBundle.LoadFromStream(stream);
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}