Decompiled source of Lemurian v8.1.2

plugins/Lemurian.dll

Decompiled 3 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using EntityStates;
using EntityStates.Commando;
using EntityStates.Commando.CommandoWeapon;
using EntityStates.Croco;
using EntityStates.FalseSon;
using EntityStates.GolemMonster;
using EntityStates.ImpBossMonster;
using EntityStates.ImpMonster;
using EntityStates.LemurianBruiserMonster;
using EntityStates.LemurianMonster;
using EntityStates.LunarExploderMonster;
using EntityStates.TitanMonster;
using EntityStates.Toolbot;
using EntityStates.VoidRaidCrab;
using HG.BlendableTypes;
using KinematicCharacterController;
using On.RoR2;
using R2API;
using R2API.Utils;
using RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
using RoR2;
using RoR2.ContentManagement;
using RoR2.Navigation;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using RoR2BepInExPack.GameAssetPaths;
using ThreeEyedGames;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using Zio.FileSystems;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyCompany("Lemurian")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Lemurian")]
[assembly: AssemblyTitle("Lemurian")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Lemurian;

internal static class Files
{
	public static PluginInfo PluginInfo;

	internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location);

	internal static void Init(PluginInfo info)
	{
		PluginInfo = info;
	}

	internal static string GetPathToFile(string folderName, string fileName)
	{
		return Path.Combine(assemblyDir, folderName, fileName);
	}
}
public static class Horns
{
	public class ApplyLemurianHorns : MonoBehaviour
	{
		private CharacterModel model;

		private ChildLocator childLocator;

		private DisplayRuleGroup Horns;

		public void OnEnable()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: 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_00da: 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_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: 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_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: 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_01dc: 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_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: 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)
			model = ((Component)this).GetComponentInChildren<CharacterModel>();
			childLocator = ((Component)this).GetComponentInChildren<ChildLocator>();
			if (Loader.Hornchoser.Value == Loader.HornChoser.Fire)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Ice)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixWhite);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Thunder)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixBlue);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Haunted)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixHaunted);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Poison)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixPoison);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Gold)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteAurelioniteEquipment);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Lunar)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixLunar);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Void)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteVoidEquipment);
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Antler)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteEarth/EliteEarthEquipment.asset").WaitForCompletion());
			}
			else if (Loader.Hornchoser.Value == Loader.HornChoser.Bead)
			{
				Horns = model.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.EliteBeadEquipment);
			}
			Debug.LogError((object)"DoingAddhorns");
			if (Loader.EliteHorns.Value)
			{
				AddHorns();
			}
		}

		public void AddHorns()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: 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_017d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: 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_019f: 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_01b0: 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_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: 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_00fd: 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_010e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)model))
			{
				return;
			}
			DisplayRuleGroup horns = Horns;
			if (horns.rules.Length > 1)
			{
				Transform val = childLocator.FindChild(horns.rules[0].childName);
				if (Object.op_Implicit((Object)(object)val))
				{
					Apply(model, horns.rules[0].followerPrefab, val, horns.rules[0].localPos, Quaternion.Euler(horns.rules[0].localAngles), horns.rules[0].localScale);
				}
				if (Object.op_Implicit((Object)(object)childLocator.FindChild(horns.rules[1].childName)))
				{
					Apply(model, horns.rules[1].followerPrefab, val, horns.rules[1].localPos, Quaternion.Euler(horns.rules[1].localAngles), horns.rules[1].localScale);
				}
			}
			else
			{
				Transform val2 = childLocator.FindChild(horns.rules[0].childName);
				if (Object.op_Implicit((Object)(object)val2))
				{
					Apply(model, horns.rules[0].followerPrefab, val2, horns.rules[0].localPos, Quaternion.Euler(horns.rules[0].localAngles), horns.rules[0].localScale);
				}
			}
		}

		public void Apply(CharacterModel characterModel, GameObject prefab, Transform parent, Vector3 localPosition, Quaternion localRotation, Vector3 localScale)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = Object.Instantiate<GameObject>(prefab.gameObject, parent);
			val.transform.localPosition = localPosition;
			val.transform.localRotation = localRotation;
			val.transform.localScale = localScale;
			LimbMatcher component = val.GetComponent<LimbMatcher>();
			if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)childLocator))
			{
				component.SetChildLocator(childLocator);
			}
		}
	}

	public class ApplyElderHorns : MonoBehaviour
	{
		private CharacterModel model2;

		private ChildLocator childLocator2;

		public void Start()
		{
			model2 = ((Component)this).GetComponentInChildren<CharacterModel>();
			childLocator2 = ((Component)this).GetComponentInChildren<ChildLocator>();
			AddHorns2();
		}

		public void AddHorns2()
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: 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_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: 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_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			if (!Object.op_Implicit((Object)(object)model2))
			{
				return;
			}
			DisplayRuleGroup val = model2.itemDisplayRuleSet.FindDisplayRuleGroup((Object)(object)Equipment.AffixRed);
			if (val.rules.Length > 1)
			{
				Transform val2 = childLocator2.FindChild(val.rules[0].childName);
				if (Object.op_Implicit((Object)(object)val2))
				{
					Apply2(model2, val.rules[0].followerPrefab, val2, val.rules[0].localPos, Quaternion.Euler(val.rules[0].localAngles), val.rules[0].localScale);
				}
				if (Object.op_Implicit((Object)(object)childLocator2.FindChild(val.rules[1].childName)))
				{
					Apply2(model2, val.rules[1].followerPrefab, val2, val.rules[1].localPos, Quaternion.Euler(val.rules[1].localAngles), val.rules[1].localScale);
				}
			}
		}

		public void Apply2(CharacterModel characterModel, GameObject prefab, Transform parent, Vector3 localPosition, Quaternion localRotation, Vector3 localScale)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = Object.Instantiate<GameObject>(prefab.gameObject, parent);
			val.transform.localPosition = localPosition;
			val.transform.localRotation = localRotation;
			val.transform.localScale = localScale;
			LimbMatcher component = val.GetComponent<LimbMatcher>();
			if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)childLocator2))
			{
				component.SetChildLocator(childLocator2);
			}
		}
	}
}
public static class LemPrefabs
{
	public static GameObject LemChprefab;

	public static GameObject LemLaserPrimCh;

	public static GameObject LemSpecialCh;

	public static GameObject LemPodprefab;

	public static GameObject ImpChPrefab;

	public static GameObject LunarChPrefab;

	public static GameObject LemFireCharge;

	public static GameObject LemPrim2Explo;

	public static GameObject LemJumpUtil2;

	public static GameObject LemExploUtil1;

	public static GameObject LemJumpUtil1;

	public static GameObject FlameEffect;

	public static GameObject LemExploCharge;

	public static GameObject LemExploSpecial2Charge;

	public static GameObject LemExploSpecial2Magma;

	public static GameObject chargeFireBall;

	public static GameObject ImpSecLaser;

	public static GameObject ImpSpecialBlink;

	public static GameObject ImpSpecialSlam;

	public static GameObject NullifierExlpo;

	public static GameObject LunGolDeath;

	public static GameObject LunGolShieldCharge;

	public static Material FireBuffMat;

	public static Material LunarSphereMat;

	public static GameObject SwitchEffect;

	public static GameObject LemDicator;

	public static GameObject LunDicator;

	internal static void PrefabSetup()
	{
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_000b: Unknown result type (might be due to invalid IL or missing references)
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0102: Unknown result type (might be due to invalid IL or missing references)
		//IL_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_013d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0166: 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_0196: Unknown result type (might be due to invalid IL or missing references)
		//IL_019b: 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_01cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fd: 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_0220: 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_0242: Unknown result type (might be due to invalid IL or missing references)
		//IL_025f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0264: Unknown result type (might be due to invalid IL or missing references)
		//IL_0281: Unknown result type (might be due to invalid IL or missing references)
		//IL_0286: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d0: 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_02f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0314: Unknown result type (might be due to invalid IL or missing references)
		//IL_0319: Unknown result type (might be due to invalid IL or missing references)
		//IL_0336: 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)
		//IL_0358: Unknown result type (might be due to invalid IL or missing references)
		//IL_035d: Unknown result type (might be due to invalid IL or missing references)
		//IL_037a: Unknown result type (might be due to invalid IL or missing references)
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_039c: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03be: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_040e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0413: Unknown result type (might be due to invalid IL or missing references)
		//IL_0430: Unknown result type (might be due to invalid IL or missing references)
		//IL_0435: Unknown result type (might be due to invalid IL or missing references)
		//IL_0472: Unknown result type (might be due to invalid IL or missing references)
		//IL_0477: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c3: Expected O, but got Unknown
		//IL_04ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d8: Expected O, but got Unknown
		//IL_04e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ed: Expected O, but got Unknown
		//IL_04f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0502: Expected O, but got Unknown
		//IL_050d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0517: Expected O, but got Unknown
		//IL_0522: Unknown result type (might be due to invalid IL or missing references)
		//IL_052c: Expected O, but got Unknown
		//IL_0537: Unknown result type (might be due to invalid IL or missing references)
		//IL_0541: Expected O, but got Unknown
		//IL_054c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0556: Expected O, but got Unknown
		//IL_0561: Unknown result type (might be due to invalid IL or missing references)
		//IL_056b: Expected O, but got Unknown
		//IL_0576: Unknown result type (might be due to invalid IL or missing references)
		//IL_0580: Expected O, but got Unknown
		//IL_058b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0595: Expected O, but got Unknown
		//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05aa: Expected O, but got Unknown
		//IL_05b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05bf: Expected O, but got Unknown
		//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d4: Expected O, but got Unknown
		//IL_05df: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e9: Expected O, but got Unknown
		//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fe: Expected O, but got Unknown
		//IL_0609: Unknown result type (might be due to invalid IL or missing references)
		//IL_0613: Expected O, but got Unknown
		//IL_061e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0628: Expected O, but got Unknown
		LemChprefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoCrosshair.prefab").WaitForCompletion();
		LemLaserPrimCh = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Seeker/SeekerCrosshair.prefab").WaitForCompletion();
		LemSpecialCh = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/Bandit/BanditCrosshair.prefab").WaitForCompletion();
		ImpChPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SimpleDotCrosshair.prefab").WaitForCompletion();
		LunarChPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SimpleDotCrosshair.prefab").WaitForCompletion();
		LemFireCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Lemurian/LemurianChargeFire.prefab").WaitForCompletion();
		CreateEffect(LemFireCharge);
		LemExploCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Child/ChargeChildTrackingSparkBall.prefab").WaitForCompletion();
		CreateEffect(LemExploCharge);
		LemPodprefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorBody.prefab").WaitForCompletion().GetComponent<CharacterBody>()
			.preferredPodPrefab, "LemPodPrefab", true);
			((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/mdlVoidSurvivorPod")).GetComponentInChildren<SkinnedMeshRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/FireballsOnHit/matFireballsOnHit.mat").WaitForCompletion();
			((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod")).transform.localScale = new Vector3(2f, 2f, 2f);
			((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/Decal (1)")).GetComponentInChildren<Decal>().Material = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/Molotov/matMolotovDecal.mat").WaitForCompletion();
			((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/Flames (1)")).GetComponentInChildren<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/VFX/mageMageFireStarburst.mat").WaitForCompletion();
			((Renderer)((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/FallingFX")).GetComponentInChildren<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/VFX/mageMageFireStarburst.mat").WaitForCompletion();
			((Component)LemPodprefab.transform.Find("Base/mdlVoidSurvivorPod/VoidSurvivorPodArmature/ROOT/Body/FallingFX")).GetComponentInChildren<ParticleSystemRenderer>().trailMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Junk/Bandit/matThermiteFlame.mat").WaitForCompletion();
			CreateEffect(LemPodprefab);
			LemPrim2Explo = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LemurianBruiser/OmniExplosionVFXLemurianBruiserFireballImpact.prefab").WaitForCompletion();
			CreateEffect(LemPrim2Explo);
			LemJumpUtil1 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ArchWisp/OmniExplosionVFXArchWispCannonImpact.prefab").WaitForCompletion();
			CreateEffect(LemJumpUtil1);
			LemJumpUtil2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LemurianBruiser/OmniExplosionVFXLemurianBruiserFireballImpact.prefab").WaitForCompletion();
			CreateEffect(LemJumpUtil2);
			LemExploUtil1 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/FusionCellDestructible/FusionCellExplosion.prefab").WaitForCompletion();
			CreateEffect(LemExploUtil1);
			FlameEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Drones/DroneFlamethrowerEffect.prefab").WaitForCompletion(), "Prefabs/SpecialFlame", true);
			CreateEffect(FlameEffect);
			LemExploSpecial2Charge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/skymeadow/ArtifactworldPortalPrespawnEffect.prefab").WaitForCompletion();
			CreateEffect(LemExploSpecial2Charge);
			LemExploSpecial2Magma = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/MagmaWorm/MagmaOrbExplosion.prefab").WaitForCompletion();
			CreateEffect(LemExploSpecial2Magma);
			ImpSecLaser = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Golem/TracerGolem.prefab").WaitForCompletion();
			CreateEffect(ImpSecLaser);
			ImpSpecialBlink = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion();
			CreateEffect(ImpSpecialBlink);
			ImpSpecialSlam = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ImpBoss/ImpBossGroundSlam.prefab").WaitForCompletion();
			CreateEffect(ImpSpecialSlam);
			LunGolShieldCharge = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemShieldCharge.prefab").WaitForCompletion();
			CreateEffect(LunGolShieldCharge);
			NullifierExlpo = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Nullifier/NullifierExplosion.prefab").WaitForCompletion();
			CreateEffect(NullifierExlpo);
			LunGolDeath = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/LunarGolem/LunarGolemDeath.prefab").WaitForCompletion();
			CreateEffect(LunGolDeath);
			FireBuffMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/matOnFire.mat").WaitForCompletion();
			LunarSphereMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/BurnNearby/matOnHelfire.mat").WaitForCompletion();
			SwitchEffect = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Items/MeteorAttackOnHighDamage/RunicMeteorStrikeImpact.prefab").WaitForCompletion();
			CreateEffect(SwitchEffect);
			LemDicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), "Prefabs/LemDicator", true);
			((Renderer)LemDicator.GetComponentInChildren<MeshRenderer>()).sharedMaterial = FireBuffMat;
			CreateEffect(LemDicator);
			LunDicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), "Prefabs/LunDicator", true);
			((Renderer)LunDicator.GetComponentInChildren<MeshRenderer>()).sharedMaterial = LunarSphereMat;
			CreateEffect(LunDicator);
			Loader.effectPrefabs.Add(new EffectDef(LemFireCharge));
			Loader.effectPrefabs.Add(new EffectDef(LemExploCharge));
			Loader.effectPrefabs.Add(new EffectDef(LemPodprefab));
			Loader.effectPrefabs.Add(new EffectDef(LemPrim2Explo));
			Loader.effectPrefabs.Add(new EffectDef(LemJumpUtil1));
			Loader.effectPrefabs.Add(new EffectDef(LemJumpUtil2));
			Loader.effectPrefabs.Add(new EffectDef(LemExploUtil1));
			Loader.effectPrefabs.Add(new EffectDef(FlameEffect));
			Loader.effectPrefabs.Add(new EffectDef(LemExploSpecial2Charge));
			Loader.effectPrefabs.Add(new EffectDef(ImpSecLaser));
			Loader.effectPrefabs.Add(new EffectDef(ImpSpecialBlink));
			Loader.effectPrefabs.Add(new EffectDef(ImpSpecialSlam));
			Loader.effectPrefabs.Add(new EffectDef(LunGolShieldCharge));
			Loader.effectPrefabs.Add(new EffectDef(NullifierExlpo));
			Loader.effectPrefabs.Add(new EffectDef(LunGolDeath));
			Loader.effectPrefabs.Add(new EffectDef(LemDicator));
			Loader.effectPrefabs.Add(new EffectDef(SwitchEffect));
			Loader.effectPrefabs.Add(new EffectDef(LunDicator));
		}

		public static void CreateEffect(GameObject effectPrfab)
		{
			if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<EffectComponent>()))
			{
				effectPrfab.AddComponent<EffectComponent>();
			}
			if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<VFXAttributes>()))
			{
				effectPrfab.AddComponent<VFXAttributes>();
			}
			if (!Object.op_Implicit((Object)(object)effectPrfab.GetComponent<NetworkIdentity>()))
			{
				effectPrfab.AddComponent<NetworkIdentity>();
			}
		}
	}
	public static class Tokens
	{
		public static SubFileSystem fileSystem;

		internal static string languageRoot => Path.Combine(assemblyDir, "language");

		internal static string assemblyDir => Path.GetDirectoryName(Files.PluginInfo.Location);

		public static void RegisterLanguageTokens()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			Language.SetFolders += new hook_SetFolders(fixme);
		}

		private static void fixme(orig_SetFolders orig, Language self, IEnumerable<string> newFolders)
		{
			if (Directory.Exists(languageRoot))
			{
				IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(languageRoot), self.name);
				orig.Invoke(self, newFolders.Union(second));
			}
			else
			{
				orig.Invoke(self, newFolders);
			}
		}
	}
	public static class ImpSkinSetup
	{
		public static void BuildTheFuckingSkins()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: 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_012e: 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_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0205: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: 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_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: 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_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e9: 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_02f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_032b: Unknown result type (might be due to invalid IL or missing references)
			//IL_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_0367: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_040b: Unknown result type (might be due to invalid IL or missing references)
			//IL_040d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0440: Unknown result type (might be due to invalid IL or missing references)
			//IL_0454: Unknown result type (might be due to invalid IL or missing references)
			//IL_0468: Unknown result type (might be due to invalid IL or missing references)
			//IL_047c: 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_04fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0513: Unknown result type (might be due to invalid IL or missing references)
			//IL_0520: Unknown result type (might be due to invalid IL or missing references)
			//IL_0522: 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_0569: Unknown result type (might be due to invalid IL or missing references)
			//IL_057d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0591: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0612: Unknown result type (might be due to invalid IL or missing references)
			//IL_0617: Unknown result type (might be due to invalid IL or missing references)
			//IL_0628: Unknown result type (might be due to invalid IL or missing references)
			//IL_0635: Unknown result type (might be due to invalid IL or missing references)
			//IL_0637: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_067e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0692: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0712: Unknown result type (might be due to invalid IL or missing references)
			//IL_0727: Unknown result type (might be due to invalid IL or missing references)
			//IL_072c: Unknown result type (might be due to invalid IL or missing references)
			//IL_073d: Unknown result type (might be due to invalid IL or missing references)
			//IL_074a: Unknown result type (might be due to invalid IL or missing references)
			//IL_074c: Unknown result type (might be due to invalid IL or missing references)
			//IL_077f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0793: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0827: Unknown result type (might be due to invalid IL or missing references)
			//IL_083c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0841: Unknown result type (might be due to invalid IL or missing references)
			//IL_0852: Unknown result type (might be due to invalid IL or missing references)
			//IL_085f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0861: Unknown result type (might be due to invalid IL or missing references)
			//IL_0894: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_093c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0951: Unknown result type (might be due to invalid IL or missing references)
			//IL_0956: Unknown result type (might be due to invalid IL or missing references)
			//IL_0967: Unknown result type (might be due to invalid IL or missing references)
			//IL_0974: Unknown result type (might be due to invalid IL or missing references)
			//IL_0976: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e5: Unknown result type (might be due to invalid IL or missing references)
			CharacterModel componentInChildren = Imp.myCharacter.GetComponentInChildren<CharacterModel>();
			SkinDef val = Addressables.LoadAssetAsync<SkinDef>((object)RoR2_Base_Imp.skinImpBodyDefault_asset).WaitForCompletion();
			SkinDefParams val2 = Addressables.LoadAssetAsync<SkinDefParams>((object)RoR2_Base_Imp_skinImpBodyDefault.params_asset).WaitForCompletion();
			Renderer component = ((Component)((Component)componentInChildren).transform.Find("ImpMesh")).GetComponent<Renderer>();
			Debug.Log((object)("rendname:  " + ((Object)component).name));
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Imp.matImp_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			((Component)componentInChildren).GetComponentInChildren<CharacterModel>().baseRendererInfos = array;
			LanguageAPI.Add("Imp_Default_SKIN", "Imp");
			SkinDef val3 = Object.Instantiate<SkinDef>(val);
			val3.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val3.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val3.rootObject = ((Component)componentInChildren).gameObject;
			val3.skinDefParams.rendererInfos = array;
			val3.icon = Skins.CreateSkinIcon(new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f), new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f));
			val3.skinDefParams.meshReplacements[0].renderer = component;
			((Object)val3).name = "Imp_Default_SKIN";
			val3.nameToken = "Imp_Default_SKIN";
			SkinDef val4 = Object.Instantiate<SkinDef>(val);
			val4.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val4.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val4.rootObject = ((Component)componentInChildren).gameObject;
			val4.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Lemurian.matLemurianBruiser_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val4.skinDefParams.meshReplacements[0].renderer = component;
			val4.icon = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponentInChildren<ModelSkinController>()
				.skins[0].icon;
			((Object)val4).name = "Lemurian_Bruiser_SKIN";
			val4.nameToken = "Lemurian_Bruiser_SKIN";
			SkinDef val5 = Object.Instantiate<SkinDef>(val);
			val5.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val5.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val5.rootObject = ((Component)componentInChildren).gameObject;
			val5.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Shopkeeper.matNewt_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val5.skinDefParams.meshReplacements[0].renderer = component;
			val5.icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f), new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f));
			((Object)val5).name = "Lemurian_Lunar_SKIN";
			val5.nameToken = "Lemurian_Lunar_SKIN";
			SkinDef val6 = Object.Instantiate<SkinDef>(val);
			val6.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val6.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val6.rootObject = ((Component)componentInChildren).gameObject;
			val6.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_RoboBallBuddy.RoboBallFriendGreen_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val6.skinDefParams.meshReplacements[0].renderer = component;
			val6.icon = Skins.CreateSkinIcon(new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f), new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f));
			((Object)val6).name = "Lemurian_GlowFace_SKIN";
			val6.nameToken = "Lemurian_GlowFace_SKIN";
			SkinDef val7 = Object.Instantiate<SkinDef>(val);
			val7.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val7.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val7.rootObject = ((Component)componentInChildren).gameObject;
			val7.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidSurvivor.matVoidSurvivorBlasterSphereAreaIndicatorCorrupted_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val7.skinDefParams.meshReplacements[0].renderer = component;
			val7.icon = Skins.CreateSkinIcon(new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f), new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f));
			((Object)val7).name = "Lemurian_Corrupted_SKIN";
			val7.nameToken = "Lemurian_Corrupted_SKIN";
			SkinDef val8 = Object.Instantiate<SkinDef>(val);
			val8.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val8.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val8.rootObject = ((Component)componentInChildren).gameObject;
			val8.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Titan.matTitanGold_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val8.skinDefParams.meshReplacements[0].renderer = component;
			val8.icon = Skins.CreateSkinIcon(new Color(1f, 67f / 85f, 0.1254902f), new Color(74f / 85f, 39f / 85f, 0f), new Color(0.14509805f, 4f / 85f, 0f), new Color(0.9843137f, 82f / 85f, 79f / 85f));
			((Object)val8).name = "Lemurian_Aurelionite_SKIN";
			val8.nameToken = "Lemurian_Aurelionite_SKIN";
			SkinDef val9 = Object.Instantiate<SkinDef>(val);
			val9.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val9.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val9.rootObject = ((Component)componentInChildren).gameObject;
			val9.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Seeker.matSeeker_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val9.skinDefParams.meshReplacements[0].renderer = component;
			val9.icon = Skins.CreateSkinIcon(new Color(0.83137256f, 56f / 85f, 20f / 51f), new Color(4f / 15f, 46f / 85f, 0.6431373f), new Color(0.4f, 33f / 85f, 8f / 15f), new Color(13f / 85f, 0.1764706f, 0.32156864f));
			((Object)val9).name = "Lemurian_Engine_SKIN";
			val9.nameToken = "Lemurian_Engine_SKIN";
			SkinDef val10 = Object.Instantiate<SkinDef>(val);
			val10.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val10.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val10.rootObject = ((Component)componentInChildren).gameObject;
			val10.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_FalseSon.matFalseSon_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val10.skinDefParams.meshReplacements[0].renderer = component;
			val10.icon = Skins.CreateSkinIcon(new Color(0.56078434f, 0.20784314f, 19f / 85f), new Color(43f / 51f, 0.8901961f, 0.9411765f), new Color(1f / 3f, 24f / 85f, 29f / 85f), new Color(26f / 51f, 0.64705884f, 53f / 85f));
			((Object)val10).name = "Lemurian_False_SKIN";
			val10.nameToken = "Lemurian_False_SKIN";
			SkinDef val11 = Object.Instantiate<SkinDef>(val);
			val11.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val11.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val11.rootObject = ((Component)componentInChildren).gameObject;
			val11.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Scorchling.matScorchling_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val11.skinDefParams.meshReplacements[0].renderer = component;
			val11.icon = Skins.CreateSkinIcon(new Color(0.99607843f, 0.827451f, 0.41960785f), new Color(1f, 0.4f, 0.003921569f), new Color(41f / 51f, 0f, 3f / 85f), new Color(0.6313726f, 0.19215687f, 0f));
			((Object)val11).name = "Lemurian_Scorch_SKIN";
			val11.nameToken = "Lemurian_Scorch_SKIN";
			List<SkinDef> list = new List<SkinDef> { val3, val4, val5, val6, val7, val8, val9, val10, val11 };
			((Component)componentInChildren).gameObject.GetComponent<ModelSkinController>().skins = list.ToArray();
		}
	}
	public static class LemurianSkinSetup
	{
		public static void BuildTheFuckingSkins()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: 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_012e: 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_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0205: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: 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_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_0308: 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)
			//IL_034f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0363: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0408: Unknown result type (might be due to invalid IL or missing references)
			//IL_040d: Unknown result type (might be due to invalid IL or missing references)
			//IL_041e: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Unknown result type (might be due to invalid IL or missing references)
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0460: Unknown result type (might be due to invalid IL or missing references)
			//IL_0474: Unknown result type (might be due to invalid IL or missing references)
			//IL_0488: Unknown result type (might be due to invalid IL or missing references)
			//IL_049c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0518: Unknown result type (might be due to invalid IL or missing references)
			//IL_052d: 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_0543: Unknown result type (might be due to invalid IL or missing references)
			//IL_0550: Unknown result type (might be due to invalid IL or missing references)
			//IL_0552: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Unknown result type (might be due to invalid IL or missing references)
			//IL_0599: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_063d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0652: Unknown result type (might be due to invalid IL or missing references)
			//IL_0657: Unknown result type (might be due to invalid IL or missing references)
			//IL_0668: Unknown result type (might be due to invalid IL or missing references)
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_0677: Unknown result type (might be due to invalid IL or missing references)
			//IL_06aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_06be: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0762: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_077c: Unknown result type (might be due to invalid IL or missing references)
			//IL_078d: Unknown result type (might be due to invalid IL or missing references)
			//IL_079a: Unknown result type (might be due to invalid IL or missing references)
			//IL_079c: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_080b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0887: Unknown result type (might be due to invalid IL or missing references)
			//IL_089c: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0908: Unknown result type (might be due to invalid IL or missing references)
			//IL_091c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0930: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a19: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a41: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a55: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aeb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b09: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7a: Unknown result type (might be due to invalid IL or missing references)
			CharacterModel componentInChildren = Lemurian.myCharacter.GetComponentInChildren<CharacterModel>();
			SkinDef val = Addressables.LoadAssetAsync<SkinDef>((object)RoR2_Base_Lemurian.skinLemurianBodyDefault_asset).WaitForCompletion();
			SkinDefParams val2 = Addressables.LoadAssetAsync<SkinDefParams>((object)RoR2_Base_Lemurian_skinLemurianBodyDefault.params_asset).WaitForCompletion();
			Renderer component = ((Component)((Component)componentInChildren).transform.Find("LemurianMesh")).GetComponent<Renderer>();
			Debug.Log((object)("rendname:  " + ((Object)component).name));
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Lemurian.matLemurian_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			((Component)componentInChildren).GetComponentInChildren<CharacterModel>().baseRendererInfos = array;
			LanguageAPI.Add("Lemurian_Default_SKIN", "Lemurian");
			SkinDef val3 = Object.Instantiate<SkinDef>(val);
			val3.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val3.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val3.rootObject = ((Component)componentInChildren).gameObject;
			val3.skinDefParams.rendererInfos = array;
			val3.icon = Skins.CreateSkinIcon(new Color(1f, 1f, 1f), new Color(0.4f, 0f, 0.4f), new Color(1f, 1f, 1f), new Color(0.4f, 0f, 0.4f));
			val3.skinDefParams.meshReplacements[0].renderer = component;
			((Object)val3).name = "Lemurian_Default_SKIN";
			val3.nameToken = "Lemurian_Default_SKIN";
			SkinDef val4 = Object.Instantiate<SkinDef>(val);
			val4.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val4.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val4.rootObject = ((Component)componentInChildren).gameObject;
			val4.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Lemurian.matLemurianBruiser_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val4.skinDefParams.meshReplacements[0].renderer = component;
			val4.icon = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponentInChildren<ModelSkinController>()
				.skins[0].icon;
			LanguageAPI.Add("Lemurian_Bruiser_SKIN", "Elder Lemurian");
			((Object)val4).name = "Lemurian_Bruiser_SKIN";
			val4.nameToken = "Lemurian_Bruiser_SKIN";
			SkinDef val5 = Object.Instantiate<SkinDef>(val);
			val5.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val5.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val5.rootObject = ((Component)componentInChildren).gameObject;
			val5.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Imp.matImp_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val5.skinDefParams.meshReplacements[0].renderer = component;
			val5.icon = Skins.CreateSkinIcon(new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f), new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f));
			LanguageAPI.Add("Lemurian_Imp_SKIN", "Imp");
			((Object)val5).name = "Lemurian_Imp_SKIN";
			val5.nameToken = "Lemurian_Imp_SKIN";
			SkinDef val6 = Object.Instantiate<SkinDef>(val);
			val6.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val6.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val6.rootObject = ((Component)componentInChildren).gameObject;
			val6.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Shopkeeper.matNewt_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val6.skinDefParams.meshReplacements[0].renderer = component;
			val6.icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f), new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f));
			LanguageAPI.Add("Lemurian_Lunar_SKIN", "Lunar");
			((Object)val6).name = "Lemurian_Lunar_SKIN";
			val6.nameToken = "Lemurian_Lunar_SKIN";
			SkinDef val7 = Object.Instantiate<SkinDef>(val);
			val7.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val7.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val7.rootObject = ((Component)componentInChildren).gameObject;
			val7.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_RoboBallBuddy.RoboBallFriendGreen_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val7.skinDefParams.meshReplacements[0].renderer = component;
			val7.icon = Skins.CreateSkinIcon(new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f), new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f));
			LanguageAPI.Add("Lemurian_GlowFace_SKIN", "Glowy Boy");
			((Object)val7).name = "Lemurian_GlowFace_SKIN";
			val7.nameToken = "Lemurian_GlowFace_SKIN";
			SkinDef val8 = Object.Instantiate<SkinDef>(val);
			val8.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val8.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val8.rootObject = ((Component)componentInChildren).gameObject;
			val8.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidSurvivor.matVoidSurvivorBlasterSphereAreaIndicatorCorrupted_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val8.skinDefParams.meshReplacements[0].renderer = component;
			val8.icon = Skins.CreateSkinIcon(new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f), new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f));
			LanguageAPI.Add("Lemurian_Corrupted_SKIN", "Corrupted");
			((Object)val8).name = "Lemurian_Corrupted_SKIN";
			val8.nameToken = "Lemurian_Corrupted_SKIN";
			SkinDef val9 = Object.Instantiate<SkinDef>(val);
			val9.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val9.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val9.rootObject = ((Component)componentInChildren).gameObject;
			val9.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Titan.matTitanGold_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val9.skinDefParams.meshReplacements[0].renderer = component;
			val9.icon = Skins.CreateSkinIcon(new Color(1f, 67f / 85f, 0.1254902f), new Color(74f / 85f, 39f / 85f, 0f), new Color(0.14509805f, 4f / 85f, 0f), new Color(0.9843137f, 82f / 85f, 79f / 85f));
			LanguageAPI.Add("Lemurian_Aurelionite_SKIN", "Aurelionite");
			((Object)val9).name = "Lemurian_Aurelionite_SKIN";
			val9.nameToken = "Lemurian_Aurelionite_SKIN";
			SkinDef val10 = Object.Instantiate<SkinDef>(val);
			val10.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val10.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val10.rootObject = ((Component)componentInChildren).gameObject;
			val10.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Seeker.matSeeker_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val10.skinDefParams.meshReplacements[0].renderer = component;
			val10.icon = Skins.CreateSkinIcon(new Color(0.83137256f, 56f / 85f, 20f / 51f), new Color(4f / 15f, 46f / 85f, 0.6431373f), new Color(0.4f, 33f / 85f, 8f / 15f), new Color(13f / 85f, 0.1764706f, 0.32156864f));
			LanguageAPI.Add("Lemurian_Engine_SKIN", "Engine");
			((Object)val10).name = "Lemurian_Engine_SKIN";
			val10.nameToken = "Lemurian_Engine_SKIN";
			SkinDef val11 = Object.Instantiate<SkinDef>(val);
			val11.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val11.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val11.rootObject = ((Component)componentInChildren).gameObject;
			val11.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_FalseSon.matFalseSon_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val11.skinDefParams.meshReplacements[0].renderer = component;
			val11.icon = Skins.CreateSkinIcon(new Color(0.56078434f, 0.20784314f, 19f / 85f), new Color(43f / 51f, 0.8901961f, 0.9411765f), new Color(1f / 3f, 24f / 85f, 29f / 85f), new Color(26f / 51f, 0.64705884f, 53f / 85f));
			LanguageAPI.Add("Lemurian_False_SKIN", "Mysterious");
			((Object)val11).name = "Lemurian_False_SKIN";
			val11.nameToken = "Lemurian_False_SKIN";
			SkinDef val12 = Object.Instantiate<SkinDef>(val);
			val12.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val12.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val12.rootObject = ((Component)componentInChildren).gameObject;
			val12.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[1]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Scorchling.matScorchling_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val12.skinDefParams.meshReplacements[0].renderer = component;
			val12.icon = Skins.CreateSkinIcon(new Color(0.99607843f, 0.827451f, 0.41960785f), new Color(1f, 0.4f, 0.003921569f), new Color(41f / 51f, 0f, 3f / 85f), new Color(0.6313726f, 0.19215687f, 0f));
			LanguageAPI.Add("Lemurian_Scorch_SKIN", "Scorching");
			((Object)val12).name = "Lemurian_Scorch_SKIN";
			val12.nameToken = "Lemurian_Scorch_SKIN";
			List<SkinDef> list = new List<SkinDef> { val3, val4, val5, val6, val7, val8, val9, val10, val11, val12 };
			((Component)componentInChildren).gameObject.GetComponent<ModelSkinController>().skins = list.ToArray();
		}
	}
	public static class LunarExploderSkinSetup
	{
		public static void BuildTheFuckingSkins()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: 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_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: 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_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: 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_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: 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_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: 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_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_030f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a5: 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_03bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_040e: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_046e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0482: Unknown result type (might be due to invalid IL or missing references)
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0517: Unknown result type (might be due to invalid IL or missing references)
			//IL_051c: Unknown result type (might be due to invalid IL or missing references)
			//IL_052d: Unknown result type (might be due to invalid IL or missing references)
			//IL_053a: Unknown result type (might be due to invalid IL or missing references)
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0545: Unknown result type (might be due to invalid IL or missing references)
			//IL_055b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0560: Unknown result type (might be due to invalid IL or missing references)
			//IL_0571: Unknown result type (might be due to invalid IL or missing references)
			//IL_057e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0580: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0608: Unknown result type (might be due to invalid IL or missing references)
			//IL_0674: Unknown result type (might be due to invalid IL or missing references)
			//IL_0689: Unknown result type (might be due to invalid IL or missing references)
			//IL_068e: Unknown result type (might be due to invalid IL or missing references)
			//IL_069f: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_073e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0752: Unknown result type (might be due to invalid IL or missing references)
			//IL_0766: Unknown result type (might be due to invalid IL or missing references)
			//IL_077a: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0800: Unknown result type (might be due to invalid IL or missing references)
			//IL_0811: Unknown result type (might be due to invalid IL or missing references)
			//IL_081e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0820: Unknown result type (might be due to invalid IL or missing references)
			//IL_0829: Unknown result type (might be due to invalid IL or missing references)
			//IL_083f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0844: Unknown result type (might be due to invalid IL or missing references)
			//IL_0855: Unknown result type (might be due to invalid IL or missing references)
			//IL_0862: Unknown result type (might be due to invalid IL or missing references)
			//IL_0864: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0958: Unknown result type (might be due to invalid IL or missing references)
			//IL_096d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0972: Unknown result type (might be due to invalid IL or missing references)
			//IL_0983: Unknown result type (might be due to invalid IL or missing references)
			//IL_0990: Unknown result type (might be due to invalid IL or missing references)
			//IL_0992: Unknown result type (might be due to invalid IL or missing references)
			//IL_099b: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aca: Unknown result type (might be due to invalid IL or missing references)
			//IL_0adf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b94: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c51: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c74: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e0c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e78: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb4: Unknown result type (might be due to invalid IL or missing references)
			CharacterModel componentInChildren = LunarExploder.myCharacter.GetComponentInChildren<CharacterModel>();
			SkinDef val = Addressables.LoadAssetAsync<SkinDef>((object)RoR2_Base_LunarExploder.skinLunarExploderBodyDefault_asset).WaitForCompletion();
			SkinDefParams val2 = Addressables.LoadAssetAsync<SkinDefParams>((object)RoR2_Base_LunarExploder_skinLunarExploderBodyDefault.params_asset).WaitForCompletion();
			Renderer component = ((Component)((Component)componentInChildren).transform.Find("LunarExploderCoreMesh")).GetComponent<Renderer>();
			Renderer component2 = ((Component)((Component)componentInChildren).transform.Find("LunarExploderMesh")).GetComponent<Renderer>();
			Debug.Log((object)("rendname:  " + ((Object)component).name));
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploderCore_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			((Component)componentInChildren).GetComponentInChildren<CharacterModel>().baseRendererInfos = array;
			LanguageAPI.Add("Lunar_Default_SKIN", "Lunar Exploder");
			SkinDef val3 = Object.Instantiate<SkinDef>(val);
			val3.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val3.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val3.rootObject = ((Component)componentInChildren).gameObject;
			val3.skinDefParams.rendererInfos = array;
			val3.icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.5019608f, 0f, 0f), new Color(0.6f, 0.4f, 1f), new Color(0.5019608f, 0f, 0f));
			val3.skinDefParams.meshReplacements[0].renderer = component;
			val3.skinDefParams.meshReplacements[1].renderer = component2;
			((Object)val3).name = "Lunar_Default_SKIN";
			val3.nameToken = "Lunar_Default_SKIN";
			SkinDef val4 = Object.Instantiate<SkinDef>(val);
			val4.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val4.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val4.rootObject = ((Component)componentInChildren).gameObject;
			val4.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Lemurian.matLemurianBruiser_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val4.skinDefParams.meshReplacements[0].renderer = component;
			val4.skinDefParams.meshReplacements[1].renderer = component2;
			val4.icon = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponentInChildren<ModelSkinController>()
				.skins[0].icon;
			((Object)val4).name = "Lemurian_Bruiser_SKIN";
			val4.nameToken = "Lemurian_Bruiser_SKIN";
			SkinDef val5 = Object.Instantiate<SkinDef>(val);
			val5.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val5.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val5.rootObject = ((Component)componentInChildren).gameObject;
			val5.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Imp.matImp_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val5.skinDefParams.meshReplacements[0].renderer = component;
			val5.skinDefParams.meshReplacements[1].renderer = component2;
			val5.icon = Skins.CreateSkinIcon(new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f), new Color(0.2f, 0f, 0f), new Color(0.5019608f, 0f, 0f));
			((Object)val5).name = "Lemurian_Imp_SKIN";
			val5.nameToken = "Lemurian_Imp_SKIN";
			SkinDef val6 = Object.Instantiate<SkinDef>(val);
			val6.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val6.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val6.rootObject = ((Component)componentInChildren).gameObject;
			val6.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Shopkeeper.matNewt_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val6.skinDefParams.meshReplacements[0].renderer = component;
			val6.skinDefParams.meshReplacements[1].renderer = component2;
			val6.icon = Skins.CreateSkinIcon(new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f), new Color(0.6f, 0.4f, 1f), new Color(0.8f, 0.7019608f, 1f));
			((Object)val6).name = "Lemurian_Lunar_SKIN";
			val6.nameToken = "Lemurian_Lunar_SKIN";
			SkinDef val7 = Object.Instantiate<SkinDef>(val);
			val7.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val7.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val7.rootObject = ((Component)componentInChildren).gameObject;
			val7.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_RoboBallBuddy.RoboBallFriendGreen_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val7.skinDefParams.meshReplacements[0].renderer = component;
			val7.skinDefParams.meshReplacements[1].renderer = component2;
			val7.icon = Skins.CreateSkinIcon(new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f), new Color(4f / 51f, 0.16078432f, 0.32156864f), new Color(0.8f, 0.8f, 0f));
			((Object)val7).name = "Lemurian_GlowFace_SKIN";
			val7.nameToken = "Lemurian_GlowFace_SKIN";
			SkinDef val8 = Object.Instantiate<SkinDef>(val);
			val8.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val8.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val8.rootObject = ((Component)componentInChildren).gameObject;
			val8.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidSurvivor.matVoidSurvivorBlasterSphereAreaIndicatorCorrupted_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val8.skinDefParams.meshReplacements[0].renderer = component;
			val8.skinDefParams.meshReplacements[1].renderer = component2;
			val8.icon = Skins.CreateSkinIcon(new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f), new Color(0.8f, 0.16078432f, 0f), new Color(1f, 0.6f, 0f));
			((Object)val8).name = "Lemurian_Corrupted_SKIN";
			val8.nameToken = "Lemurian_Corrupted_SKIN";
			SkinDef val9 = Object.Instantiate<SkinDef>(val);
			val9.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val9.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val9.rootObject = ((Component)componentInChildren).gameObject;
			val9.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Titan.matTitanGold_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val9.skinDefParams.meshReplacements[0].renderer = component;
			val9.skinDefParams.meshReplacements[1].renderer = component2;
			val9.icon = Skins.CreateSkinIcon(new Color(1f, 67f / 85f, 0.1254902f), new Color(74f / 85f, 39f / 85f, 0f), new Color(0.14509805f, 4f / 85f, 0f), new Color(0.9843137f, 82f / 85f, 79f / 85f));
			((Object)val9).name = "Lemurian_Aurelionite_SKIN";
			val9.nameToken = "Lemurian_Aurelionite_SKIN";
			SkinDef val10 = Object.Instantiate<SkinDef>(val);
			val10.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val10.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val10.rootObject = ((Component)componentInChildren).gameObject;
			val10.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Seeker.matSeeker_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val10.skinDefParams.meshReplacements[0].renderer = component;
			val10.skinDefParams.meshReplacements[1].renderer = component2;
			val10.icon = Skins.CreateSkinIcon(new Color(0.83137256f, 56f / 85f, 20f / 51f), new Color(4f / 15f, 46f / 85f, 0.6431373f), new Color(0.4f, 33f / 85f, 8f / 15f), new Color(13f / 85f, 0.1764706f, 0.32156864f));
			((Object)val10).name = "Lemurian_Engine_SKIN";
			val10.nameToken = "Lemurian_Engine_SKIN";
			SkinDef val11 = Object.Instantiate<SkinDef>(val);
			val11.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val11.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val11.rootObject = ((Component)componentInChildren).gameObject;
			val11.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_FalseSon.matFalseSon_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val11.skinDefParams.meshReplacements[0].renderer = component;
			val11.skinDefParams.meshReplacements[1].renderer = component2;
			val11.icon = Skins.CreateSkinIcon(new Color(0.56078434f, 0.20784314f, 19f / 85f), new Color(43f / 51f, 0.8901961f, 0.9411765f), new Color(1f / 3f, 24f / 85f, 29f / 85f), new Color(26f / 51f, 0.64705884f, 53f / 85f));
			((Object)val11).name = "Lemurian_False_SKIN";
			val11.nameToken = "Lemurian_False_SKIN";
			SkinDef val12 = Object.Instantiate<SkinDef>(val);
			val12.skinDefParams = Object.Instantiate<SkinDefParams>(val2);
			val12.skinDefParamsAddress = new AssetReferenceT<SkinDefParams>("");
			val12.rootObject = ((Component)componentInChildren).gameObject;
			val12.skinDefParams.rendererInfos = (RendererInfo[])(object)new RendererInfo[2]
			{
				new RendererInfo
				{
					renderer = component,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC2_Scorchling.matScorchling_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				},
				new RendererInfo
				{
					renderer = component2,
					defaultMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_LunarExploder.matLunarExploder_mat).WaitForCompletion(),
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				}
			};
			val12.skinDefParams.meshReplacements[0].renderer = component;
			val12.skinDefParams.meshReplacements[1].renderer = component2;
			val12.icon = Skins.CreateSkinIcon(new Color(0.99607843f, 0.827451f, 0.41960785f), new Color(1f, 0.4f, 0.003921569f), new Color(41f / 51f, 0f, 3f / 85f), new Color(0.6313726f, 0.19215687f, 0f));
			((Object)val12).name = "Lemurian_Scorch_SKIN";
			val12.nameToken = "Lemurian_Scorch_SKIN";
			List<SkinDef> list = new List<SkinDef> { val3, val4, val5, val6, val7, val8, val9, val10, val11, val12 };
			((Component)componentInChildren).gameObject.GetComponent<ModelSkinController>().skins = list.ToArray();
		}
	}
	public class LunarExploderMain : GenericCharacterMain
	{
		private float stopWatch;

		private GameObject deathPreExplosionInstance;

		private Transform muzzleTransform;

		private Animator animator;

		public GameObject projectilePrefab;

		public static GameObject exploprefab;

		private GameObject aimSphere;

		public override void OnEnter()
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			((GenericCharacterMain)this).OnEnter();
			CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, LemPrefabs.LunarChPrefab, (OverridePriority)0);
			animator = ((EntityState)this).GetModelAnimator();
			aimSphere = Object.Instantiate<GameObject>(LemPrefabs.LemDicator);
			aimSphere.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
		}

		public override void Update()
		{
			((GenericCharacterMain)this).Update();
			if (!LunarExploder.sprintingenabled.Value & ((EntityState)this).characterBody.isSprinting)
			{
				animator.SetBool("isSprinting", false);
			}
		}

		public override void FixedUpdate()
		{
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Expected O, but got Unknown
			//IL_0134: 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_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Expected O, but got Unknown
			//IL_0162: 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_016e: 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_018a: Expected O, but got Unknown
			//IL_01a0: 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_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Invalid comparison between Unknown and I4
			//IL_024e: 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_0276: 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_02ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Expected O, but got Unknown
			((GenericCharacterMain)this).FixedUpdate();
			if (((EntityState)this).characterBody.healthComponent.isHealthLow && !Object.op_Implicit((Object)(object)deathPreExplosionInstance) && !((EntityState)this).characterBody.HasBuff(Buffs.ExplodeBuff))
			{
				muzzleTransform = ((BaseState)this).FindModelChild(DeathState.muzzleName);
				deathPreExplosionInstance = Object.Instantiate<GameObject>(DeathState.deathPreExplosionVFX, muzzleTransform.position, muzzleTransform.rotation);
				deathPreExplosionInstance.transform.parent = muzzleTransform;
				deathPreExplosionInstance.transform.localScale = Vector3.one * DeathState.deathExplosionRadius;
				ScaleParticleSystemDuration component = deathPreExplosionInstance.GetComponent<ScaleParticleSystemDuration>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.newDuration = 2f;
				}
			}
			if (!Object.op_Implicit((Object)(object)deathPreExplosionInstance))
			{
				return;
			}
			stopWatch += Time.fixedDeltaTime;
			if (!