Decompiled source of TeroSkinsPack v1.1.0

TeroSkinsPack.dll

Decompiled 4 months ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;
using On.RoR2.UI;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.Stats;
using RoR2.UI;
using UnityEngine;
using UnityEngine.Rendering;

[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.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("TeroSkinsPack")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("TeroSkinsPack")]
[assembly: AssemblyTitle("TeroSkinsPack")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace TeroSkinsPack
{
	internal static class Log
	{
		internal static ManualLogSource _logSource;

		internal static void Init(ManualLogSource logSource)
		{
			_logSource = logSource;
		}

		internal static void LogDebug(object data)
		{
			_logSource.LogDebug(data);
		}

		internal static void LogError(object data)
		{
			_logSource.LogError(data);
		}

		internal static void LogFatal(object data)
		{
			_logSource.LogFatal(data);
		}

		internal static void LogInfo(object data)
		{
			_logSource.LogInfo(data);
		}

		internal static void LogMessage(object data)
		{
			_logSource.LogMessage(data);
		}

		internal static void LogWarning(object data)
		{
			_logSource.LogWarning(data);
		}
	}
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("Tero.TeroSkinsPack", "TeroSkinsPack", "1.1.0")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	[R2APISubmoduleDependency(new string[] { "PrefabAPI", "LoadoutAPI", "LanguageAPI" })]
	public class TeroSkinsPack : BaseUnityPlugin
	{
		public const string PluginGUID = "Tero.TeroSkinsPack";

		public const string PluginAuthor = "Tero";

		public const string PluginName = "TeroSkinsPack";

		public const string PluginVersion = "1.1.0";

		public const bool shouldUnlockEverything = false;

		private static bool[] HaveGrantedSkins;

		public void Awake()
		{
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Expected O, but got Unknown
			Log.Init(((BaseUnityPlugin)this).Logger);
			HaveGrantedSkins = new bool[64];
			for (int i = 0; i < HaveGrantedSkins.Length; i++)
			{
				HaveGrantedSkins[i] = false;
			}
			CharacterSelectController.Awake += (hook_Awake)delegate(orig_Awake orig, CharacterSelectController self)
			{
				if (!HaveGrantedSkins[0])
				{
					AddCommandoRed();
				}
				if (!HaveGrantedSkins[1])
				{
					AddCommandoBlue();
				}
				if (!HaveGrantedSkins[2])
				{
					AddCommandoMantis();
				}
				if (!HaveGrantedSkins[3])
				{
					AddCommandoSpider();
				}
				if (!HaveGrantedSkins[4])
				{
					AddHuntressPurple();
				}
				if (!HaveGrantedSkins[5])
				{
					AddHuntressPink();
				}
				if (!HaveGrantedSkins[6])
				{
					AddHuntressRustic();
				}
				if (!HaveGrantedSkins[7])
				{
					AddHuntressStalker();
				}
				if (!HaveGrantedSkins[8])
				{
					AddBanditPurple();
				}
				if (!HaveGrantedSkins[9])
				{
					AddBanditWhite();
				}
				if (!HaveGrantedSkins[10])
				{
					AddBanditDevil();
				}
				if (!HaveGrantedSkins[11])
				{
					AddBanditGolden();
				}
				if (!HaveGrantedSkins[12])
				{
					AddMulTRed();
				}
				if (!HaveGrantedSkins[13])
				{
					AddMulTGold();
				}
				if (!HaveGrantedSkins[14])
				{
					AddMulTNeon();
				}
				if (!HaveGrantedSkins[15])
				{
					AddMulTTechno();
				}
				if (!HaveGrantedSkins[16])
				{
					AddEngineerOrange();
				}
				if (!HaveGrantedSkins[17])
				{
					AddEngineerGreen();
				}
				if (!HaveGrantedSkins[18])
				{
					AddEngineerSteampunk();
				}
				if (!HaveGrantedSkins[19])
				{
					AddEngineerMedic();
				}
				if (!HaveGrantedSkins[20])
				{
					AddArtificerRed();
				}
				if (!HaveGrantedSkins[21])
				{
					AddArtificerGreen();
				}
				if (!HaveGrantedSkins[22])
				{
					AddArtificerFrozen();
				}
				if (!HaveGrantedSkins[23])
				{
					AddArtificerRegal();
				}
				if (!HaveGrantedSkins[24])
				{
					AddMercenaryGreen();
				}
				if (!HaveGrantedSkins[25])
				{
					AddMercenaryGold();
				}
				if (!HaveGrantedSkins[26])
				{
					AddMercenaryGenei();
				}
				if (!HaveGrantedSkins[27])
				{
					AddMercenaryShinigami();
				}
				if (!HaveGrantedSkins[28])
				{
					AddRexGreen();
				}
				if (!HaveGrantedSkins[29])
				{
					AddRexOrange();
				}
				if (!HaveGrantedSkins[30])
				{
					AddRexRosebud();
				}
				if (!HaveGrantedSkins[31])
				{
					AddRexTropical();
				}
				if (!HaveGrantedSkins[32])
				{
					AddLoaderBrown();
				}
				if (!HaveGrantedSkins[33])
				{
					AddLoaderPink();
				}
				if (!HaveGrantedSkins[34])
				{
					AddLoaderFireball();
				}
				if (!HaveGrantedSkins[35])
				{
					AddLoaderVoltage();
				}
				if (!HaveGrantedSkins[36])
				{
					AddAcridYellow();
				}
				if (!HaveGrantedSkins[37])
				{
					AddAcridBlue();
				}
				if (!HaveGrantedSkins[38])
				{
					AddAcridToxic();
				}
				if (!HaveGrantedSkins[39])
				{
					AddAcridShadow();
				}
				if (!HaveGrantedSkins[40])
				{
					AddCaptainGreen();
				}
				if (!HaveGrantedSkins[41])
				{
					AddCaptainGray();
				}
				if (!HaveGrantedSkins[42])
				{
					AddCaptainEmperor();
				}
				if (!HaveGrantedSkins[43])
				{
					AddCaptainPirate();
				}
				if (!HaveGrantedSkins[44])
				{
					AddRailgunnerRed();
				}
				if (!HaveGrantedSkins[45])
				{
					AddRailgunnerGreen();
				}
				if (!HaveGrantedSkins[46])
				{
					AddRailgunnerDeadeye();
				}
				if (!HaveGrantedSkins[47])
				{
					AddRailgunnerCovertOps();
				}
				if (!HaveGrantedSkins[48])
				{
					AddVoidFiendWhite();
				}
				if (!HaveGrantedSkins[49])
				{
					AddVoidFiendOrange();
				}
				if (!HaveGrantedSkins[50])
				{
					AddVoidFiendRedPlane();
				}
				if (!HaveGrantedSkins[51])
				{
					AddVoidFiendAlien();
				}
				if (!HaveGrantedSkins[52])
				{
					AddSeekerRed();
				}
				if (!HaveGrantedSkins[53])
				{
					AddSeekerGold();
				}
				if (!HaveGrantedSkins[54])
				{
					AddSeekerStorm();
				}
				if (!HaveGrantedSkins[55])
				{
					AddSeekerVoid();
				}
				if (!HaveGrantedSkins[56])
				{
					AddFalseSonRed();
				}
				if (!HaveGrantedSkins[57])
				{
					AddFalseSonGreen();
				}
				if (!HaveGrantedSkins[58])
				{
					AddFalseSonProdigal();
				}
				if (!HaveGrantedSkins[59])
				{
					AddFalseSonInheritor();
				}
				if (!HaveGrantedSkins[60])
				{
					AddChefSlate();
				}
				if (!HaveGrantedSkins[61])
				{
					AddChefGold();
				}
				if (!HaveGrantedSkins[62])
				{
					AddChefSteampunk();
				}
				if (!HaveGrantedSkins[63])
				{
					AddChefFlambe();
				}
				orig.Invoke(self);
			};
			LanguageAPI.Add("TEROSKIN_COMMANDO_RED", "Red");
			LanguageAPI.Add("TEROSKIN_COMMANDO_BLUE", "Blue");
			LanguageAPI.Add("TEROSKIN_COMMANDO_MANTIS", "Mantis");
			LanguageAPI.Add("TEROSKIN_COMMANDO_SPIDER", "Spider");
			LanguageAPI.Add("TEROSKIN_HUNTRESS_PURPLE", "Purple");
			LanguageAPI.Add("TEROSKIN_HUNTRESS_PINK", "Pink");
			LanguageAPI.Add("TEROSKIN_HUNTRESS_RUSTIC", "Rustic");
			LanguageAPI.Add("TEROSKIN_HUNTRESS_STALKER", "Stalker");
			LanguageAPI.Add("TEROSKIN_BANDIT_PURPLE", "Purple");
			LanguageAPI.Add("TEROSKIN_BANDIT_WHITE", "White");
			LanguageAPI.Add("TEROSKIN_BANDIT_DEVIL", "Devil");
			LanguageAPI.Add("TEROSKIN_BANDIT_GOLDEN", "Golden");
			LanguageAPI.Add("TEROSKIN_MULT_RED", "Red");
			LanguageAPI.Add("TEROSKIN_MULT_GOLD", "Gold");
			LanguageAPI.Add("TEROSKIN_MULT_NEON", "Neon");
			LanguageAPI.Add("TEROSKIN_MULT_TECHNO", "Techno");
			LanguageAPI.Add("TEROSKIN_ENGINEER_ORANGE", "Orange");
			LanguageAPI.Add("TEROSKIN_ENGINEER_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_ENGINEER_STEAMPUNK", "Steampunk");
			LanguageAPI.Add("TEROSKIN_ENGINEER_MEDIC", "Medic");
			LanguageAPI.Add("TEROSKIN_ARTIFICER_RED", "Red");
			LanguageAPI.Add("TEROSKIN_ARTIFICER_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_ARTIFICER_FROZEN", "Frozen");
			LanguageAPI.Add("TEROSKIN_ARTIFICER_REGAL", "Regal");
			LanguageAPI.Add("TEROSKIN_MERCENARY_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_MERCENARY_GOLD", "Gold");
			LanguageAPI.Add("TEROSKIN_MERCENARY_GENEI", "Gen'ei");
			LanguageAPI.Add("TEROSKIN_MERCENARY_SHINIGAMI", "Shinigami");
			LanguageAPI.Add("TEROSKIN_REX_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_REX_ORANGE", "Orange");
			LanguageAPI.Add("TEROSKIN_REX_ROSEBUD", "Rosebud");
			LanguageAPI.Add("TEROSKIN_REX_TROPICAL", "Tropical");
			LanguageAPI.Add("TEROSKIN_LOADER_BROWN", "Brown");
			LanguageAPI.Add("TEROSKIN_LOADER_PINK", "Pink");
			LanguageAPI.Add("TEROSKIN_LOADER_FIREBALL", "Fireball");
			LanguageAPI.Add("TEROSKIN_LOADER_VOLTAGE", "Voltage");
			LanguageAPI.Add("TEROSKIN_ACRID_YELLOW", "Yellow");
			LanguageAPI.Add("TEROSKIN_ACRID_BLUE", "Blue");
			LanguageAPI.Add("TEROSKIN_ACRID_TOXIC", "Toxic");
			LanguageAPI.Add("TEROSKIN_ACRID_SHADOW", "Shadow");
			LanguageAPI.Add("TEROSKIN_CAPTAIN_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_CAPTAIN_GRAY", "Gray");
			LanguageAPI.Add("TEROSKIN_CAPTAIN_EMPEROR", "Emperor");
			LanguageAPI.Add("TEROSKIN_CAPTAIN_PIRATE", "Pirate");
			LanguageAPI.Add("TEROSKIN_RAILGUNNER_RED", "Red");
			LanguageAPI.Add("TEROSKIN_RAILGUNNER_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_RAILGUNNER_DEADEYE", "Deadeye");
			LanguageAPI.Add("TEROSKIN_RAILGUNNER_COVERTOPS", "Covert Ops");
			LanguageAPI.Add("TEROSKIN_VOIDFIEND_WHITE", "White");
			LanguageAPI.Add("TEROSKIN_VOIDFIEND_ORANGE", "Orange");
			LanguageAPI.Add("TEROSKIN_VOIDFIEND_REDPLANE", "Red Plane");
			LanguageAPI.Add("TEROSKIN_VOIDFIEND_ALIEN", "Alien");
			LanguageAPI.Add("TEROSKIN_SEEKER_RED", "Red");
			LanguageAPI.Add("TEROSKIN_SEEKER_GOLD", "Gold");
			LanguageAPI.Add("TEROSKIN_SEEKER_STORM", "Storm");
			LanguageAPI.Add("TEROSKIN_SEEKER_VOID", "Void");
			LanguageAPI.Add("TEROSKIN_FALSESON_RED", "Red");
			LanguageAPI.Add("TEROSKIN_FALSESON_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_FALSESON_PRODIGAL", "Prodigal");
			LanguageAPI.Add("TEROSKIN_FALSESON_INHERITOR", "Inheritor");
			LanguageAPI.Add("TEROSKIN_CHEF_SLATE", "Slate");
			LanguageAPI.Add("TEROSKIN_CHEF_GOLD", "Gold");
			LanguageAPI.Add("TEROSKIN_CHEF_STEAMPUNK", "Steampunk");
			LanguageAPI.Add("TEROSKIN_CHEF_FLAMBE", "Flambe");
		}

		private void AddCommandoRed()
		{
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("CommandoBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 3)
			{
				HaveGrantedSkins[0] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val3.color = new Color(0.6f, 0.01f, 0.02f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(Color.red, Color.yellow, Color.red, Color.red);
				val4.Name = "TeroSkinCommandoRed";
				val4.NameToken = "TEROSKIN_COMMANDO_RED";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddCommandoBlue()
		{
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Expected O, but got Unknown
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("CommandoBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			StatSheet statSheet = firstLocalUser.userProfile.statSheet;
			ulong num = 0uL;
			ulong num2 = 0uL;
			try
			{
				num = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedNormal, "CommandoBody");
				num2 = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedHard, "CommandoBody");
			}
			catch (Exception)
			{
			}
			if (num > 50 || num2 > 50)
			{
				HaveGrantedSkins[1] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val2 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val2.color = new Color(0.05f, 0.25f, 0.35f);
				val2.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val3 = default(SkinDefInfo);
				val3.Icon = LoadoutAPI.CreateSkinIcon(Color.blue, new Color(0.5f, 1f, 0.8f), Color.blue, Color.blue);
				val3.Name = "TeroSkinCommandoBlue";
				val3.NameToken = "TEROSKIN_COMMANDO_BLUE";
				val3.RootObject = gameObject;
				val3.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val3.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val3.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val3.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val3.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val3.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val4 = val3;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val4);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddCommandoMantis()
		{
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("CommandoBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 5)
			{
				HaveGrantedSkins[2] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val3.color = Color.green;
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(Color.green, new Color(0.7f, 1f, 0.7f), new Color(0.2f, 0.4f, 0.2f), Color.green);
				val4.Name = "TeroSkinCommandoMantis";
				val4.NameToken = "TEROSKIN_COMMANDO_MANTIS";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddCommandoSpider()
		{
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Expected O, but got Unknown
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Unknown result type (might be due to invalid IL or missing references)
			//IL_024c: Unknown result type (might be due to invalid IL or missing references)
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("CommandoBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 7)
			{
				HaveGrantedSkins[3] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val3.color = new Color(0.3f, 0.3f, 0.22f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = Object.Instantiate<Material>(componentsInChildren[0].material);
				val4.color = new Color(0.8f, 0.8f, 0.8f);
				val4.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.25f, 0.25f, 0.25f), new Color(0.6f, 0.6f, 0.1f), new Color(0.9f, 0.9f, 0.9f), new Color(0.25f, 0.25f, 0.25f));
				val5.Name = "TeroSkinCommandoSpider";
				val5.NameToken = "TEROSKIN_COMMANDO_SPIDER";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[3]
				{
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[0]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddHuntressPurple()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_0257: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("HuntressBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 3)
			{
				HaveGrantedSkins[4] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[1].defaultMaterial);
				val3.color = new Color(0.7f, 0.2f, 0.6f);
				Material val4 = Object.Instantiate<Material>(componentsInChildren[11].material);
				val4.color = new Color(0.4f, 0.1f, 0.3f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.7f, 0.2f, 0.6f), new Color(0.5f, 1f, 1f), new Color(0.5f, 0.5f, 0.5f), new Color(0.4f, 0.1f, 0.3f));
				val5.Name = "TeroSkinHuntressPurple";
				val5.NameToken = "TEROSKIN_HUNTRESS_PURPLE";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddHuntressPink()
		{
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_014c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_0244: Unknown result type (might be due to invalid IL or missing references)
			//IL_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_0291: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("HuntressBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			StatSheet statSheet = firstLocalUser.userProfile.statSheet;
			ulong num = 0uL;
			ulong num2 = 0uL;
			try
			{
				num = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedNormal, "HuntressBody");
				num2 = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedHard, "HuntressBody");
			}
			catch (Exception)
			{
			}
			if (num > 50 || num2 > 50)
			{
				HaveGrantedSkins[5] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val2 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[1].defaultMaterial);
				val2.color = new Color(1f, 0.4f, 0.4f);
				Material val3 = Object.Instantiate<Material>(componentsInChildren[11].material);
				val3.color = new Color(0.6f, 0.3f, 0.3f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.4f, 0.4f), new Color(0.5f, 1f, 1f), new Color(0.5f, 0.5f, 0.5f), new Color(0.6f, 0.3f, 0.3f));
				val4.Name = "TeroSkinHuntressPink";
				val4.NameToken = "TEROSKIN_HUNTRESS_PINK";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddHuntressRustic()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0217: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("HuntressBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 5)
			{
				HaveGrantedSkins[6] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[1].defaultMaterial);
				val3.color = new Color(0.502f, 0.4f, 0.1f);
				Material val4 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[2].defaultMaterial);
				val4.color = new Color(0.6f, 0.6f, 0.2f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.502f, 0.4f, 0.1f), new Color(0.5f, 1f, 1f), new Color(0.5f, 0.5f, 0.5f), new Color(0.6f, 0.6f, 0.2f));
				val5.Name = "TeroSkinHuntressRustic";
				val5.NameToken = "TEROSKIN_HUNTRESS_RUSTIC";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddHuntressStalker()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_0257: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("HuntressBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 7)
			{
				HaveGrantedSkins[7] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[1].defaultMaterial);
				val3.color = new Color(0.2f, 0.2f, 0.2f);
				Material val4 = Object.Instantiate<Material>(componentsInChildren[11].material);
				val4.color = new Color(0.5f, 0.5f, 0.5f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.2f, 0.2f, 0.2f), new Color(0.5f, 1f, 1f), new Color(0.5f, 0.5f, 0.5f), new Color(0.6f, 0.6f, 0.6f));
				val5.Name = "TeroSkinHuntressStalker";
				val5.NameToken = "TEROSKIN_HUNTRESS_STALKER";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddBanditPurple()
		{
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Expected O, but got Unknown
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0217: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("Bandit2Body");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 3)
			{
				HaveGrantedSkins[8] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[3].material);
				val3.color = new Color(0.6f, 0.2f, 0.6f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val4.color = new Color(0.7f, 0.3f, 0.7f);
				val4.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.7f, 0.3f, 0.7f), new Color(0.6f, 0.6f, 0.6f), new Color(0.4f, 0.4f, 0.4f), new Color(0.6f, 0.2f, 0.6f));
				val5.Name = "TeroSkinBanditPurple";
				val5.NameToken = "TEROSKIN_BANDIT_PURPLE";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddBanditWhite()
		{
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Expected O, but got Unknown
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Expected O, but got Unknown
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0207: Unknown result type (might be due to invalid IL or missing references)
			//IL_021f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("Bandit2Body");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			StatSheet statSheet = firstLocalUser.userProfile.statSheet;
			ulong num = 0uL;
			ulong num2 = 0uL;
			try
			{
				num = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedNormal, "Bandit2Body");
				num2 = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedHard, "Bandit2Body");
			}
			catch (Exception)
			{
			}
			if (num > 50 || num2 > 50)
			{
				HaveGrantedSkins[9] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val2 = Object.Instantiate<Material>(componentsInChildren[3].material);
				val2.color = new Color(0.8f, 0.8f, 0.8f);
				val2.mainTexture = (Texture)new Texture2D(10, 10);
				Material val3 = Object.Instantiate<Material>(componentsInChildren[6].material);
				val3.color = new Color(0.8f, 0.8f, 0.8f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.8f, 0.8f, 0.8f), new Color(0.6f, 0.6f, 0.6f), new Color(0.4f, 0.4f, 0.4f), new Color(0.8f, 0.8f, 0.8f));
				val4.Name = "TeroSkinBanditWhite";
				val4.NameToken = "TEROSKIN_BANDIT_WHITE";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[6]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddBanditDevil()
		{
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0217: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("Bandit2Body");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 5)
			{
				HaveGrantedSkins[10] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[3].material);
				val3.color = new Color(0.8f, 0.3f, 0.2f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[2].defaultMaterial);
				val4.color = new Color(0.55f, 0.55f, 0.55f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.3f, 0.3f, 0.3f), new Color(0.6f, 0.6f, 0.6f), new Color(0.2f, 0.2f, 0.2f), new Color(0.8f, 0.3f, 0.2f));
				val5.Name = "TeroSkinBanditDevil";
				val5.NameToken = "TEROSKIN_BANDIT_DEVIL";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[2]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[2]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddBanditGolden()
		{
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Expected O, but got Unknown
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_0284: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("Bandit2Body");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 7)
			{
				HaveGrantedSkins[11] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[3].material);
				val3.color = new Color(0.5f, 0.4f, 0.1f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = Object.Instantiate<Material>(componentsInChildren[7].material);
				val4.color = new Color(0.8f, 0.7f, 0.2f);
				val4.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.7f, 0.7f, 0.7f), new Color(0.8f, 0.7f, 0.2f), new Color(0.3f, 0.3f, 0.3f), new Color(0.5f, 0.4f, 0.1f));
				val5.Name = "TeroSkinBanditGolden";
				val5.NameToken = "TEROSKIN_BANDIT_GOLDEN";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[4]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[4]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[7]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val6);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddMulTRed()
		{
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("ToolbotBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 3)
			{
				HaveGrantedSkins[12] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[5].material);
				val3.color = new Color(0.8f, 0.3f, 0.3f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.8f, 0.3f, 0.3f), new Color(1f, 0.4f, 0.4f), new Color(1f, 0.4f, 0.4f), new Color(0.8f, 0.3f, 0.3f));
				val4.Name = "TeroSkinMulTRed";
				val4.NameToken = "TEROSKIN_MULT_RED";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddMulTGold()
		{
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("ToolbotBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			StatSheet statSheet = firstLocalUser.userProfile.statSheet;
			ulong num = 0uL;
			ulong num2 = 0uL;
			try
			{
				num = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedNormal, "ToolbotBody");
				num2 = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedHard, "ToolbotBody");
			}
			catch (Exception)
			{
			}
			if (num > 50 || num2 > 50)
			{
				HaveGrantedSkins[13] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val2 = Object.Instantiate<Material>(componentsInChildren[5].material);
				val2.color = Color.yellow;
				SkinDefInfo val3 = default(SkinDefInfo);
				val3.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.8f, 0.8f, 0.2f), new Color(1f, 1f, 0.3f), new Color(1f, 1f, 0.3f), new Color(0.8f, 0.8f, 0.2f));
				val3.Name = "TeroSkinMulTGold";
				val3.NameToken = "TEROSKIN_MULT_GOLD";
				val3.RootObject = gameObject;
				val3.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val3.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val3.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					}
				};
				val3.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val3.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val3.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val4 = val3;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val4);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddMulTNeon()
		{
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("ToolbotBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 5)
			{
				HaveGrantedSkins[14] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentsInChildren[5].material);
				val3.color = new Color(0.5f, 1f, 0.5f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.3f, 1f, 0.3f), new Color(0.4f, 0.9f, 0.6f), new Color(0.4f, 0.9f, 0.6f), new Color(0.3f, 1f, 0.3f));
				val4.Name = "TeroSkinMulTNeon";
				val4.NameToken = "TEROSKIN_MULT_NEON";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddMulTTechno()
		{
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("ToolbotBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 7)
			{
				HaveGrantedSkins[15] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[1].defaultMaterial);
				val3.color = new Color(0.3f, 0.7f, 0.7f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.5f, 0.5f, 1f), new Color(0.7f, 0.7f, 1f), new Color(0.7f, 0.7f, 1f), new Color(0.5f, 0.5f, 1f));
				val4.Name = "TeroSkinMulTTechno";
				val4.NameToken = "TEROSKIN_MULT_TECHNO";
				val4.RootObject = gameObject;
				val4.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val4.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val4.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					}
				};
				val4.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val4.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val4.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val5 = val4;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val5);
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddEngineerOrange()
		{
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0326: Unknown result type (might be due to invalid IL or missing references)
			//IL_033d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			//IL_0356: Unknown result type (might be due to invalid IL or missing references)
			//IL_036a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0429: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Unknown result type (might be due to invalid IL or missing references)
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_047d: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0559: Unknown result type (might be due to invalid IL or missing references)
			//IL_056b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0583: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_062a: Unknown result type (might be due to invalid IL or missing references)
			//IL_064b: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("EngiBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val);
			int localUserSurvivorCompletedEclipseLevel = EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(firstLocalUser, val2);
			if (localUserSurvivorCompletedEclipseLevel >= 3)
			{
				HaveGrantedSkins[16] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[2].defaultMaterial);
				val3.color = new Color(1f, 0.7f, 0.3f);
				Material val4 = Object.Instantiate<Material>(componentInChildren.skins[1].minionSkinReplacements[0].minionSkin.rendererInfos[0].defaultMaterial);
				val4.color = new Color(1f, 0.7f, 0.3f);
				Material val5 = Object.Instantiate<Material>(componentInChildren.skins[1].minionSkinReplacements[1].minionSkin.rendererInfos[0].defaultMaterial);
				val5.color = new Color(1f, 0.7f, 0.3f);
				GameObject minionBodyPrefab = componentInChildren.skins[1].minionSkinReplacements[0].minionBodyPrefab;
				Renderer[] componentsInChildren2 = minionBodyPrefab.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren2 = minionBodyPrefab.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject2 = ((Component)componentInChildren2).gameObject;
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.7f, 0.4f), Color.green, new Color(1f, 0.7f, 0.4f), new Color(0.8f, 0.5f, 0.3f));
				val6.Name = "TeroSkinEngineerOrangeTurret1";
				val6.NameToken = "TEROSKIN_ENGINEER_ORANGET1";
				val6.RootObject = gameObject2;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren2.skins[0] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren2[0]
					}
				};
				val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val7 = val6;
				SkinDef val8 = LoadoutAPI.CreateNewSkinDef(val7);
				Array.Resize(ref componentInChildren2.skins, componentInChildren2.skins.Length + 1);
				componentInChildren2.skins[componentInChildren2.skins.Length - 1] = val8;
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(minionBodyPrefab)] = componentInChildren2.skins;
				SkinDef[][] fieldValue2 = Reflection.GetFieldValue<SkinDef[][]>(typeof(SkinCatalog), "skinsByBody");
				fieldValue2[BodyCatalog.FindBodyIndex(minionBodyPrefab)] = componentInChildren2.skins;
				GameObject minionBodyPrefab2 = componentInChildren.skins[1].minionSkinReplacements[1].minionBodyPrefab;
				Renderer[] componentsInChildren3 = minionBodyPrefab2.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren3 = minionBodyPrefab2.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject3 = ((Component)componentInChildren3).gameObject;
				val6 = default(SkinDefInfo);
				val6.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.7f, 0.4f), Color.green, new Color(1f, 0.7f, 0.4f), new Color(0.8f, 0.5f, 0.3f));
				val6.Name = "TeroSkinEngineerOrangeTurret2";
				val6.NameToken = "TEROSKIN_ENGINEER_ORANGET2";
				val6.RootObject = gameObject3;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren3.skins[0] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren3[0]
					}
				};
				val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val9 = val6;
				SkinDef val10 = LoadoutAPI.CreateNewSkinDef(val9);
				Array.Resize(ref componentInChildren3.skins, componentInChildren3.skins.Length + 1);
				componentInChildren3.skins[componentInChildren3.skins.Length - 1] = val10;
				SkinDef[][] fieldValue3 = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue3[BodyCatalog.FindBodyIndex(minionBodyPrefab2)] = componentInChildren3.skins;
				SkinDef[][] fieldValue4 = Reflection.GetFieldValue<SkinDef[][]>(typeof(SkinCatalog), "skinsByBody");
				fieldValue4[BodyCatalog.FindBodyIndex(minionBodyPrefab2)] = componentInChildren3.skins;
				val6 = default(SkinDefInfo);
				val6.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.7f, 0.4f), Color.green, new Color(1f, 0.7f, 0.4f), new Color(0.8f, 0.5f, 0.3f));
				val6.Name = "TeroSkinEngineerOrange";
				val6.NameToken = "TEROSKIN_ENGINEER_ORANGE";
				val6.RootObject = gameObject;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[4]
					}
				};
				val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[2]
				{
					new MinionSkinReplacement
					{
						minionBodyPrefab = minionBodyPrefab,
						minionSkin = val8
					},
					new MinionSkinReplacement
					{
						minionBodyPrefab = minionBodyPrefab2,
						minionSkin = val10
					}
				};
				SkinDefInfo val11 = val6;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val11);
				SkinDef[][] fieldValue5 = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue5[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddEngineerGreen()
		{
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0158: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0406: Unknown result type (might be due to invalid IL or missing references)
			//IL_0418: Unknown result type (might be due to invalid IL or missing references)
			//IL_0430: Unknown result type (might be due to invalid IL or missing references)
			//IL_0432: Unknown result type (might be due to invalid IL or missing references)
			//IL_0463: Unknown result type (might be due to invalid IL or missing references)
			//IL_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_0467: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04de: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0504: Unknown result type (might be due to invalid IL or missing references)
			//IL_0509: Unknown result type (might be due to invalid IL or missing references)
			//IL_051d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0531: Unknown result type (might be due to invalid IL or missing references)
			//IL_0593: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0607: Unknown result type (might be due to invalid IL or missing references)
			//IL_0609: Unknown result type (might be due to invalid IL or missing references)
			//IL_0612: Unknown result type (might be due to invalid IL or missing references)
			//IL_062a: Unknown result type (might be due to invalid IL or missing references)
			//IL_062c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0636: Unknown result type (might be due to invalid IL or missing references)
			//IL_0638: Unknown result type (might be due to invalid IL or missing references)
			//IL_0664: Unknown result type (might be due to invalid IL or missing references)
			//IL_0685: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = BodyCatalog.FindBodyPrefab("EngiBody");
			LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
			StatSheet statSheet = firstLocalUser.userProfile.statSheet;
			ulong num = 0uL;
			ulong num2 = 0uL;
			try
			{
				num = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedNormal, "EngiBody");
				num2 = statSheet.GetStatValueULong(PerBodyStatDef.highestInfiniteTowerWaveReachedHard, "EngiBody");
			}
			catch (Exception)
			{
			}
			if (num > 50 || num2 > 50)
			{
				HaveGrantedSkins[17] = true;
				Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren = val.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject = ((Component)componentInChildren).gameObject;
				Material val2 = Object.Instantiate<Material>(componentInChildren.skins[1].rendererInfos[2].defaultMaterial);
				val2.color = new Color(0.2f, 0.9f, 0.2f);
				Material val3 = Object.Instantiate<Material>(componentInChildren.skins[1].minionSkinReplacements[0].minionSkin.rendererInfos[0].defaultMaterial);
				val3.color = new Color(0.2f, 0.9f, 0.2f);
				Material val4 = Object.Instantiate<Material>(componentInChildren.skins[1].minionSkinReplacements[1].minionSkin.rendererInfos[0].defaultMaterial);
				val4.color = new Color(0.2f, 0.9f, 0.2f);
				GameObject minionBodyPrefab = componentInChildren.skins[1].minionSkinReplacements[0].minionBodyPrefab;
				Renderer[] componentsInChildren2 = minionBodyPrefab.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren2 = minionBodyPrefab.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject2 = ((Component)componentInChildren2).gameObject;
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.7f, 0.4f), Color.green, new Color(1f, 0.7f, 0.4f), new Color(0.8f, 0.5f, 0.3f));
				val5.Name = "TeroSkinEngineerGreenTurret1";
				val5.NameToken = "TEROSKIN_ENGINEER_GREENT1";
				val5.RootObject = gameObject2;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren2.skins[0] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren2[0]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val6 = val5;
				SkinDef val7 = LoadoutAPI.CreateNewSkinDef(val6);
				Array.Resize(ref componentInChildren2.skins, componentInChildren2.skins.Length + 1);
				componentInChildren2.skins[componentInChildren2.skins.Length - 1] = val7;
				SkinDef[][] fieldValue = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue[BodyCatalog.FindBodyIndex(minionBodyPrefab)] = componentInChildren2.skins;
				SkinDef[][] fieldValue2 = Reflection.GetFieldValue<SkinDef[][]>(typeof(SkinCatalog), "skinsByBody");
				fieldValue2[BodyCatalog.FindBodyIndex(minionBodyPrefab)] = componentInChildren2.skins;
				GameObject minionBodyPrefab2 = componentInChildren.skins[1].minionSkinReplacements[1].minionBodyPrefab;
				Renderer[] componentsInChildren3 = minionBodyPrefab2.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren3 = minionBodyPrefab2.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject3 = ((Component)componentInChildren3).gameObject;
				val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(1f, 0.7f, 0.4f), Color.green, new Color(1f, 0.7f, 0.4f), new Color(0.8f, 0.5f, 0.3f));
				val5.Name = "TeroSkinEngineerGreenTurret2";
				val5.NameToken = "TEROSKIN_ENGINEER_GREENT2";
				val5.RootObject = gameObject3;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren3.skins[0] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren3[0]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0];
				SkinDefInfo val8 = val5;
				SkinDef val9 = LoadoutAPI.CreateNewSkinDef(val8);
				Array.Resize(ref componentInChildren3.skins, componentInChildren3.skins.Length + 1);
				componentInChildren3.skins[componentInChildren3.skins.Length - 1] = val9;
				SkinDef[][] fieldValue3 = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue3[BodyCatalog.FindBodyIndex(minionBodyPrefab2)] = componentInChildren3.skins;
				SkinDef[][] fieldValue4 = Reflection.GetFieldValue<SkinDef[][]>(typeof(SkinCatalog), "skinsByBody");
				fieldValue4[BodyCatalog.FindBodyIndex(minionBodyPrefab2)] = componentInChildren3.skins;
				val5 = default(SkinDefInfo);
				val5.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.2f, 0.9f, 0.2f), Color.green, new Color(0.2f, 0.9f, 0.2f), new Color(0.1f, 0.7f, 0.1f));
				val5.Name = "TeroSkinEngineerGreen";
				val5.NameToken = "TEROSKIN_ENGINEER_GREEN";
				val5.RootObject = gameObject;
				val5.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[0] };
				val5.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val5.RendererInfos = (RendererInfo[])(object)new RendererInfo[1]
				{
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[4]
					}
				};
				val5.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0];
				val5.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0];
				val5.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[2]
				{
					new MinionSkinReplacement
					{
						minionBodyPrefab = minionBodyPrefab,
						minionSkin = val7
					},
					new MinionSkinReplacement
					{
						minionBodyPrefab = minionBodyPrefab2,
						minionSkin = val9
					}
				};
				SkinDefInfo val10 = val5;
				Array.Resize(ref componentInChildren.skins, componentInChildren.skins.Length + 1);
				componentInChildren.skins[componentInChildren.skins.Length - 1] = LoadoutAPI.CreateNewSkinDef(val10);
				SkinDef[][] fieldValue5 = Reflection.GetFieldValue<SkinDef[][]>(typeof(BodyCatalog), "skins");
				fieldValue5[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private void AddEngineerSteampunk()
		{
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to i