Decompiled source of TeroSkinsPack v1.2.0

TeroSkinsPack.dll

Decompiled 2 weeks 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.ContentManagement;
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.1", FrameworkDisplayName = ".NET Standard 2.1")]
[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.2.0")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	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.2.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[72];
			for (int i = 0; i < HaveGrantedSkins.Length; i++)
			{
				HaveGrantedSkins[i] = false;
			}
			CharacterSelectController.Awake += (hook_Awake)delegate(orig_Awake orig, CharacterSelectController self)
			{
				orig.Invoke(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();
				}
				if (!HaveGrantedSkins[64])
				{
					AddOperatorRed();
				}
				if (!HaveGrantedSkins[65])
				{
					AddOperatorGold();
				}
				if (!HaveGrantedSkins[66])
				{
					AddOperatorPunk();
				}
				if (!HaveGrantedSkins[67])
				{
					AddOperatorTechie();
				}
				if (!HaveGrantedSkins[68])
				{
					AddDrifterGreen();
				}
				if (!HaveGrantedSkins[69])
				{
					AddDrifterBrown();
				}
				if (!HaveGrantedSkins[70])
				{
					AddDrifterScavenger();
				}
				if (!HaveGrantedSkins[71])
				{
					AddDrifterDevout();
				}
			};
			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");
			LanguageAPI.Add("TEROSKIN_OPERATOR_RED", "Red");
			LanguageAPI.Add("TEROSKIN_OPERATOR_GOLD", "Gold");
			LanguageAPI.Add("TEROSKIN_OPERATOR_PUNK", "Punk");
			LanguageAPI.Add("TEROSKIN_OPERATOR_TECHIE", "Techie");
			LanguageAPI.Add("TEROSKIN_DRIFTER_GREEN", "Green");
			LanguageAPI.Add("TEROSKIN_DRIFTER_BROWN", "Brown");
			LanguageAPI.Add("TEROSKIN_DRIFTER_SCAVENGER", "Scavenger");
			LanguageAPI.Add("TEROSKIN_DRIFTER_DEVOUT", "Devout");
		}

		public static Material ExtractMaterial(RendererInfoTemplate template)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			return Object.Instantiate<Material>(AssetAsyncReferenceManager<Material>.LoadAsset(template.materialReference.address, (AsyncReferenceHandleUnloadType)3).WaitForCompletion());
		}

		private unsafe void AddCommandoRed()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: 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_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: 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_01bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: 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_01e9: 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_021e: 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)
			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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[0]));
				val3.color = new Color(0.6f, 0.01f, 0.02f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[1]));
				val4.color = Color.red;
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = Skins.CreateSkinIcon(Color.red, Color.yellow, Color.red, Color.red);
				val5.Name = "TeroSkinCommandoRed";
				val5.NameToken = "TEROSKIN_COMMANDO_RED";
				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[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;
				SkinDef val7 = Skins.CreateNewSkinDef(val6);
				val7.skinDefParams = SkinDefParams.FromSkinDef(val7);
				Skins.AddSkinToCharacter(val, val7);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddCommandoBlue()
		{
			//IL_00a7: 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_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Expected O, but got Unknown
			//IL_00e2: 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_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c9: 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_01f1: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[0]));
				val2.color = new Color(0.05f, 0.25f, 0.35f);
				val2.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val3 = default(SkinDefInfo);
				val3.Icon = Skins.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;
				SkinDef val5 = Skins.CreateNewSkinDef(val4);
				val5.skinDefParams = SkinDefParams.FromSkinDef(val5);
				Skins.AddSkinToCharacter(val, val5);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddCommandoMantis()
		{
			//IL_006d: 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_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: 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_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: 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_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: 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_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: 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_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_022b: 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)
			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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[0]));
				val3.color = Color.green;
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val4.color = new Color(0.7f, 1f, 0.7f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = Skins.CreateSkinIcon(Color.green, new Color(0.7f, 1f, 0.7f), new Color(0.2f, 0.4f, 0.2f), Color.green);
				val5.Name = "TeroSkinCommandoMantis";
				val5.NameToken = "TEROSKIN_COMMANDO_MANTIS";
				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;
				SkinDef val7 = Skins.CreateNewSkinDef(val6);
				val7.skinDefParams = SkinDefParams.FromSkinDef(val7);
				Skins.AddSkinToCharacter(val, val7);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddCommandoSpider()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: 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_00f7: Expected O, but got Unknown
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: 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_01c1: 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_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0210: 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_022b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: 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_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_0278: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[0]));
				val3.color = new Color(0.3f, 0.3f, 0.22f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val4.color = new Color(0.8f, 0.8f, 0.8f);
				val4.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = Skins.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;
				SkinDef val7 = Skins.CreateNewSkinDef(val6);
				val7.skinDefParams = SkinDefParams.FromSkinDef(val7);
				Skins.AddSkinToCharacter(val, val7);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddHuntressPurple()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: 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_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: 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)
			//IL_0206: 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_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0255: 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)
			//IL_0288: Unknown result type (might be due to invalid IL or missing references)
			//IL_028a: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b2: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.7f, 0.2f, 0.6f);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val4.color = new Color(0.4f, 0.1f, 0.3f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[1]));
				val5.color = Color.red;
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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));
				val6.Name = "TeroSkinHuntressPurple";
				val6.NameToken = "TEROSKIN_HUNTRESS_PURPLE";
				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[3]
				{
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[1]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(val, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddHuntressPink()
		{
			//IL_00a7: 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_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: 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_023d: 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_0268: Unknown result type (might be due to invalid IL or missing references)
			//IL_026a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_029e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: 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)
			//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val2.color = new Color(1f, 0.4f, 0.4f);
				Material val3 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.6f, 0.3f, 0.3f);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val4.color = new Color(1f, 0.6f, 0.6f);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = Skins.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));
				val5.Name = "TeroSkinHuntressPink";
				val5.NameToken = "TEROSKIN_HUNTRESS_PINK";
				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[3]
				{
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[1]
					},
					new RendererInfo
					{
						defaultMaterial = val2,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						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;
				SkinDef val7 = Skins.CreateNewSkinDef(val6);
				val7.skinDefParams = SkinDefParams.FromSkinDef(val7);
				Skins.AddSkinToCharacter(val, val7);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddHuntressRustic()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: 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_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: 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_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_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c2: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.502f, 0.4f, 0.1f);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[11]));
				val4.color = new Color(0.6f, 0.6f, 0.2f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val5.color = new Color(0.7f, 0.7f, 0.3f);
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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));
				val6.Name = "TeroSkinHuntressRustic";
				val6.NameToken = "TEROSKIN_HUNTRESS_RUSTIC";
				val6.RootObject = gameObject;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[3]
				{
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[1]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(val, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddHuntressStalker()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: 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_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: 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_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_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c2: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.4f, 0.4f, 0.33f);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[11]));
				val4.color = new Color(0.6f, 0.7f, 0.5f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val5.color = new Color(0.3f, 0.3f, 0.3f);
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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));
				val6.Name = "TeroSkinHuntressStalker";
				val6.NameToken = "TEROSKIN_HUNTRESS_STALKER";
				val6.RootObject = gameObject;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[3]
				{
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[1]
					},
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[10]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[11]
					}
				};
				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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(val, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddBanditPurple()
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: 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_00f7: Expected O, but got Unknown
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: 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_01c1: 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_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: 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_026b: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[3]));
				val3.color = new Color(0.6f, 0.2f, 0.6f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[6]));
				val4.color = new Color(0.7f, 0.3f, 0.7f);
				val4.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val5 = default(SkinDefInfo);
				val5.Icon = Skins.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;
				SkinDef val7 = Skins.CreateNewSkinDef(val6);
				val7.skinDefParams = SkinDefParams.FromSkinDef(val7);
				Skins.AddSkinToCharacter(val, val7);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddBanditWhite()
		{
			//IL_00a8: 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_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Expected O, but got Unknown
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Expected O, but got Unknown
			//IL_0135: 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_0160: 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_0188: 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_01fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: 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_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: 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_02a6: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[3]));
				val2.color = new Color(0.8f, 0.8f, 0.8f);
				val2.mainTexture = (Texture)new Texture2D(10, 10);
				Material val3 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[6]));
				val3.color = new Color(0.8f, 0.8f, 0.8f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = Skins.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;
				SkinDef val6 = Skins.CreateNewSkinDef(val5);
				val6.skinDefParams = SkinDefParams.FromSkinDef(val6);
				Skins.AddSkinToCharacter(val, val6);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddBanditDevil()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: 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_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: 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_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_020c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_023f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_024a: Unknown result type (might be due to invalid IL or missing references)
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_027f: 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)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02de: 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_0311: Unknown result type (might be due to invalid IL or missing references)
			//IL_0313: Unknown result type (might be due to invalid IL or missing references)
			//IL_0315: Unknown result type (might be due to invalid IL or missing references)
			//IL_033b: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[3]));
				val3.color = new Color(0.8f, 0.3f, 0.2f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[2]));
				val4.color = new Color(0.5f, 0.5f, 0.5f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[7]));
				val5.color = new Color(0.6f, 0.6f, 0.6f);
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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));
				val6.Name = "TeroSkinBanditDevil";
				val6.NameToken = "TEROSKIN_BANDIT_DEVIL";
				val6.RootObject = gameObject;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[5]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[2]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[4]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[7]
					}
				};
				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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(val, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddBanditGolden()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: 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_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: 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_017b: 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_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0226: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: 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_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_0287: Unknown result type (might be due to invalid IL or missing references)
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0322: Unknown result type (might be due to invalid IL or missing references)
			//IL_0324: 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_034c: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[3]));
				val3.color = new Color(0.6f, 0.5f, 0.2f);
				val3.mainTexture = (Texture)new Texture2D(10, 10);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[2]));
				val4.color = new Color(1f, 1f, 0.6f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[7]));
				val5.color = new Color(0.8f, 0.7f, 0.2f);
				val5.mainTexture = (Texture)new Texture2D(10, 10);
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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));
				val6.Name = "TeroSkinBanditGolden";
				val6.NameToken = "TEROSKIN_BANDIT_GOLDEN";
				val6.RootObject = gameObject;
				val6.BaseSkins = (SkinDef[])(object)new SkinDef[1] { componentInChildren.skins[1] };
				val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0];
				val6.RendererInfos = (RendererInfo[])(object)new RendererInfo[5]
				{
					new RendererInfo
					{
						defaultMaterial = val3,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[3]
					},
					new RendererInfo
					{
						defaultMaterial = val4,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[2]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[4]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[5]
					},
					new RendererInfo
					{
						defaultMaterial = val5,
						defaultShadowCastingMode = (ShadowCastingMode)1,
						ignoreOverlays = false,
						renderer = componentsInChildren[7]
					}
				};
				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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(val, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddMulTRed()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: 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_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: 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_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: 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_01d4: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.8f, 0.3f, 0.3f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = Skins.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;
				SkinDef val6 = Skins.CreateNewSkinDef(val5);
				val6.skinDefParams = SkinDefParams.FromSkinDef(val6);
				Skins.AddSkinToCharacter(val, val6);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddMulTGold()
		{
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: 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_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: 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_01d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[1]));
				val2.color = Color.yellow;
				SkinDefInfo val3 = default(SkinDefInfo);
				val3.Icon = Skins.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;
				SkinDef val5 = Skins.CreateNewSkinDef(val4);
				val5.skinDefParams = SkinDefParams.FromSkinDef(val5);
				Skins.AddSkinToCharacter(val, val5);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddMulTNeon()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: 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_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: 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_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: 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_01d4: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[0].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.5f, 1f, 0.5f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = Skins.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;
				SkinDef val6 = Skins.CreateNewSkinDef(val5);
				val6.skinDefParams = SkinDefParams.FromSkinDef(val6);
				Skins.AddSkinToCharacter(val, val6);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddMulTTechno()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: 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_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: 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_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: 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_01d4: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[1]));
				val3.color = new Color(0.3f, 0.8f, 0.95f);
				SkinDefInfo val4 = default(SkinDefInfo);
				val4.Icon = Skins.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;
				SkinDef val6 = Skins.CreateNewSkinDef(val5);
				val6.skinDefParams = SkinDefParams.FromSkinDef(val6);
				Skins.AddSkinToCharacter(val, val6);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddEngineerOrange()
		{
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: 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_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: 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_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: 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_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_022b: Unknown result type (might be due to invalid IL or missing references)
			//IL_022d: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0262: Unknown result type (might be due to invalid IL or missing references)
			//IL_028a: 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_02da: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_030a: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0380: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03df: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0409: 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_042f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0434: Unknown result type (might be due to invalid IL or missing references)
			//IL_0448: Unknown result type (might be due to invalid IL or missing references)
			//IL_045c: Unknown result type (might be due to invalid IL or missing references)
			//IL_04be: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_051a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0532: Unknown result type (might be due to invalid IL or missing references)
			//IL_0534: Unknown result type (might be due to invalid IL or missing references)
			//IL_053d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_0557: Unknown result type (might be due to invalid IL or missing references)
			//IL_0561: Unknown result type (might be due to invalid IL or missing references)
			//IL_0563: Unknown result type (might be due to invalid IL or missing references)
			//IL_0565: Unknown result type (might be due to invalid IL or missing references)
			//IL_058b: 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 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[2]));
				val3.color = new Color(1f, 0.7f, 0.4f);
				Material val4 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[2]));
				val4.color = new Color(1f, 0.7f, 0.4f);
				Material val5 = ExtractMaterial(Unsafe.Read<RendererInfoTemplate>((void*)componentInChildren.skins[1].runtimeSkin.rendererInfoTemplates[2]));
				val5.color = new Color(1f, 0.7f, 0.4f);
				GameObject bodyPrefab = BodyCatalog.GetBodyPrefab(((MinionSkinTemplate)componentInChildren.skins[1].runtimeSkin.minionSkinTemplates[0]).minionBodyIndex);
				Renderer[] componentsInChildren2 = bodyPrefab.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren2 = bodyPrefab.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject2 = ((Component)componentInChildren2).gameObject;
				SkinDefInfo val6 = default(SkinDefInfo);
				val6.Icon = Skins.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 = Skins.CreateNewSkinDef(val7);
				val8.skinDefParams = SkinDefParams.FromSkinDef(val8);
				Skins.AddSkinToCharacter(bodyPrefab, val8);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(bodyPrefab)] = componentInChildren2.skins;
				GameObject bodyPrefab2 = BodyCatalog.GetBodyPrefab(((MinionSkinTemplate)componentInChildren.skins[1].runtimeSkin.minionSkinTemplates[1]).minionBodyIndex);
				Renderer[] componentsInChildren3 = bodyPrefab2.GetComponentsInChildren<Renderer>(true);
				ModelSkinController componentInChildren3 = bodyPrefab2.GetComponentInChildren<ModelSkinController>();
				GameObject gameObject3 = ((Component)componentInChildren3).gameObject;
				val6 = default(SkinDefInfo);
				val6.Icon = Skins.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 = Skins.CreateNewSkinDef(val9);
				val10.skinDefParams = SkinDefParams.FromSkinDef(val10);
				Skins.AddSkinToCharacter(bodyPrefab2, val10);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(bodyPrefab2)] = componentInChildren3.skins;
				val6 = default(SkinDefInfo);
				val6.Icon = Skins.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 = bodyPrefab,
						minionSkin = val8
					},
					new MinionSkinReplacement
					{
						minionBodyPrefab = bodyPrefab2,
						minionSkin = val10
					}
				};
				SkinDefInfo val11 = val6;
				SkinDef val12 = Skins.CreateNewSkinDef(val11);
				val12.skinDefParams = SkinDefParams.FromSkinDef(val12);
				Skins.AddSkinToCharacter(val, val12);
				SkinCatalog.skinsByBody[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins;
			}
		}

		private unsafe void AddEngineerGreen()
		{
			//IL_00a8: 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_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: 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_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: 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_01c5: Unknown result type (might be due to invalid IL or missing references)
			//I