Decompiled source of MoreElites v1.0.3

MoreElites.dll

Decompiled 3 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
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.Configuration;
using Microsoft.CodeAnalysis;
using On.RoR2;
using R2API;
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+f4fac63d94214be69a900f2c071a8df15075e24b")]
[assembly: AssemblyProduct("MoreElites")]
[assembly: AssemblyTitle("MoreElites")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace MoreElites
{
	public class Echo
	{
		public class CustomAffixEchoBehavior : ItemBehavior
		{
			private DeployableMinionSpawner echoSpawner1;

			private DeployableMinionSpawner echoSpawner2;

			private CharacterSpawnCard spawnCard;

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

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

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

			private 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_007e: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				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 = SummonedEcho,
						count = 1
					}
				};
				CreateSpawners();
			}

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

			private 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_002c: Expected O, but got Unknown
					buddySpawner = new DeployableMinionSpawner(base.body.master, deployableSlot, rng)
					{
						respawnInterval = 30f,
						spawnCard = spawnCard
					};
					buddySpawner.onMinionSpawnedServer += OnMinionSpawnedServer;
				}
			}

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

			private 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))
				{
					spawnedEchoes.Add(spawnedMaster);
					OnDestroyCallback.AddCallback(((Component)spawnedMaster).gameObject, (Action<OnDestroyCallback>)delegate
					{
						spawnedEchoes.Remove(spawnedMaster);
					});
				}
			}
		}

		public class CustomSummonedEchoBodyBehavior : MonoBehaviour
		{
			private float fireTimer;

			private float fireInterval = 3f;

			private float normalBaseDamage = 24f;

			private float normalLevelDamage = 4.8f;

			private float championBaseDamage = 32f;

			private float championLevelDamage = 7.2f;

			private CharacterBody body;

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

		public static Color AffixEchoColor = Color.black;

		public static EquipmentDef AffixEchoEquipment;

		public static BuffDef AffixEchoBuff;

		public static EliteDef AffixEchoElite;

		public static ItemDef SummonedEcho = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/InDev/SummonedEcho.asset").WaitForCompletion();

		public static float healthMult = MoreElites.t2HealthMult.Value;

		public static float damageMult = MoreElites.t2DamageMult.Value;

		public static float affixDropChance = 0.00025f;

		private static GameObject echoProjectile = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/InDev/EchoHunterProjectile.prefab").WaitForCompletion();

		private static GameObject celestineHalo = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab").WaitForCompletion(), "EchoCrown");

		private static Material echoMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/InDev/matEcho.mat").WaitForCompletion();

		private static Material overlayMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/voidoutro/matVoidRaidCrabEyeOverlay1BLUE.mat").WaitForCompletion();

		private static Texture2D eliteRamp = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampShadowClone.png").WaitForCompletion();

		private static Sprite eliteIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		private static Sprite aspectIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/DLC1/EliteEarth/texAffixEarthIcon.png").WaitForCompletion();

		public Echo()
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Expected O, but got Unknown
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Expected O, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Expected O, but got Unknown
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Expected O, but got Unknown
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Expected O, but got Unknown
			celestineHalo.AddComponent<NetworkIdentity>();
			AddLanguageTokens();
			SetupBuff();
			SetupEquipment();
			SetupElite();
			AddContent();
			EliteRamp.AddRamp(AffixEchoElite, eliteRamp);
			ContentAddition.AddItemDef(SummonedEcho);
			RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(ReduceSummonHP);
			CharacterMaster.OnBodyStart += new hook_OnBodyStart(CharacterMaster_OnBodyStart);
			CharacterBody.OnBuffFirstStackGained += new hook_OnBuffFirstStackGained(CharacterBody_OnBuffFirstStackGained);
			CharacterBody.OnBuffFinalStackLost += new hook_OnBuffFinalStackLost(CharacterBody_OnBuffFinalStackLost);
			CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays);
			CombatDirector.Init += new hook_Init(CombatDirector_Init);
		}

		private void CombatDirector_Init(orig_Init orig)
		{
			orig.Invoke();
			if (EliteAPI.VanillaEliteTiers.Length > 3)
			{
				EliteTierDef obj = EliteAPI.VanillaEliteTiers[3];
				List<EliteDef> list = obj.eliteTypes.ToList();
				list.Add(AffixEchoElite);
				obj.eliteTypes = list.ToArray();
			}
		}

		private void ReduceSummonHP(CharacterBody sender, StatHookEventArgs args)
		{
			if (Object.op_Implicit((Object)(object)sender) && Object.op_Implicit((Object)(object)sender.inventory))
			{
				int itemCount = sender.inventory.GetItemCount(SummonedEcho);
				if (itemCount > 0)
				{
					args.baseCurseAdd += Mathf.Pow(10f, (float)itemCount) - 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(SummonedEcho) > 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) && self.activeOverlayCount < CharacterModel.maxOverlays)
			{
				if (self.body.HasBuff(AffixEchoBuff))
				{
					Material[] currentOverlays = self.currentOverlays;
					int activeOverlayCount = self.activeOverlayCount;
					self.activeOverlayCount = activeOverlayCount + 1;
					currentOverlays[activeOverlayCount] = overlayMat;
				}
				if (self.body.inventory.GetItemCount(SummonedEcho) > 0)
				{
					Material[] currentOverlays2 = self.currentOverlays;
					int activeOverlayCount2 = self.activeOverlayCount;
					self.activeOverlayCount = activeOverlayCount2 + 1;
					currentOverlays2[activeOverlayCount2] = echoMat;
				}
			}
		}

		private void CharacterBody_OnBuffFirstStackGained(orig_OnBuffFirstStackGained orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixEchoBuff)
			{
				self.AddItemBehavior<CustomAffixEchoBehavior>(1);
			}
		}

		private void CharacterBody_OnBuffFinalStackLost(orig_OnBuffFinalStackLost orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixEchoBuff)
			{
				self.AddItemBehavior<CustomAffixEchoBehavior>(0);
			}
		}

		private void AddContent()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			ItemDisplays itemDisplays = new ItemDisplays();
			ContentAddition.AddEliteDef(AffixEchoElite);
			ContentAddition.AddBuffDef(AffixEchoBuff);
			ItemAPI.Add(new CustomEquipment(AffixEchoEquipment, itemDisplays.CreateItemDisplayRules(celestineHalo, echoMat)));
		}

		private void SetupBuff()
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			AffixEchoBuff = ScriptableObject.CreateInstance<BuffDef>();
			((Object)AffixEchoBuff).name = "AffixEchoBuff";
			AffixEchoBuff.canStack = false;
			AffixEchoBuff.isCooldown = false;
			AffixEchoBuff.isDebuff = false;
			AffixEchoBuff.buffColor = AffixEchoColor;
			AffixEchoBuff.iconSprite = eliteIcon;
			((Object)AffixEchoBuff).name = ((Object)AffixEchoBuff).name;
		}

		private void SetupEquipment()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			AffixEchoEquipment = ScriptableObject.CreateInstance<EquipmentDef>();
			AffixEchoEquipment.appearsInMultiPlayer = true;
			AffixEchoEquipment.appearsInSinglePlayer = true;
			AffixEchoEquipment.canBeRandomlyTriggered = false;
			AffixEchoEquipment.canDrop = false;
			AffixEchoEquipment.colorIndex = (ColorIndex)5;
			AffixEchoEquipment.cooldown = 0f;
			AffixEchoEquipment.isLunar = false;
			AffixEchoEquipment.isBoss = false;
			AffixEchoEquipment.passiveBuffDef = AffixEchoBuff;
			AffixEchoEquipment.dropOnDeathChance = affixDropChance * 0.01f;
			AffixEchoEquipment.enigmaCompatible = false;
			AffixEchoEquipment.pickupIconSprite = aspectIcon;
			AffixEchoEquipment.pickupModelPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/PickupEliteFire.prefab").WaitForCompletion(), "PickupAffixEcho", false);
			Renderer[] componentsInChildren = AffixEchoEquipment.pickupModelPrefab.GetComponentsInChildren<Renderer>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				componentsInChildren[i].material = echoMat;
			}
			AffixEchoEquipment.nameToken = "EQUIPMENT_AFFIX_Echo_NAME";
			((Object)AffixEchoEquipment).name = "AffixEcho";
			AffixEchoEquipment.pickupToken = "Aspect of Echo";
			AffixEchoEquipment.descriptionToken = "Summon 2 copies of yourself";
			AffixEchoEquipment.loreToken = "";
		}

		private void SetupElite()
		{
			//IL_000f: 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)
			AffixEchoElite = ScriptableObject.CreateInstance<EliteDef>();
			AffixEchoElite.color = Color32.op_Implicit(AffixEchoColor);
			AffixEchoElite.eliteEquipmentDef = AffixEchoEquipment;
			AffixEchoElite.modifierToken = "ELITE_MODIFIER_Echo";
			((Object)AffixEchoElite).name = "EliteEcho";
			AffixEchoElite.healthBoostCoefficient = healthMult;
			AffixEchoElite.damageBoostCoefficient = damageMult;
			AffixEchoBuff.eliteDef = AffixEchoElite;
			((Object)AffixEchoElite).name = "EliteEcho";
		}

		private void AddLanguageTokens()
		{
			LanguageAPI.Add("ELITE_MODIFIER_Echo", "Echo {0}");
			LanguageAPI.Add("EQUIPMENT_AFFIX_Echo_NAME", "Echo Aspect");
		}
	}
	public class Empowering
	{
		public static Color AffixEmpoweringColor = new Color(1f, 0.5f, 0f);

		public static EquipmentDef AffixEmpoweringEquipment;

		public static BuffDef AffixEmpoweringBuff;

		public static EliteDef AffixEmpoweringElite;

		public static float healthMult = 4f;

		public static float damageMult = 2f;

		public static float affixDropChance = 0.00025f;

		private static GameObject EmpoweringWard = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/AffixHauntedWard.prefab").WaitForCompletion(), "EmpoweringWard");

		private static Material empoweringMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/WardOnLevel/matWarbannerBuffRing.mat").WaitForCompletion();

		private static Texture2D eliteRamp = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampMagmaWorm.png").WaitForCompletion();

		private static Sprite eliteIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		private static Sprite aspectIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/DLC1/EliteEarth/texAffixEarthIcon.png").WaitForCompletion();

		public Empowering()
		{
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Expected O, but got Unknown
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Expected O, but got Unknown
			((Renderer)((Component)EmpoweringWard.transform.GetChild(0).GetChild(0)).GetComponent<MeshRenderer>()).material = empoweringMat;
			AddLanguageTokens();
			SetupBuff();
			SetupEquipment();
			SetupElite();
			AddContent();
			EliteRamp.AddRamp(AffixEmpoweringElite, eliteRamp);
			CharacterBody.OnBuffFirstStackGained += new hook_OnBuffFirstStackGained(CharacterBody_OnBuffFirstStackGained);
			CharacterBody.OnBuffFinalStackLost += new hook_OnBuffFinalStackLost(CharacterBody_OnBuffFinalStackLost);
			CombatDirector.Init += new hook_Init(CombatDirector_Init);
		}

		private void CombatDirector_Init(orig_Init orig)
		{
			orig.Invoke();
			if (EliteAPI.VanillaEliteTiers.Length > 2)
			{
				EliteTierDef obj = EliteAPI.VanillaEliteTiers[2];
				List<EliteDef> list = obj.eliteTypes.ToList();
				AffixEmpoweringElite.healthBoostCoefficient = 2.5f;
				AffixEmpoweringElite.damageBoostCoefficient = 1.5f;
				list.Add(AffixEmpoweringElite);
				obj.eliteTypes = list.ToArray();
			}
			if (EliteAPI.VanillaEliteTiers.Length > 1)
			{
				EliteTierDef obj2 = EliteAPI.VanillaEliteTiers[1];
				List<EliteDef> list2 = obj2.eliteTypes.ToList();
				AffixEmpoweringElite.healthBoostCoefficient = 4f;
				AffixEmpoweringElite.damageBoostCoefficient = 2f;
				list2.Add(AffixEmpoweringElite);
				obj2.eliteTypes = list2.ToArray();
			}
		}

		private void CharacterBody_OnBuffFirstStackGained(orig_OnBuffFirstStackGained orig, CharacterBody self, BuffDef buffDef)
		{
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixEmpoweringBuff)
			{
				GameObject obj = Object.Instantiate<GameObject>(EmpoweringWard);
				BuffWard component = obj.GetComponent<BuffWard>();
				obj.GetComponent<TeamFilter>().teamIndex = self.teamComponent.teamIndex;
				component.buffDef = Buffs.Warbanner;
				component.Networkradius = 25f + self.radius;
				obj.GetComponent<NetworkedBodyAttachment>().AttachToGameObjectAndSpawn(((Component)self).gameObject, (string)null);
				Object.Destroy((Object)(object)obj.GetComponent<AkEvent>());
				Object.Destroy((Object)(object)obj.GetComponent<AkEvent>());
				Object.Destroy((Object)(object)obj.GetComponent<AkGameObj>());
			}
		}

		private void CharacterBody_OnBuffFinalStackLost(orig_OnBuffFinalStackLost orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixEmpoweringBuff)
			{
				Object.Destroy((Object)(object)((Component)self).gameObject.GetComponentInChildren<BuffWard>());
			}
		}

		private void AddContent()
		{
			ContentAddition.AddEliteDef(AffixEmpoweringElite);
			ContentAddition.AddBuffDef(AffixEmpoweringBuff);
			ContentAddition.AddEquipmentDef(AffixEmpoweringEquipment);
		}

		private void SetupBuff()
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			AffixEmpoweringBuff = ScriptableObject.CreateInstance<BuffDef>();
			((Object)AffixEmpoweringBuff).name = "EliteEmpoweringBuff";
			AffixEmpoweringBuff.canStack = false;
			AffixEmpoweringBuff.isCooldown = false;
			AffixEmpoweringBuff.isDebuff = false;
			AffixEmpoweringBuff.buffColor = AffixEmpoweringColor;
			AffixEmpoweringBuff.iconSprite = eliteIcon;
			((Object)AffixEmpoweringBuff).name = ((Object)AffixEmpoweringBuff).name;
		}

		private void SetupEquipment()
		{
			//IL_003c: 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)
			AffixEmpoweringEquipment = ScriptableObject.CreateInstance<EquipmentDef>();
			AffixEmpoweringEquipment.appearsInMultiPlayer = true;
			AffixEmpoweringEquipment.appearsInSinglePlayer = true;
			AffixEmpoweringEquipment.canBeRandomlyTriggered = false;
			AffixEmpoweringEquipment.canDrop = false;
			AffixEmpoweringEquipment.colorIndex = (ColorIndex)5;
			AffixEmpoweringEquipment.cooldown = 0f;
			AffixEmpoweringEquipment.isLunar = false;
			AffixEmpoweringEquipment.isBoss = false;
			AffixEmpoweringEquipment.passiveBuffDef = AffixEmpoweringBuff;
			AffixEmpoweringEquipment.dropOnDeathChance = affixDropChance;
			AffixEmpoweringEquipment.enigmaCompatible = false;
			AffixEmpoweringEquipment.pickupIconSprite = aspectIcon;
			AffixEmpoweringEquipment.pickupModelPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/PickupEliteFire.prefab").WaitForCompletion(), "PickupAffixEmpowering", false);
			Renderer[] componentsInChildren = AffixEmpoweringEquipment.pickupModelPrefab.GetComponentsInChildren<Renderer>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				componentsInChildren[i].material = empoweringMat;
			}
			AffixEmpoweringEquipment.nameToken = "EQUIPMENT_AFFIX_EMPOWERING_NAME";
			((Object)AffixEmpoweringEquipment).name = "AffixEmpowering";
			AffixEmpoweringEquipment.pickupToken = "Aspect of Empowering";
			AffixEmpoweringEquipment.descriptionToken = "Buffed move/atk speed of allies";
			AffixEmpoweringEquipment.loreToken = "";
		}

		private void SetupElite()
		{
			//IL_000f: 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)
			AffixEmpoweringElite = ScriptableObject.CreateInstance<EliteDef>();
			AffixEmpoweringElite.color = Color32.op_Implicit(AffixEmpoweringColor);
			AffixEmpoweringElite.eliteEquipmentDef = AffixEmpoweringEquipment;
			AffixEmpoweringElite.modifierToken = "ELITE_MODIFIER_EMPOWERING";
			((Object)AffixEmpoweringElite).name = "EliteEmpowering";
			AffixEmpoweringElite.healthBoostCoefficient = healthMult;
			AffixEmpoweringElite.damageBoostCoefficient = damageMult;
			AffixEmpoweringBuff.eliteDef = AffixEmpoweringElite;
			((Object)AffixEmpoweringElite).name = "EliteEmpowering";
		}

		private void AddLanguageTokens()
		{
			LanguageAPI.Add("ELITE_MODIFIER_EMPOWERING", "Empowering {0}");
			LanguageAPI.Add("EQUIPMENT_AFFIX_EMPOWERING_NAME", "Empowering Aspect");
		}
	}
	public class Frenzied
	{
		public class FrenziedTeleportController : MonoBehaviour
		{
			private float fireTimer;

			private float fireInterval = 10f;

			private GameObject blinkPrefab = blinkEffect;

			private CharacterBody body;

			private Vector3 blinkDestination = Vector3.zero;

			private Vector3 blinkStart = Vector3.zero;

			private float shortBlinkDistance = 25f;

			private float blinkDistance = 50f;

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

			private void FixedUpdate()
			{
				//IL_006f: 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)
				if (body.isPlayerControlled)
				{
					return;
				}
				fireTimer += Time.fixedDeltaTime;
				if (!((double)fireTimer < (double)fireInterval) && (!Object.op_Implicit((Object)(object)body.healthComponent) || body.healthComponent.alive))
				{
					fireTimer %= 1f;
					CalculateBlinkDestination();
					if (!(blinkStart == blinkDestination))
					{
						((MonoBehaviour)this).StartCoroutine(Teleport());
					}
				}
			}

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

			private void CreateBlinkEffect(Vector3 origin)
			{
				//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_001b: Unknown result type (might be due to invalid IL or missing references)
				//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_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: 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 = 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_0050: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: 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_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_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_006d: 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_007a: 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_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_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_014b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0150: Unknown result type (might be due to invalid IL or missing references)
				//IL_015c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0161: 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_013e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0143: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_0104: Unknown result type (might be due to invalid IL or missing references)
				//IL_0109: Unknown result type (might be due to invalid IL or missing references)
				//IL_010e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0113: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ba: 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_01cf: 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_01ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0202: Unknown result type (might be due to invalid IL or missing references)
				//IL_0207: Unknown result type (might be due to invalid IL or missing references)
				//IL_0229: Unknown result type (might be due to invalid IL or missing references)
				Vector3 val = Vector3.zero;
				Ray val2 = (Object.op_Implicit((Object)(object)body.inputBank) ? new Ray(body.inputBank.aimOrigin, body.inputBank.aimDirection) : new Ray(((Component)this).transform.position, ((Component)this).transform.forward));
				BullseyeSearch val3 = new BullseyeSearch
				{
					searchOrigin = ((Ray)(ref val2)).origin,
					searchDirection = ((Ray)(ref val2)).direction,
					maxDistanceFilter = blinkDistance,
					teamMaskFilter = TeamMask.allButNeutral,
					filterByLoS = false
				};
				((TeamMask)(ref val3.teamMaskFilter)).RemoveTeam(TeamComponent.GetObjectTeam(((Component)this).gameObject));
				val3.sortMode = (SortMode)2;
				val3.RefreshCandidates();
				HurtBox val4 = val3.GetResults().FirstOrDefault();
				if (Object.op_Implicit((Object)(object)val4) && !body.isPlayerControlled)
				{
					Vector3 val5 = ((Component)val4).transform.position - ((Component)this).transform.position;
					float num = 15f;
					val = val5 + Vector2.op_Implicit(num * Random.insideUnitCircle);
				}
				else if (Object.op_Implicit((Object)(object)body.inputBank))
				{
					val = body.inputBank.moveVector * shortBlinkDistance;
				}
				blinkDestination = ((Component)this).transform.position;
				blinkStart = ((Component)this).transform.position;
				NodeGraph val6 = (body.isFlying ? SceneInfo.instance.airNodes : SceneInfo.instance.groundNodes);
				if (((Object)body).name == "MinorConstructBody(Clone)")
				{
					val6 = SceneInfo.instance.groundNodes;
				}
				val6.GetNodePosition(val6.FindClosestNode(((Component)this).transform.position + val, body.hullClassification, float.PositiveInfinity), ref blinkDestination);
				blinkDestination += ((Component)this).transform.position - body.footPosition;
				if (Object.op_Implicit((Object)(object)body.characterDirection))
				{
					body.characterDirection.forward = val;
				}
			}
		}

		public static Color AffixFrenziedColor = Color.yellow;

		public static Color AffixFrenziedLightColor = Color.yellow;

		public static EquipmentDef AffixFrenziedEquipment;

		public static BuffDef AffixFrenziedBuff;

		public static EliteDef AffixFrenziedElite;

		public static float healthMult = 4f;

		public static float damageMult = 2f;

		public static float affixDropChance = 0.00025f;

		private static Material warbannerMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/WardOnLevel/matWarbannerSphereIndicator.mat").WaitForCompletion();

		private static GameObject blinkEffect = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/Treebot/SonicBoomEffect.prefab").WaitForCompletion();

		private static GameObject blinkEffect2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSuppressor/SuppressorRetreatToShellEffect.prefab").WaitForCompletion();

		private static Material FrenziedMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/WardOnLevel/matWarbannerBuffRing.mat").WaitForCompletion();

		private static Texture2D eliteRamp = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/ColorRamps/texRampWarbanner2.png").WaitForCompletion();

		private static Sprite eliteIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteIce/texBuffAffixWhite.tif").WaitForCompletion();

		private static Sprite aspectIcon = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/DLC1/EliteEarth/texAffixEarthIcon.png").WaitForCompletion();

		public Frenzied()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Expected O, but got Unknown
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Expected O, but got Unknown
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Expected O, but got Unknown
			AddLanguageTokens();
			SetupBuff();
			SetupEquipment();
			SetupElite();
			AddContent();
			EliteRamp.AddRamp(AffixFrenziedElite, eliteRamp);
			RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(Frenzy);
			CharacterBody.OnBuffFirstStackGained += new hook_OnBuffFirstStackGained(CharacterBody_OnBuffFirstStackGained);
			CharacterBody.OnBuffFinalStackLost += new hook_OnBuffFinalStackLost(CharacterBody_OnBuffFinalStackLost);
			CombatDirector.Init += new hook_Init(CombatDirector_Init);
			EquipmentSlot.PerformEquipmentAction += new hook_PerformEquipmentAction(EquipmentSlot_PerformEquipmentAction);
		}

		private bool EquipmentSlot_PerformEquipmentAction(orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef equipmentDef)
		{
			bool flag = orig.Invoke(self, equipmentDef);
			if (!flag && (Object)(object)equipmentDef == (Object)(object)AffixFrenziedEquipment)
			{
				CharacterBody characterBody = self.characterBody;
				if (Object.op_Implicit((Object)(object)characterBody) && characterBody.isPlayerControlled && Object.op_Implicit((Object)(object)Run.instance))
				{
					_ = Run.instance.spawnRng;
					FrenziedTeleportController component = ((Component)characterBody).GetComponent<FrenziedTeleportController>();
					if (Object.op_Implicit((Object)(object)component))
					{
						((MonoBehaviour)self).StartCoroutine(component.Teleport());
					}
				}
				flag = true;
			}
			return flag;
		}

		private void CombatDirector_Init(orig_Init orig)
		{
			orig.Invoke();
			if (EliteAPI.VanillaEliteTiers.Length > 2)
			{
				EliteTierDef obj = EliteAPI.VanillaEliteTiers[2];
				List<EliteDef> list = obj.eliteTypes.ToList();
				AffixFrenziedElite.healthBoostCoefficient = 2.5f;
				AffixFrenziedElite.damageBoostCoefficient = 1.5f;
				list.Add(AffixFrenziedElite);
				obj.eliteTypes = list.ToArray();
			}
			if (EliteAPI.VanillaEliteTiers.Length > 1)
			{
				EliteTierDef obj2 = EliteAPI.VanillaEliteTiers[1];
				List<EliteDef> list2 = obj2.eliteTypes.ToList();
				AffixFrenziedElite.healthBoostCoefficient = 4f;
				AffixFrenziedElite.damageBoostCoefficient = 2f;
				list2.Add(AffixFrenziedElite);
				obj2.eliteTypes = list2.ToArray();
			}
		}

		private void Frenzy(CharacterBody sender, StatHookEventArgs args)
		{
			if (Object.op_Implicit((Object)(object)sender) && Object.op_Implicit((Object)(object)sender.inventory) && sender.HasBuff(AffixFrenziedBuff))
			{
				args.baseMoveSpeedAdd += 2f;
				args.attackSpeedMultAdd += 0.5f;
			}
		}

		private void CharacterBody_OnBuffFirstStackGained(orig_OnBuffFirstStackGained orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixFrenziedBuff)
			{
				((Component)self).gameObject.AddComponent<FrenziedTeleportController>();
			}
		}

		private void CharacterBody_OnBuffFinalStackLost(orig_OnBuffFinalStackLost orig, CharacterBody self, BuffDef buffDef)
		{
			orig.Invoke(self, buffDef);
			if ((Object)(object)buffDef == (Object)(object)AffixFrenziedBuff)
			{
				Object.Destroy((Object)(object)((Component)self).gameObject.GetComponent<FrenziedTeleportController>());
			}
		}

		private void AddContent()
		{
			ContentAddition.AddEliteDef(AffixFrenziedElite);
			ContentAddition.AddBuffDef(AffixFrenziedBuff);
			ContentAddition.AddEquipmentDef(AffixFrenziedEquipment);
		}

		private void SetupBuff()
		{
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			AffixFrenziedBuff = ScriptableObject.CreateInstance<BuffDef>();
			((Object)AffixFrenziedBuff).name = "EliteFrenziedBuff";
			AffixFrenziedBuff.canStack = false;
			AffixFrenziedBuff.isCooldown = false;
			AffixFrenziedBuff.isDebuff = false;
			AffixFrenziedBuff.buffColor = AffixFrenziedLightColor;
			((Object)AffixFrenziedBuff).name = ((Object)AffixFrenziedBuff).name;
			AffixFrenziedBuff.iconSprite = eliteIcon;
			((Object)AffixFrenziedBuff).name = ((Object)AffixFrenziedBuff).name;
		}

		private void SetupEquipment()
		{
			//IL_003c: 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)
			AffixFrenziedEquipment = ScriptableObject.CreateInstance<EquipmentDef>();
			AffixFrenziedEquipment.appearsInMultiPlayer = true;
			AffixFrenziedEquipment.appearsInSinglePlayer = true;
			AffixFrenziedEquipment.canBeRandomlyTriggered = false;
			AffixFrenziedEquipment.canDrop = false;
			AffixFrenziedEquipment.colorIndex = (ColorIndex)5;
			AffixFrenziedEquipment.cooldown = 10f;
			AffixFrenziedEquipment.isLunar = false;
			AffixFrenziedEquipment.isBoss = false;
			AffixFrenziedEquipment.passiveBuffDef = AffixFrenziedBuff;
			AffixFrenziedEquipment.dropOnDeathChance = affixDropChance;
			AffixFrenziedEquipment.enigmaCompatible = false;
			AffixFrenziedEquipment.pickupIconSprite = aspectIcon;
			AffixFrenziedEquipment.pickupModelPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/PickupEliteFire.prefab").WaitForCompletion(), "PickupAffixFrenzied", false);
			Renderer[] componentsInChildren = AffixFrenziedEquipment.pickupModelPrefab.GetComponentsInChildren<Renderer>();
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				componentsInChildren[i].material = warbannerMat;
			}
			AffixFrenziedEquipment.nameToken = "EQUIPMENT_AFFIX_Frenzied_NAME";
			((Object)AffixFrenziedEquipment).name = "AffixFrenziedNuxlar";
			AffixFrenziedEquipment.pickupToken = "Aspect of Frenzy";
			AffixFrenziedEquipment.descriptionToken = "Buffed move/atk speed";
			AffixFrenziedEquipment.loreToken = "";
		}

		private void SetupElite()
		{
			//IL_000f: 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)
			AffixFrenziedElite = ScriptableObject.CreateInstance<EliteDef>();
			AffixFrenziedElite.color = Color32.op_Implicit(AffixFrenziedLightColor);
			AffixFrenziedElite.eliteEquipmentDef = AffixFrenziedEquipment;
			AffixFrenziedElite.modifierToken = "ELITE_MODIFIER_Frenzied";
			((Object)AffixFrenziedElite).name = "EliteFrenzied";
			((Object)AffixFrenziedElite).name = "EliteFrenzied";
			AffixFrenziedElite.healthBoostCoefficient = healthMult;
			AffixFrenziedElite.damageBoostCoefficient = damageMult;
			AffixFrenziedBuff.eliteDef = AffixFrenziedElite;
		}

		private void AddLanguageTokens()
		{
			LanguageAPI.Add("ELITE_MODIFIER_Frenzied", "Frenzied {0}");
			LanguageAPI.Add("EQUIPMENT_AFFIX_Frenzied_NAME", "Frenzied Aspect");
		}
	}
	public class ItemDisplays
	{
		public GameObject ItemBodyModelPrefab;

		public static RendererInfo[] ItemDisplaySetup(GameObject obj, bool debugmode = false)
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			List<Renderer> list = new List<Renderer>();
			MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren<MeshRenderer>();
			if (componentsInChildren.Length != 0)
			{
				list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren);
			}
			SkinnedMeshRenderer[] componentsInChildren2 = obj.GetComponentsInChildren<SkinnedMeshRenderer>();
			if (componentsInChildren2.Length != 0)
			{
				list.AddRange((IEnumerable<Renderer>)(object)componentsInChildren2);
			}
			RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[list.Count];
			for (int i = 0; i < list.Count; i++)
			{
				array[i] = new RendererInfo
				{
					defaultMaterial = ((list[i] is SkinnedMeshRenderer) ? list[i].sharedMaterial : list[i].material),
					renderer = list[i],
					defaultShadowCastingMode = (ShadowCastingMode)1,
					ignoreOverlays = false
				};
			}
			return array;
		}

		public ItemDisplayRuleDict CreateItemDisplayRules(GameObject prefab, Material material)
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: 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_00a7: 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_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: 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_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: 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_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_024a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_030e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0313: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_0319: Unknown result type (might be due to invalid IL or missing references)
			//IL_0333: Unknown result type (might be due to invalid IL or missing references)
			//IL_033c: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0370: Unknown result type (might be due to invalid IL or missing references)
			//IL_0386: Unknown result type (might be due to invalid IL or missing references)
			//IL_038b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0403: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_041e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0434: Unknown result type (might be due to invalid IL or missing references)
			//IL_0439: Unknown result type (might be due to invalid IL or missing references)
			//IL_043e: Unknown result type (might be due to invalid IL or missing references)
			//IL_043f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_0462: Unknown result type (might be due to invalid IL or missing references)
			//IL_0491: Unknown result type (might be due to invalid IL or missing references)
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ac: 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_04c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0524: Unknown result type (might be due to invalid IL or missing references)
			//IL_0529: 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_0544: Unknown result type (might be due to invalid IL or missing references)
			//IL_055a: Unknown result type (might be due to invalid IL or missing references)
			//IL_055f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0564: Unknown result type (might be due to invalid IL or missing references)
			//IL_0565: Unknown result type (might be due to invalid IL or missing references)
			//IL_057f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0588: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f8: 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_061b: Unknown result type (might be due to invalid IL or missing references)
			//IL_064a: Unknown result type (might be due to invalid IL or missing references)
			//IL_064f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0665: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0680: 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_068b: 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_06ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_06dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06fd: 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_071d: Unknown result type (might be due to invalid IL or missing references)
			//IL_071e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0738: Unknown result type (might be due to invalid IL or missing references)
			//IL_0741: Unknown result type (might be due to invalid IL or missing references)
			//IL_0770: Unknown result type (might be due to invalid IL or missing references)
			//IL_0775: Unknown result type (might be due to invalid IL or missing references)
			//IL_078b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0790: 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_07ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0803: Unknown result type (might be due to invalid IL or missing references)
			//IL_0808: Unknown result type (might be due to invalid IL or missing references)
			//IL_081e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0823: Unknown result type (might be due to invalid IL or missing references)
			//IL_0839: Unknown result type (might be due to invalid IL or missing references)
			//IL_083e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0843: Unknown result type (might be due to invalid IL or missing references)
			//IL_0844: Unknown result type (might be due to invalid IL or missing references)
			//IL_085e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0867: Unknown result type (might be due to invalid IL or missing references)
			//IL_0896: Unknown result type (might be due to invalid IL or missing references)
			//IL_089b: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0929: Unknown result type (might be due to invalid IL or missing references)
			//IL_092e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0944: Unknown result type (might be due to invalid IL or missing references)
			//IL_0949: Unknown result type (might be due to invalid IL or missing references)
			//IL_095f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0964: Unknown result type (might be due to invalid IL or missing references)
			//IL_0969: Unknown result type (might be due to invalid IL or missing references)
			//IL_096a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: Unknown result type (might be due to invalid IL or missing references)
			//IL_098d: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a20: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a85: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c43: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c63: 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_0c9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d69: 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_0d6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ddc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df7: 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_0e01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e25: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e59: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e74: 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_0e8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e94: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eaf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f27: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fde: Unknown result type (might be due to invalid IL or missing references)
			//IL_100d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1012: Unknown result type (might be due to invalid IL or missing references)
			//IL_1028: Unknown result type (might be due to invalid IL or missing references)
			//IL_102d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1043: Unknown result type (might be due to invalid IL or missing references)
			//IL_1048: Unknown result type (might be due to invalid IL or missing references)
			//IL_104d: 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_1068: Unknown result type (might be due to invalid IL or missing references)
			//IL_1071: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_10db: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_10fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1104: Unknown result type (might be due to invalid IL or missing references)
			//IL_1133: Unknown result type (might be due to invalid IL or missing references)
			//IL_1138: Unknown result type (might be due to invalid IL or missing references)
			//IL_114e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1153: Unknown result type (might be due to invalid IL or missing references)
			//IL_1169: Unknown result type (might be due to invalid IL or missing references)
			//IL_116e: 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_1174: Unknown result type (might be due to invalid IL or missing references)
			//IL_118e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1197: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_11cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_11fc: 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_1206: Unknown result type (might be due to invalid IL or missing references)
			//IL_1207: Unknown result type (might be due to invalid IL or missing references)
			//IL_1221: Unknown result type (might be due to invalid IL or missing references)
			//IL_122a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1259: Unknown result type (might be due to invalid IL or missing references)
			//IL_125e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1274: Unknown result type (might be due to invalid IL or missing references)
			//IL_1279: 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_1294: Unknown result type (might be due to invalid IL or missing references)
			//IL_1299: Unknown result type (might be due to invalid IL or missing references)
			//IL_129a: Unknown result type (might be due to invalid IL or missing references)
			//IL_12b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_12bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_12f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1307: Unknown result type (might be due to invalid IL or missing references)
			//IL_130c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1322: Unknown result type (might be due to invalid IL or missing references)
			//IL_1327: Unknown result type (might be due to invalid IL or missing references)
			//IL_132c: Unknown result type (might be due to invalid IL or missing references)
			//IL_132d: 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_1350: Unknown result type (might be due to invalid IL or missing references)
			//IL_137f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1384: Unknown result type (might be due to invalid IL or missing references)
			//IL_139a: Unknown result type (might be due to invalid IL or missing references)
			//IL_139f: Unknown result type (might be due to invalid IL or missing references)
			//IL_13b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_13bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_13c0: 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_13e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1412: Unknown result type (might be due to invalid IL or missing references)
			//IL_1417: Unknown result type (might be due to invalid IL or missing references)
			//IL_142d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1432: Unknown result type (might be due to invalid IL or missing references)
			//IL_1448: Unknown result type (might be due to invalid IL or missing references)
			//IL_144d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1452: Unknown result type (might be due to invalid IL or missing references)
			//IL_1453: Unknown result type (might be due to invalid IL or missing references)
			//IL_146d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1476: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14db: Unknown result type (might be due to invalid IL or missing references)
			//IL_14e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_14e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1500: Unknown result type (might be due to invalid IL or missing references)
			//IL_1509: Unknown result type (might be due to invalid IL or missing references)
			//IL_1538: Unknown result type (might be due to invalid IL or missing references)
			//IL_153d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1553: Unknown result type (might be due to invalid IL or missing references)
			//IL_1558: Unknown result type (might be due to invalid IL or missing references)
			//IL_156e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1573: Unknown result type (might be due to invalid IL or missing references)
			//IL_1578: Unknown result type (might be due to invalid IL or missing references)
			//IL_1579: Unknown result type (might be due to invalid IL or missing references)
			//IL_1593: Unknown result type (might be due to invalid IL or missing references)
			//IL_159c: Unknown result type (might be due to invalid IL or missing references)
			//IL_15cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_15d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_15e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_15eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1601: Unknown result type (might be due to invalid IL or missing references)
			//IL_1606: Unknown result type (might be due to invalid IL or missing references)
			//IL_160b: Unknown result type (might be due to invalid IL or missing references)
			//IL_160c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1626: Unknown result type (might be due to invalid IL or missing references)
			//IL_162f: Unknown result type (might be due to invalid IL or missing references)
			//IL_165e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1663: Unknown result type (might be due to invalid IL or missing references)
			//IL_1679: Unknown result type (might be due to invalid IL or missing references)
			//IL_167e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1694: Unknown result type (might be due to invalid IL or missing references)
			//IL_1699: Unknown result type (might be due to invalid IL or missing references)
			//IL_169e: Unknown result type (might be due to invalid IL or missing references)
			//IL_169f: Unknown result type (might be due to invalid IL or missing references)
			//IL_16b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_16c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_16f1: 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_170c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1711: Unknown result type (might be due to invalid IL or missing references)
			//IL_1727: Unknown result type (might be due to invalid IL or missing references)
			//IL_172c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1731: Unknown result type (might be due to invalid IL or missing references)
			//IL_1732: Unknown result type (might be due to invalid IL or missing references)
			//IL_174c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1755: 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_1789: Unknown result type (might be due to invalid IL or missing references)
			//IL_179f: Unknown result type (might be due to invalid IL or missing references)
			//IL_17a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_17ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_17bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_17c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_17c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_17df: Unknown result type (might be due to invalid IL or missing references)
			//IL_17e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1817: Unknown result type (might be due to invalid IL or missing references)
			//IL_181c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1832: Unknown result type (might be due to invalid IL or missing references)
			//IL_1837: Unknown result type (might be due to invalid IL or missing references)
			//IL_184d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1852: Unknown result type (might be due to invalid IL or missing references)
			//IL_1857: Unknown result type (might be due to invalid IL or missing references)
			//IL_1858: Unknown result type (might be due to invalid IL or missing references)
			//IL_1872: 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_18aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_18af: Unknown result type (might be due to invalid IL or missing references)
			//IL_18c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_18e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_18e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_18eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1905: 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_193d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1942: Unknown result type (might be due to invalid IL or missing references)
			//IL_1958: Unknown result type (might be due to invalid IL or missing references)
			//IL_195d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1973: Unknown result type (might be due to invalid IL or missing references)
			//IL_1978: Unknown result type (might be due to invalid IL or missing references)
			//IL_197d: Unknown result type (might be due to invalid IL or missing references)
			//IL_197e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1998: 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_19d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_19eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_19f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a06: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a10: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a11: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a34: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a63: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a68: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a83: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a99: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1aa3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1aa4: 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_1ac7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1af6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1afb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b11: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b16: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b31: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b36: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b37: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b51: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b89: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ba4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ba9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bca: Unknown result type (might be due to invalid IL or missing references)
			//IL_1be4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bed: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c21: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c37: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c52: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c57: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c5c: 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_1c77: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c80: Unknown result type (might be due to invalid IL or missing references)
			//IL_1caf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cca: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ccf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ce5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cea: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cef: 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_1d0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d13: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d42: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d47: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d62: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d78: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d7d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d82: 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_1d9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1da6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dd5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dda: Unknown result type (might be due to invalid IL or missing references)
			//IL_1df0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1df5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e10: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e15: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e16: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e30: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e39: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e68: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e83: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e88: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ea9: Unknown result type (might be due to invalid IL or missing references)
			((Renderer)((Component)prefab.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = material;
			prefab.AddComponent<ItemDisplay>();
			prefab.GetComponent<ItemDisplay>().rendererInfos = ItemDisplaySetup(prefab);
			ItemBodyModelPrefab = prefab;
			ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>());
			val.Add("mdlCommandoDualies", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 = ItemBodyModelPrefab,
					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 ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(0.09251f, 0.05643f, -0.01722f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlBeetle", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.02673f, 0.62368f, 0.43346f),
					localAngles = new Vector3(45f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("AcidLarva", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "BodyBase",
					localPos = new Vector3(-0.55948f, 5.77417f, -0.33291f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.5f, 0.5f, 0.5f)
				}
			});
			val.Add("mdlBeetleGuard", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.01662f, -0.13404f, 2.86457f),
					localAngles = new Vector3(90f, 0f, 0f),
					localScale = new Vector3(0.5f, 0.5f, 0.5f)
				}
			});
			val.Add("mdlBeetleQueen", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.06181f, 4.40589f, 0.24246f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.5f, 0.5f, 0.5f)
				}
			});
			val.Add("mdlBell", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Chain",
					localPos = new Vector3(0f, -1.43253f, 0f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.3f, 0.3f, 0.3f)
				}
			});
			val.Add("mdlBison", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.01535f, 0.14477f, 0.84346f),
					localAngles = new Vector3(90f, 0f, 0f),
					localScale = new Vector3(0.2f, 0.2f, 0.2f)
				}
			});
			val.Add("mdlBrother", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.05811f, 0.33004f, -0.01252f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.15f, 0.15f, 0.15f)
				}
			});
			val.Add("mdlClayBoss", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "PotLidTop",
					localPos = new Vector3(0f, 1.43864f, 1.25631f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.3f, 0.3f, 0.3f)
				}
			});
			val.Add("mdlClayBruiser", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.00255f, 0.59611f, 0.08158f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlClayGrenadier", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.02701f, 0.31263f, 0.02993f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.1f, 0.1f, 0.1f)
				}
			});
			val.Add("mdlMagmaWorm", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-2E-05f, -2.48183f, -0.51458f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.3f, 0.3f, 0.3f)
				}
			});
			val.Add("mdlFlyingVermin", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Body",
					localPos = new Vector3(0f, 1.77686f, 0.11532f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.2f, 0.2f, 0.2f)
				}
			});
			val.Add("mdlGolem", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(0f, 1.39084f, -0.01647f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = new Vector3(0.3f, 0.3f, 0.3f)
				}
			});
			val.Add("mdlGrandparent", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,
					childName = "Head",
					localPos = new Vector3(-0.0854f, 7.61769f, -0.17647f),
					localAngles = new Vector3(90f, 0f, 0f),
					localScale = new Vector3(0.8f, 0.8f, 0.8f)
				}
			});
			val.Add("mdlGravekeeper", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					ruleType = (ItemDisplayRuleType)0,
					followerPrefab = ItemBodyModelPrefab,