Decompiled source of Abathur v1.1.1

Abathur.dll

Decompiled 3 weeks 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.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using EmotesAPI;
using EntityStates;
using EntityStates.Huntress;
using EntityStates.Mage.Weapon;
using HG;
using JetBrains.Annotations;
using KinematicCharacterController;
using On.RoR2;
using On.RoR2.Networking;
using On.RoR2.Projectile;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.Achievements;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Networking;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.Rendering;

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

internal class AbathurSkillDef : SkillDef
{
	private class InstanceData : BaseSkillInstanceData
	{
		public AbathurBehaviour behaviour;
	}

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

	internal static bool IsExecutable([NotNull] GenericSkill skillSlot)
	{
		AbathurBehaviour behaviour = ((InstanceData)(object)skillSlot.skillInstanceData).behaviour;
		SkillLocator component = ((Component)skillSlot).GetComponent<SkillLocator>();
		CharacterMotor component2 = ((Component)skillSlot).GetComponent<CharacterMotor>();
		if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component2))
		{
			if ((Object)(object)skillSlot == (Object)(object)component.primary)
			{
				if (Object.op_Implicit((Object)(object)behaviour) && Object.op_Implicit((Object)(object)behaviour.minion) && Object.op_Implicit((Object)(object)behaviour.minion.body) && Object.op_Implicit((Object)(object)behaviour.minion.body.characterMotor) && behaviour.minion.body.characterMotor.isGrounded && behaviour.minion.body.healthComponent.alive && Object.op_Implicit((Object)(object)behaviour.minion.bodyMachine))
				{
					EntityState state = behaviour.minion.bodyMachine.state;
					return state != null && ((object)state).GetType() != typeof(StunState) && ((object)state).GetType() != typeof(FrozenState) && ((object)state).GetType() != typeof(ShockState);
				}
			}
			else if ((Object)(object)skillSlot == (Object)(object)component.utility)
			{
				return component2.isGrounded && behaviour.enable;
			}
			if ((!Object.op_Implicit((Object)(object)behaviour.attachment) && (Object)(object)skillSlot == (Object)(object)component.secondary) || (((Object)(object)skillSlot == (Object)(object)component.special) & (component.special.skillNameToken == "ABATHUR_SPEC")))
			{
				return behaviour.enable && Object.op_Implicit((Object)(object)behaviour.target) && component2.isGrounded;
			}
			if ((Object)(object)skillSlot == (Object)(object)component.special && component.special.skillNameToken == "ABATHUR_SPECALT")
			{
				return true;
			}
		}
		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);
	}
}
public static class Achievements
{
	[RegisterAchievement("ABATHUR_MASTERY", "ACHIEVEMENT_ABATHUR_MASTERY_UNLOCKABLE_ID", null, 10u, null)]
	public class MasteryUnlockable : BasePerSurvivorClearGameMonsoonAchievement
	{
		public override BodyIndex LookUpRequiredBodyIndex()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			return BodyCatalog.FindBodyIndex("AbathurBody");
		}
	}

	internal static UnlockableDef masteryUnlock;

	public static void RegisterUnlockables()
	{
		masteryUnlock = NewUnlockable<MasteryUnlockable>("MASTERY", Assets.MainAssetBundle.LoadAsset<Sprite>("skin"), "ABATHUR: Mastery", "As Abathur, beat the game or obliterate on Monsoon.");
	}

	private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement
	{
		string text = "ACHIEVEMENT_ABATHUR_";
		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("Abathur.AssetBundle.abathurassets");
			MainAssetBundle = AssetBundle.LoadFromStream(stream);
		}
		using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Abathur.Abathur.bnk");
		byte[] array = new byte[stream2.Length];
		stream2.Read(array, 0, array.Length);
		SoundBanks.Add(array);
	}
}
internal static class BullseyeBossFilter
{
	public static void FilterOutBosses(this BullseyeSearch b)
	{
		b.candidatesEnumerable.RemoveAll((CandidateInfo v) => v.hurtBox.healthComponent.body.isBoss);
	}
}
internal class AbathurBehaviour : HuntressTracker
{
	public bool enable = true;

	public bool enableSpec = true;

	public Vector3 buryPos;

	public GameObject attachment;

	public SymbioteAttachmentBehaviour symbioteAttachment;

	public int skinIndex;

	public Animator animator;

	private float stopwatch;

	private CharacterBody body;

	public Transform buryTransform;

	public MinionBehaviour minion;

	public HurtBox target => Object.op_Implicit((Object)(object)base.trackingTarget) ? base.trackingTarget : null;

	private void Awake()
	{
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0017: Expected O, but got Unknown
		base.indicator = new Indicator(((Component)this).gameObject, Prefabs.zergIndicator);
	}

	private void OnEnable()
	{
		((HuntressTracker)this).OnEnable();
		base.trackerUpdateFrequency = 10f;
		animator = ((Component)((Component)this).GetComponent<ModelLocator>().modelTransform).GetComponent<Animator>();
		body = ((Component)this).GetComponent<CharacterBody>();
		base.maxTrackingDistance = 100f;
	}

	private void FixedUpdate()
	{
		//IL_0188: Unknown result type (might be due to invalid IL or missing references)
		//IL_0193: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
		((HuntressTracker)this).FixedUpdate();
		if (NetworkServer.active)
		{
			if (Object.op_Implicit((Object)(object)minion))
			{
				int itemCount = minion.body.inventory.GetItemCount(Prefabs.statBoost);
				int buffCount = body.GetBuffCount(Prefabs.statBoostStacks);
				if (buffCount < itemCount)
				{
					body.AddBuff(Prefabs.statBoostStacks);
				}
				else if (buffCount > itemCount)
				{
					body.RemoveBuff(Prefabs.statBoostStacks);
				}
			}
			else if (body.HasBuff(Prefabs.statBoostStacks))
			{
				int buffCount2 = body.GetBuffCount(Prefabs.statBoostStacks);
				for (int i = 0; i < buffCount2; i++)
				{
					body.RemoveBuff(Prefabs.statBoostStacks);
				}
			}
		}
		if (Object.op_Implicit((Object)(object)body) && skinIndex != (int)body.skinIndex)
		{
			skinIndex = (int)body.skinIndex;
		}
		base.trackerUpdateStopwatch = 0f;
		base.indicator.active = !Object.op_Implicit((Object)(object)attachment);
		stopwatch += Time.fixedDeltaTime;
		if (stopwatch >= 0.1f)
		{
			stopwatch = 0f;
			Ray val = default(Ray);
			((Ray)(ref val))..ctor(base.inputBank.aimOrigin, base.inputBank.aimDirection);
			base.search.filterByLoS = true;
			base.search.searchOrigin = ((Ray)(ref val)).origin;
			base.search.searchDirection = ((Ray)(ref val)).direction;
			base.search.sortMode = (SortMode)1;
			base.search.maxDistanceFilter = base.maxTrackingDistance;
			base.search.maxAngleFilter = base.maxTrackingAngle;
			base.search.RefreshCandidates();
			base.search.FilterOutGameObject(((Component)this).gameObject);
			base.search.FilterOutBosses();
			base.trackingTarget = base.search.GetResults().FirstOrDefault();
			base.indicator.targetTransform = (Object.op_Implicit((Object)(object)base.trackingTarget) ? ((Component)base.trackingTarget).transform : null);
		}
	}
}
internal class MinionBehaviour : MonoBehaviour
{
	public CharacterBody body;

	public EntityStateMachine bodyMachine;

	public CharacterBody ownerBody;

	public AbathurBehaviour behaviour;

	public float stopwatch;

	public float dotFrequency = 0.4f;

	public float dotRadius = 8f;

	public float dotDamageCoefficient = 0.6f;

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

	private void Start()
	{
		GetOwner();
	}

	private void GetOwner()
	{
		if (Object.op_Implicit((Object)(object)body.master) && Object.op_Implicit((Object)(object)body.master.minionOwnership) && Object.op_Implicit((Object)(object)body.master.minionOwnership.ownerMaster))
		{
			ownerBody = body.master.minionOwnership.ownerMaster.GetBody();
			if (Object.op_Implicit((Object)(object)ownerBody))
			{
				behaviour = ((Component)ownerBody).GetComponent<AbathurBehaviour>();
				behaviour.minion = this;
			}
		}
	}

	private void Update()
	{
		if (!Object.op_Implicit((Object)(object)ownerBody))
		{
			GetOwner();
		}
	}

	private void FixedUpdate()
	{
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: 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_00ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_010c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: Unknown result type (might be due to invalid IL or missing references)
		//IL_0137: Unknown result type (might be due to invalid IL or missing references)
		//IL_0148: Unknown result type (might be due to invalid IL or missing references)
		//IL_0160: Unknown result type (might be due to invalid IL or missing references)
		//IL_016c: 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_0174: Unknown result type (might be due to invalid IL or missing references)
		//IL_0179: Unknown result type (might be due to invalid IL or missing references)
		//IL_017c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0181: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Expected O, but got Unknown
		if (!NetworkServer.active)
		{
			return;
		}
		stopwatch += Time.fixedDeltaTime;
		if (!(stopwatch >= dotFrequency))
		{
			return;
		}
		stopwatch = 0f;
		if (Object.op_Implicit((Object)(object)body))
		{
			dotRadius = 8f * (1f + 0.01f * (float)body.inventory.GetItemCount(Prefabs.statBoost));
		}
		foreach (CharacterBody instances in CharacterBody.instancesList)
		{
			if (instances.healthComponent.alive)
			{
				TeamMask enemyTeams = TeamMask.GetEnemyTeams(body.teamComponent.teamIndex);
				if (((TeamMask)(ref enemyTeams)).HasTeam(instances.teamComponent.teamIndex) && Vector3.Distance(instances.footPosition, ((Component)this).transform.position) <= dotRadius)
				{
					DamageInfo val = new DamageInfo
					{
						attacker = (Object.op_Implicit((Object)(object)ownerBody) ? ((Component)ownerBody).gameObject : ((Component)this).gameObject),
						crit = body.RollCrit(),
						damage = body.damage * dotDamageCoefficient,
						inflictor = ((Component)this).gameObject,
						position = instances.corePosition,
						damageColorIndex = (DamageColorIndex)10,
						procCoefficient = 0f
					};
					instances.healthComponent.TakeDamage(val);
				}
			}
		}
	}
}
public class ProjectileCharacterControllerForward : MonoBehaviour
{
	private Vector3 downVector;

	public float velocity = 40f;

	public float lifetime = 2f;

	private float timer;

	private ProjectileController projectileController;

	private CharacterController characterController;

	private void Awake()
	{
		//IL_0002: 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_0011: Unknown result type (might be due to invalid IL or missing references)
		downVector = Vector3.down * 3f;
		projectileController = ((Component)this).GetComponent<ProjectileController>();
		characterController = ((Component)this).GetComponent<CharacterController>();
	}

	private void FixedUpdate()
	{
		//IL_0027: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		if (NetworkServer.active || projectileController.isPrediction)
		{
			characterController.Move((((Component)this).transform.forward + downVector) * (velocity * Time.fixedDeltaTime));
		}
		if (NetworkServer.active)
		{
			timer += Time.fixedDeltaTime;
			if (timer > lifetime)
			{
				Object.Destroy((Object)(object)((Component)this).gameObject);
			}
		}
	}
}
internal class ProjectileCameraOverride : MonoBehaviour
{
	private GameObject owner;

	private CharacterBody body;

	private ProjectileController proj;

	private Transform og;

	private CameraTargetParams camera;

	private AbathurBehaviour behaviour;

	private ProjectileCharacterController character;

	private EntityStateMachine stateMachine;

	private Vector3 buryPos;

	private float speed = 0f;

	private void OnEnable()
	{
		proj = ((Component)this).GetComponent<ProjectileController>();
		owner = proj.owner;
		character = ((Component)this).GetComponent<ProjectileCharacterController>();
		((Component)this).gameObject.layer = LayerIndex.fakeActor.intVal;
	}

	private void FixedUpdate()
	{
		//IL_0198: Unknown result type (might be due to invalid IL or missing references)
		//IL_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01af: 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_0155: Unknown result type (might be due to invalid IL or missing references)
		//IL_0160: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
		if (!Object.op_Implicit((Object)(object)owner) && Object.op_Implicit((Object)(object)proj))
		{
			owner = proj.owner;
		}
		else if (!Object.op_Implicit((Object)(object)camera))
		{
			camera = owner.GetComponent<CameraTargetParams>();
			if (Object.op_Implicit((Object)(object)camera))
			{
				body = owner.GetComponent<CharacterBody>();
				behaviour = owner.GetComponent<AbathurBehaviour>();
				stateMachine = Array.Find(owner.GetComponents<EntityStateMachine>(), (EntityStateMachine element) => element.customName == "Weapon");
				if (Object.op_Implicit((Object)(object)behaviour))
				{
					behaviour.buryTransform = ((Component)this).transform;
					buryPos = behaviour.buryPos;
				}
				og = camera.cameraPivotTransform;
				camera.cameraPivotTransform = ((Component)this).transform.GetChild(0);
			}
		}
		else if (speed == 0f)
		{
			if (Object.op_Implicit((Object)(object)behaviour))
			{
				speed = Vector3.Distance(((Component)this).transform.position, behaviour.buryPos);
			}
		}
		else if (Object.op_Implicit((Object)(object)character))
		{
			character.velocity = speed;
		}
		if (buryPos != Vector3.zero && Vector3.Distance(((Component)this).transform.position, buryPos) <= 5f)
		{
			Object.Destroy((Object)(object)((Component)this).gameObject);
		}
	}

	private void OnDisable()
	{
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)body) && body.hasEffectiveAuthority)
		{
			if (Object.op_Implicit((Object)(object)stateMachine))
			{
				stateMachine.SetNextState((EntityState)(object)new UtilityEnd());
			}
			TeleportHelper.TeleportBody(body, buryPos);
		}
		if (Object.op_Implicit((Object)(object)camera))
		{
			camera.cameraPivotTransform = og;
		}
	}
}
internal class PropDeathAnimEvent : MonoBehaviour
{
	private uint ID;

	private void OnEnable()
	{
		ID = AkSoundEngine.PostEvent(Sounds.Play_Abathur_Evo_Start, ((Component)this).gameObject);
	}

	public void Death()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_0053: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Expected O, but got Unknown
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		AkSoundEngine.StopPlayingID(ID);
		AkSoundEngine.PostEvent(Sounds.Play_Abathur_Evo_End, ((Component)this).gameObject);
		Vector3 position = ((Component)this).transform.position;
		EffectData val = new EffectData
		{
			origin = new Vector3(position.x, position.y + 1.214f, position.z),
			scale = 3f
		};
		EffectManager.SpawnEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/AcidLarva/AcidLarvaDeath.prefab").WaitForCompletion(), val, false);
		Object.Destroy((Object)(object)((Component)this).gameObject);
	}
}
internal class RowDisabler : MonoBehaviour
{
	private GameObject child;

	private void OnEnable()
	{
	}

	private void FixedUpdate()
	{
		if (!Object.op_Implicit((Object)(object)child) && Object.op_Implicit((Object)(object)((Component)this).transform.GetChild(0)))
		{
			child = ((Component)((Component)this).transform.GetChild(0)).gameObject;
			child.SetActive(false);
			Object.Destroy((Object)(object)this);
		}
	}
}
internal class SymbioteAttachmentBehaviour : MonoBehaviour
{
	public static SkillDef symbPrimary;

	public static SkillDef symbSecondary;

	public static SkillDef symbUtility;

	public static SkillDef symbSpecial;

	public CharacterBody abathurBody;

	public CharacterBody attachedBody;

	private CameraTargetParams camera;

	private Transform cameraTransform;

	private AbathurBehaviour abaBehaviour;

	public Animator animator;

	public TeamIndex ogTeamIndex;

	private BaseAI ai;

	private CharacterMaster master;

	private EntityStateMachine machine;

	private CameraRigController cameraRig;

	public GameObject cocoon;

	private uint ID;

	public float x = 0f;

	public float y = 2f;

	public float z = -8f;

	private ItemIndex[] blacklist;

	private void OnEnable()
	{
		animator = ((Component)this).GetComponent<Animator>();
		AkSoundEngine.PostEvent(Sounds.Play_Abathur_Symb_Spawn, ((Component)this).gameObject);
		ID = AkSoundEngine.PostEvent(Sounds.Play_Abathur_Symb_Shield_Idle, ((Component)this).gameObject);
	}

	private void Start()
	{
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Expected I4, but got Unknown
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: Expected I4, but got Unknown
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Expected I4, but got Unknown
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Expected I4, but got Unknown
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Expected I4, but got Unknown
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: Expected I4, but got Unknown
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Expected I4, but got Unknown
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Expected I4, but got Unknown
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected I4, but got Unknown
		//IL_0086: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Expected I4, but got Unknown
		//IL_0094: Unknown result type (might be due to invalid IL or missing references)
		//IL_009a: Expected I4, but got Unknown
		//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected I4, but got Unknown
		//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b6: Expected I4, but got Unknown
		//IL_00be: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c4: Expected I4, but got Unknown
		blacklist = (ItemIndex[])(object)new ItemIndex[14]
		{
			(ItemIndex)(int)Items.LunarPrimaryReplacement.itemIndex,
			(ItemIndex)(int)Items.LunarSecondaryReplacement.itemIndex,
			(ItemIndex)(int)Items.LunarUtilityReplacement.itemIndex,
			(ItemIndex)(int)Items.LunarSpecialReplacement.itemIndex,
			(ItemIndex)(int)Items.LunarSpecialReplacement.itemIndex,
			(ItemIndex)(int)Items.LunarSun.itemIndex,
			(ItemIndex)(int)Items.TreasureCache.itemIndex,
			(ItemIndex)(int)Items.TreasureCacheVoid.itemIndex,
			(ItemIndex)(int)Items.ScrapGreen.itemIndex,
			(ItemIndex)(int)Items.ScrapRed.itemIndex,
			(ItemIndex)(int)Items.ScrapWhite.itemIndex,
			(ItemIndex)(int)Items.ScrapYellow.itemIndex,
			(ItemIndex)(int)Items.BeetleGland.itemIndex,
			(ItemIndex)(int)Items.RoboBallBuddy.itemIndex
		};
	}

	private void Update()
	{
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//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)
		if (Object.op_Implicit((Object)(object)abathurBody) && Object.op_Implicit((Object)(object)abathurBody.inputBank) && Object.op_Implicit((Object)(object)camera))
		{
			Transform transform = ((Component)this).transform;
			Ray aimRay = abathurBody.inputBank.GetAimRay();
			transform.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction);
		}
	}

	private void FixedUpdate()
	{
		//IL_02da: 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_0342: Unknown result type (might be due to invalid IL or missing references)
		//IL_031e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0392: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0403: Unknown result type (might be due to invalid IL or missing references)
		//IL_0424: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bf: Invalid comparison between Unknown and I4
		//IL_04c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c9: Invalid comparison between Unknown and I4
		//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d3: Invalid comparison between Unknown and I4
		//IL_04fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0507: Unknown result type (might be due to invalid IL or missing references)
		//IL_04db: Unknown result type (might be due to invalid IL or missing references)
		if (!Object.op_Implicit((Object)(object)attachedBody))
		{
			attachedBody = ((Component)this).GetComponentInParent<CharacterBody>();
			if (Object.op_Implicit((Object)(object)abathurBody))
			{
				foreach (CameraRigController readOnlyInstances in CameraRigController.readOnlyInstancesList)
				{
					if ((Object)(object)readOnlyInstances.targetBody == (Object)(object)abathurBody)
					{
						cameraRig = readOnlyInstances;
					}
				}
				ChildLocator component = ((Component)this).GetComponent<ChildLocator>();
				if (abathurBody.skinIndex == 0)
				{
					((Component)component.FindChild("skin")).gameObject.SetActive(false);
				}
				else
				{
					((Component)component.FindChild("base")).gameObject.SetActive(false);
				}
				if (abathurBody.hasEffectiveAuthority)
				{
					machine = Array.Find(((Component)abathurBody).GetComponents<EntityStateMachine>(), (EntityStateMachine element) => element.customName == "Body");
					machine.SetNextState((EntityState)(object)new SolidState());
				}
				abaBehaviour = ((Component)abathurBody).GetComponent<AbathurBehaviour>();
				camera = ((Component)abathurBody).GetComponent<CameraTargetParams>();
				if (Object.op_Implicit((Object)(object)camera))
				{
					cameraTransform = camera.cameraPivotTransform;
					camera.cameraPivotTransform = ((Component)this).GetComponent<ChildLocator>().FindChild("cameraTransform");
					abathurBody.aimOriginTransform = camera.cameraPivotTransform;
				}
				if (Object.op_Implicit((Object)(object)abathurBody.skillLocator) && Object.op_Implicit((Object)(object)symbPrimary) && Object.op_Implicit((Object)(object)symbSecondary) && Object.op_Implicit((Object)(object)symbUtility) && Object.op_Implicit((Object)(object)symbSpecial))
				{
					abathurBody.skillLocator.primary.SetSkillOverride((object)this, symbPrimary, (SkillOverridePriority)4);
					abathurBody.skillLocator.secondary.SetSkillOverride((object)this, symbSecondary, (SkillOverridePriority)4);
					abathurBody.skillLocator.utility.SetSkillOverride((object)this, symbUtility, (SkillOverridePriority)4);
					abathurBody.skillLocator.special.SetSkillOverride((object)this, symbSpecial, (SkillOverridePriority)4);
				}
			}
			if (!Object.op_Implicit((Object)(object)attachedBody) || !Object.op_Implicit((Object)(object)abaBehaviour))
			{
				return;
			}
			if (Object.op_Implicit((Object)(object)attachedBody.characterDirection))
			{
				((Component)this).transform.forward = attachedBody.characterDirection.forward;
			}
			else
			{
				((Component)this).transform.forward = attachedBody.transform.forward;
			}
			if (Object.op_Implicit((Object)(object)attachedBody.mainHurtBox))
			{
				((Component)this).transform.localPosition = new Vector3(0f, attachedBody.radius * 3f, 0f);
			}
			else
			{
				((Component)this).transform.localPosition = new Vector3(0f, 3f, 0f);
			}
			if (!Object.op_Implicit((Object)(object)abathurBody))
			{
				return;
			}
			if (Object.op_Implicit((Object)(object)attachedBody.teamComponent) && Object.op_Implicit((Object)(object)abathurBody.teamComponent) && attachedBody.teamComponent.teamIndex != abathurBody.teamComponent.teamIndex)
			{
				ogTeamIndex = attachedBody.teamComponent.teamIndex;
				master = attachedBody.master;
				if (Object.op_Implicit((Object)(object)master))
				{
					master.teamIndex = abathurBody.teamComponent.teamIndex;
					attachedBody.teamComponent.teamIndex = abathurBody.teamComponent.teamIndex;
					ai = ((Component)master).GetComponent<BaseAI>();
					if (Object.op_Implicit((Object)(object)ai))
					{
						ai.currentEnemy.Reset();
					}
				}
			}
			if (!NetworkServer.active)
			{
				return;
			}
			if (Object.op_Implicit((Object)(object)attachedBody.inventory) && Object.op_Implicit((Object)(object)abathurBody.inventory))
			{
				for (int i = 0; i < abathurBody.inventory.itemStacks.Length; i++)
				{
					ItemIndex val = (ItemIndex)i;
					ItemDef itemDef = ItemCatalog.GetItemDef(val);
					if ((int)itemDef.tier != 6 && (int)itemDef.tier != 7 && (int)itemDef.tier != 8 && !blacklist.Contains(val))
					{
						attachedBody.inventory.GiveItem(val, abathurBody.inventory.GetItemCount(val));
					}
				}
			}
			attachedBody.AddBuff(Prefabs.symb);
		}
		else if (!attachedBody.healthComponent.alive)
		{
			Object.Destroy((Object)(object)((Component)this).gameObject);
		}
	}

	private void OnDisable()
	{
		//IL_009a: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0142: Unknown result type (might be due to invalid IL or missing references)
		//IL_014a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0166: Unknown result type (might be due to invalid IL or missing references)
		//IL_0173: Unknown result type (might be due to invalid IL or missing references)
		AkSoundEngine.StopPlayingID(ID);
		AkSoundEngine.PostEvent(Sounds.Play_Abathur_Symb_Death, ((Component)this).gameObject);
		if (Object.op_Implicit((Object)(object)cocoon))
		{
			cocoon.GetComponent<Animator>().SetTrigger("end");
		}
		if (Object.op_Implicit((Object)(object)attachedBody))
		{
			PositionIndicator componentInChildren = ((Component)attachedBody).gameObject.GetComponentInChildren<PositionIndicator>();
			if (Object.op_Implicit((Object)(object)componentInChildren))
			{
				Object.Destroy((Object)(object)((Component)componentInChildren).gameObject);
			}
			if (Object.op_Implicit((Object)(object)master))
			{
				master.teamIndex = ogTeamIndex;
				attachedBody.teamComponent.teamIndex = ogTeamIndex;
				if (Object.op_Implicit((Object)(object)ai))
				{
					ai.currentEnemy.Reset();
				}
			}
			if (NetworkServer.active)
			{
				attachedBody.RemoveBuff(Prefabs.symb);
				if (Object.op_Implicit((Object)(object)attachedBody.inventory) && Object.op_Implicit((Object)(object)abathurBody) && Object.op_Implicit((Object)(object)abathurBody.inventory))
				{
					for (int i = 0; i < abathurBody.inventory.itemStacks.Length; i++)
					{
						ItemIndex val = (ItemIndex)i;
						if (!blacklist.Contains(val))
						{
							attachedBody.inventory.RemoveItem(val, abathurBody.inventory.GetItemCount(val));
						}
					}
				}
			}
		}
		if (Object.op_Implicit((Object)(object)abathurBody))
		{
			if (abathurBody.hasEffectiveAuthority)
			{
				machine.SetNextState((EntityState)(object)new SymbDeathState());
			}
			if (Object.op_Implicit((Object)(object)camera))
			{
				camera.cameraPivotTransform = cameraTransform;
				abathurBody.aimOriginTransform = cameraTransform;
			}
			if (Object.op_Implicit((Object)(object)abathurBody.skillLocator))
			{
				abathurBody.skillLocator.primary.UnsetSkillOverride((object)this, symbPrimary, (SkillOverridePriority)4);
				abathurBody.skillLocator.secondary.UnsetSkillOverride((object)this, symbSecondary, (SkillOverridePriority)4);
				abathurBody.skillLocator.utility.UnsetSkillOverride((object)this, symbUtility, (SkillOverridePriority)4);
				abathurBody.skillLocator.special.UnsetSkillOverride((object)this, symbSpecial, (SkillOverridePriority)4);
			}
		}
	}
}
internal class SymbioteBarrierAttachment : MonoBehaviour
{
	private NetworkedBodyAttachment attachment;

	private HealthComponent health;

	private CharacterBody body;

	private float stopwatch;

	private uint ID;

	private void OnEnable()
	{
		attachment = ((Component)this).GetComponent<NetworkedBodyAttachment>();
		ID = AkSoundEngine.PostEvent(Sounds.Play_Abathur_Symb_Shield_Loop, ((Component)this).gameObject);
	}

	private void FixedUpdate()
	{
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0134: Unknown result type (might be due to invalid IL or missing references)
		//IL_013a: Unknown result type (might be due to invalid IL or missing references)
		if (!Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)attachment) && Object.op_Implicit((Object)(object)attachment.attachedBody))
		{
			body = attachment.attachedBody;
			health = body.healthComponent;
			((Component)this).transform.position = body.corePosition;
			if (NetworkServer.active && Object.op_Implicit((Object)(object)body))
			{
				body.AddBuff(Prefabs.symbShield);
			}
			((Component)this).transform.localScale = Vector3.one * body.radius;
		}
		if (!Object.op_Implicit((Object)(object)health))
		{
			return;
		}
		stopwatch += Time.fixedDeltaTime;
		if (health.Networkbarrier > 0f)
		{
			if (stopwatch >= 1f)
			{
				stopwatch = 0f;
				if (NetworkServer.active)
				{
					health.Heal(10f, default(ProcChainMask), true);
				}
			}
		}
		else if (stopwatch >= 0.5f)
		{
			Object.Destroy((Object)(object)((Component)this).gameObject);
		}
	}

	private void OnDisable()
	{
		AkSoundEngine.StopPlayingID(ID);
		AkSoundEngine.PostEvent(Sounds.Play_Abathur_Symb_Shield_End, ((Component)this).gameObject);
		if (NetworkServer.active && Object.op_Implicit((Object)(object)body))
		{
			body.RemoveBuff(Prefabs.symbShield);
		}
	}
}
internal class TransformationTimer : MonoBehaviour
{
	private float stopwatch;

	private CharacterMaster master;

	private CharacterBody body;

	public int skinIndex;

	private void OnEnable()
	{
		master = ((Component)this).GetComponent<CharacterMaster>();
	}

	private void FixedUpdate()
	{
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_0153: Unknown result type (might be due to invalid IL or missing references)
		//IL_016a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0101: Unknown result type (might be due to invalid IL or missing references)
		//IL_0106: Unknown result type (might be due to invalid IL or missing references)
		//IL_0218: Unknown result type (might be due to invalid IL or missing references)
		//IL_021d: Unknown result type (might be due to invalid IL or missing references)
		//IL_022d: Unknown result type (might be due to invalid IL or missing references)
		//IL_023d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
		stopwatch += Time.fixedDeltaTime;
		if (!Object.op_Implicit((Object)(object)master))
		{
			return;
		}
		if (!Object.op_Implicit((Object)(object)body))
		{
			body = master.GetBody();
		}
		else if (!body.HasBuff(Prefabs.adrenaline))
		{
			((Object)body).name = ((Object)body).name + " (Abathur)";
			body.AddBuff(Prefabs.adrenaline);
			if (Object.op_Implicit((Object)(object)body.modelLocator) && Object.op_Implicit((Object)(object)body.modelLocator.modelTransform))
			{
				TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)body.modelLocator.modelTransform).gameObject);
				val.animateShaderAlpha = false;
				val.destroyComponentOnEnd = true;
				val.originalMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ElitePoison/matElitePoisonOverlay.mat").WaitForCompletion();
				val.AddToCharacterModel(((Component)body.modelLocator.modelTransform).GetComponent<CharacterModel>());
			}
			GameObject val2 = Object.Instantiate<GameObject>(Prefabs.symbBuffEffect);
			val2.transform.localScale = Vector3.one * body.radius;
			val2.transform.position = body.corePosition;
			val2.transform.SetParent(body.transform);
			Object.Destroy((Object)(object)val2.GetComponent<DestroyOnTimer>());
		}
		if (stopwatch >= 23f && Object.op_Implicit((Object)(object)body))
		{
			if (skinIndex == 0)
			{
				Object.Instantiate<GameObject>(Prefabs.basePropEffect, body.footPosition, Quaternion.identity, (Transform)null).transform.localScale = Vector3.one * body.radius;
			}
			else
			{
				Object.Instantiate<GameObject>(Prefabs.skinPropEffect, body.footPosition, Quaternion.identity, (Transform)null).transform.localScale = Vector3.one * body.radius;
			}
			master.TransformBody("AbathurBody");
			Object.Destroy((Object)(object)this);
		}
	}
}
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_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Expected O, but got Unknown
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		ContentManager.onContentPacksAssigned += LateSetup;
		RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients);
		Inventory.GiveItem_ItemIndex_int += new hook_GiveItem_ItemIndex_int(Inventory_GiveItem_ItemIndex_int);
		TeleporterInteraction.onTeleporterChargedGlobal += TeleporterInteraction_onTeleporterChargedGlobal;
		ProjectileController.IgnoreCollisionsWithOwner += new hook_IgnoreCollisionsWithOwner(ProjectileController_IgnoreCollisionsWithOwner);
		BulletAttack.ProcessHitList += new hook_ProcessHitList(BulletAttack_ProcessHitList);
		HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage);
		GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal;
	}

	private static void LateSetup(ReadOnlyArray<ReadOnlyContentPack> obj)
	{
		ItemDisplays.SetIDRS();
	}

	private static void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport)
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Invalid comparison between Unknown and I4
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_008e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		if (!NetworkServer.active || !Object.op_Implicit((Object)(object)damageReport.victim) || (int)damageReport.victimTeamIndex == -1)
		{
			return;
		}
		foreach (CharacterBody instances in CharacterBody.instancesList)
		{
			MinionBehaviour component = ((Component)instances).GetComponent<MinionBehaviour>();
			if (Object.op_Implicit((Object)(object)instances.master) && Object.op_Implicit((Object)(object)component))
			{
				TeamMask enemyTeams = TeamMask.GetEnemyTeams(damageReport.victimTeamIndex);
				if (((TeamMask)(ref enemyTeams)).HasTeam(instances.teamComponent.teamIndex) && Vector3.Distance(((Component)damageReport.victim).transform.position, instances.transform.position) <= 8f)
				{
					instances.master.inventory.GiveItem(Prefabs.statBoost, 1);
				}
			}
		}
	}

	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)
		if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.needle))
		{
			self.body.AddBuff(Buffs.PermanentDebuff);
		}
		orig.Invoke(self, damageInfo);
	}

	private static GameObject BulletAttack_ProcessHitList(orig_ProcessHitList orig, BulletAttack self, List<BulletHit> hits, ref Vector3 endPosition, List<GameObject> ignoreList)
	{
		foreach (BulletHit hit in hits)
		{
			if (Object.op_Implicit((Object)(object)self.owner) && Object.op_Implicit((Object)(object)self.owner.GetComponent<AbathurBehaviour>()) && Object.op_Implicit((Object)(object)hit.entityObject) && Object.op_Implicit((Object)(object)hit.entityObject.GetComponentInChildren<SymbioteAttachmentBehaviour>()))
			{
				ignoreList.Add(hit.entityObject);
			}
		}
		return orig.Invoke(self, hits, ref endPosition, ignoreList);
	}

	private static void ProjectileController_IgnoreCollisionsWithOwner(orig_IgnoreCollisionsWithOwner orig, ProjectileController self, bool shouldIgnore)
	{
		if (Object.op_Implicit((Object)(object)self.owner) && Object.op_Implicit((Object)(object)self.owner.GetComponent<AbathurBehaviour>()))
		{
			AbathurBehaviour component = self.owner.GetComponent<AbathurBehaviour>();
			CharacterBody component2 = self.owner.GetComponent<CharacterBody>();
			if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.symbioteAttachment) && Object.op_Implicit((Object)(object)component.symbioteAttachment.attachedBody) && Object.op_Implicit((Object)(object)component.symbioteAttachment.attachedBody.modelLocator))
			{
				Transform modelTransform = component.symbioteAttachment.attachedBody.modelLocator.modelTransform;
				if (Object.op_Implicit((Object)(object)modelTransform))
				{
					HurtBoxGroup component3 = ((Component)modelTransform).GetComponent<HurtBoxGroup>();
					if (!Object.op_Implicit((Object)(object)component3))
					{
						return;
					}
					HurtBox[] hurtBoxes = component3.hurtBoxes;
					for (int i = 0; i < hurtBoxes.Length; i++)
					{
						List<Collider> gameObjectComponents = GetComponentsCache<Collider>.GetGameObjectComponents(((Component)hurtBoxes[i]).gameObject);
						int j = 0;
						for (int count = gameObjectComponents.Count; j < count; j++)
						{
							Collider val = gameObjectComponents[j];
							for (int k = 0; k < self.myColliders.Length; k++)
							{
								Collider val2 = self.myColliders[k];
								Physics.IgnoreCollision(val, val2, shouldIgnore);
							}
						}
					}
				}
			}
		}
		orig.Invoke(self, shouldIgnore);
	}

	private static void TeleporterInteraction_onTeleporterChargedGlobal(TeleporterInteraction obj)
	{
		foreach (NetworkUser instances in NetworkUser.instancesList)
		{
			CharacterBody currentBody = instances.GetCurrentBody();
			if (!Object.op_Implicit((Object)(object)currentBody))
			{
				continue;
			}
			AbathurBehaviour component = ((Component)currentBody).GetComponent<AbathurBehaviour>();
			if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.attachment))
			{
				if (Object.op_Implicit((Object)(object)component.animator))
				{
					component.animator.Play("Dance", 1);
				}
				if (Object.op_Implicit((Object)(object)component.symbioteAttachment) && Object.op_Implicit((Object)(object)component.symbioteAttachment.animator))
				{
					component.symbioteAttachment.animator.Play("Dance", 0);
				}
			}
		}
	}

	private static void Inventory_GiveItem_ItemIndex_int(orig_GiveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count)
	{
		//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
		CharacterMaster component = ((Component)self).GetComponent<CharacterMaster>();
		if (Object.op_Implicit((Object)(object)component))
		{
			CharacterBody body = component.GetBody();
			if (Object.op_Implicit((Object)(object)body))
			{
				AbathurBehaviour component2 = ((Component)body).GetComponent<AbathurBehaviour>();
				if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component2.symbioteAttachment) && Object.op_Implicit((Object)(object)component2.symbioteAttachment.attachedBody) && component2.symbioteAttachment.attachedBody.HasBuff(Prefabs.symb) && Object.op_Implicit((Object)(object)component2.symbioteAttachment.attachedBody.inventory))
				{
					component2.symbioteAttachment.attachedBody.inventory.GiveItem(itemIndex, count);
				}
			}
		}
		orig.Invoke(self, itemIndex, count);
	}

	private static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args)
	{
		//IL_005d: 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)
		Inventory inventory = sender.inventory;
		if (Object.op_Implicit((Object)(object)inventory))
		{
			int itemCount = inventory.GetItemCount(Prefabs.statBoost);
			if (itemCount > 0)
			{
				args.damageMultAdd += 0.01f * (float)itemCount;
				args.healthMultAdd += 0.01f * (float)itemCount;
				sender.modelLocator.modelTransform.localScale = Vector3.one * (1f + 0.01f * (float)itemCount);
			}
		}
		if (sender.HasBuff(Prefabs.symbShield))
		{
			args.baseMoveSpeedAdd += 2f;
		}
		if (sender.HasBuff(Prefabs.adrenaline))
		{
			args.damageMultAdd += 0.6f;
			args.attackSpeedMultAdd += 0.45f;
			args.cooldownReductionAdd += 0.2f;
		}
		if (sender.HasBuff(Prefabs.symb))
		{
			SymbioteAttachmentBehaviour componentInChildren = ((Component)sender).GetComponentInChildren<SymbioteAttachmentBehaviour>();
			if (Object.op_Implicit((Object)(object)componentInChildren) && Object.op_Implicit((Object)(object)componentInChildren.abathurBody))
			{
				args.baseHealthAdd += componentInChildren.abathurBody.maxHealth;
				args.baseDamageAdd += componentInChildren.abathurBody.damage;
				args.baseRegenAdd += componentInChildren.abathurBody.regen;
				args.baseMoveSpeedAdd += componentInChildren.abathurBody.moveSpeed;
				args.baseAttackSpeedAdd += componentInChildren.abathurBody.attackSpeed;
				args.armorAdd += componentInChildren.abathurBody.armor;
				args.critAdd += componentInChildren.abathurBody.crit;
			}
		}
	}
}
internal class ItemDisplays
{
	internal static ItemDisplayRuleSet itemDisplayRuleSet;

	internal static List<KeyAssetRuleGroup> itemDisplayRules;

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

	private static Dictionary<Object, AssetReferenceGameObject> itemDisplayAssetRefs = new Dictionary<Object, AssetReferenceGameObject>();

	private static Vector3 vec = Vector3.one;

	internal static void PopulateDisplays()
	{
		PopulateFromBody("RoR2/Base/Commando/idrsCommando.asset");
		PopulateFromBody("RoR2/Base/Croco/idrsCroco.asset");
		PopulateFromBody("RoR2/Base/Mage/idrsMage.asset");
	}

	private static void PopulateFromBody(string path)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0113: Unknown result type (might be due to invalid IL or missing references)
		ItemDisplayRuleSet val = Addressables.LoadAssetAsync<ItemDisplayRuleSet>((object)path).WaitForCompletion();
		KeyAssetRuleGroup[] keyAssetRuleGroups = val.keyAssetRuleGroups;
		for (int i = 0; i < keyAssetRuleGroups.Length; i++)
		{
			ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules;
			foreach (ItemDisplayRule val2 in rules)
			{
				Object keyAsset = keyAssetRuleGroups[i].keyAsset;
				ItemDef val3 = (ItemDef)(object)((keyAsset is ItemDef) ? keyAsset : null);
				Object keyAsset2 = keyAssetRuleGroups[i].keyAsset;
				EquipmentDef val4 = (EquipmentDef)(object)((keyAsset2 is EquipmentDef) ? keyAsset2 : null);
				GameObject followerPrefab = val2.followerPrefab;
				if ((Object)(object)val3 != (Object)null)
				{
					if (!itemDisplayAssetRefs.ContainsKey((Object)(object)val3))
					{
						itemDisplayAssetRefs.Add((Object)(object)val3, val2.followerPrefabAddress);
					}
					if (Object.op_Implicit((Object)(object)followerPrefab) && !itemDisplayPrefabs.ContainsKey((Object)(object)val3))
					{
						itemDisplayPrefabs.Add((Object)(object)val3, followerPrefab);
					}
				}
				else if ((Object)(object)val4 != (Object)null)
				{
					if (!itemDisplayAssetRefs.ContainsKey((Object)(object)val4))
					{
						itemDisplayAssetRefs.Add((Object)(object)val4, val2.followerPrefabAddress);
					}
					if (Object.op_Implicit((Object)(object)followerPrefab) && !itemDisplayPrefabs.ContainsKey((Object)(object)val4))
					{
						itemDisplayPrefabs.Add((Object)(object)val4, followerPrefab);
					}
				}
			}
		}
	}

	public static void RegisterDisplays()
	{
		itemDisplayRuleSet = ScriptableObject.CreateInstance<ItemDisplayRuleSet>();
		((Object)itemDisplayRuleSet).name = "AbathurIDRS";
		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_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: 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_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0116: Unknown result type (might be due to invalid IL or missing references)
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		//IL_013e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0163: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_018b: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0211: Unknown result type (might be due to invalid IL or missing references)
		//IL_0225: Unknown result type (might be due to invalid IL or missing references)
		//IL_024a: Unknown result type (might be due to invalid IL or missing references)
		//IL_025e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0272: Unknown result type (might be due to invalid IL or missing references)
		//IL_0297: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ab: 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_02e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_030c: 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_0345: Unknown result type (might be due to invalid IL or missing references)
		//IL_0359: Unknown result type (might be due to invalid IL or missing references)
		//IL_037e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0392: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cb: 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_03f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0418: Unknown result type (might be due to invalid IL or missing references)
		//IL_042c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0440: Unknown result type (might be due to invalid IL or missing references)
		//IL_0465: Unknown result type (might be due to invalid IL or missing references)
		//IL_0479: Unknown result type (might be due to invalid IL or missing references)
		//IL_048d: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c6: 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_04ff: 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_0527: Unknown result type (might be due to invalid IL or missing references)
		//IL_054c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0560: Unknown result type (might be due to invalid IL or missing references)
		//IL_0574: Unknown result type (might be due to invalid IL or missing references)
		//IL_0599: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_060e: 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_0647: Unknown result type (might be due to invalid IL or missing references)
		//IL_065b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0680: Unknown result type (might be due to invalid IL or missing references)
		//IL_0694: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_071a: 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_0742: Unknown result type (might be due to invalid IL or missing references)
		//IL_0767: Unknown result type (might be due to invalid IL or missing references)
		//IL_077b: Unknown result type (might be due to invalid IL or missing references)
		//IL_078f: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0801: Unknown result type (might be due to invalid IL or missing references)
		//IL_0815: Unknown result type (might be due to invalid IL or missing references)
		//IL_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_084e: 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_0876: Unknown result type (might be due to invalid IL or missing references)
		//IL_089b: Unknown result type (might be due to invalid IL or missing references)
		//IL_08af: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0910: Unknown result type (might be due to invalid IL or missing references)
		//IL_0935: Unknown result type (might be due to invalid IL or missing references)
		//IL_0949: Unknown result type (might be due to invalid IL or missing references)
		//IL_095d: 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_0996: Unknown result type (might be due to invalid IL or missing references)
		//IL_09aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_09cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a44: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a69: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a7d: 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_0ab6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b17: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b50: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b78: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9d: 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_0bc5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bde: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c06: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c2b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c78: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ced: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d12: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d26: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dac: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dc0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e21: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e93: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ea7: 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_0ee0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f08: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f55: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f7a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fdb: 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_1014: Unknown result type (might be due to invalid IL or missing references)
		//IL_1028: Unknown result type (might be due to invalid IL or missing references)
		//IL_103c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1061: Unknown result type (might be due to invalid IL or missing references)
		//IL_1075: Unknown result type (might be due to invalid IL or missing references)
		//IL_1089: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_10d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_10fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_110f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1123: Unknown result type (might be due to invalid IL or missing references)
		//IL_1148: Unknown result type (might be due to invalid IL or missing references)
		//IL_115c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1170: Unknown result type (might be due to invalid IL or missing references)
		//IL_1195: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_11bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f6: 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_122f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1243: Unknown result type (might be due to invalid IL or missing references)
		//IL_1257: Unknown result type (might be due to invalid IL or missing references)
		//IL_1270: Unknown result type (might be due to invalid IL or missing references)
		//IL_1284: Unknown result type (might be due to invalid IL or missing references)
		//IL_1298: Unknown result type (might be due to invalid IL or missing references)
		//IL_12bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_12d1: 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_130a: Unknown result type (might be due to invalid IL or missing references)
		//IL_131e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1332: Unknown result type (might be due to invalid IL or missing references)
		//IL_1357: Unknown result type (might be due to invalid IL or missing references)
		//IL_136b: Unknown result type (might be due to invalid IL or missing references)
		//IL_137f: Unknown result type (might be due to invalid IL or missing references)
		//IL_13a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_13b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_13cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_13f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1405: Unknown result type (might be due to invalid IL or missing references)
		//IL_1419: Unknown result type (might be due to invalid IL or missing references)
		//IL_143e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1452: Unknown result type (might be due to invalid IL or missing references)
		//IL_1466: Unknown result type (might be due to invalid IL or missing references)
		//IL_148b: Unknown result type (might be due to invalid IL or missing references)
		//IL_149f: Unknown result type (might be due to invalid IL or missing references)
		//IL_14b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_14d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_14ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_1500: Unknown result type (might be due to invalid IL or missing references)
		//IL_1525: Unknown result type (might be due to invalid IL or missing references)
		//IL_1539: Unknown result type (might be due to invalid IL or missing references)
		//IL_154d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1572: Unknown result type (might be due to invalid IL or missing references)
		//IL_1586: Unknown result type (might be due to invalid IL or missing references)
		//IL_159a: Unknown result type (might be due to invalid IL or missing references)
		//IL_15bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_15d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_15e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_160c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1620: Unknown result type (might be due to invalid IL or missing references)
		//IL_1634: Unknown result type (might be due to invalid IL or missing references)
		//IL_1659: Unknown result type (might be due to invalid IL or missing references)
		//IL_166d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1681: Unknown result type (might be due to invalid IL or missing references)
		//IL_16a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_16f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_1707: Unknown result type (might be due to invalid IL or missing references)
		//IL_171b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1740: Unknown result type (might be due to invalid IL or missing references)
		//IL_1754: Unknown result type (might be due to invalid IL or missing references)
		//IL_1768: Unknown result type (might be due to invalid IL or missing references)
		//IL_178d: Unknown result type (might be due to invalid IL or missing references)
		//IL_17a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_17b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_17da: Unknown result type (might be due to invalid IL or missing references)
		//IL_17ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_1802: Unknown result type (might be due to invalid IL or missing references)
		//IL_1827: Unknown result type (might be due to invalid IL or missing references)
		//IL_183b: Unknown result type (might be due to invalid IL or missing references)
		//IL_184f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1874: Unknown result type (might be due to invalid IL or missing references)
		//IL_1888: Unknown result type (might be due to invalid IL or missing references)
		//IL_189c: Unknown result type (might be due to invalid IL or missing references)
		//IL_18b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_18c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_18dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1902: Unknown result type (might be due to invalid IL or missing references)
		//IL_1916: Unknown result type (might be due to invalid IL or missing references)
		//IL_192a: Unknown result type (might be due to invalid IL or missing references)
		//IL_194f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1963: Unknown result type (might be due to invalid IL or missing references)
		//IL_1977: Unknown result type (might be due to invalid IL or missing references)
		//IL_199c: Unknown result type (might be due to invalid IL or missing references)
		//IL_19b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_19c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_19e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_19fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a11: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a36: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a5e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a83: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a97: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aab: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ad0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ae4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1af8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b1d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b31: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b45: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b92: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bb7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bcb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bdf: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c04: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c18: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c51: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c65: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c79: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c9e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cb2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cc6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ceb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d13: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d38: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d4c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d60: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d85: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d99: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dad: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dc6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dda: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dee: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e13: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e27: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e60: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e74: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e88: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ead: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ec1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ed5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1efa: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f0e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f22: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f47: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f94: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fa8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fe1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ff5: Unknown result type (might be due to invalid IL or missing references)
		//IL_2009: Unknown result type (might be due to invalid IL or missing references)
		//IL_202e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2042: Unknown result type (might be due to invalid IL or missing references)
		//IL_2056: Unknown result type (might be due to invalid IL or missing references)
		//IL_207b: Unknown result type (might be due to invalid IL or missing references)
		//IL_208f: Unknown result type (might be due to invalid IL or missing references)
		//IL_20a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_20c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_20dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_20f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_2115: Unknown result type (might be due to invalid IL or missing references)
		//IL_2129: Unknown result type (might be due to invalid IL or missing references)
		//IL_213d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2162: Unknown result type (might be due to invalid IL or missing references)
		//IL_2176: Unknown result type (might be due to invalid IL or missing references)
		//IL_218a: Unknown result type (might be due to invalid IL or missing references)
		//IL_21af: Unknown result type (might be due to invalid IL or missing references)
		//IL_21c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_21d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_21fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_2210: Unknown result type (might be due to invalid IL or missing references)
		//IL_2224: Unknown result type (might be due to invalid IL or missing references)
		//IL_2249: Unknown result type (might be due to invalid IL or missing references)
		//IL_225d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2271: Unknown result type (might be due to invalid IL or missing references)
		//IL_2296: Unknown result type (might be due to invalid IL or missing references)
		//IL_22aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_22be: Unknown result type (might be due to invalid IL or missing references)
		//IL_22e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_22f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_230b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2330: Unknown result type (might be due to invalid IL or missing references)
		//IL_2344: Unknown result type (might be due to invalid IL or missing references)
		//IL_2358: Unknown result type (might be due to invalid IL or missing references)
		//IL_237d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2391: Unknown result type (might be due to invalid IL or missing references)
		//IL_23a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_23ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_23de: Unknown result type (might be due to invalid IL or missing references)
		//IL_23f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_240b: Unknown result type (might be due to invalid IL or missing references)
		//IL_241f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2433: Unknown result type (might be due to invalid IL or missing references)
		//IL_2458: Unknown result type (might be due to invalid IL or missing references)
		//IL_246c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2480: Unknown result type (might be due to invalid IL or missing references)
		//IL_24a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_24b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_24cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_24f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_2506: Unknown result type (might be due to invalid IL or missing references)
		//IL_251a: Unknown result type (might be due to invalid IL or missing references)
		//IL_253f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2553: Unknown result type (might be due to invalid IL or missing references)
		//IL_2567: Unknown result type (might be due to invalid IL or missing references)
		//IL_258c: Unknown result type (might be due to invalid IL or missing references)
		//IL_25a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_25b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_25d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_25ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_2601: Unknown result type (might be due to invalid IL or missing references)
		//IL_2626: Unknown result type (might be due to invalid IL or missing references)
		//IL_263a: Unknown result type (might be due to invalid IL or missing references)
		//IL_264e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2673: Unknown result type (might be due to invalid IL or missing references)
		//IL_2687: Unknown result type (might be due to invalid IL or missing references)
		//IL_269b: Unknown result type (might be due to invalid IL or missing references)
		//IL_26c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_26d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_26e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_270d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2721: Unknown result type (might be due to invalid IL or missing references)
		//IL_2735: Unknown result type (might be due to invalid IL or missing references)
		//IL_275a: Unknown result type (might be due to invalid IL or missing references)
		//IL_276e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2782: Unknown result type (might be due to invalid IL or missing references)
		//IL_27a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_27bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_27cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_27f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_2808: Unknown result type (might be due to invalid IL or missing references)
		//IL_281c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2841: Unknown result type (might be due to invalid IL or missing references)
		//IL_2855: Unknown result type (might be due to invalid IL or missing references)
		//IL_2869: Unknown result type (might be due to invalid IL or missing references)
		//IL_288e: Unknown result type (might be due to invalid IL or missing references)
		//IL_28a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_28b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_28db: Unknown result type (might be due to invalid IL or missing references)
		//IL_28ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_2903: Unknown result type (might be due to invalid IL or missing references)
		//IL_2928: Unknown result type (might be due to invalid IL or missing references)
		//IL_293c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2950: Unknown result type (might be due to invalid IL or missing references)
		//IL_2975: Unknown result type (might be due to invalid IL or missing references)
		//IL_2989: Unknown result type (might be due to invalid IL or missing references)
		//IL_299d: Unknown result type (might be due to invalid IL or missing references)
		//IL_29c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_29d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_29ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a0f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a23: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a37: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a5c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a70: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a84: Unknown result type (might be due to invalid IL or missing references)
		//IL_2aa9: Unknown result type (might be due to invalid IL or missing references)
		//IL_2abd: Unknown result type (might be due to invalid IL or missing references)
		//IL_2ad1: Unknown result type (might be due to invalid IL or missing references)
		//IL_2af6: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b0a: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b1e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b43: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b57: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b6b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b90: Unknown result type (might be due to invalid IL or missing references)
		//IL_2ba4: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bb8: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bdd: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bf1: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c05: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c2a: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c3e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c52: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c77: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c9f: Unknown result type (might be due to invalid IL or missing references)
		itemDisplayRules = new List<KeyAssetRuleGroup>();
		Debug.LogWarning((object)Items.AlienHead);
		NewIDRS((Object)(object)Items.AlienHead, "Belly_Front", new Vector3(0.00182f, 0.00342f, 0.00234f), new Vector3(359.1576f, 358.864f, 189.4395f), new Vector3(0.014f, 0.014f, 0.014f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ArmorPlate, "ArmHand_Mid_R", new Vector3(-0.00147f, 0.00013f, -0.00036f), new Vector3(4.56846f, 271.1411f, 296.8541f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ArmorReductionOnHit, "Head", new Vector3(0.00764f, 0f, 0.0007f), new Vector3(0.46192f, 19.16586f, 93.0892f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.AttackSpeedAndMoveSpeed, "ArmHand_Mid_L", new Vector3(-0.00034f, -0.00014f, -0.00085f), new Vector3(27.50353f, 169.1966f, 277.0109f), new Vector3(0.0025f, 0.0025f, 0.0025f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.AttackSpeedOnCrit, "Head", new Vector3(-0.00603f, 0f, 0.0047f), new Vector3(350.4883f, 245.5627f, 276.35f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.AutoCastEquipment, "ArmHand_Mid_L", new Vector3(0.00288f, -0.00136f, 0.00045f), new Vector3(312.3437f, 140.602f, 122.741f), new Vector3(0.0075f, 0.0075f, 0.0075f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Bandolier, "Spine", new Vector3(0.00114f, 0f, 0.00806f), new Vector3(-2E-05f, 24.884f, 1E-05f), new Vector3(0.011f, 0.012f, 0.012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BarrierOnKill, "Spine_02", new Vector3(-0.00312f, 0.00277f, 0.00113f), new Vector3(15.00172f, 163.9141f, 305.4392f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BarrierOnOverHeal, "Arm_Mid_L", new Vector3(-0.00045f, -0.00104f, 0.00455f), new Vector3(31.99717f, 94.43058f, 261.5672f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Bear, "Head", new Vector3(0.00665f, 9E-05f, 0.00178f), new Vector3(346.5194f, 86.26639f, 90.73903f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BearVoid, "Head", new Vector3(0.00665f, 9E-05f, 0.00178f), new Vector3(346.5194f, 86.26639f, 90.73903f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BeetleGland, "Belly_Front", new Vector3(0.00402f, -0.00352f, 0.00286f), new Vector3(0f, 0f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Behemoth, "Head", new Vector3(0.00698f, 0.00097f, 0.00345f), new Vector3(52.12992f, 350.2646f, 9.44377f), new Vector3(0.001f, 0.001f, 0.001f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHit, "Shoulder_Upper_L", new Vector3(0.00355f, -0.00126f, 0.00061f), new Vector3(331.272f, 260.1838f, 11.10075f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHitAndExplode, "Belly_Front", new Vector3(0.00349f, -0.00351f, 0.00085f), new Vector3(326.7888f, 277.0156f, 269.7617f), new Vector3(0.001f, 0.001f, 0.001f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BleedOnHitVoid, "Shoulder_Upper_L", new Vector3(0.00355f, -0.00126f, 0.00061f), new Vector3(331.272f, 260.1838f, 11.10075f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BonusGoldPackOnKill, "Spine", new Vector3(0.00804f, 0f, 0.00574f), new Vector3(6.38215f, 352.6474f, 86.65365f), new Vector3(0.0015f, 0.0015f, 0.0015f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BossDamageBonus, "Shoulder_Mid_R", new Vector3(-0.00293f, -0.00099f, 0.00036f), new Vector3(308.401f, 124.268f, 20.3749f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.BounceNearby, "Head", new Vector3(0.00457f, 0f, -0.00532f), new Vector3(355.3311f, 256.7063f, 269.6892f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ChainLightning, "Head", new Vector3(0.00595f, 0f, -0.00325f), new Vector3(356.6661f, 110.158f, 91.93118f), new Vector3(0.0075f, 0.0075f, 0.0075f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ChainLightningVoid, "Head", new Vector3(0.00595f, 0f, -0.00325f), new Vector3(356.6661f, 110.158f, 91.93118f), new Vector3(0.0075f, 0.0075f, 0.0075f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Clover, "Head", new Vector3(0.0022f, -0.00218f, 0.00536f), new Vector3(330.5337f, 353.3618f, 212.1291f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.CloverVoid, "Head", new Vector3(0.0022f, -0.00218f, 0.00536f), new Vector3(330.5337f, 353.3618f, 212.1291f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritDamage, "Head", new Vector3(-0.00413f, -3E-05f, 0.00129f), new Vector3(87.72402f, 336.3274f, 344.9811f), new Vector3(0.003f, 0.001f, 0.001f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritGlasses, "Head", new Vector3(-0.00695f, 0f, 0.00113f), new Vector3(356.9401f, 235.3044f, 272.4265f), new Vector3(0.0022f, 0.0022f, 0.0022f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.CritGlassesVoid, "Head", new Vector3(-0.00695f, 0f, 0.00113f), new Vector3(356.9401f, 235.3044f, 272.4265f), new Vector3(0.0022f, 0.0022f, 0.0022f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Crowbar, "Head", new Vector3(0.00567f, -1E-05f, -0.00344f), new Vector3(2.09155f, 296.3242f, 270.2999f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Dagger, "Head", new Vector3(0.0038f, 0f, 0.00358f), new Vector3(2.91801f, 16.00023f, 277.1167f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.DeathMark, "ArmHand_Upper_R", new Vector3(-0.00176f, 0.00034f, -0.00071f), new Vector3(2.54221f, 236.0539f, 268.9665f), new Vector3(0.0003f, 0.0003f, 0.0003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ElementalRingVoid, "ArmHand_Upper_R", new Vector3(-0.00381f, -0.00028f, 9E-05f), new Vector3(1.70416f, 338.5232f, 27.74804f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.EnergizedOnEquipmentUse, "Belly_Front", new Vector3(0.00397f, -0.00421f, 3E-05f), new Vector3(295.332f, 205.9062f, 115.2511f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.EquipmentMagazine, "Spine", new Vector3(0.00467f, 0.00101f, 0.00509f), new Vector3(74.56184f, 186.5981f, 231.0875f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.EquipmentMagazineVoid, "Spine", new Vector3(0.00467f, 0.00101f, 0.00509f), new Vector3(74.56184f, 186.5981f, 231.0875f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExecuteLowHealthElite, "Belly_Front", new Vector3(0.00697f, 0.00021f, 0.00117f), new Vector3(-4E-05f, 290.6378f, 99.11838f), new Vector3(0.0023f, 0.0023f, 0.0023f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExplodeOnDeath, "Belly_Front", new Vector3(0.00374f, 0.00418f, 0.00107f), new Vector3(67.5601f, 183.8469f, 175.7374f), new Vector3(0.0011f, 0.0011f, 0.0011f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExplodeOnDeathVoid, "Belly_Front", new Vector3(0.00374f, 0.00418f, 0.00107f), new Vector3(67.5601f, 183.8469f, 175.7374f), new Vector3(0.0011f, 0.0011f, 0.0011f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExtraLife, "Head", new Vector3(0.00568f, 0f, 0.00343f), new Vector3(354.6544f, 68.28195f, 85.56493f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ExtraLifeVoid, "Head", new Vector3(0.00568f, 0f, 0.00343f), new Vector3(354.6544f, 68.28195f, 85.56493f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.FallBoots, "ArmHand_Mid_R", new Vector3(0f, 0f, 0f), new Vector3(349.0408f, 201.9262f, 87.03689f), new Vector3(0.002f, 0.002f, 0.002f), "ArmHand_Mid_L", new Vector3(0f, 0f, 0f), new Vector3(10.68244f, 171.2061f, 77.33012f), new Vector3(0.002f, 0.002f, 0.002f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Feather, "Shoulder_Upper_L", new Vector3(0.00155f, 0.00066f, 0.00011f), new Vector3(337.956f, 333.8131f, 244.1128f), new Vector3(0.0003f, 0.0003f, 0.0003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.FireRing, "ArmHand_Upper_R", new Vector3(-0.00392f, -0.00041f, 0.00043f), new Vector3(4.8612f, 2.85881f, 359.5432f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.FireballsOnHit, "ArmFore_Upper_R", new Vector3(-0.00266f, 0.00036f, 0.00093f), new Vector3(1.1831f, 269.8878f, 323.1844f), new Vector3(0.0012f, 0.0012f, 0.0012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Firework, "Head", new Vector3(0.00763f, 0f, 0.00157f), new Vector3(17.40345f, 352.3185f, 285.0611f), new Vector3(0.009f, 0.009f, 0.009f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.FlatHealth, "Spine", new Vector3(-0.00339f, 0f, 0.01067f), new Vector3(6.43462f, 293.3555f, 278.6449f), new Vector3(0.002f, 0.002f, 0.001f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.FragileDamageBonus, "ArmHand_Upper_L", new Vector3(0.00026f, 0.00056f, -0.00119f), new Vector3(22.91141f, 316.5986f, 65.91881f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.FreeChest, "Belly_Front", new Vector3(0.00582f, 0.00402f, -0.00071f), new Vector3(11.43129f, 94.09106f, 41.1019f), new Vector3(0.006f, 0.006f, 0.006f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.GhostOnKill, "Head", new Vector3(-0.00629f, 0f, 0.00154f), new Vector3(359.1055f, 253.2718f, 269.4428f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.GoldOnHit, "Head", new Vector3(-0.00637f, 0f, 0.0019f), new Vector3(359.8925f, 229.5281f, 272.3622f), new Vector3(0.007f, 0.007f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.GoldOnHurt, "Arm_Upper_L", new Vector3(0.00224f, -0.0004f, -0.00022f), new Vector3(38.21292f, 14.21241f, 279.4929f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "Shoulder_Upper_R", new Vector3(-0.00228f, -0.00116f, -0.00131f), new Vector3(3.48568f, 315.2841f, 6.23538f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HalfSpeedDoubleHealth, "Shoulder_Upper_L", new Vector3(0.00192f, 9E-05f, 0.00099f), new Vector3(11.93426f, 327.161f, 185.4348f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HeadHunter, "Belly_Front", new Vector3(0.00157f, 0f, 0.0026f), new Vector3(3.04348f, 294.0027f, 269.5886f), new Vector3(0.012f, 0.0003f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealOnCrit, "Head", new Vector3(0.00637f, 0f, 0.001f), new Vector3(324.4932f, 353.8308f, 282.7634f), new Vector3(0.006f, 0.006f, 0.006f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealWhileSafe, "Head", new Vector3(0.00387f, -0.00037f, 0.00178f), new Vector3(312.0209f, 44.54546f, 176.5471f), new Vector3(0.002f, 0.002f, 0.002f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.HealingPotion, "Belly_Front", new Vector3(0.00375f, 0.00374f, 0.00221f), new Vector3(359.8623f, 13.62276f, 86.70301f), new Vector3(0.0015f, 0.0015f, 0.0015f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Hoof, "Tentacle_Center_R", new Vector3(-0.0017f, -2E-05f, -0.00061f), new Vector3(356.7545f, 82.23079f, 89.58603f), new Vector3(0.00095f, 0.00095f, 0.00085f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.IceRing, "ArmHand_Upper_R", new Vector3(-0.00376f, 0.00049f, 8E-05f), new Vector3(359.5536f, 333.3149f, 357.1479f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.IgniteOnKill, "Belly_Front", new Vector3(0.00377f, 0.00441f, 0f), new Vector3(2.8215f, 302.054f, 243.0057f), new Vector3(0.009f, 0.009f, 0.009f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.ImmuneToDebuff, "Belly_Front", new Vector3(0.00029f, 0f, 0.0025f), new Vector3(0.52665f, 264.1859f, 269.4799f), new Vector3(0.02f, 0.01f, 0.025f), (LimbFlags)0);
		NewDualIDRS((Object)(object)Items.IncreaseHealing, "Head", new Vector3(-0.00534f, -0.00163f, 0.00325f), new Vector3(63.94388f, 37.40357f, 107.1517f), new Vector3(0.007f, 0.007f, 0.007f), "Head", new Vector3(-0.00458f, 0.00189f, 0.00377f), new Vector3(318.3052f, 243.1753f, 298.9056f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Infusion, "Belly_Front", new Vector3(0.00741f, -0.00092f, 0.00052f), new Vector3(356.293f, 192.6781f, 264.7535f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.JumpBoost, "Head", new Vector3(-0.00018f, 0f, 0.0002f), new Vector3(6.59039f, 248.1571f, 271.8253f), new Vector3(