Decompiled source of MoreElites v1.1.2

MoreElites.dll

Decompiled an hour 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 On.RoR2;
using R2API;
using RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
using RoR2;
using RoR2.Navigation;
using RoR2.Projectile;
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+b811759bc2a461c8a2b112589123ebd68fbc7cd6")]
[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.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 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()
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				((SpawnCard)spawnCard).nodeGraphType = (GraphType)(base.body.isFlying ? 1 : 0);
				if (!hasEverSpawned)
				{
					DeployableMinionSpawner obj = echoSpawner1;
					obj.respawnStopwatch += 1f;
					DeployableMinionSpawner obj2 = echoSpawner2;
					obj2.respawnStopwatch += 1f;
				}
			}

			public void Awake()
			{
				((Behaviour)this).enabled = false;
				Util.PlaySound("Play_voidRaid_fog_explode", ((Component)this).gameObject);
			}

			public void OnEnable()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0022: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: 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_0084: Unknown result type (might be due to invalid IL or missing references)
				MasterIndex val = MasterCatalog.FindAiMasterIndexForBody(base.body.bodyIndex);
				spawnCard = ScriptableObject.CreateInstance<CharacterSpawnCard>();
				((SpawnCard)spawnCard).prefab = MasterCatalog.GetMasterPrefab(val);
				spawnCard.inventoryToCopy = base.body.inventory;
				spawnCard.equipmentToGrant = (EquipmentDef[])(object)new EquipmentDef[1];
				spawnCard.itemsToGrant = (ItemCountPair[])(object)new ItemCountPair[1]
				{
					new ItemCountPair
					{
						itemDef = EliteBase<Echo>.Instance.summonedEchoItem,
						count = 1
					}
				};
				CreateSpawners();
			}

			public void OnDisable()
			{
				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();
					}
				}
				DestroySpawners();
			}

			public void CreateSpawners()
			{
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Expected O, but got Unknown
				Xoroshiro128Plus rng = new Xoroshiro128Plus(Run.instance.seed ^ (ulong)((Object)this).GetInstanceID());
				CreateSpawner(ref echoSpawner1, (DeployableSlot)12, (SpawnCard)(object)spawnCard);
				CreateSpawner(ref echoSpawner2, (DeployableSlot)13, (SpawnCard)(object)spawnCard);
				void CreateSpawner(ref DeployableMinionSpawner buddySpawner, DeployableSlot deployableSlot, SpawnCard spawnCard)
				{
					//IL_000c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0014: Unknown result type (might be due to invalid IL or missing references)
					//IL_0019: Unknown result type (might be due to invalid IL or missing references)
					//IL_0024: Unknown result type (might be due to invalid IL or missing references)
					//IL_002f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0037: Expected O, but got Unknown
					buddySpawner = new DeployableMinionSpawner(base.body.master, deployableSlot, rng)
					{
						maxSpawnDistance = 20f,
						respawnInterval = 30f,
						spawnCard = spawnCard
					};
					buddySpawner.onMinionSpawnedServer += OnMinionSpawnedServer;
				}
			}

			public void DestroySpawners()
			{
				DeployableMinionSpawner obj = echoSpawner1;
				if (obj != null)
				{
					obj.Dispose();
				}
				echoSpawner1 = null;
				DeployableMinionSpawner obj2 = echoSpawner2;
				if (obj2 != null)
				{
					obj2.Dispose();
				}
				echoSpawner2 = null;
			}

			public void OnMinionSpawnedServer(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))
				{
					return;
				}
				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);
					});
				}
			}
		}

		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
						});
					}
				}
			}
		}

		public ItemDef summonedEchoItem;

		public Material echoMatBlack = Addressables.LoadAssetAsync<Material>((object)"RoR2/InDev/matEcho.mat").WaitForCompletion();

		public GameObject echoProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/InDev/EchoHunterProjectile.prefab").WaitForCompletion(), "EchoHunterProjectile");

		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 => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampShadowClone.png").WaitForCompletion();

		public override Sprite EliteIcon => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		public override Sprite AspectIcon => 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_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: 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_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Expected O, but got Unknown
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Expected O, but got Unknown
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Expected O, but got Unknown
			base.Init();
			ItemDef val = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/InDev/SummonedEcho.asset").WaitForCompletion();
			CustomItem val2 = new CustomItem("EchoSummonItem", CustomEquipmentDef.EquipmentDef.nameToken, CustomEquipmentDef.EquipmentDef.descriptionToken, CustomEquipmentDef.EquipmentDef.loreToken, CustomEquipmentDef.EquipmentDef.pickupToken, val.pickupIconSprite, val.pickupModelPrefab, val.tier, val.tags, val.canRemove, val.hidden, (UnlockableDef)null, (ItemDisplayRuleDict)null);
			summonedEchoItem = val2.ItemDef;
			ItemAPI.Add(val2);
			GameObject val3 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab").WaitForCompletion(), "EchoCrown");
			val3.AddComponent<NetworkIdentity>();
			CustomEquipmentDef.ItemDisplayRules = ItemDisplays.CreateItemDisplayRules(val3, EliteMaterial);
			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)
			{
				self.AddItemBehavior<CustomAffixEchoBehavior>(1);
			}
		}

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

		private void ReduceSummonHP(CharacterBody sender, StatHookEventArgs args)
		{
			int num = (Object.op_Implicit((Object)(object)sender.inventory) ? sender.inventory.GetItemCount(summonedEchoItem) : 0);
			if (num > 0)
			{
				args.baseCurseAdd += Mathf.Pow(10f, (float)num) - 1f;
			}
		}

		private void CharacterMaster_OnBodyStart(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body)
		{
			orig.Invoke(self, body);
			if (((Object.op_Implicit((Object)(object)self.inventory) && self.inventory.GetItemCount(summonedEchoItem) != 0) ? 1 : 0) > (false ? 1 : 0))
			{
				((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; }

		public abstract Sprite EliteIcon { get; }

		public abstract Sprite AspectIcon { get; }

		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 abstract void OnBuffGained(CharacterBody body);

		public abstract void OnBuffLost(CharacterBody body);

		public static void CreateElites()
		{
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Expected O, but got Unknown
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Expected O, but got Unknown
			if (PluginConfig.enableEcho.Value)
			{
				new Echo();
			}
			if (PluginConfig.enableEmpowering.Value)
			{
				new Empowering();
			}
			if (PluginConfig.enableFrenzied.Value)
			{
				new Frenzied();
			}
			if (PluginConfig.enableVolatile.Value)
			{
				new Volatile();
			}
			if (!EliteInstances.Any())
			{
				return;
			}
			foreach (EliteBase eliteInstance in EliteInstances)
			{
				eliteInstance.Init();
				ContentAddition.AddBuffDef(eliteInstance.EliteBuffDef);
				ItemAPI.Add(eliteInstance.CustomEquipmentDef);
				EliteAPI.Add(eliteInstance.CustomEliteDef);
				if (eliteInstance.CustomEliteDefHonor != null)
				{
					EliteAPI.Add(eliteInstance.CustomEliteDefHonor);
				}
			}
			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();
			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 + "_PICKUP_DESC", PickupText ?? ("Aspect of " + Name));
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_DESC", DescriptionText ?? "");
			LanguageAPI.Add("EQUIPMENT_AFFIX_" + NameToken + "_LORE", LoreText ?? "");
		}

		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;
		}

		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;
			}
		}

		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_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Expected O, but got Unknown
			IEnumerable<EliteTierDef> vanillaEliteTierDef = GetVanillaEliteTierDef(EliteTierDef);
			if (vanillaEliteTierDef != null)
			{
				CustomEliteDef = new CustomElite("ed" + Name, CustomEquipmentDef.EquipmentDef, Color32.op_Implicit(EliteColor), "ELITE_MODIFIER_" + NameToken, vanillaEliteTierDef, EliteRamp);
				CustomEliteDef.EliteDef.healthBoostCoefficient = ((EliteTierDef < EliteTier.T2) ? PluginConfig.t1HealthMult.Value : PluginConfig.t2HealthMult.Value);
				CustomEliteDef.EliteDef.damageBoostCoefficient = ((EliteTierDef < EliteTier.T2) ? PluginConfig.t1DamageMult.Value : PluginConfig.t2DamageMult.Value);
				EliteBuffDef.eliteDef = CustomEliteDef.EliteDef;
				IEnumerable<EliteTierDef> vanillaEliteHonorTierDef = GetVanillaEliteHonorTierDef(EliteTierDef);
				if (vanillaEliteHonorTierDef != null)
				{
					CustomEliteDefHonor = new CustomElite("ed" + 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;
				}
			}
		}

		private 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]), 
			};
		}

		private 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 => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampMagmaWorm.png").WaitForCompletion();

		public override Sprite EliteIcon => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		public override Sprite AspectIcon => 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 => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampWarbanner2.png").WaitForCompletion();

		public override Sprite EliteIcon => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		public override Sprite AspectIcon => 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 => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC1/Common/ColorRamps/texRampStrongerBurn.png").WaitForCompletion();

		public override Sprite EliteIcon => Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		public override Sprite AspectIcon => 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_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: 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 = 10f;
			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 = 4f * 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.25f),
						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 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_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			//IL_0038: 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_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_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_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: 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_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_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: 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_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: 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_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0230: Unknown result type (might be due to invalid IL or missing references)
			//IL_0235: Unknown result type (might be due to invalid IL or missing references)
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_0255: Unknown result type (might be due to invalid IL or missing references)
			//IL_0256: Unknown result type (might be due to invalid IL or missing references)
			//IL_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0307: 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_0336: Unknown result type (might be due to invalid IL or missing references)
			//IL_034c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0351: Unknown result type (might be due to invalid IL or missing references)
			//IL_0367: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_0372: 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_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_03df: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0400: Unknown result type (might be due to invalid IL or missing references)
			//IL_041a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_044d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0452: Unknown result type (might be due to invalid IL or missing references)
			//IL_0468: Unknown result type (might be due to invalid IL or missing references)
			//IL_046d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0483: Unknown result type (might be due to invalid IL or missing references)
			//IL_0488: Unknown result type (might be due to invalid IL or missing references)
			//IL_048d: Unknown result type (might be due to invalid IL or missing references)
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04db: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0511: Unknown result type (might be due to invalid IL or missing references)
			//IL_0516: Unknown result type (might be due to invalid IL or missing references)
			//IL_051b: Unknown result type (might be due to invalid IL or missing references)
			//IL_051c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0536: Unknown result type (might be due to invalid IL or missing references)
			//IL_053f: 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_0584: 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_059f: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05aa: 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_05cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0612: Unknown result type (might be due to invalid IL or missing references)
			//IL_0617: Unknown result type (might be due to invalid IL or missing references)
			//IL_062d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0632: Unknown result type (might be due to invalid IL or missing references)
			//IL_0637: Unknown result type (might be due to invalid IL or missing references)
			//IL_0638: Unknown result type (might be due to invalid IL or missing references)
			//IL_0652: Unknown result type (might be due to invalid IL or missing references)
			//IL_065b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0685: Unknown result type (might be due to invalid IL or missing references)
			//IL_068a: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0713: Unknown result type (might be due to invalid IL or missing references)
			//IL_0718: Unknown result type (might be due to invalid IL or missing references)
			//IL_072e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0733: Unknown result type (might be due to invalid IL or missing references)
			//IL_0749: Unknown result type (might be due to invalid IL or missing references)
			//IL_074e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0753: 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_076e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_07d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07dc: 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_07e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0805: Unknown result type (might be due to invalid IL or missing references)
			//IL_082f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0834: Unknown result type (might be due to invalid IL or missing references)
			//IL_084a: Unknown result type (might be due to invalid IL or missing references)
			//IL_084f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0865: Unknown result type (might be due to invalid IL or missing references)
			//IL_086a: Unknown result type (might be due to invalid IL or missing references)
			//IL_086f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0870: Unknown result type (might be due to invalid IL or missing references)
			//IL_088a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0893: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08dd: 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_08f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0918: Unknown result type (might be due to invalid IL or missing references)
			//IL_0921: Unknown result type (might be due to invalid IL or missing references)
			//IL_094b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0950: Unknown result type (might be due to invalid IL or missing references)
			//IL_0966: Unknown result type (might be due to invalid IL or missing references)
			//IL_096b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0981: Unknown result type (might be due to invalid IL or missing references)
			//IL_0986: Unknown result type (might be due to invalid IL or missing references)
			//IL_098b: Unknown result type (might be due to invalid IL or missing references)
			//IL_098c: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09af: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d9: 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_09f4: 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_0a0f: 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_0a1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a82: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0acb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b50: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b59: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bde: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c11: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c31: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c47: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c4c: 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_0c52: 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_0c75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cda: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cfa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d63: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ddb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e69: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e84: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ead: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0edc: 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_0ef7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f3b: 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_0f6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f85: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff8: Unknown result type (might be due to invalid IL or missing references)
			//IL_100e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1013: Unknown result type (might be due to invalid IL or missing references)
			//IL_1029: Unknown result type (might be due to invalid IL or missing references)
			//IL_102e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1033: Unknown result type (might be due to invalid IL or missing references)
			//IL_1034: Unknown result type (might be due to invalid IL or missing references)
			//IL_104e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1057: Unknown result type (might be due to invalid IL or missing references)
			//IL_1081: 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_109c: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_10dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_110f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1114: Unknown result type (might be due to invalid IL or missing references)
			//IL_112a: Unknown result type (might be due to invalid IL or missing references)
			//IL_112f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1145: 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_114f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1150: Unknown result type (might be due to invalid IL or missing references)
			//IL_116a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1173: Unknown result type (might be due to invalid IL or missing references)
			//IL_119d: Unknown result type (might be due to invalid IL or missing references)
			//IL_11a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11b8: 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_11d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_11dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_11de: Unknown result type (might be due to invalid IL or missing references)
			//IL_11f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1201: Unknown result type (might be due to invalid IL or missing references)
			//IL_122b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1230: Unknown result type (might be due to invalid IL or missing references)
			//IL_1246: Unknown result type (might be due to invalid IL or missing references)
			//IL_124b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1261: Unknown result type (might be due to invalid IL or missing references)
			//IL_1266: Unknown result type (might be due to invalid IL or missing references)
			//IL_126b: Unknown result type (might be due to invalid IL or missing references)
			//IL_126c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1286: Unknown result type (might be due to invalid IL or missing references)
			//IL_128f: Unknown result type (might be due to invalid IL or missing references)
			//IL_12b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_12be: Unknown result type (might be due to invalid IL or missing references)
			//IL_12d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_12d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_12f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_12f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_12fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_1314: Unknown result type (might be due to invalid IL or missing references)
			//IL_131d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1347: Unknown result type (might be due to invalid IL or missing references)
			//IL_134c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1362: Unknown result type (might be due to invalid IL or missing references)
			//IL_1367: Unknown result type (might be due to invalid IL or missing references)
			//IL_137d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1382: Unknown result type (might be due to invalid IL or missing references)
			//IL_1387: Unknown result type (might be due to invalid IL or missing references)
			//IL_1388: 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_13ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_13d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_13da: Unknown result type (might be due to invalid IL or missing references)
			//IL_13f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_13f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_140b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1410: 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_1416: Unknown result type (might be due to invalid IL or missing references)
			//IL_1430: Unknown result type (might be due to invalid IL or missing references)
			//IL_1439: Unknown result type (might be due to invalid IL or missing references)
			//IL_1463: Unknown result type (might be due to invalid IL or missing references)
			//IL_1468: Unknown result type (might be due to invalid IL or missing references)
			//IL_147e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1483: Unknown result type (might be due to invalid IL or missing references)
			//IL_1499: Unknown result type (might be due to invalid IL or missing references)
			//IL_149e: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_14be: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_14f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_14f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_150c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1511: Unknown result type (might be due to invalid IL or missing references)
			//IL_1527: Unknown result type (might be due to invalid IL or missing references)
			//IL_152c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1531: Unknown result type (might be due to invalid IL or missing references)
			//IL_1532: Unknown result type (might be due to invalid IL or missing references)
			//IL_154c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1555: Unknown result type (might be due to invalid IL or missing references)
			//IL_157f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1584: Unknown result type (might be due to invalid IL or missing references)
			//IL_159a: Unknown result type (might be due to invalid IL or missing references)
			//IL_159f: Unknown result type (might be due to invalid IL or missing references)
			//IL_15b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_15ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_15bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_15c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_15da: Unknown result type (might be due to invalid IL or missing references)
			//IL_15e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_160d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1612: Unknown result type (might be due to invalid IL or missing references)
			//IL_1628: Unknown result type (might be due to invalid IL or missing references)
			//IL_162d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1643: Unknown result type (might be due to invalid IL or missing references)
			//IL_1648: Unknown result type (might be due to invalid IL or missing references)
			//IL_164d: Unknown result type (might be due to invalid IL or missing references)
			//IL_164e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1668: Unknown result type (might be due to invalid IL or missing references)
			//IL_1671: Unknown result type (might be due to invalid IL or missing references)
			//IL_169b: Unknown result type (might be due to invalid IL or missing references)
			//IL_16a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_16b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_16bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_16db: Unknown result type (might be due to invalid IL or missing references)
			//IL_16dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_16f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_16ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_1729: Unknown result type (might be due to invalid IL or missing references)
			//IL_172e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1744: Unknown result type (might be due to invalid IL or missing references)
			//IL_1749: Unknown result type (might be due to invalid IL or missing references)
			//IL_175f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1764: Unknown result type (might be due to invalid IL or missing references)
			//IL_1769: Unknown result type (might be due to invalid IL or missing references)
			//IL_176a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1784: Unknown result type (might be due to invalid IL or missing references)
			//IL_178d: Unknown result type (might be due to invalid IL or missing references)
			//IL_17b7: 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_17d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_17d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_17ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_17f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1812: Unknown result type (might be due to invalid IL or missing references)
			//IL_181b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1845: Unknown result type (might be due to invalid IL or missing references)
			//IL_184a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1860: Unknown result type (might be due to invalid IL or missing references)
			//IL_1865: Unknown result type (might be due to invalid IL or missing references)
			//IL_187b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1880: Unknown result type (might be due to invalid IL or missing references)
			//IL_1885: Unknown result type (might be due to invalid IL or missing references)
			//IL_1886: Unknown result type (might be due to invalid IL or missing references)
			//IL_18a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_18a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_18d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_18d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_18f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1909: Unknown result type (might be due to invalid IL or missing references)
			//IL_190e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1913: Unknown result type (might be due to invalid IL or missing references)
			//IL_1914: Unknown result type (might be due to invalid IL or missing references)
			//IL_192e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1937: Unknown result type (might be due to invalid IL or missing references)
			//IL_1961: Unknown result type (might be due to invalid IL or missing references)
			//IL_1966: Unknown result type (might be due to invalid IL or missing references)
			//IL_197c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1981: Unknown result type (might be due to invalid IL or missing references)
			//IL_1997: Unknown result type (might be due to invalid IL or missing references)
			//IL_199c: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_19bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_19c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_19ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_19f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a25: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a2f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a30: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a53: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a7d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a82: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a98: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ab3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ab8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1abd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1abe: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ad8: 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_1b0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b10: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b26: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b41: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b46: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b4c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b66: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b99: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bcf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bd4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bda: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bf4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bfd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c27: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c42: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c47: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c62: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c67: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c68: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c82: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cd5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ceb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cf6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d10: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d19: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d43: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d48: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d5e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d63: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d79: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d83: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d84: Unknown result type (might be due to invalid IL or missing references)
			((Renderer)((Component)prefab.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = material;
			ItemDisplaySetup(prefab);
			ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>());
			val.Add("mdlCommandoDualies", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.0017f, 0.45426f, -0.00889f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.095f, 0.1f)
				}
			});
			val.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.00237f, 0.34538f, -0.06892f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.1519f, 2.71484f, 2.21381f),
					localAngles = new Vector3(60f, 0f, 0f),
					localScale = new Vector3(0.5f, 0.5f, 0.5f)
				}
			});
			val.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "HeadCenter",
					localPos = new Vector3(-0.00053f, 0.52744f, 0.08005f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.13f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.0125f, 0.23135f, -0.03155f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(0.01953f, 0.31854f, 0.01433f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.00151f, 0.28744f, -0.00129f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.02466f, 0.46623f, 2.35514f),
					localAngles = new Vector3(70.00002f, 180f, 180f),
					localScale = new Vector3(0.5f, 0.5f, 0.5f)
				}
			});
			val.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.01106f, 0.28928f, -0.0017f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlBandit2", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.01673f, 0.27646f, -0.00129f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlEquipmentDrone", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0f, 1.09378f),
					localAngles = new Vector3(90f, 0f, 0f),
					localScale = new Vector3(0.3f, 0.3f, 0.3f)
				}
			});
			val.Add("mdlWarframeWisp(Clone)", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.00284f, 0.25323f, -0.07018f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlRailGunner", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(-0.00025f, 0.24998f, -0.01575f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlVoidSurvivor", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = prefab,
					childName = "Head",
					localPos = new Vector3(0.02781f, 0.27557f, 0.02447f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlHeretic", (ItemDisplayRule[])(object)new ItemDi