Decompiled source of MoreElites v1.2.1

MoreElites.dll

Decompiled 3 months 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 BepInEx.Logging;
using Microsoft.CodeAnalysis;
using MiscFixes.Modules;
using On.RoR2;
using R2API;
using RiskOfOptions;
using RoR2;
using RoR2.Navigation;
using RoR2.Projectile;
using RoR2BepInExPack.GameAssetPaths;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("MoreElites")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+205ed8963426802b241c82a30467e7f5054ece84")]
[assembly: AssemblyProduct("MoreElites")]
[assembly: AssemblyTitle("MoreElites")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace MoreElites
{
	public static class EliteRampGenerator
	{
		private static Material malachiteOverlayMat = new Material(Addressables.LoadAssetAsync<Material>((object)RoR2_Base_ElitePoison.matElitePoisonOverlay_mat).WaitForCompletion());

		public static Texture2D CreateGradientTexture(Color32[] colors, int width, int height)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: 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)
			Texture2D val = new Texture2D(width, height);
			((Texture)val).wrapMode = (TextureWrapMode)1;
			for (int i = 0; i < height; i++)
			{
				for (int j = 0; j < width; j++)
				{
					float num = (float)j / (float)(width - 1) * (float)(colors.Length - 1);
					int num2 = Mathf.FloorToInt(num);
					float t = num - (float)num2;
					if (num2 >= colors.Length - 1)
					{
						num2 = colors.Length - 2;
						t = 1f;
					}
					Color32 val2 = LerpColor32(colors[num2], colors[num2 + 1], t);
					val.SetPixel(j, i, Color32.op_Implicit(val2));
				}
			}
			val.Apply();
			string fileName = "SavedTexture.png";
			SaveTextureToFile(val, fileName);
			malachiteOverlayMat.SetTexture("_RemapTex", (Texture)(object)val);
			return val;
		}

		internal static void SaveTextureToFile(Texture2D texture, string fileName)
		{
		}

		public static Color32 LerpColor32(Color32 colorA, Color32 colorB, float t)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: 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_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			byte num = (byte)Mathf.Lerp((float)(int)colorA.r, (float)(int)colorB.r, t);
			byte b = (byte)Mathf.Lerp((float)(int)colorA.g, (float)(int)colorB.g, t);
			byte b2 = (byte)Mathf.Lerp((float)(int)colorA.b, (float)(int)colorB.b, t);
			byte b3 = (byte)Mathf.Lerp((float)(int)colorA.a, (float)(int)colorB.a, t);
			return new Color32(num, b, b2, b3);
		}
	}
	public class Echo : EliteBase<Echo>
	{
		public class CustomAffixEchoBehavior : ItemBehavior
		{
			public DeployableMinionSpawner echoSpawner1;

			public DeployableMinionSpawner echoSpawner2;

			public CharacterSpawnCard spawnCard;

			public List<CharacterMaster> spawnedEchoes = new List<CharacterMaster>();

			public bool hasEverSpawned;

			public void FixedUpdate()
			{
				if (!hasEverSpawned)
				{
					DeployableMinionSpawner obj = echoSpawner1;
					obj.respawnStopwatch += 1f;
					DeployableMinionSpawner obj2 = echoSpawner2;
					obj2.respawnStopwatch += 1f;
				}
			}

			public void Awake()
			{
				((Behaviour)this).enabled = false;
			}

			public void OnEnable()
			{
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				//IL_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_008f: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d1: Expected O, but got Unknown
				Util.PlaySound("Play_voidRaid_fog_explode", ((Component)this).gameObject);
				spawnCard = ScriptableObject.CreateInstance<CharacterSpawnCard>();
				((SpawnCard)spawnCard).prefab = MasterCatalog.GetMasterPrefab(MasterCatalog.FindAiMasterIndexForBody(base.body.bodyIndex));
				spawnCard.inventoryToCopy = base.body.inventory;
				((SpawnCard)spawnCard).nodeGraphType = (GraphType)(base.body.isFlying ? 1 : 0);
				spawnCard.equipmentToGrant = (EquipmentDef[])(object)new EquipmentDef[1];
				spawnCard.itemsToGrant = (ItemCountPair[])(object)new ItemCountPair[1]
				{
					new ItemCountPair
					{
						itemDef = EliteBase<Echo>.Instance.summonedEchoItem,
						count = 1
					}
				};
				Xoroshiro128Plus rng = new Xoroshiro128Plus(Run.instance.seed ^ (ulong)((Object)this).GetInstanceID());
				echoSpawner1 = CreateSpawner(rng);
				echoSpawner2 = CreateSpawner(rng);
			}

			public void OnDisable()
			{
				if (Object.op_Implicit((Object)(object)spawnCard))
				{
					Object.Destroy((Object)(object)spawnCard);
				}
				spawnCard = null;
				for (int num = spawnedEchoes.Count - 1; num >= 0; num--)
				{
					if (Object.op_Implicit((Object)(object)spawnedEchoes[num]))
					{
						spawnedEchoes[num].TrueKill();
					}
				}
				spawnedEchoes.Clear();
				DeployableMinionSpawner obj = echoSpawner1;
				if (obj != null)
				{
					obj.Dispose();
				}
				echoSpawner1 = null;
				DeployableMinionSpawner obj2 = echoSpawner2;
				if (obj2 != null)
				{
					obj2.Dispose();
				}
				echoSpawner2 = null;
			}

			private DeployableMinionSpawner CreateSpawner(Xoroshiro128Plus rng)
			{
				//IL_0010: 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_001b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_0031: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Expected O, but got Unknown
				DeployableMinionSpawner val = new DeployableMinionSpawner(base.body.master, EliteBase<Echo>.Instance.deployableSlot, rng)
				{
					maxSpawnDistance = 20f,
					respawnInterval = 30f,
					respawnStopwatch = 0f,
					spawnCard = (SpawnCard)(object)spawnCard
				};
				val.onMinionSpawnedServer += delegate(SpawnResult spawnResult)
				{
					//IL_000d: Unknown result type (might be due to invalid IL or missing references)
					GameObject spawnedInstance = spawnResult.spawnedInstance;
					if (Object.op_Implicit((Object)(object)spawnedInstance))
					{
						CharacterMaster spawnedMaster = spawnedInstance.GetComponent<CharacterMaster>();
						if (Object.op_Implicit((Object)(object)spawnedMaster))
						{
							hasEverSpawned = true;
							spawnedEchoes.Add(spawnedMaster);
							OnDestroyCallback.AddCallback(((Component)spawnedMaster).gameObject, (Action<OnDestroyCallback>)delegate
							{
								spawnedEchoes.Remove(spawnedMaster);
							});
						}
					}
				};
				return val;
			}
		}

		public class CustomSummonedEchoBodyBehavior : MonoBehaviour
		{
			private static float fireInterval = 3f;

			private static float normalBaseDamage = 24f;

			private static float normalLevelDamage = 4.8f;

			private static float championBaseDamage = 32f;

			private static float championLevelDamage = 7.2f;

			private float fireTimer;

			private CharacterBody body;

			private void OnEnable()
			{
				body = ((Component)this).GetComponent<CharacterBody>();
			}

			private void FixedUpdate()
			{
				//IL_00a4: 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_00c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fa: 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_010b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0136: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.healthComponent) && body.healthComponent.alive)
				{
					fireTimer += Time.fixedDeltaTime;
					if (fireTimer >= fireInterval)
					{
						fireTimer = 0f;
						float damage = (body.isChampion ? (championBaseDamage + championLevelDamage * body.level) : (normalBaseDamage + normalLevelDamage * body.level));
						ProjectileManager.instance.FireProjectile(new FireProjectileInfo
						{
							crit = false,
							damage = damage,
							damageColorIndex = (DamageColorIndex)0,
							damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)8),
							owner = ((Component)this).gameObject,
							position = body.aimOrigin,
							rotation = Quaternion.LookRotation(Vector3.up),
							procChainMask = default(ProcChainMask),
							projectilePrefab = EliteBase<Echo>.Instance.echoProjectile,
							force = 400f,
							target = null
						});
					}
				}
			}
		}

		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static GetDeployableSameSlotLimit <>9__38_0;

			internal int <Init>b__38_0(CharacterMaster _, int _)
			{
				return 2;
			}
		}

		public ItemDef summonedEchoItem;

		public Material echoMatBlack;

		public DeployableSlot deployableSlot;

		public GameObject echoProjectile;

		public override string Name => "Echo";

		public override string EquipmentName => "Echo Aspect";

		public override string PickupText => "Aspect of Echo";

		public override string DescriptionText => "Summon 2 copies of yourself";

		public override string LoreText => "Shadow clone jutsu";

		public override EliteTier EliteTierDef => (EliteTier)PluginConfig.eliteTierEcho.Value;

		public override Color EliteColor => Color.black;

		public override Texture2D EliteRamp { get; set; } = EliteRampGenerator.CreateGradientTexture((Color32[])(object)new Color32[5]
		{
			new Color32((byte)23, (byte)22, (byte)20, byte.MaxValue),
			new Color32((byte)117, (byte)64, (byte)67, byte.MaxValue),
			new Color32((byte)154, (byte)136, (byte)115, byte.MaxValue),
			new Color32((byte)55, (byte)66, (byte)61, byte.MaxValue),
			new Color32((byte)58, (byte)38, (byte)24, byte.MaxValue)
		}, 256, 8);


		public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();


		public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();


		public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_voidoutro.matVoidRaidCrabEyeOverlay1BLUE_mat).WaitForCompletion();


		public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixEcho", false);


		public override void Init()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: 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_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: 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_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Expected O, but got Unknown
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Expected O, but got Unknown
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Expected O, but got Unknown
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Expected O, but got Unknown
			base.Init();
			echoProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_InDev.EchoHunterProjectile_prefab).WaitForCompletion(), "EchoHunterProjectile");
			echoProjectile.GetComponent<ProjectileDirectionalTargetFinder>().lookRange = 120f;
			summonedEchoItem = Addressables.LoadAssetAsync<ItemDef>((object)RoR2_InDev.SummonedEcho_asset).WaitForCompletion();
			echoMatBlack = Addressables.LoadAssetAsync<Material>((object)RoR2_InDev.matEcho_mat).WaitForCompletion();
			ContentAddition.AddItemDef(summonedEchoItem);
			GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteHaunted.DisplayEliteStealthCrown_prefab).WaitForCompletion(), "EchoCrown");
			val.AddComponent<NetworkIdentity>();
			CustomEquipmentDef.ItemDisplayRules = ItemDisplays.CreateItemDisplayRules(val, EliteMaterial);
			object obj = <>c.<>9__38_0;
			if (obj == null)
			{
				GetDeployableSameSlotLimit val2 = (CharacterMaster _, int _) => 2;
				<>c.<>9__38_0 = val2;
				obj = (object)val2;
			}
			deployableSlot = DeployableAPI.RegisterDeployableSlot((GetDeployableSameSlotLimit)obj);
			RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(ReduceSummonHP);
			CharacterMaster.OnBodyStart += new hook_OnBodyStart(CharacterMaster_OnBodyStart);
			CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays);
		}

		public override void OnBuffGained(CharacterBody self)
		{
			if (NetworkServer.active)
			{
				Inventory inventory = self.inventory;
				if (inventory != null && inventory.GetItemCount(summonedEchoItem) == 0)
				{
					self.AddItemBehavior<CustomAffixEchoBehavior>(1);
				}
			}
		}

		public override void OnBuffLost(CharacterBody self)
		{
			if (NetworkServer.active)
			{
				self.AddItemBehavior<CustomAffixEchoBehavior>(0);
			}
		}

		private void ReduceSummonHP(CharacterBody sender, StatHookEventArgs args)
		{
			Inventory inventory = sender.inventory;
			if (inventory != null && inventory.GetItemCount(summonedEchoItem) > 0)
			{
				args.baseCurseAdd += 6.6666665f;
			}
		}

		private void CharacterMaster_OnBodyStart(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body)
		{
			orig.Invoke(self, body);
			if (NetworkServer.active)
			{
				Inventory inventory = self.inventory;
				if (inventory != null && inventory.GetItemCount(summonedEchoItem) > 0 && Object.op_Implicit((Object)(object)body) && !Object.op_Implicit((Object)(object)((Component)body).GetComponent<CustomSummonedEchoBodyBehavior>()))
				{
					((Component)body).gameObject.AddComponent<CustomSummonedEchoBodyBehavior>();
				}
			}
		}

		private void CharacterModel_UpdateOverlays(orig_UpdateOverlays orig, CharacterModel self)
		{
			orig.Invoke(self);
			if (Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)self.body.inventory))
			{
				AddOverlay(EliteMaterial, self.body.HasBuff(EliteBuffDef));
				AddOverlay(echoMatBlack, self.body.inventory.GetItemCount(summonedEchoItem) > 0);
			}
			void AddOverlay(Material overlayMaterial, bool condition)
			{
				if (self.activeOverlayCount < CharacterModel.maxOverlays && condition)
				{
					Material[] currentOverlays = self.currentOverlays;
					CharacterModel obj = self;
					int activeOverlayCount = obj.activeOverlayCount;
					obj.activeOverlayCount = activeOverlayCount + 1;
					currentOverlays[activeOverlayCount] = overlayMaterial;
				}
			}
		}
	}
	public abstract class EliteBase<T> : EliteBase where T : EliteBase<T>
	{
		public static T Instance { get; private set; }

		public EliteBase()
		{
			if (Instance != null)
			{
				throw new InvalidOperationException("Singleton class \"" + typeof(T).Name + "\" inheriting ItemBase was instantiated twice");
			}
			Instance = this as T;
			EliteBase.EliteInstances.Add(Instance);
		}
	}
	public abstract class EliteBase
	{
		public enum EliteTier
		{
			None,
			T1,
			T1Honor,
			T1GuildedHonor,
			T1Guilded,
			T2,
			Lunar
		}

		[CompilerGenerated]
		private static class <>O
		{
			public static hook_OnBuffFirstStackGained <0>__CharacterBody_OnBuffFirstStackGained;

			public static hook_OnBuffFinalStackLost <1>__CharacterBody_OnBuffFinalStackLost;
		}

		public static float affixDropChance = 0.00025f;

		public static List<EliteBase> EliteInstances = new List<EliteBase>();

		public abstract string Name { get; }

		public virtual string NameToken => Name.ToUpper() + "_SCORE";

		public abstract string EquipmentName { get; }

		public abstract string DescriptionText { get; }

		public abstract string PickupText { get; }

		public abstract string LoreText { get; }

		public abstract EliteTier EliteTierDef { get; }

		public abstract Color EliteColor { get; }

		public abstract Texture2D EliteRamp { get; set; }

		public abstract Sprite EliteIcon { get; set; }

		public abstract Sprite AspectIcon { get; set; }

		public abstract Material EliteMaterial { get; set; }

		public abstract GameObject PickupModelPrefab { get; set; }

		public virtual BuffDef EliteBuffDef { get; set; }

		public virtual CustomEquipment CustomEquipmentDef { get; set; }

		public virtual CustomElite CustomEliteDef { get; set; }

		public virtual CustomElite CustomEliteDefHonor { get; set; }

		public float HealthBoostCoefficient
		{
			get
			{
				if (EliteTierDef >= EliteTier.T2)
				{
					return PluginConfig.t2HealthMult.Value;
				}
				return PluginConfig.t1HealthMult.Value;
			}
		}

		public float DamageBoostCoefficient
		{
			get
			{
				if (EliteTierDef >= EliteTier.T2)
				{
					return PluginConfig.t2DamageMult.Value;
				}
				return PluginConfig.t1DamageMult.Value;
			}
		}

		public abstract void OnBuffGained(CharacterBody body);

		public abstract void OnBuffLost(CharacterBody body);

		public static void CreateElites()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Expected O, but got Unknown
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			if (!EliteInstances.Any())
			{
				return;
			}
			foreach (EliteBase eliteInstance in EliteInstances)
			{
				eliteInstance.Init();
			}
			object obj = <>O.<0>__CharacterBody_OnBuffFirstStackGained;
			if (obj == null)
			{
				hook_OnBuffFirstStackGained val = CharacterBody_OnBuffFirstStackGained;
				<>O.<0>__CharacterBody_OnBuffFirstStackGained = val;
				obj = (object)val;
			}
			CharacterBody.OnBuffFirstStackGained += (hook_OnBuffFirstStackGained)obj;
			object obj2 = <>O.<1>__CharacterBody_OnBuffFinalStackLost;
			if (obj2 == null)
			{
				hook_OnBuffFinalStackLost val2 = CharacterBody_OnBuffFinalStackLost;
				<>O.<1>__CharacterBody_OnBuffFinalStackLost = val2;
				obj2 = (object)val2;
			}
			CharacterBody.OnBuffFinalStackLost += (hook_OnBuffFinalStackLost)obj2;
		}

		private static void CharacterBody_OnBuffFirstStackGained(orig_OnBuffFirstStackGained orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if (!Object.op_Implicit((Object)(object)buffDef))
			{
				return;
			}
			foreach (EliteBase eliteInstance in EliteInstances)
			{
				if ((Object)(object)eliteInstance?.EliteBuffDef == (Object)(object)buffDef)
				{
					eliteInstance.OnBuffGained(self);
					break;
				}
			}
		}

		private static void CharacterBody_OnBuffFinalStackLost(orig_OnBuffFinalStackLost orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if (!Object.op_Implicit((Object)(object)buffDef))
			{
				return;
			}
			foreach (EliteBase eliteInstance in EliteInstances)
			{
				if ((Object)(object)eliteInstance?.EliteBuffDef == (Object)(object)buffDef)
				{
					eliteInstance.OnBuffLost(self);
					break;
				}
			}
		}

		public virtual void Init()
		{
			Log.Info("Initializing elite " + Name);
			AddLanguageTokens();
			SetupAssets();
			SetupBuff();
			SetupEquipment();
			SetupElite();
		}

		public virtual void AddLanguageTokens()
		{
			LanguageAPI.Add("ELITE_MODIFIER_" + NameToken, Name + " {0}");
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_NAME", EquipmentName ?? (Name + " Aspect"));
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_DESC", DescriptionText ?? "");
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_LORE", LoreText ?? "");
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_PICKUP_DESC", PickupText ?? ("Aspect of " + Name));
		}

		public virtual void SetupAssets()
		{
		}

		public virtual void SetupBuff()
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			EliteBuffDef = ScriptableObject.CreateInstance<BuffDef>();
			((Object)EliteBuffDef).name = "Affix" + Name + "Buff";
			EliteBuffDef.canStack = false;
			EliteBuffDef.isCooldown = false;
			EliteBuffDef.isDebuff = false;
			EliteBuffDef.buffColor = EliteColor;
			EliteBuffDef.iconSprite = EliteIcon;
			ContentAddition.AddBuffDef(EliteBuffDef);
		}

		public virtual void SetupEquipment()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Expected O, but got Unknown
			CustomEquipmentDef = new CustomEquipment("Affix" + Name, "EQUIPMENT_AFFIX_" + NameToken + "_NAME", "EQUIPMENT_AFFIX_" + NameToken + "_DESC", "EQUIPMENT_AFFIX_" + NameToken + "_LORE", "EQUIPMENT_AFFIX_" + NameToken + "_PICKUP_DESC", AspectIcon, PickupModelPrefab, 0f, false, false, false, false, EliteBuffDef, (UnlockableDef)null, (ColorIndex)5, true, true, (ItemDisplayRuleDict)null);
			Renderer[] componentsInChildren = CustomEquipmentDef.EquipmentDef.pickupModelPrefab.GetComponentsInChildren<Renderer>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				componentsInChildren[i].material = EliteMaterial;
			}
			ItemAPI.Add(CustomEquipmentDef);
		}

		public virtual void SetupElite()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Expected O, but got Unknown
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: 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_0107: Expected O, but got Unknown
			IEnumerable<EliteTierDef> vanillaEliteTierDef = GetVanillaEliteTierDef(EliteTierDef);
			if (vanillaEliteTierDef != null)
			{
				CustomEliteDef = new CustomElite("Elite" + Name, CustomEquipmentDef.EquipmentDef, Color32.op_Implicit(EliteColor), "ELITE_MODIFIER_" + NameToken, vanillaEliteTierDef, EliteRamp);
				CustomEliteDef.EliteDef.healthBoostCoefficient = HealthBoostCoefficient;
				CustomEliteDef.EliteDef.damageBoostCoefficient = DamageBoostCoefficient;
				EliteBuffDef.eliteDef = CustomEliteDef.EliteDef;
				EliteAPI.Add(CustomEliteDef);
				IEnumerable<EliteTierDef> vanillaEliteHonorTierDef = GetVanillaEliteHonorTierDef(EliteTierDef);
				if (vanillaEliteHonorTierDef != null)
				{
					CustomEliteDefHonor = new CustomElite("Elite" + Name + "Honor", CustomEquipmentDef.EquipmentDef, Color32.op_Implicit(EliteColor), "ELITE_MODIFIER_" + NameToken, vanillaEliteHonorTierDef, EliteRamp);
					CustomEliteDefHonor.EliteDef.healthBoostCoefficient = PluginConfig.t1HonorHealthMult.Value;
					CustomEliteDefHonor.EliteDef.damageBoostCoefficient = PluginConfig.t1HonorDamageMult.Value;
					EliteAPI.Add(CustomEliteDefHonor);
				}
			}
		}

		internal IEnumerable<EliteTierDef> GetVanillaEliteTierDef(EliteTier tier)
		{
			return tier switch
			{
				EliteTier.None => null, 
				EliteTier.T1 => new <>z__ReadOnlyArray<EliteTierDef>((EliteTierDef[])(object)new EliteTierDef[2]
				{
					EliteAPI.VanillaEliteTiers[1],
					EliteAPI.VanillaEliteTiers[4]
				}), 
				EliteTier.T1Honor => new <>z__ReadOnlyArray<EliteTierDef>((EliteTierDef[])(object)new EliteTierDef[2]
				{
					EliteAPI.VanillaEliteTiers[2],
					EliteAPI.VanillaEliteTiers[3]
				}), 
				_ => new <>z__ReadOnlySingleElementList<EliteTierDef>(EliteAPI.VanillaEliteTiers[(int)tier]), 
			};
		}

		internal IEnumerable<EliteTierDef> GetVanillaEliteHonorTierDef(EliteTier tier)
		{
			return tier switch
			{
				EliteTier.T1 => new <>z__ReadOnlyArray<EliteTierDef>((EliteTierDef[])(object)new EliteTierDef[2]
				{
					EliteAPI.VanillaEliteTiers[2],
					EliteAPI.VanillaEliteTiers[3]
				}), 
				EliteTier.T1Guilded => new <>z__ReadOnlySingleElementList<EliteTierDef>(EliteAPI.VanillaEliteTiers[3]), 
				_ => null, 
			};
		}
	}
	public class Empowering : EliteBase<Empowering>
	{
		public class AffixEmpoweringBehavior : ItemBehavior
		{
			public GameObject affixEmpoweringWardInstance;

			public void FixedUpdate()
			{
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				if (!NetworkServer.active)
				{
					return;
				}
				bool flag = base.stack > 0;
				if (Object.op_Implicit((Object)(object)affixEmpoweringWardInstance) != flag)
				{
					if (flag)
					{
						affixEmpoweringWardInstance = Object.Instantiate<GameObject>(EliteBase<Empowering>.Instance.EmpoweringWard);
						affixEmpoweringWardInstance.GetComponent<TeamFilter>().teamIndex = base.body.teamComponent.teamIndex;
						affixEmpoweringWardInstance.GetComponent<BuffWard>().Networkradius = 25f + base.body.radius;
						affixEmpoweringWardInstance.GetComponent<NetworkedBodyAttachment>().AttachToGameObjectAndSpawn(((Component)base.body).gameObject, (string)null);
					}
					else
					{
						Object.Destroy((Object)(object)affixEmpoweringWardInstance);
						affixEmpoweringWardInstance = null;
					}
				}
			}

			public void OnDisable()
			{
				if (Object.op_Implicit((Object)(object)affixEmpoweringWardInstance))
				{
					Object.Destroy((Object)(object)affixEmpoweringWardInstance);
				}
			}
		}

		private GameObject EmpoweringWard = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteHaunted.AffixHauntedWard_prefab).WaitForCompletion(), "EmpoweringWard");

		public override string Name => "Empowering";

		public override string EquipmentName => "Empowering Aspect";

		public override string DescriptionText => "Aspect of Empowering";

		public override string PickupText => "Buffs the move and attack speed of all allies.";

		public override string LoreText => "Do the impossible, see the invisible\r\nRow! Row! Fight the power!\r\nTouch the untouchable, break the unbreakable\r\nRow! Row! Fight the power!";

		public override EliteTier EliteTierDef => (EliteTier)PluginConfig.eliteTierEmpowering.Value;

		public override Color EliteColor => new Color(1f, 0.5f, 0f);

		public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_Base_Common_ColorRamps.texRampMagmaWorm_png).WaitForCompletion();


		public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();


		public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();


		public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_WardOnLevel.matWarbannerBuffRing_mat).WaitForCompletion();


		public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixEmpowering", false);


		public override void Init()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			base.Init();
			((Renderer)((Component)EmpoweringWard.transform.GetChild(0).GetChild(0)).GetComponent<MeshRenderer>()).material = EliteMaterial;
			EmpoweringWard.GetComponent<BuffWard>().buffDef = Addressables.LoadAssetAsync<BuffDef>((object)RoR2_Base_WardOnLevel.bdWarbanner_asset).WaitForCompletion();
			Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkEvent>());
			Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkEvent>());
			Object.Destroy((Object)(object)EmpoweringWard.GetComponent<AkGameObj>());
		}

		public override void OnBuffGained(CharacterBody self)
		{
			self.AddItemBehavior<AffixEmpoweringBehavior>(1);
		}

		public override void OnBuffLost(CharacterBody self)
		{
			self.AddItemBehavior<AffixEmpoweringBehavior>(0);
		}
	}
	public class Frenzied : EliteBase<Frenzied>
	{
		public class FrenziedTeleportController : ItemBehavior
		{
			private static float fireInterval = 10f;

			private static GameObject blinkPrefab = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Junk_Treebot.SonicBoomEffect_prefab).WaitForCompletion();

			private static float shortBlinkDistance = 25f;

			private static float blinkDistance = 50f;

			private float fireTimer;

			private Vector3 blinkDestination = Vector3.zero;

			private Vector3 blinkStart = Vector3.zero;

			private void FixedUpdate()
			{
				if (!base.body.isPlayerControlled && Object.op_Implicit((Object)(object)base.body.healthComponent) && base.body.healthComponent.alive)
				{
					fireTimer += Time.fixedDeltaTime;
					if (fireTimer >= fireInterval)
					{
						fireTimer = 0f;
						((MonoBehaviour)this).StartCoroutine(Teleport());
					}
				}
			}

			public IEnumerator Teleport()
			{
				CalculateBlinkDestination();
				if (blinkStart != blinkDestination)
				{
					Util.PlaySound("Play_parent_teleport", ((Component)this).gameObject);
					CreateBlinkEffect(Util.GetCorePosition(((Component)this).gameObject));
					TeleportHelper.TeleportBody(base.body, blinkDestination, false);
					yield return (object)new WaitForSeconds(0.33f);
					CreateBlinkEffect(Util.GetCorePosition(((Component)this).gameObject));
				}
			}

			private void CreateBlinkEffect(Vector3 origin)
			{
				//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_0018: Unknown result type (might be due to invalid IL or missing references)
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0023: Unknown result type (might be due to invalid IL or missing references)
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				//IL_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				//IL_0033: 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_0050: Expected O, but got Unknown
				if (Object.op_Implicit((Object)(object)blinkPrefab))
				{
					EffectManager.SpawnEffect(blinkPrefab, new EffectData
					{
						rotation = Util.QuaternionSafeLookRotation(blinkDestination - blinkStart),
						origin = origin,
						scale = base.body.radius
					}, false);
				}
			}

			private void CalculateBlinkDestination()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0005: Unknown result type (might be due to invalid IL or missing references)
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//IL_001e: 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_002e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0045: 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_0100: Unknown result type (might be due to invalid IL or missing references)
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_005e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: 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_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0092: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: 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_0145: Unknown result type (might be due to invalid IL or missing references)
				//IL_014c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00de: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
				//IL_0129: 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)
				//IL_0138: Unknown result type (might be due to invalid IL or missing references)
				//IL_0197: Unknown result type (might be due to invalid IL or missing references)
				//IL_019c: 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_01a8: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01db: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
				//IL_020c: Unknown result type (might be due to invalid IL or missing references)
				Vector3 val = Vector3.zero;
				Ray val2 = (Ray)(Object.op_Implicit((Object)(object)base.body.inputBank) ? base.body.inputBank.GetAimRay() : new Ray(((Component)this).transform.position, ((Component)this).transform.forward));
				if (!base.body.isPlayerControlled)
				{
					BullseyeSearch val3 = new BullseyeSearch
					{
						searchOrigin = ((Ray)(ref val2)).origin,
						searchDirection = ((Ray)(ref val2)).direction,
						maxDistanceFilter = blinkDistance,
						teamMaskFilter = TeamMask.allButNeutral,
						filterByLoS = false,
						sortMode = (SortMode)2
					};
					((TeamMask)(ref val3.teamMaskFilter)).RemoveTeam(TeamComponent.GetObjectTeam(((Component)this).gameObject));
					val3.RefreshCandidates();
					HurtBox val4 = val3.GetResults().FirstOrDefault();
					if (Object.op_Implicit((Object)(object)val4))
					{
						Vector3 val5 = ((Component)val4).transform.position - ((Component)this).transform.position;
						float num = 15f;
						val = val5 + Vector2.op_Implicit(num * Random.insideUnitCircle);
					}
				}
				if (val == Vector3.zero && Object.op_Implicit((Object)(object)base.body.inputBank))
				{
					val = base.body.inputBank.moveVector * shortBlinkDistance;
				}
				blinkDestination = ((Component)this).transform.position;
				blinkStart = blinkDestination;
				NodeGraph obj = ((!base.body.isFlying || ((Object)base.body).name == "MinorConstructBody(Clone)") ? SceneInfo.instance.groundNodes : SceneInfo.instance.airNodes);
				obj.GetNodePosition(obj.FindClosestNode(((Component)this).transform.position + val, base.body.hullClassification, float.PositiveInfinity), ref blinkDestination);
				blinkDestination += ((Component)this).transform.position - base.body.footPosition;
				if (Object.op_Implicit((Object)(object)base.body.characterDirection))
				{
					base.body.characterDirection.forward = val;
				}
			}
		}

		public override string Name => "Frenzied";

		public override string EquipmentName => "Frenzied Aspect";

		public override string PickupText => "Aspect of the Frenzied Flame";

		public override string DescriptionText => "Increased move and attack speed";

		public override string LoreText => "LET CHAOS BURN THE WORLD";

		public override EliteTier EliteTierDef => (EliteTier)PluginConfig.eliteTierFrenzied.Value;

		public override Color EliteColor => Color.yellow;

		public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_Base_Common_ColorRamps.texRampWarbanner2_png).WaitForCompletion();


		public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();


		public override Sprite AspectIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion();


		public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_WardOnLevel.matWarbannerSphereIndicator_mat).WaitForCompletion();


		public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixFrenzied", false);


		public override void Init()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			base.Init();
			RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(Frenzy);
			EquipmentSlot.PerformEquipmentAction += new hook_PerformEquipmentAction(EquipmentSlot_PerformEquipmentAction);
		}

		public override void SetupEquipment()
		{
			base.SetupEquipment();
			CustomEquipmentDef.EquipmentDef.cooldown = 10f;
			EquipmentDef equipmentDef = CustomEquipmentDef.EquipmentDef;
			((Object)equipmentDef).name = ((Object)equipmentDef).name + "Nuxlar";
		}

		public override void OnBuffGained(CharacterBody self)
		{
			self.AddItemBehavior<FrenziedTeleportController>(1);
		}

		public override void OnBuffLost(CharacterBody self)
		{
			self.AddItemBehavior<FrenziedTeleportController>(0);
		}

		private bool EquipmentSlot_PerformEquipmentAction(orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef equipmentDef)
		{
			bool flag = orig.Invoke(self, equipmentDef);
			if (!flag && (Object)(object)equipmentDef == (Object)(object)CustomEquipmentDef?.EquipmentDef)
			{
				FrenziedTeleportController frenziedTeleportController = default(FrenziedTeleportController);
				if (Object.op_Implicit((Object)(object)self.characterBody) && self.characterBody.isPlayerControlled && ((Component)self.characterBody).TryGetComponent<FrenziedTeleportController>(ref frenziedTeleportController))
				{
					((MonoBehaviour)frenziedTeleportController).StartCoroutine(frenziedTeleportController.Teleport());
				}
				return true;
			}
			return flag;
		}

		private void Frenzy(CharacterBody sender, StatHookEventArgs args)
		{
			if (sender.HasBuff(EliteBuffDef))
			{
				args.baseMoveSpeedAdd += 2f;
				args.attackSpeedMultAdd += 0.5f;
			}
		}
	}
	public class Volatile : EliteBase<Volatile>
	{
		public class VolatileMissileController : ItemBehavior
		{
			private static float normalBaseDamage = 12f;

			private static float normalLevelDamage = 2.4f;

			private static float championBaseDamage = 18f;

			private static float championLevelDamage = 3.6f;

			private float fireTimer;

			private float fireInterval = 3f;

			private void FixedUpdate()
			{
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)base.body) && Object.op_Implicit((Object)(object)base.body.healthComponent) && base.body.healthComponent.alive)
				{
					fireTimer += Time.fixedDeltaTime;
					if (fireTimer >= fireInterval)
					{
						fireTimer = 0f;
						fireInterval = Random.Range(1, 6);
						float num = (base.body.isChampion ? (championBaseDamage + championLevelDamage * base.body.level) : (normalBaseDamage + normalLevelDamage * base.body.level));
						MissileUtils.FireMissile(base.body.corePosition, base.body, default(ProcChainMask), (GameObject)null, num, Util.CheckRoll(base.body.crit, base.body.master), EliteBase<Volatile>.Instance.VolatileProjectile, (DamageColorIndex)3, false);
					}
				}
			}
		}

		private GameObject VolatileProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common.MissileProjectile_prefab).WaitForCompletion(), "AffixVolatileNuxProjectile");

		private GameObject VolatileProjectileGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common.MissileGhost_prefab).WaitForCompletion(), "AffixVolatileNuxProjectileGhost");

		private GameObject behemoExplosion = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Common_VFX.OmniExplosionVFXQuick_prefab).WaitForCompletion();

		public override string Name => "Volatile";

		public override string EquipmentName => "Volatile Aspect";

		public override string PickupText => "Aspect of Volatile";

		public override string DescriptionText => "All attacks explode and periodically fire missiles.";

		public override string LoreText => "Hope you like dodging";

		public override EliteTier EliteTierDef => (EliteTier)PluginConfig.eliteTierVolatile.Value;

		public override Color EliteColor => Color.red;

		public override Texture2D EliteRamp { get; set; } = Addressables.LoadAssetAsync<Texture2D>((object)RoR2_DLC1_Common_ColorRamps.texRampStrongerBurn_png).WaitForCompletion();


		public override Sprite EliteIcon { get; set; } = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_EliteIce.texBuffAffixWhite_tif).WaitForCompletion();


		public override Sprite AspectIcon { get; set; } = Object.Instantiate<Sprite>(Addressables.LoadAssetAsync<Sprite>((object)RoR2_DLC1_EliteEarth.texAffixEarthIcon_png).WaitForCompletion());


		public override Material EliteMaterial { get; set; } = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_MagmaWorm.matMagmaWormFireball_mat).WaitForCompletion();


		public override GameObject PickupModelPrefab { get; set; } = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_EliteFire.PickupEliteFire_prefab).WaitForCompletion(), "PickupAffixVolatile", false);


		public override void Init()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: 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_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Expected O, but got Unknown
			base.Init();
			((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(0)).GetComponent<TrailRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_MagmaWorm.matMagmaWormFireballTrail_mat).WaitForCompletion();
			((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(1)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_Junk_Bandit.matThermiteFlare_mat).WaitForCompletion();
			((Renderer)((Component)VolatileProjectileGhost.transform.GetChild(2)).GetComponent<MeshRenderer>()).sharedMaterial = EliteMaterial;
			((Component)VolatileProjectileGhost.transform.GetChild(3)).GetComponent<Light>().color = EliteColor;
			VolatileProjectile.GetComponent<ProjectileController>().ghostPrefab = VolatileProjectileGhost;
			MissileController component = VolatileProjectile.GetComponent<MissileController>();
			component.acceleration = 2f;
			component.deathTimer = 6f;
			component.giveupTimer = 4f;
			component.maxVelocity = 20f;
			component.turbulence = 6f;
			GlobalEventManager.OnHitAll += new hook_OnHitAll(AddBehemoExplosion);
		}

		public override void OnBuffGained(CharacterBody self)
		{
			self.AddItemBehavior<VolatileMissileController>(1);
		}

		public override void OnBuffLost(CharacterBody self)
		{
			self.AddItemBehavior<VolatileMissileController>(0);
		}

		private void AddBehemoExplosion(orig_OnHitAll orig, GlobalEventManager self, DamageInfo damageInfo, GameObject hitObject)
		{
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: 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_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_009c: Expected O, but got Unknown
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: 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_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: 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_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			orig.Invoke(self, damageInfo, hitObject);
			CharacterBody val = default(CharacterBody);
			if (damageInfo.procCoefficient > 0f && !damageInfo.rejected && Object.op_Implicit((Object)(object)damageInfo.attacker) && damageInfo.attacker.TryGetComponent<CharacterBody>(ref val))
			{
				BuffDef eliteBuffDef = EliteBuffDef;
				if (val.HasBuff(eliteBuffDef))
				{
					float num = 2f * damageInfo.procCoefficient;
					EffectManager.SpawnEffect(behemoExplosion, new EffectData
					{
						origin = damageInfo.position,
						scale = num,
						rotation = Util.QuaternionSafeLookRotation(damageInfo.force)
					}, true);
					new BlastAttack
					{
						position = damageInfo.position,
						baseDamage = Util.OnHitProcDamage(damageInfo.damage, val.damage, 0.15f),
						baseForce = 0f,
						radius = num,
						attacker = damageInfo.attacker,
						inflictor = null,
						teamIndex = TeamComponent.GetObjectTeam(damageInfo.attacker),
						crit = damageInfo.crit,
						procChainMask = damageInfo.procChainMask,
						procCoefficient = 0f,
						damageColorIndex = (DamageColorIndex)3,
						falloffModel = (FalloffModel)2,
						damageType = damageInfo.damageType
					}.Fire();
				}
			}
		}
	}
	public static class ItemDisplays
	{
		private static void ItemDisplaySetup(GameObject prefab)
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: 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_0098: Unknown result type (might be due to invalid IL or missing references)
			MeshRenderer[] componentsInChildren = prefab.GetComponentsInChildren<MeshRenderer>();
			SkinnedMeshRenderer[] componentsInChildren2 = prefab.GetComponentsInChildren<SkinnedMeshRenderer>();
			List<Renderer> list = new List<Renderer>(componentsInChildren.Length + componentsInChildren2.Length);
			list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren);
			list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren2);
			List<Renderer> list2 = list;
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[list2.Count];
			for (int i = 0; i < list2.Count; i++)
			{
				array[i] = new RendererInfo
				{
					defaultMaterial = ((list2[i] is SkinnedMeshRenderer) ? list2[i].sharedMaterial : list2[i].material),
					renderer = list2[i],
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				};
			}
			(prefab.GetComponent<ItemDisplay>() ?? prefab.AddComponent<ItemDisplay>()).rendererInfos = array;
		}

		public static ItemDisplayRuleDict CreateItemDisplayRules(GameObject prefab, Material material)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Expected O, but got Unknown
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: 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_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: 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_00b4: 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_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_01c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0205: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02db: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_030c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0311: Unknown result type (might be due to invalid IL or missing references)
			//IL_0316: Unknown result type (might be due to invalid IL or missing references)
			//IL_0317: Unknown result type (might be due to invalid IL or missing references)
			//IL_0331: Unknown result type (might be due to invalid IL or missing references)
			//IL_033a: Unknown result type (might be due to invalid IL or missing references)
			//IL_036c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0371: Unknown result type (might be due to invalid IL or missing references)
			//IL_0387: Unknown result type (might be due to invalid IL or missing references)
			//IL_038c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Unknown result type (might be due to invalid IL or missing references)
			//IL_0407: Unknown result type (might be due to invalid IL or missing references)
			//IL_041d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0422: Unknown result type (might be due to invalid IL or missing references)
			//IL_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_043d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0442: Unknown result type (might be due to invalid IL or missing references)
			//IL_0443: Unknown result type (might be due to invalid IL or missing references)
			//IL_045d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0466: Unknown result type (might be due to invalid IL or missing references)
			//IL_0498: Unknown result type (might be due to invalid IL or missing references)
			//IL_049d: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0533: Unknown result type (might be due to invalid IL or missing references)
			//IL_0549: Unknown result type (might be due to invalid IL or missing references)
			//IL_054e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0564: 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_056e: Unknown result type (might be due to invalid IL or missing references)
			//IL_056f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0589: Unknown result type (might be due to invalid IL or missing references)
			//IL_0592: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05df: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0604: Unknown result type (might be due to invalid IL or missing references)
			//IL_0605: Unknown result type (might be due to invalid IL or missing references)
			//IL_061f: 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_065a: Unknown result type (might be due to invalid IL or missing references)
			//IL_065f: 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_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0690: Unknown result type (might be due to invalid IL or missing references)
			//IL_0695: Unknown result type (might be due to invalid IL or missing references)
			//IL_069a: Unknown result type (might be due to invalid IL or missing references)
			//IL_069b: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b5: 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_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_070b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0710: Unknown result type (might be due to invalid IL or missing references)
			//IL_0726: Unknown result type (might be due to invalid IL or missing references)
			//IL_072b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0730: Unknown result type (might be due to invalid IL or missing references)
			//IL_0731: Unknown result type (might be due to invalid IL or missing references)
			//IL_074b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0754: Unknown result type (might be due to invalid IL or missing references)
			//IL_0786: Unknown result type (might be due to invalid IL or missing references)
			//IL_078b: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_081c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0821: Unknown result type (might be due to invalid IL or missing references)
			//IL_0837: 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_0852: Unknown result type (might be due to invalid IL or missing references)
			//IL_0857: Unknown result type (might be due to invalid IL or missing references)
			//IL_085c: Unknown result type (might be due to invalid IL or missing references)
			//IL_085d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0877: Unknown result type (might be due to invalid IL or missing references)
			//IL_0880: 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_08b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_090d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0916: Unknown result type (might be due to invalid IL or missing references)
			//IL_0948: Unknown result type (might be due to invalid IL or missing references)
			//IL_094d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0963: Unknown result type (might be due to invalid IL or missing references)
			//IL_0968: Unknown result type (might be due to invalid IL or missing references)
			//IL_097e: 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_0988: Unknown result type (might be due to invalid IL or missing references)
			//IL_0989: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a3: 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_09de: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a14: 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_0a1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a74: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a79: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a94: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b25: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b40: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b45: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3b: 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_0c6c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c71: 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_0c77: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c91: 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_0ccc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d0c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d27: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d62: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d82: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d98: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ece: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ecf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f29: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f3f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f44: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fda: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ffa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ffb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1015: Unknown result type (might be due to invalid IL or missing references)
			//IL_101e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1050: Unknown result type (might be due to invalid IL or missing references)
			//IL_1055: Unknown result type (might be due to invalid IL or missing references)
			//IL_106b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1070: Unknown result type (might be due to invalid IL or missing references)
			//IL_1086: Unknown result type (might be due to invalid IL or missing references)
			//IL_108b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1090: Unknown result type (might be due to invalid IL or missing references)
			//IL_1091: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_10eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1101: Unknown result type (might be due to invalid IL or missing references)
			//IL_1106: Unknown result type (might be due to invalid IL or missing references)
			//IL_111c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1121: Unknown result type (might be due to invalid IL or missing references)
			//IL_1126: Unknown result type (might be due to invalid IL or missing references)
			//IL_1127: Unknown result type (might be due to invalid IL or missing references)
			//IL_1141: Unknown result type (might be due to invalid IL or missing references)
			//IL_114a: Unknown result type (might be due to invalid IL or missing references)
			//IL_117c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1181: Unknown result type (might be due to invalid IL or missing references)
			//IL_1197: Unknown result type (might be due to invalid IL or missing references)
			//IL_119c: Unknown result type (might be due to invalid IL or missing references)
			//IL_11b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_11bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1212: Unknown result type (might be due to invalid IL or missing references)
			//IL_1217: Unknown result type (might be due to invalid IL or missing references)
			//IL_122d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1232: Unknown result type (might be due to invalid IL or missing references)
			//IL_1248: Unknown result type (might be due to invalid IL or missing references)
			//IL_124d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1252: Unknown result type (might be due to invalid IL or missing references)
			//IL_1253: Unknown result type (might be due to invalid IL or missing references)
			//IL_126d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1276: Unknown result type (might be due to invalid IL or missing references)
			//IL_12a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_12c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_12c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_12de: Unknown result type (might be due to invalid IL or missing references)
			//IL_12e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_12e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_12e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1303: Unknown result type (might be due to invalid IL or missing references)
			//IL_130c: Unknown result type (might be due to invalid IL or missing references)
			//IL_133e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1343: Unknown result type (might be due to invalid IL or missing references)
			//IL_1359: Unknown result type (might be due to invalid IL or missing references)
			//IL_135e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1374: Unknown result type (might be due to invalid IL or missing references)
			//IL_1379: Unknown result type (might be due to invalid IL or missing references)
			//IL_137e: Unknown result type (might be due to invalid IL or missing references)
			//IL_137f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1399: Unknown result type (might be due to invalid IL or missing references)
			//IL_13a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_13d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_13d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_13f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_140a: Unknown result type (might be due to invalid IL or missing references)
			//IL_140f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1414: Unknown result type (might be due to invalid IL or missing references)
			//IL_1415: Unknown result type (might be due to invalid IL or missing references)
			//IL_142f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1438: Unknown result type (might be due to invalid IL or missing references)
			//IL_146a: Unknown result type (might be due to invalid IL or missing references)
			//IL_146f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1485: Unknown result type (might be due to invalid IL or missing references)
			//IL_148a: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_14ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_1500: Unknown result type (might be due to invalid IL or missing references)
			//IL_1505: Unknown result type (might be due to invalid IL or missing references)
			//IL_151b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1520: Unknown result type (might be due to invalid IL or missing references)
			//IL_1536: Unknown result type (might be due to invalid IL or missing references)
			//IL_153b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1540: Unknown result type (might be due to invalid IL or missing references)
			//IL_1541: Unknown result type (might be due to invalid IL or missing references)
			//IL_155b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1564: Unknown result type (might be due to invalid IL or missing references)
			//IL_1596: Unknown result type (might be due to invalid IL or missing references)
			//IL_159b: Unknown result type (might be due to invalid IL or missing references)
			//IL_15b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_15b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_15cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_15f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_15fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_162c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1631: Unknown result type (might be due to invalid IL or missing references)
			//IL_1647: Unknown result type (might be due to invalid IL or missing references)
			//IL_164c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1662: Unknown result type (might be due to invalid IL or missing references)
			//IL_1667: Unknown result type (might be due to invalid IL or missing references)
			//IL_166c: Unknown result type (might be due to invalid IL or missing references)
			//IL_166d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1687: Unknown result type (might be due to invalid IL or missing references)
			//IL_1690: Unknown result type (might be due to invalid IL or missing references)
			//IL_16c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_16c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_16dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_16e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_16f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_16fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1702: Unknown result type (might be due to invalid IL or missing references)
			//IL_1703: Unknown result type (might be due to invalid IL or missing references)
			//IL_171d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1726: Unknown result type (might be due to invalid IL or missing references)
			//IL_1758: Unknown result type (might be due to invalid IL or missing references)
			//IL_175d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1773: Unknown result type (might be due to invalid IL or missing references)
			//IL_1778: Unknown result type (might be due to invalid IL or missing references)
			//IL_178e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1793: Unknown result type (might be due to invalid IL or missing references)
			//IL_1798: Unknown result type (might be due to invalid IL or missing references)
			//IL_1799: Unknown result type (might be due to invalid IL or missing references)
			//IL_17b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_17bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_17ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1809: Unknown result type (might be due to invalid IL or missing references)
			//IL_180e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1824: Unknown result type (might be due to invalid IL or missing references)
			//IL_1829: Unknown result type (might be due to invalid IL or missing references)
			//IL_182e: Unknown result type (might be due to invalid IL or missing references)
			//IL_182f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1849: Unknown result type (might be due to invalid IL or missing references)
			//IL_1852: Unknown result type (might be due to invalid IL or missing references)
			//IL_1884: Unknown result type (might be due to invalid IL or missing references)
			//IL_1889: Unknown result type (might be due to invalid IL or missing references)
			//IL_189f: Unknown result type (might be due to invalid IL or missing references)
			//IL_18a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_18bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_18c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_18c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_18df: Unknown result type (might be due to invalid IL or missing references)
			//IL_18e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_191a: Unknown result type (might be due to invalid IL or missing references)
			//IL_191f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1935: Unknown result type (might be due to invalid IL or missing references)
			//IL_193a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1950: Unknown result type (might be due to invalid IL or missing references)
			//IL_1955: Unknown result type (might be due to invalid IL or missing references)
			//IL_195a: Unknown result type (might be due to invalid IL or missing references)
			//IL_195b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1975: Unknown result type (might be due to invalid IL or missing references)
			//IL_197e: Unknown result type (might be due to invalid IL or missing references)
			//IL_19b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_19cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_19d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_19eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_19f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a14: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a46: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a61: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a66: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a81: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a86: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a87: Unknown result type (might be due to invalid IL or missing references)
			//IL_1aa1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1aaa: Unknown result type (might be due to invalid IL or missing references)
			//IL_1adc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ae1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1af7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1afc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b12: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b17: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b37: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b40: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b72: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b77: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b92: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ba8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bad: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bb2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bcd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c08: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c23: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c28: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c43: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c48: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c49: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c63: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c6c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ca3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cbe: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cd4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cde: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d02: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d34: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d39: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d54: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d74: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d75: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d98: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dca: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dcf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1de5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dea: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e00: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e05: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e25: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e60: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e65: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e80: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e96: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ebb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ec4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ef6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1efb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f11: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f16: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f31: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f36: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f37: Unknown result type (might be due to invalid IL or missing references)
			((Renderer)((Component)prefab.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = material;
			AssetRef