Decompiled source of Builder v1.0.8

Builder.dll

Decompiled 7 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using BepInEx.Configuration;
using EntityStates;
using EntityStates.ClayBruiser.Weapon;
using EntityStates.Commando;
using EntityStates.Huntress;
using EntityStates.Merc;
using JetBrains.Annotations;
using On.RoR2;
using On.RoR2.UI;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.Achievements;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using TMPro;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.UI;

[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("Builder")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyProduct("Builder")]
[assembly: AssemblyTitle("Builder")]
[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 Builder;

public static class Achievements
{
	[RegisterAchievement("BUILDER_DASH", "ACHIEVEMENT_BUILDER_DASH_UNLOCKABLE_ID", null, null)]
	public class DashUnlockable : BaseAchievement
	{
		private bool cast = false;

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

		public override void OnBodyRequirementMet()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected O, but got Unknown
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			((BaseAchievement)this).OnBodyRequirementMet();
			BuildStructure.cast.AddListener(new UnityAction(Cast));
			FinishedState.OnEnter += new hook_OnEnter(FinishedState_OnEnter);
			Stage.onStageStartGlobal += Stage_onStageStartGlobal;
		}

		private void Stage_onStageStartGlobal(Stage obj)
		{
			cast = false;
		}

		private void Cast()
		{
			cast = true;
		}

		private void FinishedState_OnEnter(orig_OnEnter orig, BaseState self)
		{
			orig.Invoke(self);
			if (!cast)
			{
				((BaseAchievement)this).Grant();
			}
		}

		public override void OnBodyRequirementBroken()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Expected O, but got Unknown
			((BaseAchievement)this).OnBodyRequirementBroken();
			Stage.onStageStartGlobal -= Stage_onStageStartGlobal;
			FinishedState.OnEnter -= new hook_OnEnter(FinishedState_OnEnter);
			BuildStructure.cast.RemoveListener(new UnityAction(Cast));
		}
	}

	internal static UnlockableDef dashUnlock;

	public static void RegisterUnlockables()
	{
		dashUnlock = NewUnlockable<DashUnlockable>("DASH", Assets.MainAssetBundle.LoadAsset<Sprite>("dash"), "BUILDER: Easily Spooked", "As Builder, complete a stage without building a structure.");
	}

	private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement
	{
		string text = "ACHIEVEMENT_BUILDER_";
		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 void PopulateAssets()
	{
		if ((Object)(object)MainAssetBundle == (Object)null)
		{
			using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Builder.builderassets"))
			{
				MainAssetBundle = AssetBundle.LoadFromStream(stream);
			}
		}
	}
}
internal class BuilderBehaviour : NetworkBehaviour
{
	public struct PlacementInfo
	{
		public bool ok;

		public Vector3 position;

		public Quaternion rotation;
	}

	public enum Structure
	{
		containerTower,
		wall,
		radarTower,
		bunker
	}

	public int secondaryIndex = 0;

	private CharacterBody body;

	private SkillLocator skillLocator;

	public float test = 12f;

	public BlueprintController blueprint;

	public PlacementInfo currentPlacementInfo;

	private GameObject materialBar;

	private TextMeshProUGUI currentMaterial;

	private TextMeshProUGUI fullMaterial;

	private Image barImage;

	[SerializeField]
	[SyncVar]
	private float materialValue = 0f;

	private float maxMaterialValue = 1000f;

	private bool barSetupDone;

	private static readonly StringBuilder sharedStringBuilder;

	public bool canExecute = true;

	public ChildLocator structureLocator;

	private GameObject structureSkillBarRoot;

	private GameObject structureSkill1;

	private GameObject structureSkill2;

	private GameObject structureSkill3;

	private GameObject structureSkill4;

	private SkillIcon structureSkillIcon1;

	private SkillIcon structureSkillIcon2;

	private SkillIcon structureSkillIcon3;

	private SkillIcon structureSkillIcon4;

	private Transform structureModel1;

	private Transform structureModel2;

	private Transform structureModel3;

	private Transform structureModel4;

	private int structure1Cost = ((!MainPlugin.cheatMode.Value) ? 25 : 0);

	private int structure2Cost = ((!MainPlugin.cheatMode.Value) ? 50 : 0);

	private int structure3Cost = ((!MainPlugin.cheatMode.Value) ? 300 : 0);

	private int structure4Cost = ((!MainPlugin.cheatMode.Value) ? 600 : 0);

	public Color disabled = new Color(0.6f, 0f, 0f);

	private Projector projector;

	public Structure structure = Structure.containerTower;

	private static int kCmdCmdContainerInteraction;

	private static int kRpcRpcContainerInteraction;

	private static int kCmdCmdUpdateStructureUI;

	private static int kRpcRpcUpdateStructureUI;

	private static int kCmdCmdRotateStructure;

	private static int kRpcRpcRotateStructure;

	internal bool maxMaterial
	{
		get
		{
			if (Mathf.RoundToInt(materialValue * 100f) >= 100)
			{
				return true;
			}
			return false;
		}
	}

	public float currentMaterialValue => materialValue;

	public float NetworkmaterialValue
	{
		get
		{
			return materialValue;
		}
		[param: In]
		set
		{
			((NetworkBehaviour)this).SetSyncVar<float>(value, ref materialValue, 1u);
		}
	}

	[Server]
	public void StructureCost()
	{
		if (!NetworkServer.active)
		{
			Debug.LogWarning((object)"[Server] function 'System.Void Builder.BuilderBehaviour::StructureCost()' called on client");
			return;
		}
		switch (structure)
		{
		case Structure.containerTower:
			RemoveMaterial(structure1Cost);
			break;
		case Structure.wall:
			RemoveMaterial(structure2Cost);
			break;
		case Structure.radarTower:
			RemoveMaterial(structure3Cost);
			break;
		case Structure.bunker:
			RemoveMaterial(structure4Cost);
			break;
		}
	}

	[Server]
	public void AddMaterial(float value)
	{
		if (!NetworkServer.active)
		{
			Debug.LogWarning((object)"[Server] function 'System.Void Builder.BuilderBehaviour::AddMaterial(System.Single)' called on client");
		}
		else
		{
			NetworkmaterialValue = materialValue + value;
		}
	}

	[Server]
	public void RemoveMaterial(float value)
	{
		if (!NetworkServer.active)
		{
			Debug.LogWarning((object)"[Server] function 'System.Void Builder.BuilderBehaviour::RemoveMaterial(System.Single)' called on client");
		}
		else
		{
			NetworkmaterialValue = materialValue - value;
		}
	}

	public void InstantiateBlueprint()
	{
		blueprint = Object.Instantiate<GameObject>(Prefabs.structureBlueprintPrefab).GetComponent<BlueprintController>();
		projector = ((Component)blueprint).GetComponentInChildren<Projector>();
		if (Object.op_Implicit((Object)(object)blueprint))
		{
			blueprint.ok = true;
			structureLocator = ((Component)blueprint).GetComponentInChildren<ChildLocator>();
			if (Object.op_Implicit((Object)(object)structureLocator))
			{
				structureModel1 = structureLocator.FindChild("TowerContainer");
				structureModel2 = structureLocator.FindChild("WallContainer");
				structureModel3 = structureLocator.FindChild("Tower");
				structureModel4 = structureLocator.FindChild("InteractableContainer");
			}
			UpdateStructureModel();
		}
	}

	[Command]
	public void CmdContainerInteraction(int index)
	{
		CallRpcContainerInteraction(index);
	}

	[ClientRpc]
	public void RpcContainerInteraction(int index)
	{
		ContainerInteraction containerInteraction = InstanceTracker.GetInstancesList<ContainerInteraction>()[index];
		if (Object.op_Implicit((Object)(object)containerInteraction))
		{
			containerInteraction.OnInteraction();
		}
	}

	private void OnEnable()
	{
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Expected O, but got Unknown
		InstanceTracker.Add<BuilderBehaviour>(this);
		body = ((Component)this).GetComponent<CharacterBody>();
		skillLocator = body.skillLocator;
		HUD.Update += new hook_Update(HUD_Update);
	}

	private void UpdateStructureUI()
	{
		if (Object.op_Implicit((Object)(object)structureSkillIcon1) && Object.op_Implicit((Object)(object)structureSkillIcon2) && Object.op_Implicit((Object)(object)structureSkillIcon3) && Object.op_Implicit((Object)(object)structureSkillIcon4))
		{
			switch (structure)
			{
			case Structure.containerTower:
				structureSkillIcon1.isReadyPanelObject.SetActive(true);
				structureSkillIcon2.isReadyPanelObject.SetActive(false);
				structureSkillIcon3.isReadyPanelObject.SetActive(false);
				structureSkillIcon4.isReadyPanelObject.SetActive(false);
				break;
			case Structure.wall:
				structureSkillIcon1.isReadyPanelObject.SetActive(false);
				structureSkillIcon2.isReadyPanelObject.SetActive(true);
				structureSkillIcon3.isReadyPanelObject.SetActive(false);
				structureSkillIcon4.isReadyPanelObject.SetActive(false);
				break;
			case Structure.radarTower:
				structureSkillIcon1.isReadyPanelObject.SetActive(false);
				structureSkillIcon2.isReadyPanelObject.SetActive(false);
				structureSkillIcon3.isReadyPanelObject.SetActive(true);
				structureSkillIcon4.isReadyPanelObject.SetActive(false);
				break;
			case Structure.bunker:
				structureSkillIcon1.isReadyPanelObject.SetActive(false);
				structureSkillIcon2.isReadyPanelObject.SetActive(false);
				structureSkillIcon3.isReadyPanelObject.SetActive(false);
				structureSkillIcon4.isReadyPanelObject.SetActive(true);
				break;
			}
		}
	}

	[Command]
	public void CmdUpdateStructureUI(Structure struc)
	{
		CallRpcUpdateStructureUI(struc);
	}

	[ClientRpc]
	public void RpcUpdateStructureUI(Structure struc)
	{
		structure = struc;
		UpdateStructureUI();
	}

	private void UpdateStructureModel()
	{
		//IL_0151: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)structureModel1) && Object.op_Implicit((Object)(object)structureModel2) && Object.op_Implicit((Object)(object)structureModel3) && Object.op_Implicit((Object)(object)structureModel4) && Object.op_Implicit((Object)(object)projector))
		{
			switch (structure)
			{
			case Structure.containerTower:
				((Component)structureModel1).gameObject.SetActive(true);
				((Component)structureModel2).gameObject.SetActive(false);
				((Component)structureModel3).gameObject.SetActive(false);
				((Component)structureModel4).gameObject.SetActive(false);
				projector.orthographicSize = 8f;
				break;
			case Structure.wall:
				((Component)structureModel1).gameObject.SetActive(false);
				((Component)structureModel2).gameObject.SetActive(true);
				((Component)structureModel3).gameObject.SetActive(false);
				((Component)structureModel4).gameObject.SetActive(false);
				projector.orthographicSize = 5f;
				projector.aspectRatio = 2.5f;
				((Component)projector).transform.rotation = Quaternion.Euler(90f, 90f, 0f);
				break;
			case Structure.radarTower:
				((Component)structureModel1).gameObject.SetActive(false);
				((Component)structureModel2).gameObject.SetActive(false);
				((Component)structureModel3).gameObject.SetActive(true);
				((Component)structureModel4).gameObject.SetActive(false);
				projector.orthographicSize = 3f;
				break;
			case Structure.bunker:
				((Component)structureModel1).gameObject.SetActive(false);
				((Component)structureModel2).gameObject.SetActive(false);
				((Component)structureModel3).gameObject.SetActive(false);
				((Component)structureModel4).gameObject.SetActive(true);
				projector.orthographicSize = 13f;
				break;
			}
		}
	}

	[Command]
	public void CmdRotateStructure(float y)
	{
		CallRpcRotateStructure(y);
	}

	[ClientRpc]
	public void RpcRotateStructure(float y)
	{
		RotateStructure(y);
	}

	private void RotateStructure(float y)
	{
		//IL_0027: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)structureLocator))
		{
			((Component)structureLocator).transform.Rotate(new Vector3(0f, y, 0f), (Space)1);
		}
	}

	private void Update()
	{
		//IL_0142: Unknown result type (might be due to invalid IL or missing references)
		if (!Object.op_Implicit((Object)(object)body) || !body.hasEffectiveAuthority)
		{
			return;
		}
		if (Object.op_Implicit((Object)(object)structureLocator))
		{
			if (Input.GetAxis("Mouse ScrollWheel") > 0f)
			{
				CallCmdRotateStructure(15f);
			}
			else if (Input.GetAxis("Mouse ScrollWheel") < 0f)
			{
				CallCmdRotateStructure(-15f);
			}
		}
		else if (Input.GetAxis("Mouse ScrollWheel") > 0f)
		{
			if (structure != 0)
			{
				structure--;
				CallCmdUpdateStructureUI(structure);
			}
		}
		else if (Input.GetAxis("Mouse ScrollWheel") < 0f && structure != Structure.bunker)
		{
			structure++;
			CallCmdUpdateStructureUI(structure);
		}
		if (!Object.op_Implicit((Object)(object)skillLocator) || !Object.op_Implicit((Object)(object)skillLocator.secondary) || !Input.GetKeyDown(MainPlugin.secondarySwitchKey.Value) || !(skillLocator.secondary.skillNameToken == "BUILDER_M2"))
		{
			return;
		}
		if (secondaryIndex == 2)
		{
			secondaryIndex = 0;
		}
		else
		{
			secondaryIndex++;
		}
		if (Object.op_Implicit((Object)(object)skillLocator.secondary.skillDef))
		{
			switch (secondaryIndex)
			{
			case 0:
				skillLocator.secondary.skillDef.icon = Prefabs.grenadeIcon1;
				break;
			case 1:
				skillLocator.secondary.skillDef.icon = Prefabs.grenadeIcon2;
				break;
			case 2:
				skillLocator.secondary.skillDef.icon = Prefabs.grenadeIcon3;
				break;
			}
		}
	}

	private void HUD_Update(orig_Update orig, HUD self)
	{
		//IL_011c: 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_0103: 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_0188: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_016f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0331: Unknown result type (might be due to invalid IL or missing references)
		//IL_033b: Expected O, but got Unknown
		//IL_0372: Unknown result type (might be due to invalid IL or missing references)
		//IL_0388: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fa: 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_0217: Unknown result type (might be due to invalid IL or missing references)
		//IL_0260: Unknown result type (might be due to invalid IL or missing references)
		//IL_0266: Unknown result type (might be due to invalid IL or missing references)
		//IL_0247: Unknown result type (might be due to invalid IL or missing references)
		//IL_0283: Unknown result type (might be due to invalid IL or missing references)
		//IL_0739: Unknown result type (might be due to invalid IL or missing references)
		orig.Invoke(self);
		if (NetworkServer.active)
		{
			NetworkmaterialValue = Mathf.Clamp(materialValue, 0f, maxMaterialValue);
		}
		if (Object.op_Implicit((Object)(object)barImage))
		{
			barImage.fillAmount = materialValue / maxMaterialValue;
		}
		if (Object.op_Implicit((Object)(object)currentMaterial) && ((TMP_Text)currentMaterial).text != materialValue.ToString())
		{
			((TMP_Text)currentMaterial).text = materialValue.ToString();
		}
		if (Object.op_Implicit((Object)(object)structureSkillIcon1) && Object.op_Implicit((Object)(object)structureSkillIcon2) && Object.op_Implicit((Object)(object)structureSkillIcon3) && Object.op_Implicit((Object)(object)structureSkillIcon4))
		{
			if (materialValue >= (float)structure1Cost)
			{
				((Graphic)structureSkillIcon1.iconImage).color = Color.white;
			}
			else if (((Graphic)structureSkillIcon1.iconImage).color != disabled)
			{
				((Graphic)structureSkillIcon1.iconImage).color = disabled;
			}
			if (materialValue >= (float)structure2Cost)
			{
				((Graphic)structureSkillIcon2.iconImage).color = Color.white;
			}
			else if (((Graphic)structureSkillIcon2.iconImage).color != disabled)
			{
				((Graphic)structureSkillIcon2.iconImage).color = disabled;
			}
			if (materialValue >= (float)structure3Cost)
			{
				((Graphic)structureSkillIcon3.iconImage).color = Color.white;
			}
			else if (((Graphic)structureSkillIcon3.iconImage).color != disabled)
			{
				((Graphic)structureSkillIcon3.iconImage).color = disabled;
			}
			if (materialValue >= (float)structure4Cost)
			{
				((Graphic)structureSkillIcon4.iconImage).color = Color.white;
			}
			else if (((Graphic)structureSkillIcon4.iconImage).color != disabled)
			{
				((Graphic)structureSkillIcon4.iconImage).color = disabled;
			}
		}
		if (!Object.op_Implicit((Object)(object)self.targetBodyObject) || !((Object)(object)self.targetBodyObject == (Object)(object)((Component)this).gameObject) || !Object.op_Implicit((Object)(object)self.mainUIPanel) || !Util.HasEffectiveAuthority(self.targetBodyObject.GetComponent<NetworkIdentity>()))
		{
			return;
		}
		if (Object.op_Implicit((Object)(object)self.skillIcons[3]))
		{
			GameObject gameObject = ((Component)self.skillIcons[3]).gameObject;
			if (!Object.op_Implicit((Object)(object)structureSkillBarRoot))
			{
				structureSkillBarRoot = new GameObject("StructureUIContainer", new Type[1] { typeof(RectTransform) });
				structureSkillBarRoot.transform.SetParent(gameObject.transform.parent);
				structureSkillBarRoot.transform.localPosition = new Vector3(-140f, 130f, 0f);
				structureSkillBarRoot.transform.localScale = Vector3.one;
				structureSkillBarRoot.transform.localRotation = Quaternion.Euler(1.398054f, 1.024528f, 1.6680231f);
				structureSkillBarRoot.GetComponent<RectTransform>().sizeDelta = new Vector2(500f, 0f);
				structureSkillBarRoot.AddComponent<CanvasRenderer>();
				HorizontalLayoutGroup val = structureSkillBarRoot.AddComponent<HorizontalLayoutGroup>();
				((HorizontalOrVerticalLayoutGroup)val).spacing = -120f;
				structureSkill1 = CreateNewContainer("Structure1Container", gameObject, structure1Cost, out structureSkillIcon1);
				structureSkillIcon1.iconImage.sprite = Prefabs.structureIcon1;
				structureSkill2 = CreateNewContainer("Structure2Container", gameObject, structure2Cost, out structureSkillIcon2);
				structureSkillIcon2.iconImage.sprite = Prefabs.structureIcon2;
				structureSkill3 = CreateNewContainer("Structure3Container", gameObject, structure3Cost, out structureSkillIcon3);
				structureSkillIcon3.iconImage.sprite = Prefabs.structureIcon3;
				structureSkill4 = CreateNewContainer("Structure4Container", gameObject, structure4Cost, out structureSkillIcon4);
				structureSkillIcon4.iconImage.sprite = Prefabs.structureIcon4;
				UpdateStructureUI();
			}
		}
		if (Object.op_Implicit((Object)(object)materialBar))
		{
			return;
		}
		HealthBar componentInChildren = self.mainUIPanel.GetComponentInChildren<HealthBar>();
		if (!Object.op_Implicit((Object)(object)componentInChildren) || !Object.op_Implicit((Object)(object)((Component)componentInChildren).gameObject))
		{
			return;
		}
		Image[] componentsInChildren = ((Component)componentInChildren).gameObject.GetComponentsInChildren<Image>();
		if (!barSetupDone)
		{
			for (int i = 0; i < componentsInChildren.Length; i++)
			{
				if (componentsInChildren.Length == 5)
				{
					barSetupDone = true;
				}
			}
		}
		if (!barSetupDone)
		{
			return;
		}
		materialBar = Object.Instantiate<GameObject>(((Component)componentInChildren).gameObject, ((Component)componentInChildren).gameObject.transform.parent);
		((Object)materialBar).name = "MaterialBar";
		Object.Destroy((Object)(object)materialBar.GetComponent<HealthBar>());
		TextMeshProUGUI[] componentsInChildren2 = materialBar.GetComponentsInChildren<TextMeshProUGUI>();
		for (int j = 0; j < componentsInChildren2.Length; j++)
		{
			if (Object.op_Implicit((Object)(object)componentsInChildren2[j]) && Object.op_Implicit((Object)(object)((Component)componentsInChildren2[j]).gameObject))
			{
				if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "CurrentHealthText")
				{
					currentMaterial = componentsInChildren2[j];
					((TMP_Text)currentMaterial).text = "0";
				}
				if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "FullHealthText")
				{
					fullMaterial = componentsInChildren2[j];
					((TMP_Text)fullMaterial).text = maxMaterialValue.ToString();
				}
			}
		}
		Image[] componentsInChildren3 = materialBar.GetComponentsInChildren<Image>();
		for (int k = 0; k < componentsInChildren3.Length; k++)
		{
			if (Object.op_Implicit((Object)(object)componentsInChildren3[k]) && Object.op_Implicit((Object)(object)((Component)componentsInChildren3[k]).gameObject))
			{
				if ((Object)(object)componentsInChildren3[k] != (Object)(object)componentsInChildren3[3] && (Object)(object)componentsInChildren3[k] != (Object)(object)componentsInChildren3[0])
				{
					Object.Destroy((Object)(object)((Component)componentsInChildren3[k]).gameObject);
				}
				if ((Object)(object)componentsInChildren3[k] == (Object)(object)componentsInChildren3[3])
				{
					barImage = componentsInChildren3[k];
					((Graphic)barImage).color = Color.gray;
					barImage.type = (Type)3;
					barImage.fillMethod = (FillMethod)0;
					barImage.fillCenter = false;
				}
			}
		}
	}

	private void OnDisable()
	{
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Expected O, but got Unknown
		InstanceTracker.Remove<BuilderBehaviour>(this);
		HUD.Update -= new hook_Update(HUD_Update);
		if (Object.op_Implicit((Object)(object)materialBar))
		{
			Object.Destroy((Object)(object)materialBar);
		}
		if (Object.op_Implicit((Object)(object)structureSkillBarRoot))
		{
			Object.Destroy((Object)(object)structureSkillBarRoot);
		}
		if (Object.op_Implicit((Object)(object)blueprint))
		{
			Object.Destroy((Object)(object)((Component)blueprint).gameObject);
		}
	}

	private GameObject CreateNewContainer(string name, GameObject source, int cost, out SkillIcon skillIcon)
	{
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Expected O, but got Unknown
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		GameObject val = new GameObject(name, new Type[1] { typeof(RectTransform) });
		val.transform.localPosition = Vector3.zero;
		val.transform.localScale = Vector3.one;
		val.transform.SetParent(structureSkillBarRoot.transform);
		val.AddComponent<LayoutElement>();
		val.AddComponent<idkeither>();
		GameObject val2 = Object.Instantiate<GameObject>(source, val.transform);
		((Object)val2).name = name.Replace("Container", "Skill");
		SkillIcon component = val2.GetComponent<SkillIcon>();
		((Behaviour)component).enabled = false;
		Object.Destroy((Object)(object)((Component)component.cooldownText).gameObject);
		Object.Destroy((Object)(object)((Component)component.cooldownRemapPanel).gameObject);
		Object.Destroy((Object)(object)((Component)((Component)component).transform.Find("SkillBackgroundPanel")).gameObject);
		((TMP_Text)component.stockText).text = cost.ToString();
		component.isReadyPanelObject.SetActive(false);
		skillIcon = component;
		return val;
	}

	static BuilderBehaviour()
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Expected O, but got Unknown
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Expected O, but got Unknown
		//IL_007e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0088: Expected O, but got Unknown
		//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Expected O, but got Unknown
		//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Expected O, but got Unknown
		//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0106: Expected O, but got Unknown
		sharedStringBuilder = new StringBuilder();
		kCmdCmdContainerInteraction = -866745165;
		NetworkBehaviour.RegisterCommandDelegate(typeof(BuilderBehaviour), kCmdCmdContainerInteraction, new CmdDelegate(InvokeCmdCmdContainerInteraction));
		kCmdCmdUpdateStructureUI = 508101660;
		NetworkBehaviour.RegisterCommandDelegate(typeof(BuilderBehaviour), kCmdCmdUpdateStructureUI, new CmdDelegate(InvokeCmdCmdUpdateStructureUI));
		kCmdCmdRotateStructure = 1653218102;
		NetworkBehaviour.RegisterCommandDelegate(typeof(BuilderBehaviour), kCmdCmdRotateStructure, new CmdDelegate(InvokeCmdCmdRotateStructure));
		kRpcRpcContainerInteraction = -1991089783;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BuilderBehaviour), kRpcRpcContainerInteraction, new CmdDelegate(InvokeRpcRpcContainerInteraction));
		kRpcRpcUpdateStructureUI = 1901610758;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BuilderBehaviour), kRpcRpcUpdateStructureUI, new CmdDelegate(InvokeRpcRpcUpdateStructureUI));
		kRpcRpcRotateStructure = 394334368;
		NetworkBehaviour.RegisterRpcDelegate(typeof(BuilderBehaviour), kRpcRpcRotateStructure, new CmdDelegate(InvokeRpcRpcRotateStructure));
		NetworkCRC.RegisterBehaviour("BuilderBehaviour", 0);
	}

	private void UNetVersion()
	{
	}

	protected static void InvokeCmdCmdContainerInteraction(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"Command CmdContainerInteraction called on client.");
		}
		else
		{
			((BuilderBehaviour)(object)obj).CmdContainerInteraction((int)reader.ReadPackedUInt32());
		}
	}

	protected static void InvokeCmdCmdUpdateStructureUI(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"Command CmdUpdateStructureUI called on client.");
		}
		else
		{
			((BuilderBehaviour)(object)obj).CmdUpdateStructureUI((Structure)reader.ReadInt32());
		}
	}

	protected static void InvokeCmdCmdRotateStructure(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkServer.active)
		{
			Debug.LogError((object)"Command CmdRotateStructure called on client.");
		}
		else
		{
			((BuilderBehaviour)(object)obj).CmdRotateStructure(reader.ReadSingle());
		}
	}

	public void CallCmdContainerInteraction(int index)
	{
		//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)
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"Command function CmdContainerInteraction called on server.");
			return;
		}
		if (((NetworkBehaviour)this).isServer)
		{
			CmdContainerInteraction(index);
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)5);
		val.WritePackedUInt32((uint)kCmdCmdContainerInteraction);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.WritePackedUInt32((uint)index);
		((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdContainerInteraction");
	}

	public void CallCmdUpdateStructureUI(Structure struc)
	{
		//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)
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"Command function CmdUpdateStructureUI called on server.");
			return;
		}
		if (((NetworkBehaviour)this).isServer)
		{
			CmdUpdateStructureUI(struc);
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)5);
		val.WritePackedUInt32((uint)kCmdCmdUpdateStructureUI);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write((int)struc);
		((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdUpdateStructureUI");
	}

	public void CallCmdRotateStructure(float y)
	{
		//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)
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"Command function CmdRotateStructure called on server.");
			return;
		}
		if (((NetworkBehaviour)this).isServer)
		{
			CmdRotateStructure(y);
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)5);
		val.WritePackedUInt32((uint)kCmdCmdRotateStructure);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write(y);
		((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdRotateStructure");
	}

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

	protected static void InvokeRpcRpcUpdateStructureUI(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"RPC RpcUpdateStructureUI called on server.");
		}
		else
		{
			((BuilderBehaviour)(object)obj).RpcUpdateStructureUI((Structure)reader.ReadInt32());
		}
	}

	protected static void InvokeRpcRpcRotateStructure(NetworkBehaviour obj, NetworkReader reader)
	{
		if (!NetworkClient.active)
		{
			Debug.LogError((object)"RPC RpcRotateStructure called on server.");
		}
		else
		{
			((BuilderBehaviour)(object)obj).RpcRotateStructure(reader.ReadSingle());
		}
	}

	public void CallRpcContainerInteraction(int index)
	{
		//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 RpcContainerInteraction called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcContainerInteraction);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.WritePackedUInt32((uint)index);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcContainerInteraction");
	}

	public void CallRpcUpdateStructureUI(Structure struc)
	{
		//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 RpcUpdateStructureUI called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcUpdateStructureUI);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write((int)struc);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcUpdateStructureUI");
	}

	public void CallRpcRotateStructure(float y)
	{
		//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 RpcRotateStructure called on client.");
			return;
		}
		NetworkWriter val = new NetworkWriter();
		val.Write((short)0);
		val.Write((short)2);
		val.WritePackedUInt32((uint)kRpcRpcRotateStructure);
		val.Write(((Component)this).GetComponent<NetworkIdentity>().netId);
		val.Write(y);
		((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcRotateStructure");
	}

	public override bool OnSerialize(NetworkWriter writer, bool forceAll)
	{
		if (forceAll)
		{
			writer.Write(materialValue);
			return true;
		}
		bool flag = false;
		if ((((NetworkBehaviour)this).syncVarDirtyBits & (true ? 1u : 0u)) != 0)
		{
			if (!flag)
			{
				writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits);
				flag = true;
			}
			writer.Write(materialValue);
		}
		if (!flag)
		{
			writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits);
		}
		return flag;
	}

	public override void OnDeserialize(NetworkReader reader, bool initialState)
	{
		if (initialState)
		{
			materialValue = reader.ReadSingle();
			return;
		}
		int num = (int)reader.ReadPackedUInt32();
		if (((uint)num & (true ? 1u : 0u)) != 0)
		{
			materialValue = reader.ReadSingle();
		}
	}
}
internal class idkeither : MonoBehaviour
{
	private void OnEnable()
	{
		//IL_0007: 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_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		if (((Component)this).transform.localScale != Vector3.one)
		{
			((Component)this).transform.localScale = Vector3.one;
		}
		if (((Component)this).transform.localPosition != Vector3.zero)
		{
			((Component)this).transform.localPosition = Vector3.zero;
		}
	}
}
internal class BunkerBuffBehaviour : MonoBehaviour
{
	public TeamIndex team;

	private float stopwatch;

	public void OnTriggerStay(Collider collider)
	{
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active)
		{
			return;
		}
		CharacterBody component = ((Component)collider).GetComponent<CharacterBody>();
		if (!Object.op_Implicit((Object)(object)component) || !component.isPlayerControlled || component.teamComponent.teamIndex != team)
		{
			return;
		}
		stopwatch += Time.fixedDeltaTime;
		if (stopwatch >= 0.5f)
		{
			stopwatch = 0f;
			if (component.timedBuffs.Find((TimedBuff x) => x.buffIndex == Buffs.Immune.buffIndex) == null)
			{
				component.AddTimedBuff(Buffs.Immune, 0.5f);
			}
		}
	}
}
internal class CleanseBehaviour : MonoBehaviour
{
	private float stopwatch;

	public float radius = 10f;

	private TeamFilter teamFilter;

	private void OnEnable()
	{
		teamFilter = ((Component)this).GetComponent<TeamFilter>();
	}

	private void FixedUpdate()
	{
		//IL_0045: 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_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_007a: Unknown result type (might be due to invalid IL or missing references)
		stopwatch += Time.fixedDeltaTime;
		if (!(stopwatch >= 0.5f) || !NetworkServer.active)
		{
			return;
		}
		float num = radius * radius;
		foreach (TeamComponent teamMember in TeamComponent.GetTeamMembers(teamFilter.teamIndex))
		{
			Vector3 val = ((Component)teamMember).transform.position - ((Component)this).transform.position;
			if (((Vector3)(ref val)).sqrMagnitude <= num)
			{
				CharacterBody component = ((Component)teamMember).GetComponent<CharacterBody>();
				if (Object.op_Implicit((Object)(object)component))
				{
					Util.CleanseBody(component, true, false, true, true, true, false);
					component.AddTimedBuff(Prefabs.fogImmunity, 0.5f);
				}
			}
		}
	}
}
internal class ContainerInteraction : NetworkBehaviour, IInteractable, IDisplayNameProvider
{
	public bool isOpen = false;

	public Animator animator;

	private void OnEnable()
	{
		animator = ((Component)this).GetComponentInChildren<Animator>();
		InstanceTracker.Add<ContainerInteraction>(this);
	}

	private void OnDisable()
	{
		InstanceTracker.Remove<ContainerInteraction>(this);
	}

	public string GetContextString([NotNull] Interactor activator)
	{
		if (isOpen)
		{
			return "Close";
		}
		return "Open";
	}

	public void OnInteractionBegin([NotNull] Interactor activator)
	{
	}

	public void OnInteraction()
	{
		isOpen = !isOpen;
		if (Object.op_Implicit((Object)(object)animator))
		{
			animator.SetBool("open", isOpen);
		}
	}

	public Interactability GetInteractability([NotNull] Interactor activator)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0005: Unknown result type (might be due to invalid IL or missing references)
		return (Interactability)2;
	}

	public bool ShouldIgnoreSpherecastForInteractibility([NotNull] Interactor activator)
	{
		return false;
	}

	public bool ShouldShowOnScanner()
	{
		return false;
	}

	public string GetDisplayName()
	{
		return "Container Door";
	}

	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 DisplayBehaviour : MonoBehaviour
{
	private BodyIndex bodyIndex;

	private MeshRenderer renderer;

	private MeshFilter meshFilter;

	private void OnEnable()
	{
		//IL_0007: 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)
		bodyIndex = BodyCatalog.FindBodyIndex("BuilderBody");
		LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
		if (firstLocalUser != null && firstLocalUser.userProfile != null && Object.op_Implicit((Object)(object)firstLocalUser.currentNetworkUser))
		{
			firstLocalUser.userProfile.onLoadoutChanged += UserProfile_onLoadoutChanged;
		}
		renderer = ((Component)((Component)this).GetComponent<ChildLocator>().FindChild("MainWeapon")).GetComponentInChildren<MeshRenderer>();
		meshFilter = ((Component)renderer).GetComponent<MeshFilter>();
		Animator component = ((Component)this).GetComponent<Animator>();
		component.SetBool("isGrounded", true);
		component.Play("Idle");
	}

	private void UserProfile_onLoadoutChanged()
	{
		//IL_0036: Unknown result type (might be due to invalid IL or missing references)
		LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
		if (firstLocalUser != null && firstLocalUser.userProfile != null && Object.op_Implicit((Object)(object)firstLocalUser.currentNetworkUser))
		{
			if (firstLocalUser.userProfile.loadout.bodyLoadoutManager.GetSkillVariant(bodyIndex, 0) == 0)
			{
				((Renderer)renderer).material = Prefabs.shotgunMat;
				meshFilter.mesh = Prefabs.shotgunMesh;
			}
			else
			{
				((Renderer)renderer).material = Prefabs.mp40Mat;
				meshFilter.mesh = Prefabs.mp40Mesh;
			}
		}
	}

	private void OnDisable()
	{
		LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
		if (firstLocalUser != null && firstLocalUser.userProfile != null && Object.op_Implicit((Object)(object)firstLocalUser.currentNetworkUser))
		{
			firstLocalUser.userProfile.onLoadoutChanged -= UserProfile_onLoadoutChanged;
		}
	}
}
internal class ModelBehaviour : MonoBehaviour
{
	private MeshRenderer renderer;

	private MeshFilter meshFilter;

	private BodyIndex bodyIndex;

	private void OnEnable()
	{
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		renderer = ((Component)((Component)this).GetComponent<ChildLocator>().FindChild("MainWeapon")).GetComponentInChildren<MeshRenderer>();
		meshFilter = ((Component)renderer).GetComponent<MeshFilter>();
		bodyIndex = BodyCatalog.FindBodyIndex("BuilderBody");
		LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
		if (firstLocalUser == null || firstLocalUser.userProfile == null || !Object.op_Implicit((Object)(object)firstLocalUser.currentNetworkUser) || firstLocalUser.userProfile.loadout.bodyLoadoutManager == null)
		{
			return;
		}
		switch (firstLocalUser.userProfile.loadout.bodyLoadoutManager.GetSkillVariant(bodyIndex, 0))
		{
		case 0u:
			if (Object.op_Implicit((Object)(object)Prefabs.shotgunMat))
			{
				((Renderer)renderer).material = Object.Instantiate<Material>(Prefabs.shotgunMat);
			}
			if (Object.op_Implicit((Object)(object)Prefabs.shotgunMesh))
			{
				meshFilter.mesh = Prefabs.shotgunMesh;
			}
			break;
		case 1u:
			if (Object.op_Implicit((Object)(object)Prefabs.mp40Mat))
			{
				((Renderer)renderer).material = Object.Instantiate<Material>(Prefabs.mp40Mat);
			}
			if (Object.op_Implicit((Object)(object)Prefabs.mp40Mesh))
			{
				meshFilter.mesh = Prefabs.mp40Mesh;
			}
			break;
		}
	}
}
internal class TowerBehaviour : MonoBehaviour
{
	private float stopwatch;

	private void FixedUpdate()
	{
		//IL_0042: 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_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)
		if (NetworkServer.active)
		{
			stopwatch += Time.fixedDeltaTime;
			if (stopwatch >= 15f)
			{
				stopwatch = 0f;
				NetworkServer.Spawn(Object.Instantiate<GameObject>(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Scanner/ChestScanner.prefab").WaitForCompletion(), ((Component)this).transform.position, Quaternion.identity));
			}
		}
	}
}
internal class TowerTPBehaviour : MonoBehaviour
{
	public TeamIndex team = (TeamIndex)1;

	public Transform tpTransform;

	public void OnTriggerStay(Collider collider)
	{
		//IL_001e: 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_004c: 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_008d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0092: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bf: Expected O, but got Unknown
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		CharacterBody component = ((Component)collider).GetComponent<CharacterBody>();
		if (Object.op_Implicit((Object)(object)component) && component.isPlayerControlled && component.teamComponent.teamIndex == team)
		{
			if (Object.op_Implicit((Object)(object)component.characterMotor))
			{
				component.characterMotor.velocity = Vector3.zero;
			}
			if (Util.HasEffectiveAuthority(((Component)component).gameObject))
			{
				TeleportHelper.TeleportBody(component, tpTransform.position);
			}
			Util.PlaySound("Play_huntress_shift_end", ((Component)component).gameObject);
			EffectData val = new EffectData
			{
				origin = tpTransform.position,
				rotation = Quaternion.Euler(90f, 0f, 0f)
			};
			EffectManager.SpawnEffect(BlinkState.blinkPrefab, val, false);
		}
	}
}
internal class BuilderSkillDef : SkillDef
{
	private class InstanceData : BaseSkillInstanceData
	{
		public BuilderBehaviour behaviour;
	}

	public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot)
	{
		return (BaseSkillInstanceData)(object)new InstanceData
		{
			behaviour = ((Component)skillSlot).GetComponent<BuilderBehaviour>()
		};
	}

	internal static bool IsExecutable([NotNull] GenericSkill skillSlot)
	{
		BuilderBehaviour behaviour = ((InstanceData)(object)skillSlot.skillInstanceData).behaviour;
		if (MainPlugin.cheatMode.Value)
		{
			return true;
		}
		switch (behaviour.structure)
		{
		case BuilderBehaviour.Structure.containerTower:
			if (behaviour.currentMaterialValue >= 25f)
			{
				return true;
			}
			break;
		case BuilderBehaviour.Structure.wall:
			if (behaviour.currentMaterialValue >= 50f)
			{
				return true;
			}
			break;
		case BuilderBehaviour.Structure.radarTower:
			if (behaviour.currentMaterialValue >= 300f)
			{
				return true;
			}
			break;
		case BuilderBehaviour.Structure.bunker:
			if (behaviour.currentMaterialValue >= 600f)
			{
				return true;
			}
			break;
		}
		return false;
	}

	public override bool CanExecute([NotNull] GenericSkill skillSlot)
	{
		return IsExecutable(skillSlot) && ((SkillDef)this).CanExecute(skillSlot);
	}

	public override bool IsReady([NotNull] GenericSkill skillSlot)
	{
		return ((SkillDef)this).IsReady(skillSlot) && IsExecutable(skillSlot);
	}
}
internal class Hook
{
	internal static void Hooks()
	{
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Expected O, but got Unknown
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Expected O, but got Unknown
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Expected O, but got Unknown
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal;
		BarrelInteraction.OnInteractionBegin += new hook_OnInteractionBegin(BarrelInteraction_OnInteractionBegin);
		ChestBehavior.ItemDrop += new hook_ItemDrop(ChestBehavior_ItemDrop);
		HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage);
		Interactor.AttemptInteraction += new hook_AttemptInteraction(Interactor_AttemptInteraction);
	}

	private static void Interactor_AttemptInteraction(orig_AttemptInteraction orig, Interactor self, GameObject interactableObject)
	{
		ContainerInteraction component = interactableObject.GetComponent<ContainerInteraction>();
		BuilderBehaviour component2 = ((Component)self).GetComponent<BuilderBehaviour>();
		if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component2))
		{
			component2.CallCmdContainerInteraction(InstanceTracker.GetInstancesList<ContainerInteraction>().IndexOf(component));
		}
		orig.Invoke(self, interactableObject);
	}

	private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0009: Invalid comparison between Unknown and I4
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0013: Invalid comparison between Unknown and I4
		if ((int)damageInfo.damageType == 66 && (int)damageInfo.damageColorIndex == 9 && Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(Prefabs.fogImmunity))
		{
			damageInfo.rejected = true;
		}
		orig.Invoke(self, damageInfo);
	}

	private static void ChestBehavior_ItemDrop(orig_ItemDrop orig, ChestBehavior self)
	{
		orig.Invoke(self);
		PurchaseInteraction component = ((Component)self).gameObject.GetComponent<PurchaseInteraction>();
		Utils.GiveAllBuildersMaterial(Object.op_Implicit((Object)(object)component) ? component.cost : 15);
	}

	private static void BarrelInteraction_OnInteractionBegin(orig_OnInteractionBegin orig, BarrelInteraction self, Interactor activator)
	{
		orig.Invoke(self, activator);
		Utils.GiveAllBuildersMaterial(15f);
	}

	private static void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport)
	{
		if (!Object.op_Implicit((Object)(object)damageReport.victimBody) || !Object.op_Implicit((Object)(object)damageReport.attacker))
		{
			return;
		}
		BuilderBehaviour component = damageReport.attacker.GetComponent<BuilderBehaviour>();
		if (Object.op_Implicit((Object)(object)damageReport.attackerBody) && Object.op_Implicit((Object)(object)damageReport.attackerBody.master) && Object.op_Implicit((Object)(object)damageReport.attackerBody.master.minionOwnership) && Object.op_Implicit((Object)(object)damageReport.attackerBody.master.minionOwnership.ownerMaster))
		{
			CharacterBody body = damageReport.attackerBody.master.minionOwnership.ownerMaster.GetBody();
			if (Object.op_Implicit((Object)(object)body) && !Object.op_Implicit((Object)(object)component))
			{
				component = ((Component)body).GetComponent<BuilderBehaviour>();
			}
		}
		if (Object.op_Implicit((Object)(object)component))
		{
			float value = 10f;
			if (damageReport.victimBody.isElite)
			{
				value = 25f;
			}
			else if (damageReport.victimBody.isChampion)
			{
				value = 45f;
			}
			else if (damageReport.victimBody.isBoss)
			{
				value = 75f;
			}
			component.AddMaterial(value);
		}
	}
}
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)LegacyResourcesAPI.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 = "BuilderIDRS";
		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