Decompiled source of Abathur v1.0.1

Abathur.dll

Decompiled 2 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, false);
		}
		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 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 void LateSetup(ReadOnlyArray<ReadOnlyContentPack> obj)
	{
		ItemDisplays.SetIDRS();
	}

	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 Vector3 vec = Vector3.one;

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

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

	public static void RegisterDisplays()
	{
		itemDisplayRuleSet = ScriptableObject.CreateInstance<ItemDisplayRuleSet>();
		((Object)itemDisplayRuleSet).name = "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_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Unknown result type (might be due to invalid IL or missing references)
		//IL_0085: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_00be: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_010b: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0133: Unknown result type (might be due to invalid IL or missing references)
		//IL_0158: 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_0180: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0206: Unknown result type (might be due to invalid IL or missing references)
		//IL_021a: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0253: Unknown result type (might be due to invalid IL or missing references)
		//IL_0267: Unknown result type (might be due to invalid IL or missing references)
		//IL_028c: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0301: Unknown result type (might be due to invalid IL or missing references)
		//IL_0326: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		//IL_034e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Unknown result type (might be due to invalid IL or missing references)
		//IL_0387: Unknown result type (might be due to invalid IL or missing references)
		//IL_039b: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_040d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0421: Unknown result type (might be due to invalid IL or missing references)
		//IL_0435: Unknown result type (might be due to invalid IL or missing references)
		//IL_045a: Unknown result type (might be due to invalid IL or missing references)
		//IL_046e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0482: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_04cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0508: Unknown result type (might be due to invalid IL or missing references)
		//IL_051c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0541: Unknown result type (might be due to invalid IL or missing references)
		//IL_0555: Unknown result type (might be due to invalid IL or missing references)
		//IL_0569: Unknown result type (might be due to invalid IL or missing references)
		//IL_058e: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05db: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_0603: Unknown result type (might be due to invalid IL or missing references)
		//IL_0628: Unknown result type (might be due to invalid IL or missing references)
		//IL_063c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0650: Unknown result type (might be due to invalid IL or missing references)
		//IL_0675: Unknown result type (might be due to invalid IL or missing references)
		//IL_0689: Unknown result type (might be due to invalid IL or missing references)
		//IL_069d: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_070f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0723: Unknown result type (might be due to invalid IL or missing references)
		//IL_0737: Unknown result type (might be due to invalid IL or missing references)
		//IL_075c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0770: Unknown result type (might be due to invalid IL or missing references)
		//IL_0784: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_080a: Unknown result type (might be due to invalid IL or missing references)
		//IL_081e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0843: Unknown result type (might be due to invalid IL or missing references)
		//IL_0857: Unknown result type (might be due to invalid IL or missing references)
		//IL_086b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0890: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0905: Unknown result type (might be due to invalid IL or missing references)
		//IL_092a: Unknown result type (might be due to invalid IL or missing references)
		//IL_093e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0952: Unknown result type (might be due to invalid IL or missing references)
		//IL_0977: Unknown result type (might be due to invalid IL or missing references)
		//IL_098b: Unknown result type (might be due to invalid IL or missing references)
		//IL_099f: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_09d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a25: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a39: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a72: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a86: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0abf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b59: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ba6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bba: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c34: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c48: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c81: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c95: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cba: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cce: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d2f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d54: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d68: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d7c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0da1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dc9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dee: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e4f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e88: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0efd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f22: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1009: Unknown result type (might be due to invalid IL or missing references)
		//IL_101d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1031: Unknown result type (might be due to invalid IL or missing references)
		//IL_1056: Unknown result type (might be due to invalid IL or missing references)
		//IL_106a: Unknown result type (might be due to invalid IL or missing references)
		//IL_107e: Unknown result type (might be due to invalid IL or missing references)
		//IL_10a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_10cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1104: Unknown result type (might be due to invalid IL or missing references)
		//IL_1118: Unknown result type (might be due to invalid IL or missing references)
		//IL_113d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1151: Unknown result type (might be due to invalid IL or missing references)
		//IL_1165: Unknown result type (might be due to invalid IL or missing references)
		//IL_118a: Unknown result type (might be due to invalid IL or missing references)
		//IL_119e: Unknown result type (might be due to invalid IL or missing references)
		//IL_11b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_11d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_11eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1224: Unknown result type (might be due to invalid IL or missing references)
		//IL_1238: Unknown result type (might be due to invalid IL or missing references)
		//IL_124c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1265: Unknown result type (might be due to invalid IL or missing references)
		//IL_1279: Unknown result type (might be due to invalid IL or missing references)
		//IL_128d: Unknown result type (might be due to invalid IL or missing references)
		//IL_12b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_12c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_12da: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_1313: Unknown result type (might be due to invalid IL or missing references)
		//IL_1327: Unknown result type (might be due to invalid IL or missing references)
		//IL_134c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1360: Unknown result type (might be due to invalid IL or missing references)
		//IL_1374: Unknown result type (might be due to invalid IL or missing references)
		//IL_1399: Unknown result type (might be due to invalid IL or missing references)
		//IL_13ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_13c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_13e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_13fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_140e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1433: Unknown result type (might be due to invalid IL or missing references)
		//IL_1447: Unknown result type (might be due to invalid IL or missing references)
		//IL_145b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1480: Unknown result type (might be due to invalid IL or missing references)
		//IL_1494: Unknown result type (might be due to invalid IL or missing references)
		//IL_14a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_14cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_14e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_151a: Unknown result type (might be due to invalid IL or missing references)
		//IL_152e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1542: Unknown result type (might be due to invalid IL or missing references)
		//IL_1567: Unknown result type (might be due to invalid IL or missing references)
		//IL_157b: Unknown result type (might be due to invalid IL or missing references)
		//IL_158f: Unknown result type (might be due to invalid IL or missing references)
		//IL_15b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_15c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_15dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1601: Unknown result type (might be due to invalid IL or missing references)
		//IL_1615: Unknown result type (might be due to invalid IL or missing references)
		//IL_1629: Unknown result type (might be due to invalid IL or missing references)
		//IL_164e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1662: Unknown result type (might be due to invalid IL or missing references)
		//IL_1676: Unknown result type (might be due to invalid IL or missing references)
		//IL_169b: Unknown result type (might be due to invalid IL or missing references)
		//IL_16af: Unknown result type (might be due to invalid IL or missing references)
		//IL_16c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_16e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_16fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1710: Unknown result type (might be due to invalid IL or missing references)
		//IL_1735: Unknown result type (might be due to invalid IL or missing references)
		//IL_1749: Unknown result type (might be due to invalid IL or missing references)
		//IL_175d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1782: Unknown result type (might be due to invalid IL or missing references)
		//IL_1796: Unknown result type (might be due to invalid IL or missing references)
		//IL_17aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_17cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_17e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_17f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_181c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1830: Unknown result type (might be due to invalid IL or missing references)
		//IL_1844: Unknown result type (might be due to invalid IL or missing references)
		//IL_1869: Unknown result type (might be due to invalid IL or missing references)
		//IL_187d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1891: Unknown result type (might be due to invalid IL or missing references)
		//IL_18aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_18be: Unknown result type (might be due to invalid IL or missing references)
		//IL_18d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_18f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_190b: Unknown result type (might be due to invalid IL or missing references)
		//IL_191f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1944: Unknown result type (might be due to invalid IL or missing references)
		//IL_1958: Unknown result type (might be due to invalid IL or missing references)
		//IL_196c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1991: Unknown result type (might be due to invalid IL or missing references)
		//IL_19a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_19b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_19de: Unknown result type (might be due to invalid IL or missing references)
		//IL_19f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a06: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a2b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a53: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a78: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aa0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ac5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ad9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aed: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b12: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b26: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b73: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b87: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bac: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bc0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bd4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bf9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c21: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c46: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c93: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ca7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ce0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1cf4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d08: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d41: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d55: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d7a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1da2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dcf: Unknown result type (might be due to invalid IL or missing references)
		//IL_1de3: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e08: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e30: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e55: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e69: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e7d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ea2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1eb6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1eca: Unknown result type (might be due to invalid IL or missing references)
		//IL_1eef: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f03: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f17: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f3c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f50: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f64: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f89: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fb1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fd6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fea: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ffe: Unknown result type (might be due to invalid IL or missing references)
		//IL_2023: Unknown result type (might be due to invalid IL or missing references)
		//IL_2037: Unknown result type (might be due to invalid IL or missing references)
		//IL_204b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2070: Unknown result type (might be due to invalid IL or missing references)
		//IL_2084: Unknown result type (might be due to invalid IL or missing references)
		//IL_2098: Unknown result type (might be due to invalid IL or missing references)
		//IL_20bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_20d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_20e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_210a: Unknown result type (might be due to invalid IL or missing references)
		//IL_211e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2132: Unknown result type (might be due to invalid IL or missing references)
		//IL_2157: Unknown result type (might be due to invalid IL or missing references)
		//IL_216b: Unknown result type (might be due to invalid IL or missing references)
		//IL_217f: Unknown result type (might be due to invalid IL or missing references)
		//IL_21a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_21b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_21cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_21f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_2205: Unknown result type (might be due to invalid IL or missing references)
		//IL_2219: Unknown result type (might be due to invalid IL or missing references)
		//IL_223e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2252: Unknown result type (might be due to invalid IL or missing references)
		//IL_2266: Unknown result type (might be due to invalid IL or missing references)
		//IL_228b: Unknown result type (might be due to invalid IL or missing references)
		//IL_229f: Unknown result type (might be due to invalid IL or missing references)
		//IL_22b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_22d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_22ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_2300: Unknown result type (might be due to invalid IL or missing references)
		//IL_2325: Unknown result type (might be due to invalid IL or missing references)
		//IL_2339: Unknown result type (might be due to invalid IL or missing references)
		//IL_234d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2372: Unknown result type (might be due to invalid IL or missing references)
		//IL_2386: Unknown result type (might be due to invalid IL or missing references)
		//IL_239a: Unknown result type (might be due to invalid IL or missing references)
		//IL_23bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_23d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_23e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_2400: Unknown result type (might be due to invalid IL or missing references)
		//IL_2414: Unknown result type (might be due to invalid IL or missing references)
		//IL_2428: Unknown result type (might be due to invalid IL or missing references)
		//IL_244d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2461: Unknown result type (might be due to invalid IL or missing references)
		//IL_2475: Unknown result type (might be due to invalid IL or missing references)
		//IL_249a: Unknown result type (might be due to invalid IL or missing references)
		//IL_24ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_24c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_24e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_24fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_250f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2534: Unknown result type (might be due to invalid IL or missing references)
		//IL_2548: Unknown result type (might be due to invalid IL or missing references)
		//IL_255c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2581: Unknown result type (might be due to invalid IL or missing references)
		//IL_2595: Unknown result type (might be due to invalid IL or missing references)
		//IL_25a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_25ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_25e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_25f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_261b: Unknown result type (might be due to invalid IL or missing references)
		//IL_262f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2643: Unknown result type (might be due to invalid IL or missing references)
		//IL_2668: Unknown result type (might be due to invalid IL or missing references)
		//IL_267c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2690: Unknown result type (might be due to invalid IL or missing references)
		//IL_26b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_26c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_26dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_2702: Unknown result type (might be due to invalid IL or missing references)
		//IL_2716: Unknown result type (might be due to invalid IL or missing references)
		//IL_272a: Unknown result type (might be due to invalid IL or missing references)
		//IL_274f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2763: Unknown result type (might be due to invalid IL or missing references)
		//IL_2777: Unknown result type (might be due to invalid IL or missing references)
		//IL_279c: Unknown result type (might be due to invalid IL or missing references)
		//IL_27b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_27c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_27e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_27fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_2811: Unknown result type (might be due to invalid IL or missing references)
		//IL_2836: Unknown result type (might be due to invalid IL or missing references)
		//IL_284a: Unknown result type (might be due to invalid IL or missing references)
		//IL_285e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2883: Unknown result type (might be due to invalid IL or missing references)
		//IL_2897: Unknown result type (might be due to invalid IL or missing references)
		//IL_28ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_28d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_28e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_28f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_291d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2931: Unknown result type (might be due to invalid IL or missing references)
		//IL_2945: Unknown result type (might be due to invalid IL or missing references)
		//IL_296a: Unknown result type (might be due to invalid IL or missing references)
		//IL_297e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2992: Unknown result type (might be due to invalid IL or missing references)
		//IL_29b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_29cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_29df: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a04: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a18: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a51: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a65: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a79: Unknown result type (might be due to invalid IL or missing references)
		//IL_2a9e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2ab2: Unknown result type (might be due to invalid IL or missing references)
		//IL_2ac6: Unknown result type (might be due to invalid IL or missing references)
		//IL_2aeb: Unknown result type (might be due to invalid IL or missing references)
		//IL_2aff: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b13: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b38: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b4c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b60: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b85: Unknown result type (might be due to invalid IL or missing references)
		//IL_2b99: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bad: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bd2: Unknown result type (might be due to invalid IL or missing references)
		//IL_2be6: Unknown result type (might be due to invalid IL or missing references)
		//IL_2bfa: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c33: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c47: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c80: Unknown result type (might be due to invalid IL or missing references)
		//IL_2c94: Unknown result type (might be due to invalid IL or missing references)
		itemDisplayRules = new List<KeyAssetRuleGroup>();
		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(0.012f, 0.012f, 0.012f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.KillEliteFrenzy, "Head", new Vector3(-0.00061f, -0.00057f, 0.00438f), new Vector3(79.03535f, 78.28177f, 89.23154f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.Knurl, "Shoulder_Upper_R", new Vector3(-0.00207f, 0.00053f, -4E-05f), new Vector3(281.0308f, 3.36024f, 129.9809f), new Vector3(0.0025f, 0.0025f, 0.0025f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.LaserTurbine, "Shoulder_Upper_R", new Vector3(-0.00142f, -0.00083f, -0.00142f), new Vector3(30.65343f, 14.79456f, 3.17379f), new Vector3(0.006f, 0.006f, 0.006f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarDagger, "Head", new Vector3(0.0066f, 0f, 0.0021f), new Vector3(8.3729f, 176.9f, 263.0053f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarPrimaryReplacement, "Head", new Vector3(-0.00693f, 6E-05f, 0.00172f), new Vector3(11.56415f, 352.9864f, 272.4039f), new Vector3(0.0025f, 0.0025f, 0.0025f), (LimbFlags)0);
		NewIDRS((Object)(object)Items.LunarSecondaryReplacement, "Head", new Vector3(0.00514f