Decompiled source of Lee Sin Playermodel Pack v2.0.0

Lee Sin Playermodel Pack.dll

Decompiled a week ago
using System;
using System.Collections.Generic;
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 GameNetcodeStuff;
using HarmonyLib;
using LethalConfig;
using LethalConfig.ConfigItems;
using LethalConfig.ConfigItems.Options;
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("Lee Sin Playermodel Pack")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Lee Sin Playermodel Pack")]
[assembly: AssemblyTitle("Lee Sin Playermodel Pack")]
[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 LEESIN_BASE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_base";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_TRADITIONAL : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_Traditional";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_ACOLYTE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_Acolyte";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_DRAGONFIST : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_DragonFist";
			GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color1");
				SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array = componentsInChildren;
				foreach (SkinnedMeshRenderer val2 in array)
				{
					((Renderer)val2).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Black)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color2");
				SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array2 = componentsInChildren2;
				foreach (SkinnedMeshRenderer val3 in array2)
				{
					((Renderer)val3).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Blue)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color3");
				SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array3 = componentsInChildren3;
				foreach (SkinnedMeshRenderer val4 in array3)
				{
					((Renderer)val4).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Yellow)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color4");
				SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array4 = componentsInChildren4;
				foreach (SkinnedMeshRenderer val5 in array4)
				{
					((Renderer)val5).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Ruby)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color5");
				SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array5 = componentsInChildren5;
				foreach (SkinnedMeshRenderer val6 in array5)
				{
					((Renderer)val6).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Emerald)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color6");
				SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array6 = componentsInChildren6;
				foreach (SkinnedMeshRenderer val7 in array6)
				{
					((Renderer)val7).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Pearl)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color7");
				SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array7 = componentsInChildren7;
				foreach (SkinnedMeshRenderer val8 in array7)
				{
					((Renderer)val8).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Rose)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color8");
				SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array8 = componentsInChildren8;
				foreach (SkinnedMeshRenderer val9 in array8)
				{
					((Renderer)val9).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Sapphire)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color9");
				SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array9 = componentsInChildren9;
				foreach (SkinnedMeshRenderer val10 in array9)
				{
					((Renderer)val10).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Meteorite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color10");
				SkinnedMeshRenderer[] componentsInChildren10 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array10 = componentsInChildren10;
				foreach (SkinnedMeshRenderer val11 in array10)
				{
					((Renderer)val11).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Royal)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color11");
				SkinnedMeshRenderer[] componentsInChildren11 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array11 = componentsInChildren11;
				foreach (SkinnedMeshRenderer val12 in array11)
				{
					((Renderer)val12).SetMaterial(material);
				}
			}
			if (Plugin.DragonFistCE.Value == Plugin.DragonFistC.Jade)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSDF_body_color12");
				SkinnedMeshRenderer[] componentsInChildren12 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array12 = componentsInChildren12;
				foreach (SkinnedMeshRenderer val13 in array12)
				{
					((Renderer)val13).SetMaterial(material);
				}
			}
			return val;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_MUAYTHAI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_MuayThai";
			GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			if (Plugin.MTChroma.Value == Plugin.MTC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color1");
				SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array = componentsInChildren;
				foreach (SkinnedMeshRenderer val2 in array)
				{
					((Renderer)val2).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Ruby)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color2");
				SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array2 = componentsInChildren2;
				foreach (SkinnedMeshRenderer val3 in array2)
				{
					((Renderer)val3).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Catseye)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color3");
				SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array3 = componentsInChildren3;
				foreach (SkinnedMeshRenderer val4 in array3)
				{
					((Renderer)val4).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Emerald)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color4");
				SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array4 = componentsInChildren4;
				foreach (SkinnedMeshRenderer val5 in array4)
				{
					((Renderer)val5).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Turquoise)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color5");
				SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array5 = componentsInChildren5;
				foreach (SkinnedMeshRenderer val6 in array5)
				{
					((Renderer)val6).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Tanzanite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color6");
				SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array6 = componentsInChildren6;
				foreach (SkinnedMeshRenderer val7 in array6)
				{
					((Renderer)val7).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Rose)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color7");
				SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array7 = componentsInChildren7;
				foreach (SkinnedMeshRenderer val8 in array7)
				{
					((Renderer)val8).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Obsidian)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color8");
				SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array8 = componentsInChildren8;
				foreach (SkinnedMeshRenderer val9 in array8)
				{
					((Renderer)val9).SetMaterial(material);
				}
			}
			if (Plugin.MTChroma.Value == Plugin.MTC.Pearl)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSMT_body_color9");
				SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array9 = componentsInChildren9;
				foreach (SkinnedMeshRenderer val10 in array9)
				{
					((Renderer)val10).SetMaterial(material);
				}
			}
			return val;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_POOLPARTY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			if (!Plugin.PPGlasses.Value)
			{
				string text = "LeeSin_PoolParty";
				return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			}
			string text2 = "LeeSin_PoolParty_NoGlasses";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text2);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_SKT : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_SKT";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_KNOCKOUT : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_Knockout";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_GODFIST : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_GodFist";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSGFE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGFE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSGFHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGFGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSGFHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGFGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_PLAYMAKER : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_Playmaker";
			GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color1");
				SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array = componentsInChildren;
				foreach (SkinnedMeshRenderer val2 in array)
				{
					((Renderer)val2).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Pearl)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color2");
				SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array2 = componentsInChildren2;
				foreach (SkinnedMeshRenderer val3 in array2)
				{
					((Renderer)val3).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Citrine)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color3");
				SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array3 = componentsInChildren3;
				foreach (SkinnedMeshRenderer val4 in array3)
				{
					((Renderer)val4).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Emerald)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color4");
				SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array4 = componentsInChildren4;
				foreach (SkinnedMeshRenderer val5 in array4)
				{
					((Renderer)val5).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Sapphire)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color5");
				SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array5 = componentsInChildren5;
				foreach (SkinnedMeshRenderer val6 in array5)
				{
					((Renderer)val6).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Aquamarine)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color6");
				SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array6 = componentsInChildren6;
				foreach (SkinnedMeshRenderer val7 in array6)
				{
					((Renderer)val7).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Tanzanite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color7");
				SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array7 = componentsInChildren7;
				foreach (SkinnedMeshRenderer val8 in array7)
				{
					((Renderer)val8).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Obsidian)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color8");
				SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array8 = componentsInChildren8;
				foreach (SkinnedMeshRenderer val9 in array8)
				{
					((Renderer)val9).SetMaterial(material);
				}
			}
			if (Plugin.PlaymakerChroma.Value == Plugin.PlaymakerC.Rose)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSPM_body_color9");
				SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array9 = componentsInChildren9;
				foreach (SkinnedMeshRenderer val10 in array9)
				{
					((Renderer)val10).SetMaterial(material);
				}
			}
			return val;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_NIGHTBRINGER : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_Nightbringer";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_NIGHTBRINGER_P : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			if (Plugin.NBPForm.Value == Plugin.NBPEnum.Original)
			{
				string text = "LeeSin_Nightbringer_P";
				return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			}
			if (Plugin.NBPForm.Value == Plugin.NBPEnum.Redesign)
			{
				string text2 = "LeeSin_Nightbringer_P2022";
				return Assets.MainAssetBundle.LoadAsset<GameObject>(text2);
			}
			string text3 = "LeeSin_Nightbringer_P";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text3);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_FPX : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			if (!Plugin.FPXHelmet.Value)
			{
				string text = "LeeSin_FPX";
				GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
				if (Plugin.FPXChroma.Value == Plugin.FPXC.Original)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_body_color1");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_helmet_color1");
					SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren[0]).material = material;
					((Renderer)componentsInChildren[1]).material = material2;
					((Renderer)componentsInChildren[2]).material = material;
				}
				if (Plugin.FPXChroma.Value == Plugin.FPXC.Elite)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_body_color2");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_helmet_color2");
					SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren2[0]).material = material;
					Debug.Log((object)("Found Material " + (object)componentsInChildren2[0]));
					((Renderer)componentsInChildren2[1]).material = material2;
					Debug.Log((object)("Found Material " + (object)componentsInChildren2[1]));
					((Renderer)componentsInChildren2[2]).material = material;
					Debug.Log((object)("Found Material " + (object)componentsInChildren2[2]));
				}
				return val;
			}
			string text2 = "LeeSin_FPX_NoHelmet";
			GameObject val2 = Assets.MainAssetBundle.LoadAsset<GameObject>(text2);
			if (Plugin.FPXChroma.Value == Plugin.FPXC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_body_color1");
				Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_helmet_color1");
				SkinnedMeshRenderer[] componentsInChildren3 = val2.GetComponentsInChildren<SkinnedMeshRenderer>();
				((Renderer)componentsInChildren3[0]).material = material;
				((Renderer)componentsInChildren3[1]).material = material2;
			}
			if (Plugin.FPXChroma.Value == Plugin.FPXC.Elite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_body_color2");
				Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSFPX_helmet_color2");
				SkinnedMeshRenderer[] componentsInChildren4 = val2.GetComponentsInChildren<SkinnedMeshRenderer>();
				((Renderer)componentsInChildren4[0]).material = material;
				((Renderer)componentsInChildren4[1]).material = material2;
			}
			return val2;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_STORMDRAGON : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_StormDragon";
			GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			if (Plugin.SDChroma.Value == Plugin.SDC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color1");
				SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array = componentsInChildren;
				foreach (SkinnedMeshRenderer val2 in array)
				{
					((Renderer)val2).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Ruby)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color2");
				SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array2 = componentsInChildren2;
				foreach (SkinnedMeshRenderer val3 in array2)
				{
					((Renderer)val3).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Jadeclaw)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color3");
				SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array3 = componentsInChildren3;
				foreach (SkinnedMeshRenderer val4 in array3)
				{
					((Renderer)val4).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Sapphire)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color4");
				SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array4 = componentsInChildren4;
				foreach (SkinnedMeshRenderer val5 in array4)
				{
					((Renderer)val5).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Tanzanite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color5");
				SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array5 = componentsInChildren5;
				foreach (SkinnedMeshRenderer val6 in array5)
				{
					((Renderer)val6).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Obsidian)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color6");
				SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array6 = componentsInChildren6;
				foreach (SkinnedMeshRenderer val7 in array6)
				{
					((Renderer)val7).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Pearl)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color7");
				SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array7 = componentsInChildren7;
				foreach (SkinnedMeshRenderer val8 in array7)
				{
					((Renderer)val8).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Emberclaw)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color8");
				SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array8 = componentsInChildren8;
				foreach (SkinnedMeshRenderer val9 in array8)
				{
					((Renderer)val9).SetMaterial(material);
				}
			}
			if (Plugin.SDChroma.Value == Plugin.SDC.Mythic)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSSD_body_color9");
				SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array9 = componentsInChildren9;
				foreach (SkinnedMeshRenderer val10 in array9)
				{
					((Renderer)val10).SetMaterial(material);
				}
			}
			return val;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSSDE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGFE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSSDHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSSDGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSSDHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSSDGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_ZENITHGAMES : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			if (!Plugin.ZGArms.Value)
			{
				string text = "LeeSin_ZG";
				GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Original)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color1");
					SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array = componentsInChildren;
					foreach (SkinnedMeshRenderer val2 in array)
					{
						((Renderer)val2).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Ruby)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color2");
					SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array2 = componentsInChildren2;
					foreach (SkinnedMeshRenderer val3 in array2)
					{
						((Renderer)val3).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Catseye)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color3");
					SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array3 = componentsInChildren3;
					foreach (SkinnedMeshRenderer val4 in array3)
					{
						((Renderer)val4).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Emerald)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color4");
					SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array4 = componentsInChildren4;
					foreach (SkinnedMeshRenderer val5 in array4)
					{
						((Renderer)val5).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Sapphire)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color5");
					SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array5 = componentsInChildren5;
					foreach (SkinnedMeshRenderer val6 in array5)
					{
						((Renderer)val6).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Turquoise)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color6");
					SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array6 = componentsInChildren6;
					foreach (SkinnedMeshRenderer val7 in array6)
					{
						((Renderer)val7).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Rose)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color7");
					SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array7 = componentsInChildren7;
					foreach (SkinnedMeshRenderer val8 in array7)
					{
						((Renderer)val8).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Pearl)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color8");
					SkinnedMeshRenderer[] componentsInChildren8 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array8 = componentsInChildren8;
					foreach (SkinnedMeshRenderer val9 in array8)
					{
						((Renderer)val9).SetMaterial(material);
					}
				}
				if (Plugin.ZGChroma.Value == Plugin.ZGC.Obsidian)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color9");
					SkinnedMeshRenderer[] componentsInChildren9 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					SkinnedMeshRenderer[] array9 = componentsInChildren9;
					foreach (SkinnedMeshRenderer val10 in array9)
					{
						((Renderer)val10).SetMaterial(material);
					}
				}
				return val;
			}
			string text2 = "LeeSin_ZG_NoArms";
			GameObject val11 = Assets.MainAssetBundle.LoadAsset<GameObject>(text2);
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color1");
				SkinnedMeshRenderer[] componentsInChildren10 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array10 = componentsInChildren10;
				foreach (SkinnedMeshRenderer val12 in array10)
				{
					((Renderer)val12).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Ruby)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color2");
				SkinnedMeshRenderer[] componentsInChildren11 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array11 = componentsInChildren11;
				foreach (SkinnedMeshRenderer val13 in array11)
				{
					((Renderer)val13).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Catseye)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color3");
				SkinnedMeshRenderer[] componentsInChildren12 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array12 = componentsInChildren12;
				foreach (SkinnedMeshRenderer val14 in array12)
				{
					((Renderer)val14).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Emerald)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color4");
				SkinnedMeshRenderer[] componentsInChildren13 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array13 = componentsInChildren13;
				foreach (SkinnedMeshRenderer val15 in array13)
				{
					((Renderer)val15).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Sapphire)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color5");
				SkinnedMeshRenderer[] componentsInChildren14 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array14 = componentsInChildren14;
				foreach (SkinnedMeshRenderer val16 in array14)
				{
					((Renderer)val16).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Turquoise)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color6");
				SkinnedMeshRenderer[] componentsInChildren15 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array15 = componentsInChildren15;
				foreach (SkinnedMeshRenderer val17 in array15)
				{
					((Renderer)val17).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Rose)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color7");
				SkinnedMeshRenderer[] componentsInChildren16 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array16 = componentsInChildren16;
				foreach (SkinnedMeshRenderer val18 in array16)
				{
					((Renderer)val18).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Pearl)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color8");
				SkinnedMeshRenderer[] componentsInChildren17 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array17 = componentsInChildren17;
				foreach (SkinnedMeshRenderer val19 in array17)
				{
					((Renderer)val19).SetMaterial(material);
				}
			}
			if (Plugin.ZGChroma.Value == Plugin.ZGC.Obsidian)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSZG_body_color9");
				SkinnedMeshRenderer[] componentsInChildren18 = val11.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array18 = componentsInChildren18;
				foreach (SkinnedMeshRenderer val20 in array18)
				{
					((Renderer)val20).SetMaterial(material);
				}
			}
			return val11;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_HEAVENSCALE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			if (Plugin.HSForm.Value == Plugin.HSEnum.Original && !Plugin.HSLimbs.Value)
			{
				string text = "LeeSin_Heavenscale";
				GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
				if (Plugin.HSChroma.Value == Plugin.HSC.Original)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color1");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color1");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color1");
					SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren[0]).material = material2;
					((Renderer)componentsInChildren[1]).material = material;
					((Renderer)componentsInChildren[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Ruby)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color2");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color2");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color2");
					SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren2[0]).material = material2;
					((Renderer)componentsInChildren2[1]).material = material;
					((Renderer)componentsInChildren2[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Rose)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color3");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color3");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color3");
					SkinnedMeshRenderer[] componentsInChildren3 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren3[0]).material = material2;
					((Renderer)componentsInChildren3[1]).material = material;
					((Renderer)componentsInChildren3[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Citrine)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color4");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color4");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color4");
					SkinnedMeshRenderer[] componentsInChildren4 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren4[0]).material = material2;
					((Renderer)componentsInChildren4[1]).material = material;
					((Renderer)componentsInChildren4[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Emerald)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color5");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color5");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color5");
					SkinnedMeshRenderer[] componentsInChildren5 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren5[0]).material = material2;
					((Renderer)componentsInChildren5[1]).material = material;
					((Renderer)componentsInChildren5[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Aquamarine)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color6");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color6");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color6");
					SkinnedMeshRenderer[] componentsInChildren6 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren6[0]).material = material2;
					((Renderer)componentsInChildren6[1]).material = material;
					((Renderer)componentsInChildren6[2]).material = material;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Lustrous)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color7");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color7");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color7");
					SkinnedMeshRenderer[] componentsInChildren7 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren7[0]).material = material2;
					((Renderer)componentsInChildren7[1]).material = material;
					((Renderer)componentsInChildren7[2]).material = material;
				}
				return val;
			}
			if (Plugin.HSForm.Value == Plugin.HSEnum.Original && Plugin.HSLimbs.Value)
			{
				string text2 = "LeeSin_Heavenscale_Dragon";
				GameObject val3 = Assets.MainAssetBundle.LoadAsset<GameObject>(text2);
				if (Plugin.HSChroma.Value == Plugin.HSC.Original)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color1");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color1");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color1");
					SkinnedMeshRenderer[] componentsInChildren8 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren8[0]).material = material2;
					((Renderer)componentsInChildren8[1]).material = material;
					((Renderer)componentsInChildren8[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Ruby)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color2");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color2");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color2");
					SkinnedMeshRenderer[] componentsInChildren9 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren9[0]).material = material2;
					((Renderer)componentsInChildren9[1]).material = material;
					((Renderer)componentsInChildren9[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Rose)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color3");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color3");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color3");
					SkinnedMeshRenderer[] componentsInChildren10 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren10[0]).material = material2;
					((Renderer)componentsInChildren10[1]).material = material;
					((Renderer)componentsInChildren10[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Citrine)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color4");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color4");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color4");
					SkinnedMeshRenderer[] componentsInChildren11 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren11[0]).material = material2;
					((Renderer)componentsInChildren11[1]).material = material;
					((Renderer)componentsInChildren11[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Emerald)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color5");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color5");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color5");
					SkinnedMeshRenderer[] componentsInChildren12 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren12[0]).material = material2;
					((Renderer)componentsInChildren12[1]).material = material;
					((Renderer)componentsInChildren12[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Aquamarine)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color6");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color6");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color6");
					SkinnedMeshRenderer[] componentsInChildren13 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren13[0]).material = material2;
					((Renderer)componentsInChildren13[1]).material = material;
					((Renderer)componentsInChildren13[2]).material = val2;
				}
				if (Plugin.HSChroma.Value == Plugin.HSC.Lustrous)
				{
					Material material = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_body_color7");
					Material material2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_assets_color7");
					Material val2 = Assets.MainAssetBundle.LoadAsset<Material>("LSHS_limbs_color7");
					SkinnedMeshRenderer[] componentsInChildren14 = val3.GetComponentsInChildren<SkinnedMeshRenderer>();
					((Renderer)componentsInChildren14[0]).material = material2;
					((Renderer)componentsInChildren14[1]).material = material;
					((Renderer)componentsInChildren14[2]).material = val2;
				}
				return val3;
			}
			if (Plugin.HSForm.Value == Plugin.HSEnum.Divine && !Plugin.HSLimbs.Value)
			{
				string text3 = "LeeSin_DvineHS";
				return Assets.MainAssetBundle.LoadAsset<GameObject>(text3);
			}
			if (Plugin.HSForm.Value == Plugin.HSEnum.Divine && Plugin.HSLimbs.Value)
			{
				string text4 = "LeeSin_DvineHS_HalfDragon";
				return Assets.MainAssetBundle.LoadAsset<GameObject>(text4);
			}
			string text5 = "LeeSin_Heavenscale";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text5);
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSHSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSHSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSHSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSHSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	public class LEESIN_T1 : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "LeeSin_T1";
			GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text);
			if (Plugin.T1Chroma.Value == Plugin.T1C.Original)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LST1_body_color1");
				SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array = componentsInChildren;
				foreach (SkinnedMeshRenderer val2 in array)
				{
					((Renderer)val2).SetMaterial(material);
				}
			}
			if (Plugin.T1Chroma.Value == Plugin.T1C.Elite)
			{
				Material material = Assets.MainAssetBundle.LoadAsset<Material>("LST1_body_color2");
				SkinnedMeshRenderer[] componentsInChildren2 = val.GetComponentsInChildren<SkinnedMeshRenderer>();
				SkinnedMeshRenderer[] array2 = componentsInChildren2;
				foreach (SkinnedMeshRenderer val3 in array2)
				{
					((Renderer)val3).SetMaterial(material);
				}
			}
			return val;
		}

		protected override void OnEmoteStart(int emoteId)
		{
			if (emoteId == 1 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio = Assets.LSE1.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (emoteId == 2 && Plugin.enableVoiceLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSE2.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitEnemy(bool dead)
		{
			((BodyReplacementBase)this).OnHitEnemy(dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}

		protected override void OnHitAlly(PlayerControllerB ally, bool dead)
		{
			((BodyReplacementBase)this).OnHitAlly(ally, dead);
			if (!dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio = Assets.LSHit.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio, 0.8f);
			}
			if (dead && Plugin.enableAttackLines.Value)
			{
				AudioClip randomAudio2 = Assets.LSGloat.GetRandomAudio(StartOfRound.Instance.randomMapSeed);
				((BodyReplacementBase)this).controller.movementAudio.PlayOneShot(randomAudio2, 0.8f);
			}
		}
	}
	[BepInPlugin(".com.theflipsider.leesin.playermodels", "Lee Sin Playermodel Pack", "0.1.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public enum DragonFistC
		{
			Original,
			Black,
			Blue,
			Yellow,
			Ruby,
			Emerald,
			Pearl,
			Rose,
			Sapphire,
			Meteorite,
			Royal,
			Jade
		}

		public enum MTC
		{
			Original,
			Ruby,
			Catseye,
			Emerald,
			Turquoise,
			Tanzanite,
			Rose,
			Obsidian,
			Pearl
		}

		public enum PlaymakerC
		{
			Original,
			Pearl,
			Citrine,
			Emerald,
			Sapphire,
			Aquamarine,
			Tanzanite,
			Obsidian,
			Rose
		}

		public enum NBPEnum
		{
			Original,
			Redesign
		}

		public enum FPXC
		{
			Original,
			Elite
		}

		public enum SDC
		{
			Original,
			Ruby,
			Jadeclaw,
			Sapphire,
			Tanzanite,
			Obsidian,
			Pearl,
			Emberclaw,
			Mythic
		}

		public enum ZGC
		{
			Original,
			Ruby,
			Catseye,
			Emerald,
			Sapphire,
			Turquoise,
			Rose,
			Pearl,
			Obsidian
		}

		public enum HSC
		{
			Original,
			Ruby,
			Rose,
			Citrine,
			Emerald,
			Aquamarine,
			Lustrous
		}

		public enum HSEnum
		{
			Original,
			Divine
		}

		public enum T1C
		{
			Original,
			Elite
		}

		public static ConfigFile config;

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

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

		public static ConfigEntry<DragonFistC> DragonFistCE { get; private set; }

		public static ConfigEntry<MTC> MTChroma { get; private set; }

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

		public static ConfigEntry<PlaymakerC> PlaymakerChroma { get; private set; }

		public static ConfigEntry<NBPEnum> NBPForm { get; private set; }

		public static ConfigEntry<FPXC> FPXChroma { get; private set; }

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

		public static ConfigEntry<SDC> SDChroma { get; private set; }

		public static ConfigEntry<ZGC> ZGChroma { get; private set; }

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

		public static ConfigEntry<HSC> HSChroma { get; private set; }

		public static ConfigEntry<HSEnum> HSForm { get; private set; }

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

		public static ConfigEntry<T1C> T1Chroma { get; private set; }

		private static void InitConfig()
		{
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_020b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0218: Expected O, but got Unknown
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Expected O, but got Unknown
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Expected O, but got Unknown
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Expected O, but got Unknown
			//IL_0244: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_0256: Expected O, but got Unknown
			//IL_0263: Unknown result type (might be due to invalid IL or missing references)
			//IL_0268: Unknown result type (might be due to invalid IL or missing references)
			//IL_0275: Expected O, but got Unknown
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_0287: Unknown result type (might be due to invalid IL or missing references)
			//IL_0294: Expected O, but got Unknown
			//IL_028f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0296: Expected O, but got Unknown
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b5: Expected O, but got Unknown
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Expected O, but got Unknown
			//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f7: Expected O, but got Unknown
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Expected O, but got Unknown
			//IL_0313: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Expected O, but got Unknown
			//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_0339: Expected O, but got Unknown
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_034d: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Expected O, but got Unknown
			//IL_0369: Unknown result type (might be due to invalid IL or missing references)
			//IL_036e: Unknown result type (might be due to invalid IL or missing references)
			//IL_037b: Expected O, but got Unknown
			//IL_0376: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Expected O, but got Unknown
			//IL_038a: Unknown result type (might be due to invalid IL or missing references)
			//IL_038f: Unknown result type (might be due to invalid IL or missing references)
			//IL_039c: Expected O, but got Unknown
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Expected O, but got Unknown
			//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Expected O, but got Unknown
			//IL_03d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e0: Expected O, but got Unknown
			//IL_03ed: 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_03ff: Expected O, but got Unknown
			enableVoiceLines = config.Bind<bool>("Voice lines", "Enable Emote Voice Lines", true, "Lets Lee Sin speak his monk mind while emoting.");
			enableAttackLines = config.Bind<bool>("Voice lines", "Enable Attack Voice Lines", true, "Toggles voice lines on hitting enemies.");
			DragonFistCE = config.Bind<DragonFistC>("Dragon Fist", "Choose chroma (color)", DragonFistC.Original, "Picks what chroma Dragon Fist Lee Sin uses. Reapply the suit for the effect!");
			MTChroma = config.Bind<MTC>("Muay Thai", "Choose chroma (color)", MTC.Original, "Picks what chroma Muay Thai Lee Sin uses. Reapply the suit for the effect!");
			PPGlasses = config.Bind<bool>("Pool Party", "Disable glasses", false, "Takes off Pool Party Lee Sin's glasses. Reapply the suit for the effect!");
			PlaymakerChroma = config.Bind<PlaymakerC>("Playmaker", "Choose chroma (color)", PlaymakerC.Original, "Picks what chroma Playmaker Lee Sin uses. Reapply the suit for the effect!");
			NBPForm = config.Bind<NBPEnum>("Nightbringer Prestiege", "Choose version", NBPEnum.Original, "Picks what version Nightbringer Prestiege Lee Sin uses. Reapply the suit for the effect!");
			FPXChroma = config.Bind<FPXC>("FPX", "Choose chroma (color)", FPXC.Original, "Picks what chroma FPX Lee Sin uses. Reapply the suit for the effect!");
			FPXHelmet = config.Bind<bool>("FPX", "Remove Helmet", false, "Takes off FPX Lee Sin's helmet, exposing his sick hair. Reapply the suit for the effect!");
			SDChroma = config.Bind<SDC>("Storm Dragon", "Choose chroma (color)", SDC.Original, "Picks what chroma Storm Dragon Lee Sin uses. Reapply the suit for the effect!");
			ZGChroma = config.Bind<ZGC>("Zenith Games", "Choose chroma (color)", ZGC.Original, "Picks what chroma Zenith Games Lee Sin uses. Reapply the suit for the effect!");
			ZGArms = config.Bind<bool>("Zenith Games", "Remove Robot Arms", false, "Takes off Zenith Games Lee Sin's robot arm acessories. Reapply the suit for the effect!");
			HSChroma = config.Bind<HSC>("Heavenscale", "Choose chroma (color)", HSC.Original, "Picks what chroma Heavenscale Lee Sin uses. Reapply the suit for the effect!");
			HSForm = config.Bind<HSEnum>("Heavenscale", "Choose version", HSEnum.Original, "Picks what version Heavenscale Lee Sin uses. Reapply the suit for the effect!");
			HSLimbs = config.Bind<bool>("Heavenscale", "Enable Dragon Limbs", false, "Toggles on Heavenscale Lee Sin's half-dragon limbs. Reapply the suit for the effect!");
			T1Chroma = config.Bind<T1C>("T1", "Choose chroma (color)", T1C.Original, "Picks what chroma T1 Lee Sin uses. Reapply the suit for the effect!");
			BoolCheckBoxConfigItem val = new BoolCheckBoxConfigItem(enableVoiceLines, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val);
			BoolCheckBoxConfigItem val2 = new BoolCheckBoxConfigItem(enableAttackLines, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val2);
			EnumDropDownConfigItem<DragonFistC> val3 = new EnumDropDownConfigItem<DragonFistC>(DragonFistCE, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val3);
			EnumDropDownConfigItem<MTC> val4 = new EnumDropDownConfigItem<MTC>(MTChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val4);
			BoolCheckBoxConfigItem val5 = new BoolCheckBoxConfigItem(PPGlasses, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val5);
			EnumDropDownConfigItem<PlaymakerC> val6 = new EnumDropDownConfigItem<PlaymakerC>(PlaymakerChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val6);
			EnumDropDownConfigItem<NBPEnum> val7 = new EnumDropDownConfigItem<NBPEnum>(NBPForm, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val7);
			EnumDropDownConfigItem<FPXC> val8 = new EnumDropDownConfigItem<FPXC>(FPXChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val8);
			BoolCheckBoxConfigItem val9 = new BoolCheckBoxConfigItem(FPXHelmet, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val9);
			EnumDropDownConfigItem<SDC> val10 = new EnumDropDownConfigItem<SDC>(SDChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val10);
			EnumDropDownConfigItem<ZGC> val11 = new EnumDropDownConfigItem<ZGC>(ZGChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val11);
			BoolCheckBoxConfigItem val12 = new BoolCheckBoxConfigItem(ZGArms, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val12);
			EnumDropDownConfigItem<HSC> val13 = new EnumDropDownConfigItem<HSC>(HSChroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val13);
			EnumDropDownConfigItem<HSEnum> val14 = new EnumDropDownConfigItem<HSEnum>(HSForm, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val14);
			BoolCheckBoxConfigItem val15 = new BoolCheckBoxConfigItem(HSLimbs, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val15);
			EnumDropDownConfigItem<T1C> val16 = new EnumDropDownConfigItem<T1C>(T1Chroma, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val16);
		}

		private void Awake()
		{
			//IL_0182: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Expected O, but got Unknown
			config = ((BaseUnityPlugin)this).Config;
			InitConfig();
			Assets.PopulateAssets();
			ModelReplacementAPI.RegisterSuitModelReplacement("Classic Lee Sin", typeof(LEESIN_BASE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Traditional Lee Sin", typeof(LEESIN_TRADITIONAL));
			ModelReplacementAPI.RegisterSuitModelReplacement("Acolyte Lee Sin", typeof(LEESIN_ACOLYTE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Dragon Fist Lee Sin", typeof(LEESIN_DRAGONFIST));
			ModelReplacementAPI.RegisterSuitModelReplacement("Muay Thai Lee Sin", typeof(LEESIN_MUAYTHAI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Pool Party Lee Sin", typeof(LEESIN_POOLPARTY));
			ModelReplacementAPI.RegisterSuitModelReplacement("SKT T1 Lee Sin", typeof(LEESIN_SKT));
			ModelReplacementAPI.RegisterSuitModelReplacement("Knockout Lee Sin", typeof(LEESIN_KNOCKOUT));
			ModelReplacementAPI.RegisterSuitModelReplacement("God Fist Lee Sin", typeof(LEESIN_GODFIST));
			ModelReplacementAPI.RegisterSuitModelReplacement("Playmaker Lee Sin", typeof(LEESIN_PLAYMAKER));
			ModelReplacementAPI.RegisterSuitModelReplacement("Nightbringer Lee Sin", typeof(LEESIN_NIGHTBRINGER));
			ModelReplacementAPI.RegisterSuitModelReplacement("Nightbringer Lee Sin Prestiege", typeof(LEESIN_NIGHTBRINGER_P));
			ModelReplacementAPI.RegisterSuitModelReplacement("FPX Lee Sin", typeof(LEESIN_FPX));
			ModelReplacementAPI.RegisterSuitModelReplacement("Storm Dragon Lee Sin", typeof(LEESIN_STORMDRAGON));
			ModelReplacementAPI.RegisterSuitModelReplacement("Zenith Games Lee Sin", typeof(LEESIN_ZENITHGAMES));
			ModelReplacementAPI.RegisterSuitModelReplacement("Heavenscale Lee Sin", typeof(LEESIN_HEAVENSCALE));
			ModelReplacementAPI.RegisterSuitModelReplacement("T1 Lee Sin", typeof(LEESIN_T1));
			Harmony val = new Harmony(".com.theflipsider.leesin.playermodels");
			val.PatchAll();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin .com.theflipsider.leesin.playermodels is loaded!");
		}
	}
	public static class Assets
	{
		public class RandomAudioClip
		{
			private List<AudioClip> audioClipList = new List<AudioClip>();

			public AudioClip GetRandomAudio(int seed)
			{
				Random random = new Random();
				int num = random.Next(audioClipList.Count);
				Console.WriteLine($"Get audio N {audioClipList.Count} > {num}");
				return audioClipList[num];
			}

			public void AddAudio(string name)
			{
				AudioClip audioClipFromName = GetAudioClipFromName(name);
				if ((Object)(object)audioClipFromName != (Object)null)
				{
					audioClipList.Add(audioClipFromName);
				}
				else
				{
					Console.WriteLine("clip " + name + " null");
				}
			}
		}

		public static string mainAssetBundleName = "LeeSinPlayermodels";

		public static AssetBundle MainAssetBundle = null;

		public static RandomAudioClip LSE1 = new RandomAudioClip();

		public static RandomAudioClip LSE2 = new RandomAudioClip();

		public static RandomAudioClip LSHit = new RandomAudioClip();

		public static RandomAudioClip LSGloat = new RandomAudioClip();

		public static RandomAudioClip LSGFE1 = new RandomAudioClip();

		public static RandomAudioClip LSGFE2 = new RandomAudioClip();

		public static RandomAudioClip LSGFHit = new RandomAudioClip();

		public static RandomAudioClip LSGFGloat = new RandomAudioClip();

		public static RandomAudioClip LSSDE1 = new RandomAudioClip();

		public static RandomAudioClip LSSDE2 = new RandomAudioClip();

		public static RandomAudioClip LSSDHit = new RandomAudioClip();

		public static RandomAudioClip LSSDGloat = new RandomAudioClip();

		public static RandomAudioClip LSHSE1 = new RandomAudioClip();

		public static RandomAudioClip LSHSE2 = new RandomAudioClip();

		public static RandomAudioClip LSHSHit = new RandomAudioClip();

		public static RandomAudioClip LSHSGloat = new RandomAudioClip();

		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);
			}
			LSE1.AddAudio("LSB_sight");
			LSE1.AddAudio("LSB_blind");
			LSE1.AddAudio("LSB_laugh");
			LSE1.AddAudio("LSB_monks");
			LSE1.AddAudio("LSB_quietsteps");
			LSE1.AddAudio("LSB_today");
			LSE1.AddAudio("LSB_waste");
			LSE1.AddAudio("LSB_wedo");
			LSE2.AddAudio("LSB_dragonspirit");
			LSE2.AddAudio("LSB_fists");
			LSE2.AddAudio("LSB_journey");
			LSE2.AddAudio("LSB_senses");
			LSE2.AddAudio("LSB_trials");
			LSHit.AddAudio("LSB_attack1");
			LSHit.AddAudio("LSB_attack2");
			LSHit.AddAudio("LSB_attack3");
			LSHit.AddAudio("LSB_attack4");
			LSHit.AddAudio("LSB_attack5");
			LSHit.AddAudio("LSB_attack6");
			LSHit.AddAudio("LSB_attack7");
			LSHit.AddAudio("LSB_attack8");
			LSHit.AddAudio("LSB_kick1");
			LSHit.AddAudio("LSB_kick2");
			LSHit.AddAudio("LSB_kick3");
			LSHit.AddAudio("LSB_Q1");
			LSHit.AddAudio("LSB_Q2");
			LSHit.AddAudio("LSB_Q3");
			LSHit.AddAudio("LSB_Q4");
			LSHit.AddAudio("LSB_R1");
			LSHit.AddAudio("LSB_R2");
			LSHit.AddAudio("LSB_R3");
			LSGloat.AddAudio("LSB_Gloat1");
			LSGloat.AddAudio("LSB_Gloat2");
			LSGloat.AddAudio("LSB_Gloat3");
			LSGloat.AddAudio("LSB_Gloat4");
			LSGloat.AddAudio("LSB_Gloat5");
			LSGloat.AddAudio("LSB_Gloat6");
			LSGFE1.AddAudio("LSGF_battle");
			LSGFE1.AddAudio("LSGF_celestial");
			LSGFE1.AddAudio("LSGF_dare");
			LSGFE1.AddAudio("LSGF_fear");
			LSGFE1.AddAudio("LSGF_gardener");
			LSGFE1.AddAudio("LSGF_hand");
			LSGFE1.AddAudio("LSGF_laugh");
			LSGFE1.AddAudio("LSGF_perfection");
			LSGFE1.AddAudio("LSGF_test");
			LSGFE2.AddAudio("LSGF_beneath");
			LSGFE2.AddAudio("LSGF_conquers");
			LSGFE2.AddAudio("LSGF_crush");
			LSGFE2.AddAudio("LSGF_die");
			LSGFE2.AddAudio("LSGF_godhood");
			LSGFE2.AddAudio("LSGF_mediocrity");
			LSGFE2.AddAudio("LSGF_mortalfear");
			LSGFE2.AddAudio("LSGF_power");
			LSGFE2.AddAudio("LSGF_search");
			LSGFE2.AddAudio("LSGF_taken");
			LSGFE2.AddAudio("LSGF_ultimate");
			LSGFHit.AddAudio("LSGF_attack1");
			LSGFHit.AddAudio("LSGF_attack2");
			LSGFHit.AddAudio("LSGF_attack3");
			LSGFHit.AddAudio("LSGF_attack4");
			LSGFHit.AddAudio("LSGF_attack5");
			LSGFHit.AddAudio("LSGF_attack6");
			LSGFHit.AddAudio("LSGF_attack7");
			LSGFHit.AddAudio("LSGF_attack8");
			LSGFHit.AddAudio("LSGF_attack9");
			LSGFHit.AddAudio("LSGF_attack10");
			LSGFHit.AddAudio("LSGF_attack11");
			LSGFHit.AddAudio("LSGF_attack12");
			LSGFHit.AddAudio("LSGF_E2");
			LSGFHit.AddAudio("LSGF_E4");
			LSGFHit.AddAudio("LSGF_E2");
			LSGFHit.AddAudio("LSGF_E4");
			LSGFHit.AddAudio("LSGF_Q1");
			LSGFHit.AddAudio("LSGF_Q2");
			LSGFHit.AddAudio("LSGF_Q3");
			LSGFHit.AddAudio("LSGF_Q4");
			LSGFHit.AddAudio("LSGF_Q5");
			LSGFHit.AddAudio("LSGF_Q6");
			LSGFHit.AddAudio("LSGF_Q7");
			LSGFHit.AddAudio("LSGF_R1");
			LSGFHit.AddAudio("LSGF_R2");
			LSGFHit.AddAudio("LSGF_R3");
			LSGFHit.AddAudio("LSGF_R4");
			LSGFHit.AddAudio("LSGF_R5");
			LSGFGloat.AddAudio("LSGF_Gloat1");
			LSGFGloat.AddAudio("LSGF_Gloat2");
			LSGFGloat.AddAudio("LSGF_Gloat3");
			LSGFGloat.AddAudio("LSGF_Gloat4");
			LSGFGloat.AddAudio("LSGF_Gloat5");
			LSGFGloat.AddAudio("LSGF_Gloat6");
			LSGFGloat.AddAudio("LSGF_Gloat7");
			LSGFGloat.AddAudio("LSGF_Gloat8");
			LSGFGloat.AddAudio("LSGF_Gloat9");
			LSGFGloat.AddAudio("LSGF_Gloat10");
			LSGFGloat.AddAudio("LSGF_Gloat11");
			LSGFGloat.AddAudio("LSGF_Gloat12");
			LSGFGloat.AddAudio("LSGF_Gloat13");
			LSGFGloat.AddAudio("LSGF_Gloat14");
			LSSDE1.AddAudio("LSSD_fists");
			LSSDE1.AddAudio("LSSD_flows");
			LSSDE1.AddAudio("LSSD_fists");
			LSSDE1.AddAudio("LSSD_laugh");
			LSSDE1.AddAudio("LSSD_none");
			LSSDE1.AddAudio("LSSD_rage");
			LSSDE1.AddAudio("LSSD_strike");
			LSSDE1.AddAudio("LSSD_thunder");
			LSSDE2.AddAudio("LSSD_blessed");
			LSSDE2.AddAudio("LSSD_justice");
			LSSDE2.AddAudio("LSSD_stronger");
			LSSDE2.AddAudio("LSSD_fists");
			LSSDE2.AddAudio("LSSD_will");
			LSSDE2.AddAudio("LSSD_none");
			LSSDHit.AddAudio("LSSD_attack1");
			LSSDHit.AddAudio("LSSD_attack2");
			LSSDHit.AddAudio("LSSD_attack3");
			LSSDHit.AddAudio("LSSD_attack4");
			LSSDHit.AddAudio("LSSD_attack5");
			LSSDHit.AddAudio("LSSD_attack6");
			LSSDHit.AddAudio("LSSD_attack7");
			LSSDHit.AddAudio("LSSD_attack8");
			LSSDHit.AddAudio("LSSD_attack9");
			LSSDHit.AddAudio("LSSD_attack10");
			LSSDHit.AddAudio("LSSD_attack11");
			LSSDHit.AddAudio("LSSD_attack12");
			LSSDHit.AddAudio("LSSD_Q1");
			LSSDHit.AddAudio("LSSD_Q2");
			LSSDHit.AddAudio("LSSD_Q3");
			LSSDHit.AddAudio("LSSD_Q4");
			LSSDHit.AddAudio("LSSD_Q5");
			LSSDHit.AddAudio("LSSD_Q6");
			LSSDHit.AddAudio("LSSD_Q7");
			LSSDHit.AddAudio("LSSD_R1");
			LSSDHit.AddAudio("LSSD_R2");
			LSSDHit.AddAudio("LSSD_R3");
			LSSDGloat.AddAudio("LSSD_Gloat1");
			LSSDGloat.AddAudio("LSSD_Gloat2");
			LSSDGloat.AddAudio("LSSD_Gloat3");
			LSSDGloat.AddAudio("LSSD_Gloat4");
			LSSDGloat.AddAudio("LSSD_Gloat5");
			LSSDGloat.AddAudio("LSSD_Gloat6");
			LSHSE1.AddAudio("LSHS_ancestors");
			LSHSE1.AddAudio("LSHS_dancing");
			LSHSE1.AddAudio("LSHS_inpride");
			LSHSE1.AddAudio("LSHS_laugh");
			LSHSE1.AddAudio("LSHS_student");
			LSHSE2.AddAudio("LSHS_amusing");
			LSHSE2.AddAudio("LSHS_earth");
			LSHSE2.AddAudio("LSHS_princes");
			LSHSE2.AddAudio("LSHS_smallform");
			LSHSE2.AddAudio("LSHS_tale");
			LSHSE2.AddAudio("LSHS_laugh");
			LSHSE2.AddAudio("LSHS_wedont");
			LSHSHit.AddAudio("LSHS_attack1");
			LSHSHit.AddAudio("LSHS_attack2");
			LSHSHit.AddAudio("LSHS_attack3");
			LSHSHit.AddAudio("LSHS_attack4");
			LSHSHit.AddAudio("LSHS_attack5");
			LSHSHit.AddAudio("LSHS_attack6");
			LSHSHit.AddAudio("LSHS_attack7");
			LSHSHit.AddAudio("LSHS_attack8");
			LSHSHit.AddAudio("LSHS_attack9");
			LSHSHit.AddAudio("LSHS_E1");
			LSHSHit.AddAudio("LSHS_E2");
			LSHSHit.AddAudio("LSHS_E3");
			LSHSHit.AddAudio("LSHS_E4");
			LSHSHit.AddAudio("LSHS_Q1");
			LSHSHit.AddAudio("LSHS_Q2");
			LSHSHit.AddAudio("LSHS_Q3");
			LSHSHit.AddAudio("LSHS_Q4");
			LSHSHit.AddAudio("LSHS_Q5");
			LSHSHit.AddAudio("LSHS_Q6");
			LSHSHit.AddAudio("LSHS_Q7");
			LSHSHit.AddAudio("LSHS_Q8");
			LSHSHit.AddAudio("LSHS_R1");
			LSHSHit.AddAudio("LSHS_R2");
			LSHSHit.AddAudio("LSHS_R3");
			LSHSHit.AddAudio("LSHS_R4");
			LSHSHit.AddAudio("LSHS_R5");
			LSHSGloat.AddAudio("LSHS_Gloat1");
			LSHSGloat.AddAudio("LSHS_Gloat2");
			LSHSGloat.AddAudio("LSHS_Gloat3");
			LSHSGloat.AddAudio("LSHS_Gloat4");
			LSHSGloat.AddAudio("LSHS_Gloat5");
			LSHSGloat.AddAudio("LSHS_Gloat6");
			LSHSGloat.AddAudio("LSHS_Gloat7");
		}

		public static AudioClip GetAudioClipFromName(string name)
		{
			Object obj = MainAssetBundle.LoadAsset(name);
			return (AudioClip)(object)((obj is AudioClip) ? obj : null);
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}