Decompiled source of Volibear v1.0.0

Volibear.dll

Decompiled 6 hours ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using EntityStates;
using EntityStates.Huntress;
using EntityStates.Merc;
using HG.BlendableTypes;
using KinematicCharacterController;
using On.RoR2;
using R2API;
using R2API.Utils;
using Rewired.ComponentControls.Effects;
using RoR2;
using RoR2.Achievements;
using RoR2.Orbs;
using RoR2.Skills;
using RoR2.UI;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;

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

public static class Achievements
{
	[RegisterAchievement("VOLIBEAR_MASTERY", "ACHIEVEMENT_VOLIBEAR_MASTERY_UNLOCKABLE_ID", null, 10u, null)]
	public class MasteryUnlockable : BasePerSurvivorClearGameMonsoonAchievement
	{
		public override BodyIndex LookUpRequiredBodyIndex()
		{
			//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_000e: Unknown result type (might be due to invalid IL or missing references)
			return BodyCatalog.FindBodyIndex("VolibearBody");
		}
	}

	internal static UnlockableDef masteryUnlock;

	public static void RegisterUnlockables()
	{
	}

	private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement
	{
		string text = "ACHIEVEMENT_VOLIBEAR_";
		UnlockableDef val = ScriptableObject.CreateInstance<UnlockableDef>();
		string langName = text + AchievementIdentifier + "_NAME";
		string langDesc = text + AchievementIdentifier + "_DESCRIPTION";
		LanguageAPI.Add(langName, Title);
		LanguageAPI.Add(langDesc, Description);
		Func<string> func = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2]
		{
			Language.GetString(langName),
			Language.GetString(langDesc)
		});
		Type typeFromHandle = typeof(T);
		val.cachedName = text + AchievementIdentifier + "_UNLOCKABLE_ID";
		val.getHowToUnlockString = func;
		val.getUnlockedString = func;
		val.achievementIcon = Icon;
		val.sortScore = 200;
		val.hidden = false;
		ContentAddition.AddUnlockableDef(val);
		return val;
	}
}
internal class Assets
{
	public static AssetBundle MainAssetBundle;

	public static T Load<T>(string name) where T : Object
	{
		return MainAssetBundle.LoadAsset<T>(name);
	}

	public static void PopulateAssets()
	{
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		if ((Object)(object)MainAssetBundle == (Object)null)
		{
			using Stream stream = executingAssembly.GetManifestResourceStream("Volibear.AssetBundle." + "Volibear".ToLower() + "assets");
			MainAssetBundle = AssetBundle.LoadFromStream(stream);
		}
		using Stream stream2 = executingAssembly.GetManifestResourceStream("Volibear.Volibear.bnk");
		byte[] array = new byte[stream2.Length];
		stream2.Read(array, 0, array.Length);
		SoundBanks.Add(array);
	}
}
internal class BearBehaviour : NetworkBehaviour
{
	private CharacterBody body;

	private ChildLocator childLocator;

	private GameObject ultEffect;

	private GameObject passiveEffect;

	public bool woundedTarget;

	private BullseyeSearch search = new BullseyeSearch();

	private float stopwatch;

	public float speed = 0.1f;

	public Vector3[] positions;

	public AimRequest request;

	public float overlayDuration = 0.35f;

	public bool playLowHPVO = true;

	private bool ultBuff;

	private uint ID;

	private static int kRpcRpcAddOverlay;

	private static int kCmdCmdAddBuff;

	private static int kRpcRpcEnablePassiveEffect;

	private static int kRpcRpcPlaySound;

	private static int kCmdCmdFireLightningOrb;

	public void UltBuff()
	{
		ID = AkSoundEngine.PostEvent(Sounds.Play_Volibear_Ult_Buff_Loop, ((Component)this).gameObject);
		ultBuff = true;
		ultEffect.SetActive(true);
	}

	[ClientRpc]
	public void RpcAddOverlay(GameObject targetModel)
	{
		if (!Object.op_Implicit((Object)(object)targetModel))
		{
			return;
		}
		CharacterBody component = targetModel.GetComponent<CharacterBody>();
		if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelLocator) && Object.op_Implicit((Object)(object)component.modelLocator.modelTransform))
		{
			CharacterModel component2 = ((Component)component.modelLocator.modelTransform).GetComponent<CharacterModel>();
			if (Object.op_Implicit((Object)(object)component2))
			{
				TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)component2).gameObject);
				val.originalMaterial = Prefabs.orbHitOverlay;
				val.duration = overlayDuration;
				val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
				val.animateShaderAlpha = true;
				val.destroyComponentOnEnd = true;
				val.AddToCharacterModel(component2);
			}
		}
	}

	[Command]
	public void CmdAddBuff()
	{
		body.AddTimedBuff(Prefabs.lightning, 3f, 5);
		if (body.GetBuffCount(Prefabs.lightning) >= 5)
		{
			CallRpcPlaySound(Sounds.Play_Volibear_Lightning_Buff);
			CallRpcEnablePassiveEffect();
		}
	}

	[ClientRpc]
	public void RpcEnablePassiveEffect()
	{
		if (Object.op_Implicit((Object)(object)passiveEffect))
		{
			passiveEffect.SetActive(true);
		}
	}

	[ClientRpc]
	public void RpcPlaySound(uint ID)
	{
		AkSoundEngine.PostEvent(ID, ((Component)this).gameObject);
	}

	[Command]
	public void CmdFireLightningOrb(Vector3 origin)
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_0009: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: 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_008f: Unknown result type (might be due to invalid IL or missing references)
		VoliOrb voliOrb = new VoliOrb();
		((Orb)voliOrb).origin = origin;
		((LightningOrb)voliOrb).damageValue = body.damage;
		((LightningOrb)voliOrb).isCrit = body.RollCrit();
		((LightningOrb)voliOrb).bouncesRemaining = 4;
		((LightningOrb)voliOrb).teamIndex = body.teamComponent.teamIndex;
		((LightningOrb)voliOrb).attacker = ((Component)this).gameObject;
		((LightningOrb)voliOrb).bouncedObjects = new List<HealthComponent>();
		((LightningOrb)voliOrb).procChainMask = default(ProcChainMask);
		((LightningOrb)voliOrb).procCoefficient = 0f;
		((LightningOrb)voliOrb).damageColorIndex = (DamageColorIndex)10;
		((LightningOrb)voliOrb).range = 20f;
		HurtBox val = ((LightningOrb)voliOrb).PickNextTarget(origin);
		if (Object.op_Implicit((Object)(object)val))
		{
			((Orb)voliOrb).target = val;
			OrbManager.instance.AddOrb((Orb)(object)voliOrb);
		}
	}

	private void Awake()
	{
		body = ((Component)this).GetComponent<CharacterBody>();
		childLocator = ((Component)body.modelLocator.modelTransform).GetComponent<ChildLocator>();
		ultEffect = ((Component)childLocator.FindChild("UltEffect")).gameObject;
		passiveEffect = ((Component)childLocator.FindChild("PassiveEffect")).gameObject;
	}

	private void Start()
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//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)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		search.maxAngleFilter = 70f;
		search.maxDistanceFilter = 11f;
		search.sortMode = (SortMode)3;
		search.teamMaskFilter = TeamMask.GetEnemyTeams(body.teamComponent.teamIndex);
	}

	private void FixedUpdate()
	{
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		stopwatch += Time.fixedDeltaTime;
		if (stopwatch >= 0.1f)
		{
			stopwatch = 0f;
			woundedTarget = false;
			search.searchOrigin = body.inputBank.aimOrigin;
			search.searchDirection = body.inputBank.aimDirection;
			search.RefreshCandidates();
			IEnumerable<HurtBox> results = search.GetResults();
			foreach (HurtBox item in results)
			{
				if (Object.op_Implicit((Object)(object)item.healthComponent) && item.healthComponent.body.HasBuff(Prefabs.wound))
				{
					woundedTarget = true;
					break;
				}
			}
		}
		if (ultBuff && !body.HasBuff(Prefabs.ult))
		{
			ultBuff = false;
			ultEffect.SetActive(false);
			AkSoundEngine.PostEvent(Sounds.Play_Volibear_Ult_Buff_End, ((Component)this).gameObject);
			AkSoundEngine.StopPlayingID(ID);
		}
		if (passiveEffect.activeInHierarchy && !body.HasBuff(Prefabs.lightning))
		{
			passiveEffect.SetActive(false);
		}
	}

	private void UNetVersion()
	{
	}

	protected static void InvokeCmdCmdAddBuff(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"Command CmdAddBuff called on client.");
		}
		else
		{
			((BearBehaviour)(object)obj).CmdAddBuff();
		}
	}

	protected static void InvokeCmdCmdFireLightningOrb(NetworkBehaviour obj, NetworkReader reader)
	{
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"Command CmdFireLightningOrb called on client.");
		}
		else
		{
			((BearBehaviour)(object)obj).CmdFireLightningOrb(reader.ReadVector3());
		}
	}

	public void CallCmdAddBuff()
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Expected O, but got Unknown
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"Command function CmdAddBuff called on server.");
			return;
		}
		if (((NetworkBehaviour)this).isServer)
		{
			CmdAddBuff();
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)5);
		val.WritePackedUInt32((uint)kCmdCmdAddBuff);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdAddBuff");
	}

	public void CallCmdFireLightningOrb(Vector3 origin)
	{
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Expected O, but got Unknown
		//IL_0058: 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_0022: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"Command function CmdFireLightningOrb called on server.");
			return;
		}
		if (((NetworkBehaviour)this).isServer)
		{
			CmdFireLightningOrb(origin);
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)5);
		val.WritePackedUInt32((uint)kCmdCmdFireLightningOrb);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write(origin);
		((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdFireLightningOrb");
	}

	protected static void InvokeRpcRpcAddOverlay(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"RPC RpcAddOverlay called on server.");
		}
		else
		{
			((BearBehaviour)(object)obj).RpcAddOverlay(reader.ReadGameObject());
		}
	}

	protected static void InvokeRpcRpcEnablePassiveEffect(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"RPC RpcEnablePassiveEffect called on server.");
		}
		else
		{
			((BearBehaviour)(object)obj).RpcEnablePassiveEffect();
		}
	}

	protected static void InvokeRpcRpcPlaySound(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"RPC RpcPlaySound called on server.");
		}
		else
		{
			((BearBehaviour)(object)obj).RpcPlaySound(reader.ReadPackedUInt32());
		}
	}

	public void CallRpcAddOverlay(GameObject targetModel)
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"RPC Function RpcAddOverlay called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcAddOverlay);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write(targetModel);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcAddOverlay");
	}

	public void CallRpcEnablePassiveEffect()
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"RPC Function RpcEnablePassiveEffect called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcEnablePassiveEffect);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcEnablePassiveEffect");
	}

	public void CallRpcPlaySound(uint ID)
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"RPC Function RpcPlaySound called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcPlaySound);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.WritePackedUInt32(ID);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcPlaySound");
	}

	static BearBehaviour()
	{
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Expected O, but got Unknown
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d2: Expected O, but got Unknown
		kCmdCmdAddBuff = 538664139;
		NetworkBehaviour.RegisterCommandDelegate(typeof(BearBehaviour), kCmdCmdAddBuff, new CmdDelegate(InvokeCmdCmdAddBuff));
		kCmdCmdFireLightningOrb = 1107826356;
		NetworkBehaviour.RegisterCommandDelegate(typeof(BearBehaviour), kCmdCmdFireLightningOrb, new CmdDelegate(InvokeCmdCmdFireLightningOrb));
		kRpcRpcAddOverlay = -2109860562;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BearBehaviour), kRpcRpcAddOverlay, new CmdDelegate(InvokeRpcRpcAddOverlay));
		kRpcRpcEnablePassiveEffect = 86778102;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BearBehaviour), kRpcRpcEnablePassiveEffect, new CmdDelegate(InvokeRpcRpcEnablePassiveEffect));
		kRpcRpcPlaySound = -736222820;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BearBehaviour), kRpcRpcPlaySound, new CmdDelegate(InvokeRpcRpcPlaySound));
		NetworkCRC.RegisterBehaviour("BearBehaviour", 0);
	}

	public override bool OnSerialize(NetworkWriter writer, bool forceAll)
	{
		bool result = default(bool);
		return result;
	}

	public override void OnDeserialize(NetworkReader reader, bool initialState)
	{
	}
}
internal class BezierCurveLineScaler : BezierCurveLine
{
	private int size = 98;

	private void FixedUpdate()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_0013: Unknown result type (might be due to invalid IL or missing references)
		size = Mathf.RoundToInt(Util.Remap(Vector3.Distance(((Component)this).transform.position, base.endTransform.position), 0f, 280f, 24f, 98f));
		if (((BezierCurveLine)this).lineRenderer.numPositions != size)
		{
			((BezierCurveLine)this).lineRenderer.numPositions = size;
			Array.Resize(ref base.vertexList, size + 1);
		}
	}
}
internal class DelayedExplosion : NetworkBehaviour
{
	public GameObject bodyObject;

	public CharacterBody body;

	public float damage;

	public bool crit;

	public TeamIndex team;

	public static float radius = 12f;

	private float barrierAmount = 0.5f;

	private float damageCoefficient = 6f;

	private void Start()
	{
		//IL_002e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)bodyObject))
		{
			body = bodyObject.GetComponent<CharacterBody>();
			team = body.teamComponent.teamIndex;
			crit = body.RollCrit();
			damage = body.damage * damageCoefficient;
		}
		AkSoundEngine.PostEvent(Sounds.Play_Volibear_Lightning_Target, bodyObject);
	}

	private void OnDestroy()
	{
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		//IL_015b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0160: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_017c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b8: 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_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0100: Unknown result type (might be due to invalid IL or missing references)
		//IL_0105: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		//IL_010c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: Unknown result type (might be due to invalid IL or missing references)
		//IL_0118: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0122: Unknown result type (might be due to invalid IL or missing references)
		//IL_012d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0138: Unknown result type (might be due to invalid IL or missing references)
		//IL_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_0144: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)body))
		{
			AkSoundEngine.PostEvent(Sounds.Play_Volibear_Lightning_Explosion, bodyObject);
			AkSoundEngine.PostEvent(Sounds.Play_Volibear_Lightning_Hit, bodyObject);
			if (Vector3.Distance(((Component)this).transform.position, body.footPosition) <= radius)
			{
				if (NetworkServer.active)
				{
					body.healthComponent.AddBarrier(body.healthComponent.fullCombinedHealth * barrierAmount);
				}
				AkSoundEngine.PostEvent(Sounds.Play_Volibear_Lightning_Buff, ((Component)body).gameObject);
			}
		}
		if (NetworkServer.active)
		{
			new BlastAttack
			{
				attacker = (Object.op_Implicit((Object)(object)body) ? ((Component)body).gameObject : null),
				attackerFiltering = (AttackerFiltering)2,
				baseDamage = damage,
				crit = crit,
				damageType = DamageTypeCombo.op_Implicit((DamageType)64),
				falloffModel = (FalloffModel)0,
				position = ((Component)this).transform.position,
				procCoefficient = 1f,
				radius = 12f,
				teamIndex = team
			}.Fire();
		}
		EffectManager.SimpleEffect(Prefabs.Load<GameObject>("RoR2/Base/Lightning/LightningStrikeImpact.prefab"), ((Component)this).transform.position, Quaternion.identity, false);
		EffectManager.SimpleEffect(Prefabs.lightningImpactEffect, ((Component)this).transform.position, Quaternion.identity, false);
	}

	private void UNetVersion()
	{
	}

	public override bool OnSerialize(NetworkWriter writer, bool forceAll)
	{
		bool result = default(bool);
		return result;
	}

	public override void OnDeserialize(NetworkReader reader, bool initialState)
	{
	}
}
internal class TemporaryEliteDisabler : MonoBehaviour
{
	public float duration = 5f;

	public CharacterBody body;

	public Inventory inventory;

	public EquipmentIndex equip;

	public BuffDef passiveBuff;

	private float stopwatch;

	private void Start()
	{
		//IL_0057: Unknown result type (might be due to invalid IL or missing references)
		//IL_005c: 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)
		if (!NetworkServer.active)
		{
			return;
		}
		body = ((Component)this).GetComponent<CharacterBody>();
		inventory = (Object.op_Implicit((Object)(object)body) ? body.inventory : null);
		if (Object.op_Implicit((Object)(object)inventory))
		{
			equip = inventory.GetEquipmentIndex();
			passiveBuff = EquipmentCatalog.GetEquipmentDef(equip).passiveBuffDef;
			if (Object.op_Implicit((Object)(object)passiveBuff))
			{
				body.RemoveBuff(passiveBuff);
			}
			inventory.SetEquipmentIndex((EquipmentIndex)(-1));
		}
	}

	private void FixedUpdate()
	{
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			return;
		}
		stopwatch += Time.fixedDeltaTime;
		if (stopwatch >= duration && Object.op_Implicit((Object)(object)inventory))
		{
			stopwatch = 0f;
			inventory.SetEquipmentIndex(equip);
			if (Object.op_Implicit((Object)(object)passiveBuff) && Object.op_Implicit((Object)(object)body))
			{
				body.AddBuff(passiveBuff);
			}
			Object.Destroy((Object)(object)this);
		}
	}
}
internal class Hook
{
	internal static void Hooks()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Expected O, but got Unknown
		RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients);
		HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage);
	}

	private static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args)
	{
		if (sender.HasBuff(Prefabs.ult))
		{
			args.healthMultAdd += 0.35f;
			args.moveSpeedMultAdd += 0.35f;
		}
		int buffCount = sender.GetBuffCount(Prefabs.lightning);
		if (buffCount > 0)
		{
			args.damageMultAdd += 0.05f * (float)buffCount;
			args.attackSpeedMultAdd += 0.05f * (float)buffCount;
		}
	}

	private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo)
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Invalid comparison between Unknown and I4
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: Invalid comparison between Unknown and I4
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)damageInfo.attacker) && Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent<BearBehaviour>()))
		{
			if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 262144)
			{
				if (self.body.HasBuff(Prefabs.wound))
				{
					damageInfo.attacker.GetComponent<HealthComponent>().Heal(damageInfo.damage * 0.2f, default(ProcChainMask), true);
					self.body.ClearTimedBuffs(Prefabs.wound);
				}
				else
				{
					self.body.AddTimedBuff(Prefabs.wound, 12f);
				}
			}
			else if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 131136)
			{
				SetStateOnHurt.SetStunOnObject(((Component)self).gameObject, 3f);
			}
		}
		orig.Invoke(self, damageInfo);
		BearBehaviour component = ((Component)self).GetComponent<BearBehaviour>();
		if (Object.op_Implicit((Object)(object)component))
		{
			if (self.combinedHealth >= self.fullCombinedHealth * 0.75f)
			{
				component.playLowHPVO = true;
			}
			else if (self.combinedHealth < self.fullCombinedHealth * 0.5f)
			{
				component.CallRpcPlaySound(Sounds.Play_Volibear_VO_LowHealth);
			}
		}
	}
}
internal class ItemDisplays
{
	internal static ItemDisplayRuleSet itemDisplayRuleSet;

	internal static List<KeyAssetRuleGroup> itemDisplayRules;

	private static Dictionary<Object, GameObject> itemDisplayPrefabs = new Dictionary<Object, GameObject>();

	private static Vector3 vec = Vector3.one;

	internal static void PopulateDisplays()
	{
		PopulateFromBody("Commando");
		PopulateFromBody("Croco");
		PopulateFromBody("Mage");
	}

	private static void PopulateFromBody(string bodyName)
	{
		ItemDisplayRuleSet val = ((Component)Prefabs.Load<GameObject>("Prefabs/CharacterBodies/" + bodyName + "Body").GetComponent<ModelLocator>().modelTransform).GetComponent<CharacterModel>().itemDisplayRuleSet;
		KeyAssetRuleGroup[] keyAssetRuleGroups = val.keyAssetRuleGroups;
		for (int i = 0; i < keyAssetRuleGroups.Length; i++)
		{
			ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules;
			for (int j = 0; j < rules.Length; j++)
			{
				GameObject followerPrefab = rules[j].followerPrefab;
				if (Object.op_Implicit((Object)(object)followerPrefab))
				{
					Object keyAsset = keyAssetRuleGroups[i].keyAsset;
					ItemDef val2 = (ItemDef)(object)((keyAsset is ItemDef) ? keyAsset : null);
					Object keyAsset2 = keyAssetRuleGroups[i].keyAsset;
					EquipmentDef val3 = (EquipmentDef)(object)((keyAsset2 is EquipmentDef) ? keyAsset2 : null);
					if ((Object)(object)val2 != (Object)null && !itemDisplayPrefabs.ContainsKey((Object)(object)val2))
					{
						itemDisplayPrefabs.Add((Object)(object)val2, followerPrefab);
					}
					if ((Object)(object)val3 != (Object)null && !itemDisplayPrefabs.ContainsKey((Object)(object)val3))
					{
						itemDisplayPrefabs.Add((Object)(object)val3, followerPrefab);
					}
				}
			}
		}
	}

	public static void RegisterDisplays()
	{
		itemDisplayRuleSet = ScriptableObject.CreateInstance<ItemDisplayRuleSet>();
		((Object)itemDisplayRuleSet).name = "VolibearIDRS";
		GameObject characterPrefab = MainPlugin.characterPrefab;
		GameObject gameObject = ((Component)characterPrefab.GetComponentInChildren<ModelLocator>().modelTransform).gameObject;
		CharacterModel component = gameObject.GetComponent<CharacterModel>();
		component.itemDisplayRuleSet = itemDisplayRuleSet;
	}

	public static void SetIDRS()
	{
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: 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_003a: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: 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_005a: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_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_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		//IL_009a: Unknown result type (might be due to invalid IL or missing references)
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00da: Unknown result type (might be due to invalid IL or missing references)
		//IL_00df: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0115: Unknown result type (might be due to invalid IL or missing references)
		//IL_011a: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0135: Unknown result type (might be due to invalid IL or missing references)
		//IL_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_0175: 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_017f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0195: Unknown result type (might be due to invalid IL or missing references)
		//IL_019a: Unknown result type (might be due to invalid IL or missing references)
		//IL_019f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b5: 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_01bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01da: Unknown result type (might be due to invalid IL or missing references)
		//IL_01df: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0215: Unknown result type (might be due to invalid IL or missing references)
		//IL_021a: Unknown result type (might be due to invalid IL or missing references)
		//IL_021f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0235: Unknown result type (might be due to invalid IL or missing references)
		//IL_023a: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0255: Unknown result type (might be due to invalid IL or missing references)
		//IL_025a: Unknown result type (might be due to invalid IL or missing references)
		//IL_025f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0275: Unknown result type (might be due to invalid IL or missing references)
		//IL_027a: Unknown result type (might be due to invalid IL or missing references)
		//IL_027f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0295: Unknown result type (might be due to invalid IL or missing references)
		//IL_029a: Unknown result type (might be due to invalid IL or missing references)
		//IL_029f: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02da: Unknown result type (might be due to invalid IL or missing references)
		//IL_02df: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0315: Unknown result type (might be due to invalid IL or missing references)
		//IL_031a: Unknown result type (might be due to invalid IL or missing references)
		//IL_031f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0335: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		//IL_033f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0355: Unknown result type (might be due to invalid IL or missing references)
		//IL_035a: Unknown result type (might be due to invalid IL or missing references)
		//IL_035f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0375: Unknown result type (might be due to invalid IL or missing references)
		//IL_037a: Unknown result type (might be due to invalid IL or missing references)
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0395: Unknown result type (might be due to invalid IL or missing references)
		//IL_039a: Unknown result type (might be due to invalid IL or missing references)
		//IL_039f: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03da: Unknown result type (might be due to invalid IL or missing references)
		//IL_03df: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0415: Unknown result type (might be due to invalid IL or missing references)
		//IL_041a: Unknown result type (might be due to invalid IL or missing references)
		//IL_041f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0435: Unknown result type (might be due to invalid IL or missing references)
		//IL_043a: 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_0455: Unknown result type (might be due to invalid IL or missing references)
		//IL_045a: Unknown result type (might be due to invalid IL or missing references)
		//IL_045f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0475: Unknown result type (might be due to invalid IL or missing references)
		//IL_047a: Unknown result type (might be due to invalid IL or missing references)
		//IL_047f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0495: Unknown result type (might be due to invalid IL or missing references)
		//IL_049a: Unknown result type (might be due to invalid IL or missing references)
		//IL_049f: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_04da: Unknown result type (might be due to invalid IL or missing references)
		//IL_04df: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0509: Unknown result type (might be due to invalid IL or missing references)
		//IL_050e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0513: Unknown result type (might be due to invalid IL or missing references)
		//IL_0529: Unknown result type (might be due to invalid IL or missing references)
		//IL_052e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0533: Unknown result type (might be due to invalid IL or missing references)
		//IL_0549: Unknown result type (might be due to invalid IL or missing references)
		//IL_054e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0553: Unknown result type (might be due to invalid IL or missing references)
		//IL_0569: Unknown result type (might be due to invalid IL or missing references)
		//IL_056e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0573: Unknown result type (might be due to invalid IL or missing references)
		//IL_0589: Unknown result type (might be due to invalid IL or missing references)
		//IL_058e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0593: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0609: Unknown result type (might be due to invalid IL or missing references)
		//IL_060e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0613: Unknown result type (might be due to invalid IL or missing references)
		//IL_0629: Unknown result type (might be due to invalid IL or missing references)
		//IL_062e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0633: Unknown result type (might be due to invalid IL or missing references)
		//IL_0649: Unknown result type (might be due to invalid IL or missing references)
		//IL_064e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0653: Unknown result type (might be due to invalid IL or missing references)
		//IL_0669: Unknown result type (might be due to invalid IL or missing references)
		//IL_066e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0673: Unknown result type (might be due to invalid IL or missing references)
		//IL_0689: Unknown result type (might be due to invalid IL or missing references)
		//IL_068e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0693: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a9: 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_06b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0709: Unknown result type (might be due to invalid IL or missing references)
		//IL_070e: 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_0729: Unknown result type (might be due to invalid IL or missing references)
		//IL_072e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0733: Unknown result type (might be due to invalid IL or missing references)
		//IL_0749: Unknown result type (might be due to invalid IL or missing references)
		//IL_074e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0753: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Unknown result type (might be due to invalid IL or missing references)
		//IL_076e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0773: Unknown result type (might be due to invalid IL or missing references)
		//IL_0789: Unknown result type (might be due to invalid IL or missing references)
		//IL_078e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0793: Unknown result type (might be due to invalid IL or missing references)
		//IL_079d: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_07fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0802: Unknown result type (might be due to invalid IL or missing references)
		//IL_0807: Unknown result type (might be due to invalid IL or missing references)
		//IL_081d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0822: Unknown result type (might be due to invalid IL or missing references)
		//IL_0827: Unknown result type (might be due to invalid IL or missing references)
		//IL_083d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0842: Unknown result type (might be due to invalid IL or missing references)
		//IL_0847: Unknown result type (might be due to invalid IL or missing references)
		//IL_085d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0862: 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_087d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0882: Unknown result type (might be due to invalid IL or missing references)
		//IL_0887: Unknown result type (might be due to invalid IL or missing references)
		//IL_089d: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0902: Unknown result type (might be due to invalid IL or missing references)
		//IL_0907: Unknown result type (might be due to invalid IL or missing references)
		//IL_091d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0922: Unknown result type (might be due to invalid IL or missing references)
		//IL_0927: Unknown result type (might be due to invalid IL or missing references)
		//IL_093d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0942: Unknown result type (might be due to invalid IL or missing references)
		//IL_0947: Unknown result type (might be due to invalid IL or missing references)
		//IL_095d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0962: Unknown result type (might be due to invalid IL or missing references)
		//IL_0967: Unknown result type (might be due to invalid IL or missing references)
		//IL_097d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0982: Unknown result type (might be due to invalid IL or missing references)
		//IL_0987: Unknown result type (might be due to invalid IL or missing references)
		//IL_099d: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e7: 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_0a02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a1d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a22: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a27: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a42: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a47: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a62: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a67: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0abb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0adb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0afb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bb1: 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_0bbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c96: 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_0cb1: 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_0cf1: 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_0cfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ddb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e71: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ebb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0edb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0efb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f25: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f85: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0faa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0faf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fcf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1005: Unknown result type (might be due to invalid IL or missing references)
		//IL_100a: Unknown result type (might be due to invalid IL or missing references)
		//IL_100f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1025: Unknown result type (might be due to invalid IL or missing references)
		//IL_102a: Unknown result type (might be due to invalid IL or missing references)
		//IL_102f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1045: Unknown result type (might be due to invalid IL or missing references)
		//IL_104a: Unknown result type (might be due to invalid IL or missing references)
		//IL_104f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1065: Unknown result type (might be due to invalid IL or missing references)
		//IL_106a: Unknown result type (might be due to invalid IL or missing references)
		//IL_106f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1085: Unknown result type (might be due to invalid IL or missing references)
		//IL_108a: Unknown result type (might be due to invalid IL or missing references)
		//IL_108f: 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_10aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_10af: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_10cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_10e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1105: Unknown result type (might be due to invalid IL or missing references)
		//IL_110a: Unknown result type (might be due to invalid IL or missing references)
		//IL_110f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1125: Unknown result type (might be due to invalid IL or missing references)
		//IL_112a: Unknown result type (might be due to invalid IL or missing references)
		//IL_112f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1145: Unknown result type (might be due to invalid IL or missing references)
		//IL_114a: Unknown result type (might be due to invalid IL or missing references)
		//IL_114f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1165: Unknown result type (might be due to invalid IL or missing references)
		//IL_116a: Unknown result type (might be due to invalid IL or missing references)
		//IL_116f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1185: Unknown result type (might be due to invalid IL or missing references)
		//IL_118a: Unknown result type (might be due to invalid IL or missing references)
		//IL_118f: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_11af: Unknown result type (might be due to invalid IL or missing references)
		//IL_11c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_11cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1205: Unknown result type (might be due to invalid IL or missing references)
		//IL_120a: Unknown result type (might be due to invalid IL or missing references)
		//IL_120f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1225: 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_122f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1245: Unknown result type (might be due to invalid IL or missing references)
		//IL_124a: Unknown result type (might be due to invalid IL or missing references)
		//IL_124f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1265: Unknown result type (might be due to invalid IL or missing references)
		//IL_126a: Unknown result type (might be due to invalid IL or missing references)
		//IL_126f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1285: Unknown result type (might be due to invalid IL or missing references)
		//IL_128a: 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_12a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_12aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_12af: Unknown result type (might be due to invalid IL or missing references)
		//IL_12c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_12cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1305: Unknown result type (might be due to invalid IL or missing references)
		//IL_130a: Unknown result type (might be due to invalid IL or missing references)
		//IL_130f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1325: Unknown result type (might be due to invalid IL or missing references)
		//IL_132a: Unknown result type (might be due to invalid IL or missing references)
		//IL_132f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1345: Unknown result type (might be due to invalid IL or missing references)
		//IL_134a: Unknown result type (might be due to invalid IL or missing references)
		//IL_134f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1365: Unknown result type (might be due to invalid IL or missing references)
		//IL_136a: Unknown result type (might be due to invalid IL or missing references)
		//IL_136f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1385: Unknown result type (might be due to invalid IL or missing references)
		//IL_138a: Unknown result type (might be due to invalid IL or missing references)
		//IL_138f: Unknown result type (might be due to invalid IL or missing references)
		//IL_13a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_13aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_13af: Unknown result type (might be due to invalid IL or missing references)
		//IL_13c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_13ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_13cf: Unknown result type (might be due to invalid IL or missing references)
		itemDisplayRules = new List<KeyAssetRuleGroup>();
		NewIDRS((Object)(object)Items.AlienHead, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ArmorPlate, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ArmorReductionOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.AttackSpeedAndMoveSpeed, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.AttackSpeedOnCrit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.AutoCastEquipment, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Bandolier, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BarrierOnKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BarrierOnOverHeal, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Bear, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BearVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BeetleGland, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Behemoth, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHitAndExplode, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHitVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BonusGoldPackOnKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BossDamageBonus, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.BounceNearby, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ChainLightning, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ChainLightningVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Clover, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.CloverVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritDamage, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritGlasses, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritGlassesVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Crowbar, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Dagger, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.DeathMark, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ElementalRingVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.EnergizedOnEquipmentUse, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.EquipmentMagazine, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.EquipmentMagazineVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExecuteLowHealthElite, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExplodeOnDeath, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExplodeOnDeathVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExtraLife, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExtraLifeVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.FallBoots, "chest", Vector3.zero, Vector3.zero, Vector3.one, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Feather, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.FireRing, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.FireballsOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Firework, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.FlatHealth, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.FragileDamageBonus, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.FreeChest, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.GhostOnKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.GoldOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.GoldOnHurt, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HalfSpeedDoubleHealth, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HeadHunter, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealOnCrit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealWhileSafe, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealingPotion, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Hoof, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.IceRing, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.IgniteOnKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ImmuneToDebuff, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.IncreaseHealing, "chest", Vector3.zero, Vector3.zero, Vector3.one, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Infusion, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.JumpBoost, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.KillEliteFrenzy, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Knurl, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LaserTurbine, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarBadLuck, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarDagger, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarPrimaryReplacement, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarSecondaryReplacement, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarSpecialReplacement, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarTrinket, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarUtilityReplacement, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Medkit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Missile, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.MissileVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.MonstersOnShrineUse, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.MoreMissile, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.MoveSpeedOnKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Mushroom, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.MushroomVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.NearbyDamageBonus, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.NovaOnHeal, "chest", Vector3.zero, Vector3.zero, Vector3.one, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.NovaOnLowHealth, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.OutOfCombatArmor, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ParentEgg, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Pearl, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.PermanentDebuffOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.PersonalShield, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Phasing, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Plant, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.PrimarySkillShuriken, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.RandomDamageZone, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.RandomEquipmentTrigger, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.RegeneratingScrap, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.RepeatHeal, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SecondarySkillMagazine, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Seed, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ShieldOnly, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ShinyPearl, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.ShockNearby, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SiphonOnLowHealth, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SlowOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SlowOnHitVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SprintArmor, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SprintBonus, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SprintOutOfCombat, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.SprintWisp, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Squid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.StickyBomb, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.StrengthenBurn, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.StunChanceOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Syringe, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.TPHealingNova, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.Thorns, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.TitanGoldDuringTP, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.TreasureCache, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.TreasureCacheVoid, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.UseAmbientLevel, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.UtilitySkillMagazine, "chest", Vector3.zero, Vector3.zero, Vector3.one, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.VoidMegaCrabItem, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.WarCryOnMultiKill, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Items.WardOnLevel, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.BFG, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.BossHunter, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.BurnNearby, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Cleanse, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.CommandMissile, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.CrippleWard, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.CritOnUse, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.DeathProjectile, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.DroneBackup, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.FireBallDash, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Fruit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.GainArmor, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Gateway, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.GoldGat, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Jetpack, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.LifestealOnHit, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Lightning, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Meteor, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Molotov, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.MultiShopCard, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.QuestVolatileBattery, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Recycle, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Saw, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Scanner, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.TeamWarCry, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.Tonic, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.LunarPortalOnUse, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixBlue, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixEcho, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixHaunted, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixLunar, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixPoison, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixRed, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		NewIDRS((Object)(object)Equipment.AffixWhite, "chest", Vector3.zero, Vector3.zero, Vector3.one, (LimbFlags)0);
		itemDisplayRuleSet.keyAssetRuleGroups = itemDisplayRules.ToArray();
		itemDisplayRuleSet.GenerateRuntimeValues();
	}

	private static void NewDualIDRS(Object obj, string childName, Vector3 localPos, Vector3 localAngles, Vector3 localScale, string childName2, Vector3 localPos2, Vector3 localAngles2, Vector3 localScale2, LimbFlags flags = 0)
	{
		//IL_0095: 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_00be: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: 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_00c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00da: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ef: 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_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0065: Unknown result type (might be due to invalid IL or missing references)
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0072: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null);
		EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null);
		if ((Object)(object)val != (Object)null)
		{
			itemDisplayRules.Add(new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)val,
				displayRuleGroup = new DisplayRuleGroup
				{
					rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2]
					{
						newDisplayRule(childName, LoadDisplay((Object)(object)val), localPos, localAngles, localScale, flags),
						newDisplayRule(childName2, LoadDisplay((Object)(object)val), localPos2, localAngles2, localScale2, flags)
					}
				}
			});
		}
		else
		{
			itemDisplayRules.Add(new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)val2,
				displayRuleGroup = new DisplayRuleGroup
				{
					rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2]
					{
						newDisplayRule(childName, LoadDisplay((Object)(object)val2), localPos, localAngles, localScale, flags),
						newDisplayRule(childName2, LoadDisplay((Object)(object)val2), localPos2, localAngles2, localScale2, flags)
					}
				}
			});
		}
	}

	internal static ItemDisplayRule newDisplayRule(string childName, GameObject equipDef, Vector3 localPos, Vector3 localAngles, Vector3 localScale, LimbFlags flags)
	{
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: 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_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: 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_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		ItemDisplayRule result = default(ItemDisplayRule);
		result.ruleType = (ItemDisplayRuleType)0;
		result.followerPrefab = equipDef;
		result.childName = childName;
		result.localPos = localPos;
		result.localAngles = localAngles;
		result.localScale = localScale;
		result.limbMask = flags;
		return result;
	}

	private static void NewIDRS(Object obj, string childName, Vector3 localPos, Vector3 localAngles, Vector3 localScale, LimbFlags flags = 0)
	{
		//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00da: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0100: Unknown result type (might be due to invalid IL or missing references)
		//IL_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_0108: Unknown result type (might be due to invalid IL or missing references)
		//IL_010f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: Unknown result type (might be due to invalid IL or missing references)
		//IL_0118: Unknown result type (might be due to invalid IL or missing references)
		//IL_011a: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: Unknown result type (might be due to invalid IL or missing references)
		//IL_012d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0132: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0076: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: 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_0080: 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_0089: 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_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_009a: Unknown result type (might be due to invalid IL or missing references)
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null);
		EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null);
		if ((Object)(object)val != (Object)null)
		{
			itemDisplayRules.Add(new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)val,
				displayRuleGroup = new DisplayRuleGroup
				{
					rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1]
					{
						new ItemDisplayRule
						{
							ruleType = (ItemDisplayRuleType)0,
							followerPrefab = LoadDisplay((Object)(object)val),
							childName = childName,
							localPos = localPos,
							localAngles = localAngles,
							localScale = localScale,
							limbMask = flags
						}
					}
				}
			});
		}
		else
		{
			itemDisplayRules.Add(new KeyAssetRuleGroup
			{
				keyAsset = (Object)(object)val2,
				displayRuleGroup = new DisplayRuleGroup
				{
					rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1]
					{
						new ItemDisplayRule
						{
							ruleType = (ItemDisplayRuleType)0,
							followerPrefab = LoadDisplay((Object)(object)val2),
							childName = childName,
							localPos = localPos,
							localAngles = localAngles,
							localScale = localScale,
							limbMask = flags
						}
					}
				}
			});
		}
	}

	internal static GameObject LoadDisplay(Object obj)
	{
		if (obj != (Object)null)
		{
			ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null);
			EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null);
			if ((Object)(object)val != (Object)null && itemDisplayPrefabs.ContainsKey((Object)(object)val) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[(Object)(object)val]))
			{
				return itemDisplayPrefabs[(Object)(object)val];
			}
			if ((Object)(object)val2 != (Object)null && itemDisplayPrefabs.ContainsKey((Object)(object)val2) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[(Object)(object)val2]))
			{
				return itemDisplayPrefabs[(Object)(object)val2];
			}
		}
		return null;
	}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.Dragonyck.Volibear", "Volibear", "1.0.0")]
[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class MainPlugin : BaseUnityPlugin
{
	public const string MODUID = "com.Dragonyck.Volibear";

	public const string MODNAME = "Volibear";

	public const string VERSION = "1.0.0";

	public const string SURVIVORNAME = "Volibear";

	public const string SURVIVORNAMEKEY = "VOLIBEAR";

	public static GameObject characterPrefab;

	public static readonly Color characterColor = Color32.op_Implicit(new Color32((byte)99, (byte)219, (byte)231, byte.MaxValue));

	private void Awake()
	{
		Assets.PopulateAssets();
		Prefabs.CreatePrefabs();
		CreatePrefab();
		RegisterStates();
		RegisterCharacter();
		Hook.Hooks();
	}

	internal static void CreatePrefab()
	{
		//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_012c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0132: Expected O, but got Unknown
		//IL_015d: Unknown result type (might be due to invalid IL or missing references)
		//IL_016e: Unknown result type (might be due to invalid IL or missing references)
		//IL_017f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		//IL_0199: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a0: Expected O, but got Unknown
		//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01db: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0210: Unknown result type (might be due to invalid IL or missing references)
		//IL_021d: Unknown result type (might be due to invalid IL or missing references)
		//IL_022a: Unknown result type (might be due to invalid IL or missing references)
		//IL_029c: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_0410: Unknown result type (might be due to invalid IL or missing references)
		//IL_0415: Unknown result type (might be due to invalid IL or missing references)
		//IL_0479: Unknown result type (might be due to invalid IL or missing references)
		//IL_047e: Unknown result type (might be due to invalid IL or missing references)
		//IL_049c: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0580: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_070b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0727: Unknown result type (might be due to invalid IL or missing references)
		//IL_0743: Unknown result type (might be due to invalid IL or missing references)
		//IL_075f: Unknown result type (might be due to invalid IL or missing references)
		//IL_077b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0797: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
		//IL