Decompiled source of RMOR REFORGED v1.3.2

plugins/RMOR_Reforged/RMORMod.dll

Decompiled 6 months ago
using System;
using System.Collections;
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 AncientScepter;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using EmotesAPI;
using EntityStates;
using EntityStates.Commando.CommandoWeapon;
using EntityStates.RMOR;
using EntityStates.RMOR.Emotes;
using EntityStates.RMOR.Primary;
using EntityStates.RMOR.Secondary;
using EntityStates.RMOR.Special;
using EntityStates.RMOR.Utility;
using EntityStates.Toolbot;
using HG;
using HG.BlendableTypes;
using JetBrains.Annotations;
using NS_KingKombatArena;
using On.RoR2;
using R2API;
using R2API.Utils;
using RMORMod;
using RMORMod.Content;
using RMORMod.Content.RMORSurvivor;
using RMORMod.Content.RMORSurvivor.Components.Body;
using RMORMod.Content.RMORSurvivor.Components.DroneProjectile;
using RMORMod.Content.RMORSurvivor.Components.Master;
using RMORMod.Content.RMORSurvivor.Components.Projectiles;
using RMORMod.Content.Shared;
using RMORMod.Content.Shared.Components.Body;
using RMORMod.Modules;
using RMORMod.Modules.Characters;
using RMORMod.Modules.Survivors;
using RMORMod.SkillStates.BaseStates;
using RMOR_Reforged.Content.RMORSurvivor;
using Rewired.ComponentControls.Effects;
using RiskOfOptions;
using RiskOfOptions.Options;
using RoR2;
using RoR2.Achievements;
using RoR2.Audio;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Skills;
using TILER2;
using TMPro;
using ThinkInvisible.ClassicItems;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using Zio.FileSystems;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("RMORMod")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+9c28030bffab282ebdf0e25079dd39832c1649ff")]
[assembly: AssemblyProduct("RMORMod")]
[assembly: AssemblyTitle("RMORMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: UnverifiableCode]
namespace EntityStates.RMOR
{
	public class RMORMainState : GenericCharacterMain
	{
		public LocalUser localUser;

		public override void OnEnter()
		{
			((GenericCharacterMain)this).OnEnter();
			FindLocalUser();
		}

		private void FindLocalUser()
		{
			if (localUser != null || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				return;
			}
			foreach (LocalUser readOnlyLocalUsers in LocalUserManager.readOnlyLocalUsersList)
			{
				if ((Object)(object)readOnlyLocalUsers.cachedBody == (Object)(object)((EntityState)this).characterBody)
				{
					localUser = readOnlyLocalUsers;
					break;
				}
			}
		}

		public override void FixedUpdate()
		{
			((GenericCharacterMain)this).FixedUpdate();
			FindLocalUser();
			if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded && localUser != null && !localUser.isUIFocused)
			{
				if (Config.GetKeyPressed(Config.KeybindEmote1))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new Sit(), (InterruptPriority)0);
				}
				else if (Config.GetKeyPressed(Config.KeybindEmote2))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new Spin(), (InterruptPriority)0);
				}
				else if (Config.GetKeyPressed(Config.KeybindEmoteCSS))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new MenuPose(), (InterruptPriority)0);
				}
			}
		}
	}
}
namespace EntityStates.RMOR.Utility
{
	public class BeginFocus : BeginOverclock
	{
		public static Texture2D texGaugeNemesis;

		public static Texture2D texGaugeArrowNemesis;

		public new static Material overlayMaterial;

		public override void LoadStats()
		{
			cancelDef = SkillDefs.UtilityOverclockCancel;
			buffDef = RMORMod.Content.Shared.Buffs.RMORFocus;
			gaugeInternal = texGaugeNemesis;
			gaugeArrowInternal = texGaugeArrowNemesis;
			internalOverlayMaterial = overlayMaterial;
		}
	}
	public class BeginFortify : BeginOverclock
	{
		public static Texture2D texGaugeFortify;

		public static Texture2D texGaugeArrowFortify;

		public new static Material overlayMaterial;

		private float barrierTimer;

		public override void LoadStats()
		{
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			cancelDef = SkillDefs.UtilityOverclockCancel;
			buffDef = RMORMod.Content.Shared.Buffs.Fortify;
			gaugeInternal = texGaugeFortify;
			gaugeArrowInternal = texGaugeArrowFortify;
			internalOverlayMaterial = overlayMaterial;
			internalOverlayMaterial.SetTexture("_RemapTex", Assets.mainAssetBundle.LoadAsset<Texture>("texFortifyColor"));
			internalOverlayMaterial.SetColor("_TintColor", new Color(0f, 0.6f, 1f));
			buffDuration = 3f;
		}

		public override void FixedUpdate()
		{
			barrierTimer += 1f;
			if (barrierTimer % 5f == 0f)
			{
				((EntityState)this).healthComponent.AddBarrier(1f);
			}
			base.FixedUpdate();
		}
	}
	public class BeginOverclock : BaseState
	{
		public float buffDuration = 4f;

		public BuffDef buffDef;

		public string startSoundString = "Play_MULT_shift_start";

		public string endSoundString = "Play_MULT_shift_end";

		public SkillDef cancelDef;

		private Animator modelAnimator;

		public float stopwatch;

		private float jetFireTime;

		private float jetStopwatch;

		private float timerSinceComplete;

		private bool beginExit;

		private int startStocks;

		private Transform leftJet;

		private Transform rightJet;

		private TemporaryOverlay tempOverlay;

		private CharacterModel characterModel;

		public static GameObject jetEffectPrefab;

		public static float baseExitDuration = 0.3f;

		public static float shortHopVelocity = 12f;

		public static float jetFireFrequency = 6f;

		public Material internalOverlayMaterial;

		public static Material overlayMaterial;

		public OverclockController overclockController;

		private GenericSkill skillSlot;

		public Texture2D gaugeInternal;

		public Texture2D gaugeArrowInternal;

		public static Texture2D texGauge;

		public static Texture2D texGaugeArrow;

		public static event Action<BeginOverclock> onAuthorityFixedUpdateGlobal;

		public override void OnEnter()
		{
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0209: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			((BaseState)this).OnEnter();
			LoadStats();
			modelAnimator = ((EntityState)this).GetModelAnimator();
			if (Object.op_Implicit((Object)(object)modelAnimator))
			{
				((EntityState)this).PlayAnimation("Overclock, Override", "SprintFWD");
			}
			overclockController = ((EntityState)this).gameObject.GetComponent<OverclockController>();
			if (((EntityState)this).isAuthority)
			{
				if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && shortHopVelocity > 0f)
				{
					((BaseState)this).SmallHop(((EntityState)this).characterMotor, shortHopVelocity);
				}
				if (Object.op_Implicit((Object)(object)overclockController))
				{
					overclockController.StartOverclock(gaugeInternal, gaugeArrowInternal);
				}
			}
			if (NetworkServer.active)
			{
				BuffDef val = buffDef;
				if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.HasBuff(val))
				{
					((EntityState)this).characterBody.AddBuff(val);
				}
			}
			Util.PlaySound(startSoundString, ((EntityState)this).gameObject);
			skillSlot = (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) ? ((EntityState)this).skillLocator.utility : null);
			if (Object.op_Implicit((Object)(object)skillSlot))
			{
				startStocks = skillSlot.stock;
				skillSlot.SetSkillOverride((object)this, cancelDef, (SkillOverridePriority)4);
				skillSlot.stock = Mathf.Min(skillSlot.maxStock, startStocks + 1);
			}
			jetFireTime = 1f / jetFireFrequency;
			jetStopwatch = 0f;
			ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator();
			if (Object.op_Implicit((Object)(object)modelChildLocator))
			{
				leftJet = modelChildLocator.FindChild("Jetpack.L");
				rightJet = modelChildLocator.FindChild("Jetpack.R");
				GameObject obj = Object.Instantiate<GameObject>(jetEffectPrefab, leftJet);
				Transform transform = obj.transform;
				transform.localRotation *= Quaternion.Euler(0f, -60f, 0f);
				Transform transform2 = obj.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject obj2 = Object.Instantiate<GameObject>(jetEffectPrefab, rightJet);
				Transform transform3 = obj2.transform;
				transform3.localRotation *= Quaternion.Euler(0f, 60f, 0f);
				Transform transform4 = obj2.transform;
				transform4.localPosition += new Vector3(0f, 0.6f, 0f);
			}
			if (Object.op_Implicit((Object)(object)internalOverlayMaterial) && Object.op_Implicit((Object)(object)((EntityState)this).modelLocator) && Object.op_Implicit((Object)(object)((EntityState)this).modelLocator.modelTransform) && Object.op_Implicit((Object)(object)((Component)((EntityState)this).modelLocator.modelTransform).gameObject))
			{
				characterModel = ((Component)((EntityState)this).modelLocator.modelTransform).gameObject.GetComponent<CharacterModel>();
				if (Object.op_Implicit((Object)(object)characterModel))
				{
					tempOverlay = ((Component)characterModel).gameObject.AddComponent<TemporaryOverlay>();
					tempOverlay.duration = float.PositiveInfinity;
					tempOverlay.animateShaderAlpha = true;
					tempOverlay.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
					tempOverlay.destroyComponentOnEnd = true;
					tempOverlay.originalMaterial = internalOverlayMaterial;
					tempOverlay.AddToCharacerModel(characterModel);
				}
			}
		}

		public virtual void LoadStats()
		{
			cancelDef = SkillDefs.UtilityOverclockCancel;
			buffDef = RMORMod.Content.Shared.Buffs.RMOROverclock;
			gaugeInternal = texGauge;
			gaugeArrowInternal = texGaugeArrow;
			internalOverlayMaterial = overlayMaterial;
		}

		public virtual float ExtendBuff(float stopwatch, float extensionTime)
		{
			return Mathf.Max(0f, stopwatch - extensionTime);
		}

		public override void OnExit()
		{
			if (Object.op_Implicit((Object)(object)skillSlot))
			{
				skillSlot.UnsetSkillOverride((object)this, cancelDef, (SkillOverridePriority)4);
				skillSlot.stock = startStocks;
			}
			if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(buffDef))
			{
				((EntityState)this).characterBody.RemoveBuff(buffDef);
			}
			if (Object.op_Implicit((Object)(object)tempOverlay))
			{
				tempOverlay.RemoveFromCharacterModel();
				Object.Destroy((Object)(object)tempOverlay);
				tempOverlay = null;
			}
			if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)overclockController))
			{
				overclockController.EndOverclock();
			}
			Util.PlaySound(endSoundString, ((EntityState)this).gameObject);
			if (Object.op_Implicit((Object)(object)modelAnimator))
			{
				((EntityState)this).PlayAnimation("Overclock, Override", "BufferEmpty");
			}
			((EntityState)this).OnExit();
		}

		public override void FixedUpdate()
		{
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: 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_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			((EntityState)this).FixedUpdate();
			jetStopwatch += Time.fixedDeltaTime;
			if (jetStopwatch >= jetFireTime)
			{
				jetStopwatch -= jetFireTime;
				GameObject obj = Object.Instantiate<GameObject>(jetEffectPrefab, leftJet);
				Transform transform = obj.transform;
				transform.localRotation *= Quaternion.Euler(0f, -60f, 0f);
				Transform transform2 = obj.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject obj2 = Object.Instantiate<GameObject>(jetEffectPrefab, rightJet);
				Transform transform3 = obj2.transform;
				transform3.localRotation *= Quaternion.Euler(0f, 60f, 0f);
				Transform transform4 = obj2.transform;
				transform4.localPosition += new Vector3(0f, 0.6f, 0f);
			}
			if (!((EntityState)this).isAuthority)
			{
				return;
			}
			stopwatch += Time.fixedDeltaTime;
			if (Object.op_Implicit((Object)(object)overclockController))
			{
				stopwatch = ExtendBuff(stopwatch, overclockController.ConsumeExtensionTime());
				overclockController.buffPercent = Mathf.Max(0f, buffDuration - stopwatch) / buffDuration;
			}
			if (BeginOverclock.onAuthorityFixedUpdateGlobal != null)
			{
				BeginOverclock.onAuthorityFixedUpdateGlobal(this);
			}
			if (!Object.op_Implicit((Object)(object)skillSlot) || skillSlot.stock == 0 || stopwatch >= buffDuration)
			{
				beginExit = true;
			}
			if (beginExit)
			{
				timerSinceComplete += Time.fixedDeltaTime;
				if (timerSinceComplete > baseExitDuration)
				{
					((EntityState)this).outer.SetNextStateToMain();
				}
			}
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}
	}
	public class CancelOverclock : BaseState
	{
		public static float shortHopVelocity = 24f;

		public static GameObject jetEffectPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoDashJets.prefab").WaitForCompletion();

		protected OverclockController overclockController;

		public override void OnEnter()
		{
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: 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_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			((BaseState)this).OnEnter();
			Util.PlaySound("Play_commando_shift", ((EntityState)this).gameObject);
			ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator();
			if (Object.op_Implicit((Object)(object)modelChildLocator))
			{
				Transform val = modelChildLocator.FindChild("Jetpack.L");
				Transform val2 = modelChildLocator.FindChild("Jetpack.R");
				GameObject obj = Object.Instantiate<GameObject>(jetEffectPrefab, val);
				Transform transform = obj.transform;
				transform.localRotation *= Quaternion.Euler(-60f, -90f, -60f);
				Transform transform2 = obj.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject obj2 = Object.Instantiate<GameObject>(jetEffectPrefab, val2);
				Transform transform3 = obj2.transform;
				transform3.localRotation *= Quaternion.Euler(-60f, 90f, -60f);
				Transform transform4 = obj2.transform;
				transform4.localPosition += new Vector3(0f, 0.6f, 0f);
			}
			if (((EntityState)this).isAuthority)
			{
				if ((Object)(object)((EntityState)this).characterMotor != (Object)null)
				{
					((BaseState)this).SmallHop(((EntityState)this).characterMotor, shortHopVelocity);
				}
				((EntityState)this).outer.SetNextStateToMain();
			}
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)2;
		}
	}
}
namespace EntityStates.RMOR.Special
{
	public class FireSeekingDrone : BaseState
	{
		private bool hasFired;

		public static float damageCoefficient = 2.5f;

		public static GameObject projectilePrefab;

		public static string muzzleString;

		public static GameObject muzzleflashEffectPrefab;

		public static float baseDuration = 0.25f;

		public static float force = 250f;

		private float duration;

		protected bool isCrit;

		private HurtBox initialOrbTarget;

		private RMORTargetingController targetingController;

		public override void OnEnter()
		{
			((BaseState)this).OnEnter();
			hasFired = false;
			((EntityState)this).GetModelTransform();
			targetingController = ((EntityState)this).GetComponent<RMORTargetingController>();
			Util.PlaySound("Play_RMOR_Drone", ((EntityState)this).gameObject);
			if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)targetingController))
			{
				initialOrbTarget = targetingController.GetTrackingTarget();
			}
			duration = baseDuration;
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((EntityState)this).characterBody.SetAimTimer(duration + 1f);
			}
			isCrit = ((BaseState)this).RollCrit();
		}

		public override void OnExit()
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			if (!hasFired && ((EntityState)this).isAuthority)
			{
				FireProjectile(initialOrbTarget, ((EntityState)this).inputBank.aimOrigin);
			}
			((EntityState)this).OnExit();
		}

		private void FireProjectile(HurtBox target, Vector3 position)
		{
			//IL_0009: 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)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			hasFired = true;
			FireProjectileInfo val = default(FireProjectileInfo);
			val.position = position;
			Ray aimRay = ((BaseState)this).GetAimRay();
			val.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction);
			val.crit = ((BaseState)this).RollCrit();
			val.damage = base.damageStat * damageCoefficient;
			val.damageColorIndex = (DamageColorIndex)0;
			val.owner = ((EntityState)this).gameObject;
			val.force = force;
			val.projectilePrefab = projectilePrefab;
			if (Object.op_Implicit((Object)(object)target))
			{
				MissileUtils.FireMissile(position, ((EntityState)this).characterBody, default(ProcChainMask), ((Component)target).gameObject, base.damageStat * damageCoefficient, ((BaseState)this).RollCrit(), projectilePrefab, (DamageColorIndex)0, Vector3.up, force, false);
			}
			else
			{
				MissileUtils.FireMissile(position, ((EntityState)this).characterBody, default(ProcChainMask), (GameObject)null, base.damageStat * damageCoefficient, ((BaseState)this).RollCrit(), projectilePrefab, (DamageColorIndex)0, Vector3.up, force, false);
			}
		}

		public override void FixedUpdate()
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			((EntityState)this).FixedUpdate();
			if (!hasFired && ((EntityState)this).isAuthority)
			{
				FireProjectile(initialOrbTarget, ((EntityState)this).inputBank.aimOrigin);
			}
			if (((EntityState)this).fixedAge > duration && ((EntityState)this).isAuthority)
			{
				((EntityState)this).outer.SetNextStateToMain();
			}
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}
	}
}
namespace EntityStates.RMOR.Secondary
{
	public class ChargeCannon : BaseState
	{
		public static float baseDuration = 1.5f;

		public static string partialChargeSoundString = "Play_RMOR_SemiCharge";

		public static string fullChargeSoundString = "Play_RMOR_FullCharge";

		public static GameObject partialChargeEffect;

		public static GameObject fullChargeEffect;

		public static int maxChargeLevel = 3;

		private float duration;

		public int chargeLevel;

		public static float baseChargeDuration = 1.8f;

		private float minDuration;

		private float charge;

		public float chargePercent;

		private Animator modelAnimator;

		public static GameObject holdChargeVfxPrefab = ChargeSpear.holdChargeVfxPrefab;

		private GameObject holdChargeVfxGameObject;

		public override void OnEnter()
		{
			((BaseState)this).OnEnter();
			ModifyStats();
			minDuration = baseChargeDuration / base.attackSpeedStat;
			modelAnimator = ((EntityState)this).GetModelAnimator();
			if (Object.op_Implicit((Object)(object)modelAnimator))
			{
				((EntityState)this).PlayAnimation("Gesture, Override", "PrepCannon", "ChargeHammer.playbackRate", minDuration);
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((EntityState)this).characterBody.SetAimTimer(3f);
			}
			charge = 0f;
			chargeLevel = 1;
			OverclockController component = ((EntityState)this).GetComponent<OverclockController>();
			bool flag = Object.op_Implicit((Object)(object)component) && component.BuffActive();
			if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !flag)
			{
				((EntityState)this).characterBody.isSprinting = false;
			}
		}

		public override void OnExit()
		{
			if (Object.op_Implicit((Object)(object)holdChargeVfxGameObject))
			{
				EntityState.Destroy((Object)(object)holdChargeVfxGameObject);
				holdChargeVfxGameObject = null;
			}
			if (!((EntityState)this).outer.destroying)
			{
				((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty");
			}
			((EntityState)this).OnExit();
		}

		public override void FixedUpdate()
		{
			((EntityState)this).FixedUpdate();
			((EntityState)this).characterBody.SetAimTimer(3f);
			charge += Time.deltaTime * base.attackSpeedStat;
			if (chargeLevel < maxChargeLevel && charge > baseDuration)
			{
				chargeLevel++;
				string text = partialChargeSoundString;
				GameObject val = partialChargeEffect;
				if (chargeLevel >= maxChargeLevel)
				{
					text = fullChargeSoundString;
					val = fullChargeEffect;
				}
				Util.PlaySound(text, ((EntityState)this).gameObject);
				EffectManager.SimpleMuzzleFlash(val, ((EntityState)this).gameObject, "HandL", false);
				EffectManager.SimpleMuzzleFlash(val, ((EntityState)this).gameObject, "HandR", false);
				charge -= baseDuration;
			}
			if (chargeLevel > maxChargeLevel && charge % 3f == 0f)
			{
				GameObject obj = fullChargeEffect;
				EffectManager.SimpleMuzzleFlash(obj, ((EntityState)this).gameObject, "HandL", false);
				EffectManager.SimpleMuzzleFlash(obj, ((EntityState)this).gameObject, "HandR", false);
			}
			if (((EntityState)this).isAuthority && (!Object.op_Implicit((Object)(object)((EntityState)this).inputBank) || !((EntityState)this).inputBank.skill2.down))
			{
				if (chargeLevel > 0)
				{
					SetNextState();
				}
				else
				{
					((EntityState)this).outer.SetNextStateToMain();
				}
			}
		}

		public virtual void ModifyStats()
		{
			maxChargeLevel = 3;
			baseDuration = 1.5f;
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}

		public virtual void SetNextState()
		{
			((EntityState)this).outer.SetNextState((EntityState)(object)new FireCannon
			{
				chargeLevel = chargeLevel
			});
		}
	}
	public class ChargeCannonScepter : ChargeCannon
	{
		public override void ModifyStats()
		{
			ChargeCannon.maxChargeLevel = 4;
			ChargeCannon.baseDuration = 1f;
		}
	}
	public class ChargeSlam : BaseState
	{
		public static float baseMinDuration = 0.5f;

		public static float baseChargeDuration = 1.5f;

		private float minDuration;

		private float chargeDuration;

		private float charge;

		public float chargePercent;

		private Animator modelAnimator;

		public static GameObject chargeEffectPrefab = LegacyResourcesAPI.Load<GameObject>("prefabs/effects/omnieffect/OmniImpactVFXLoader");

		private bool startedChargeAnim;

		public static GameObject holdChargeVfxPrefab = ChargeSpear.holdChargeVfxPrefab;

		private GameObject holdChargeVfxGameObject;

		public override void OnEnter()
		{
			((BaseState)this).OnEnter();
			Util.PlaySound("Play_RMOR_StartHammer", ((EntityState)this).gameObject);
			minDuration = baseMinDuration / base.attackSpeedStat;
			modelAnimator = ((EntityState)this).GetModelAnimator();
			if (Object.op_Implicit((Object)(object)modelAnimator))
			{
				((EntityState)this).PlayAnimation("Gesture, Override", "PrepSlash", "ChargeHammer.playbackRate", minDuration);
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((EntityState)this).characterBody.SetAimTimer(3f);
			}
			charge = 0f;
			chargePercent = 0f;
			chargeDuration = baseChargeDuration / base.attackSpeedStat;
			OverclockController component = ((EntityState)this).GetComponent<OverclockController>();
			bool flag = Object.op_Implicit((Object)(object)component) && component.BuffActive();
			if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !flag)
			{
				((EntityState)this).characterBody.isSprinting = false;
			}
		}

		public override void OnExit()
		{
			if (Object.op_Implicit((Object)(object)holdChargeVfxGameObject))
			{
				EntityState.Destroy((Object)(object)holdChargeVfxGameObject);
				holdChargeVfxGameObject = null;
			}
			if (!((EntityState)this).outer.destroying)
			{
				((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty");
			}
			((EntityState)this).OnExit();
		}

		public override void FixedUpdate()
		{
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Expected O, but got Unknown
			((EntityState)this).FixedUpdate();
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((EntityState)this).characterBody.SetAimTimer(3f);
			}
			if (((EntityState)this).fixedAge > minDuration && charge < chargeDuration)
			{
				if (!startedChargeAnim)
				{
					startedChargeAnim = true;
					((EntityState)this).PlayCrossfade("Gesture, Override", "ChargeSlash", "ChargeHammer.playbackRate", chargeDuration - minDuration, 0.2f);
				}
				charge += Time.deltaTime * base.attackSpeedStat;
				if (charge >= chargeDuration)
				{
					((EntityState)this).PlayCrossfade("Gesture, Override", "FullCharge", "ChargeHammer.playbackRate", 0.6f, 0.05f);
					Util.PlaySound("Play_HOC_StartPunch", ((EntityState)this).gameObject);
					charge = chargeDuration;
					EffectManager.SpawnEffect(chargeEffectPrefab, new EffectData
					{
						origin = ((EntityState)this).transform.position
					}, false);
				}
				chargePercent = Mathf.Max(0f, (charge - baseMinDuration) / (baseChargeDuration - baseMinDuration));
			}
			if (((EntityState)this).fixedAge >= minDuration && ((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && !((EntityState)this).inputBank.skill2.down)
			{
				SetNextState();
			}
		}

		public virtual void SetNextState()
		{
			((EntityState)this).outer.SetNextState((EntityState)(object)new FireSlam
			{
				chargePercent = chargePercent
			});
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)2;
		}
	}
	public class ChargeSlamScepter : ChargeSlam
	{
		public override void SetNextState()
		{
			((EntityState)this).outer.SetNextState((EntityState)(object)new FireSlamScepter
			{
				chargePercent = chargePercent
			});
		}
	}
	public class FireCannon : BaseState
	{
		public static string attackSoundString = "Play_RMOR_Rocket";

		public static GameObject level1Prefab;

		public static GameObject level2Prefab;

		public static GameObject level3Prefab;

		public static GameObject level4Prefab;

		public static float baseExitDuration = 0.6f;

		public static float baseDurationBetweenShots = 0.5f;

		public static float damageCoefficient = 8f;

		public static float force = 2000f;

		public static GameObject muzzleflashEffectPrefab;

		public int chargeLevel;

		private bool crit;

		private float totalDuration;

		private float durationBetweenShots;

		private float fireStopwatch;

		private int shotsRemaining;

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)2;
		}

		public override void OnEnter()
		{
			((BaseState)this).OnEnter();
			shotsRemaining = 1;
			crit = ((BaseState)this).RollCrit();
			fireStopwatch = 0f;
			durationBetweenShots = baseDurationBetweenShots / base.attackSpeedStat;
			totalDuration = baseExitDuration / base.attackSpeedStat + durationBetweenShots * (float)shotsRemaining;
			((EntityState)this).characterBody.SetAimTimer(3f);
			((EntityState)this).PlayAnimation("Gesture, Override", "FireCannon");
			FireProjectile();
		}

		public override void FixedUpdate()
		{
			((EntityState)this).FixedUpdate();
			if (shotsRemaining > 0)
			{
				fireStopwatch += Time.fixedDeltaTime;
				if (fireStopwatch >= durationBetweenShots)
				{
					FireProjectile();
					fireStopwatch -= durationBetweenShots;
				}
			}
			else if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge > totalDuration)
			{
				((EntityState)this).outer.SetNextStateToMain();
			}
		}

		public override void OnExit()
		{
			if (!((EntityState)this).outer.destroying)
			{
				((EntityState)this).PlayAnimation("Gesture, Override", "Empty");
			}
			((EntityState)this).OnExit();
		}

		public GameObject GetProjectilePrefab()
		{
			return (GameObject)(chargeLevel switch
			{
				2 => level2Prefab, 
				3 => level3Prefab, 
				4 => level4Prefab, 
				_ => level1Prefab, 
			});
		}

		private void FireProjectile()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			shotsRemaining--;
			Util.PlaySound(attackSoundString, ((EntityState)this).gameObject);
			EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "HandL", false);
			EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "HandR", false);
			Ray aimRay = ((BaseState)this).GetAimRay();
			if (((EntityState)this).isAuthority)
			{
				ProjectileManager.instance.FireProjectile(GetProjectilePrefab(), ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * damageCoefficient * (float)chargeLevel, force * (float)chargeLevel, crit, (DamageColorIndex)0, (GameObject)null, -1f);
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor))
			{
				((EntityState)this).characterMotor.ApplyForce((0f - force) * (float)chargeLevel * 1.5f * ((Ray)(ref aimRay)).direction, false, false);
			}
		}
	}
	public class FireSlam : BaseMeleeAttack
	{
		public static GameObject swingEffect = null;

		public float chargePercent;

		public static float minDamageCoefficient = 6f;

		public static float maxDamageCoefficient = 15f;

		public static float minDownForce = 2400f;

		public static float maxDownForce = 3200f;

		public static float baseYPos = -14f;

		public static float baseYScale = 30f;

		public static float maxYScale = 60f;

		public static float baseZPos = 4.5f;

		public static float baseZScale = 30f;

		public static float maxZScale = 40f;

		public static float shortHop = 12f;

		public static float shortHopOnHit = 24f;

		public static NetworkSoundEventDef networkHitSound;

		public static GameObject earthquakeEffectPrefab;

		public static GameObject hitEffect = null;

		private bool hitEnemy;

		public override void OnEnter()
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Unknown result type (might be due to invalid IL or missing references)
			attackRecoil = 0f;
			swingEffectPrefab = null;
			hitEffectPrefab = null;
			if (Object.op_Implicit((Object)(object)networkHitSound))
			{
				impactSound = networkHitSound.index;
			}
			damageType = (DamageType)1024;
			hitHopVelocity = shortHopOnHit;
			hitStopDuration = 0.1f;
			hitSoundString = "";
			swingSoundString = "";
			hitboxName = "StabHitbox";
			damageCoefficient = Mathf.Lerp(minDamageCoefficient, maxDamageCoefficient, chargePercent);
			procCoefficient = 1f;
			baseDuration = 0.7f;
			baseEarlyExitTime = 0.2f;
			attackStartTime = 0.33f;
			attackEndTime = 0.5f;
			pushForce = 0f;
			bonusForce = Vector3.down * Mathf.Lerp(minDownForce, maxDownForce, chargePercent);
			muzzleString = "HandR";
			ModifyStats();
			if (((EntityState)this).isAuthority)
			{
				ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator();
				if (Object.op_Implicit((Object)(object)modelChildLocator))
				{
					Transform val = modelChildLocator.FindChild("ChargeHammerHitbox");
					if (Object.op_Implicit((Object)(object)val))
					{
						float num = Mathf.Lerp(baseYScale, maxYScale, chargePercent);
						float num2 = baseYPos - (num - baseYScale) * 0.5f;
						float num3 = Mathf.Lerp(baseZScale, maxZScale, chargePercent);
						float num4 = baseZPos - (num3 - baseZScale) * 0.5f;
						val.localScale = new Vector3(val.localScale.x, num, num3);
						val.localPosition = new Vector3(val.localPosition.x, num2, num4);
					}
				}
			}
			base.OnEnter();
			if (attack != null)
			{
				ModifyDamageTypes();
				if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(RMORMod.Content.Shared.Buffs.RMORFocus))
				{
					attack.damageColorIndex = (DamageColorIndex)12;
				}
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((EntityState)this).characterBody.SetAimTimer(3f);
			}
		}

		public virtual void ModifyStats()
		{
		}

		public virtual void ModifyDamageTypes()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			DamageAPI.AddModdedDamageType(attack, DamageTypes.HANDSecondary);
			DamageAPI.AddModdedDamageType(attack, DamageTypes.ResetVictimForce);
		}

		protected override void PlayAttackAnimation()
		{
			((EntityState)this).PlayAnimation("FullBody, Override", "Slash", "ChargeHammer.playbackRate", duration);
		}

		protected override void OnHitEnemyAuthority()
		{
			base.OnHitEnemyAuthority();
			if (hitEnemy)
			{
				return;
			}
			hitEnemy = true;
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				OverclockController component = ((EntityState)this).gameObject.GetComponent<OverclockController>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.ExtendOverclock(Mathf.Lerp(0.8f, 2f, chargePercent));
				}
				DroneStockController component2 = ((EntityState)this).GetComponent<DroneStockController>();
				if (Object.op_Implicit((Object)(object)component2))
				{
					component2.MeleeHit();
				}
			}
		}

		public override void OnFiredAttack()
		{
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Expected O, but got Unknown
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Expected O, but got Unknown
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: 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_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Expected O, but got Unknown
			//IL_018e: 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_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: 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_01aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: 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_01d9: Expected O, but got Unknown
			Util.PlaySound("Play_parent_attack1_slam", ((EntityState)this).gameObject);
			Util.PlaySound("Play_UI_podImpact", ((EntityState)this).gameObject);
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(RMORMod.Content.Shared.Buffs.RMORFocus))
			{
				Util.PlaySound("Play_RMOR_Focus", ((EntityState)this).gameObject);
			}
			if (((EntityState)this).isAuthority)
			{
				Ray aimRay = ((BaseState)this).GetAimRay();
				Vector3 direction = ((Ray)(ref aimRay)).direction;
				direction.y = 0f;
				((Vector3)(ref direction)).Normalize();
				EffectManager.SpawnEffect(earthquakeEffectPrefab, new EffectData
				{
					origin = ((EntityState)this).transform.position + 4f * direction - 2f * Vector3.up,
					scale = 0.5f
				}, true);
				EffectManager.SpawnEffect(earthquakeEffectPrefab, new EffectData
				{
					origin = ((EntityState)this).transform.position + 8f * direction - 2f * Vector3.up,
					scale = 0.5f
				}, true);
				if (chargePercent >= 0.5f)
				{
					EffectManager.SpawnEffect(earthquakeEffectPrefab, new EffectData
					{
						origin = ((EntityState)this).transform.position + 12f * direction - 2f * Vector3.up,
						scale = 0.5f
					}, true);
				}
				if (chargePercent >= 1f)
				{
					EffectManager.SpawnEffect(earthquakeEffectPrefab, new EffectData
					{
						origin = ((EntityState)this).transform.position + 16f * direction - 2f * Vector3.up,
						scale = 0.5f
					}, true);
				}
				if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded)
				{
					((BaseState)this).SmallHop(((EntityState)this).characterMotor, shortHop);
				}
			}
		}

		public override void OnExit()
		{
			if (!((EntityState)this).outer.destroying)
			{
				((EntityState)this).PlayAnimation("FullBody, Override", "Empty");
			}
			base.OnExit();
		}

		protected override void SetNextState()
		{
			((EntityState)this).outer.SetNextStateToMain();
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			if (hasFired && ((EntityState)this).fixedAge >= duration - earlyExitTime)
			{
				return (InterruptPriority)0;
			}
			return (InterruptPriority)2;
		}
	}
	public class FireSlamScepter : FireSlam
	{
		public override void ModifyStats()
		{
			//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)
			bonusForce *= 1.5f;
			damageCoefficient *= 1.5f;
		}

		public override void ModifyDamageTypes()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			DamageAPI.AddModdedDamageType(attack, DamageTypes.HANDSecondaryScepter);
			DamageAPI.AddModdedDamageType(attack, DamageTypes.SquashOnKill);
			DamageAPI.AddModdedDamageType(attack, DamageTypes.ResetVictimForce);
		}
	}
}
namespace EntityStates.RMOR.Emotes
{
	public class RMOREmotes : BaseState
	{
		public string soundString;

		public string animString;

		public float duration;

		public float animDuration;

		private Animator animator;

		private ChildLocator childLocator;

		public LocalUser localUser;

		public bool useHammer;

		private CharacterCameraParamsData emoteCameraParams = new CharacterCameraParamsData
		{
			maxPitch = BlendableFloat.op_Implicit(70f),
			minPitch = BlendableFloat.op_Implicit(-70f),
			pivotVerticalOffset = BlendableFloat.op_Implicit(1f),
			idealLocalCameraPos = BlendableVector3.op_Implicit(emoteCameraPosition),
			wallCushion = BlendableFloat.op_Implicit(0.1f)
		};

		public static Vector3 emoteCameraPosition = new Vector3(0f, 0f, -7.9f);

		private CameraParamsOverrideHandle camOverrideHandle;

		public override void OnEnter()
		{
			//IL_00f8: 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_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			((BaseState)this).OnEnter();
			animator = ((EntityState)this).GetModelAnimator();
			childLocator = ((EntityState)this).GetModelChildLocator();
			FindLocalUser();
			((EntityState)this).characterBody.hideCrosshair = true;
			if (Object.op_Implicit((Object)(object)((EntityState)this).GetAimAnimator()))
			{
				((Behaviour)((EntityState)this).GetAimAnimator()).enabled = false;
			}
			animator.SetLayerWeight(animator.GetLayerIndex("AimPitch"), 0f);
			animator.SetLayerWeight(animator.GetLayerIndex("AimYaw"), 0f);
			if (animDuration == 0f && duration != 0f)
			{
				animDuration = duration;
			}
			if (duration > 0f)
			{
				((EntityState)this).PlayAnimation("FullBody, Override", animString, "Emote.playbackRate", duration);
			}
			else
			{
				((EntityState)this).PlayAnimation("FullBody, Override", animString, "Emote.playbackRate", animDuration);
			}
			CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest);
			val.cameraParamsData = emoteCameraParams;
			val.priority = 0f;
			CameraParamsOverrideRequest val2 = val;
			camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, 0.5f);
		}

		private void FindLocalUser()
		{
			if (localUser != null || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				return;
			}
			foreach (LocalUser readOnlyLocalUsers in LocalUserManager.readOnlyLocalUsersList)
			{
				if ((Object)(object)readOnlyLocalUsers.cachedBody == (Object)(object)((EntityState)this).characterBody)
				{
					localUser = readOnlyLocalUsers;
					break;
				}
			}
		}

		public override void OnExit()
		{
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			((EntityState)this).characterBody.hideCrosshair = false;
			if (Object.op_Implicit((Object)(object)((EntityState)this).GetAimAnimator()))
			{
				((Behaviour)((EntityState)this).GetAimAnimator()).enabled = true;
			}
			animator.SetLayerWeight(animator.GetLayerIndex("AimPitch"), 1f);
			animator.SetLayerWeight(animator.GetLayerIndex("AimYaw"), 1f);
			((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty");
			((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.5f);
			((EntityState)this).OnExit();
		}

		public override void FixedUpdate()
		{
			//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_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			((EntityState)this).FixedUpdate();
			bool flag = false;
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor))
			{
				if (!((EntityState)this).characterMotor.isGrounded)
				{
					flag = true;
				}
				if (((EntityState)this).characterMotor.velocity != Vector3.zero)
				{
					flag = true;
				}
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank))
			{
				if (((EntityState)this).inputBank.skill1.down)
				{
					flag = true;
				}
				if (((EntityState)this).inputBank.skill2.down)
				{
					flag = true;
				}
				if (((EntityState)this).inputBank.skill3.down)
				{
					flag = true;
				}
				if (((EntityState)this).inputBank.skill4.down)
				{
					flag = true;
				}
				if (((EntityState)this).inputBank.jump.down)
				{
					flag = true;
				}
				if (((EntityState)this).inputBank.moveVector != Vector3.zero)
				{
					flag = true;
				}
			}
			FindLocalUser();
			if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded && localUser != null && !localUser.isUIFocused)
			{
				if (Config.GetKeyPressed(Config.KeybindEmote1))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new Sit(), (InterruptPriority)0);
					return;
				}
				if (Config.GetKeyPressed(Config.KeybindEmote2))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new Spin(), (InterruptPriority)0);
					return;
				}
				if (Config.GetKeyPressed(Config.KeybindEmoteCSS))
				{
					((EntityState)this).outer.SetInterruptState((EntityState)(object)new MenuPose(), (InterruptPriority)0);
					return;
				}
			}
			if (duration > 0f && ((EntityState)this).fixedAge >= duration)
			{
				flag = true;
			}
			if (flag)
			{
				((EntityState)this).outer.SetNextStateToMain();
			}
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)0;
		}
	}
	public class MenuPose : RMOREmotes
	{
		public override void OnEnter()
		{
			animString = "MenuPose";
			animDuration = MathF.PI * 113f / 150f;
			useHammer = true;
			base.OnEnter();
			Util.PlaySound("Play_RMOR_StartHammer", ((EntityState)this).gameObject);
		}
	}
	public class Spin : RMOREmotes
	{
		private bool playedSound1;

		private bool playedSound2;

		private bool playedSound3;

		private static string startSoundString = "Play_MULT_shift_start";

		private static string endSoundString = "Play_MULT_shift_end";

		public override void OnEnter()
		{
			animString = "Emote2";
			animDuration = 4.3f;
			useHammer = false;
			base.OnEnter();
		}

		public override void FixedUpdate()
		{
			base.FixedUpdate();
			float num = ((EntityState)this).fixedAge / animDuration;
			if (!playedSound1 && num >= 10f / 129f)
			{
				playedSound1 = true;
				Util.PlaySound(startSoundString, ((EntityState)this).gameObject);
			}
			if (!playedSound2 && num >= 0.9302326f)
			{
				playedSound2 = true;
				Util.PlaySound(endSoundString, ((EntityState)this).gameObject);
				Util.PlaySound("Play_mult_shift_hit", ((EntityState)this).gameObject);
			}
			if (!playedSound3 && num >= 1.0542636f)
			{
				playedSound3 = true;
				Util.PlaySound("Play_RMOR_StartPunch", ((EntityState)this).gameObject);
			}
		}

		public override void OnExit()
		{
			if (playedSound1 && !playedSound2)
			{
				Util.PlaySound(endSoundString, ((EntityState)this).gameObject);
			}
			base.OnExit();
		}
	}
	public class Sit : RMOREmotes
	{
		private bool playedSound;

		public override void OnEnter()
		{
			animString = "Emote1";
			animDuration = 1.2666667f;
			useHammer = false;
			base.OnEnter();
			Util.PlaySound("Play_drone_deathpt1", ((EntityState)this).gameObject);
		}

		public override void FixedUpdate()
		{
			base.FixedUpdate();
			if (!playedSound && ((EntityState)this).fixedAge / animDuration >= 0.7894737f)
			{
				playedSound = true;
				Util.PlaySound("Play_drone_deathpt2", ((EntityState)this).gameObject);
			}
		}
	}
}
namespace EntityStates.RMOR.Primary
{
	public class GatlingGun : BaseSkillState, IStepSetter
	{
		public static float damageCoefficient = 0.9f;

		public static float procCoefficient = 1f;

		public static float baseDuration = 0.2f;

		public static float force = 10f;

		public static float recoil = 1f;

		public static float range = 256f;

		public static GameObject tracerEffectPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/Tracers/TracerGoldGat");

		private float duration;

		private float fireTime;

		private bool hasFired;

		private string muzzleString;

		private bool setNextState;

		private int step;

		public override void OnEnter()
		{
			((EntityState)this).characterBody.SetAimTimer(3f);
			((BaseState)this).OnEnter();
			duration = baseDuration / ((BaseState)this).attackSpeedStat;
			((EntityState)this).characterBody.SetAimTimer(2f);
			if (step == 1)
			{
				muzzleString = "HandL";
				((EntityState)this).PlayCrossfade("Gesture, Override", "GatlingR", "Punch.playbackRate", duration, 0.1f);
			}
			else
			{
				muzzleString = "HandR";
				((EntityState)this).PlayCrossfade("Gesture, Override", "GatlingL", "Punch.playbackRate", duration, 0.1f);
			}
			Fire();
		}

		private void Fire()
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: 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_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: 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_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Expected O, but got Unknown
			if (!hasFired)
			{
				hasFired = true;
				((EntityState)this).characterBody.AddSpreadBloom(1.5f);
				EffectManager.SimpleMuzzleFlash(FirePistol2.muzzleEffectPrefab, ((EntityState)this).gameObject, muzzleString, false);
				Util.PlaySound(FirePistol2.firePistolSoundString, ((EntityState)this).gameObject);
				if (((EntityState)this).isAuthority)
				{
					Ray aimRay = ((BaseState)this).GetAimRay();
					((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil);
					BulletAttack val = new BulletAttack
					{
						bulletCount = 1u,
						aimVector = ((Ray)(ref aimRay)).direction,
						origin = ((Ray)(ref aimRay)).origin,
						damage = damageCoefficient * ((BaseState)this).damageStat,
						damageColorIndex = (DamageColorIndex)0,
						damageType = (DamageType)0,
						falloffModel = (FalloffModel)1,
						maxDistance = range,
						force = force,
						hitMask = CommonMasks.bullet,
						minSpread = 0f,
						maxSpread = 0f,
						isCrit = ((BaseState)this).RollCrit(),
						owner = ((EntityState)this).gameObject,
						muzzleName = muzzleString,
						smartCollision = false,
						procChainMask = default(ProcChainMask),
						procCoefficient = procCoefficient,
						radius = 0.75f,
						sniper = false,
						stopperMask = CommonMasks.bullet,
						weapon = null,
						tracerEffectPrefab = tracerEffectPrefab,
						spreadPitchScale = 0f,
						spreadYawScale = 0f,
						queryTriggerInteraction = (QueryTriggerInteraction)0,
						hitEffectPrefab = FirePistol2.hitEffectPrefab
					};
					DamageAPI.AddModdedDamageType(val, DamageTypes.Restore2OV);
					val.Fire();
				}
			}
		}

		public override void FixedUpdate()
		{
			((EntityState)this).FixedUpdate();
			if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority)
			{
				((EntityState)this).outer.SetNextStateToMain();
			}
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}

		public void SetStep(int i)
		{
			step = i;
		}
	}
	public class PrimaryRocket : GenericProjectileBaseState
	{
		public static float BaseDuration = 1.3f;

		public static float BaseDelayDuration = 0.3f;

		public static float DamageCoefficient = 3.9f;

		private string animationLayer = "Gesture, Override";

		public static GameObject projectilePrefab;

		public static GameObject overclockPrefab;

		public static GameObject effectPrefab;

		public bool strikeIndex;

		public override void OnEnter()
		{
			//IL_0080: 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_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			OverclockController component = ((EntityState)this).GetComponent<OverclockController>();
			bool flag = Object.op_Implicit((Object)(object)component) && component.BuffActive();
			base.projectilePrefab = (flag ? overclockPrefab : projectilePrefab);
			base.effectPrefab = effectPrefab;
			base.targetMuzzle = (strikeIndex ? "HandR" : "HandL");
			base.attackSoundString = "Play_RMOR_Primary";
			base.baseDuration = BaseDuration;
			base.damageCoefficient = DamageCoefficient;
			base.force = 80f;
			Ray aimRay = ((BaseState)this).GetAimRay();
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor))
			{
				((EntityState)this).characterMotor.ApplyForce((0f - base.force) * 25f * ((Ray)(ref aimRay)).direction, false, false);
			}
			base.recoilAmplitude = 0.1f;
			base.bloom = 10f;
			((EntityState)this).characterBody.SetAimTimer(3f);
			((GenericProjectileBaseState)this).OnEnter();
		}

		public override void OnExit()
		{
			if (!((EntityState)this).outer.destroying)
			{
				((EntityState)this).PlayAnimation(animationLayer, "RMOR|RocketShootHold");
			}
			((GenericProjectileBaseState)this).OnExit();
		}

		public override void FixedUpdate()
		{
			((GenericProjectileBaseState)this).FixedUpdate();
		}

		public override void FireProjectile()
		{
			((GenericProjectileBaseState)this).FireProjectile();
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}

		public override void PlayAnimation(float duration)
		{
			if (strikeIndex)
			{
				((EntityState)this).PlayCrossfade(animationLayer, "PunchR", "Punch.playbackRate", base.duration, 0.2f);
			}
			else
			{
				((EntityState)this).PlayCrossfade(animationLayer, "PunchL", "Punch.playbackRate", base.duration, 0.2f);
			}
		}
	}
	public class SwingStab : BaseMeleeAttack
	{
		public static NetworkSoundEventDef networkHitSound = null;

		public static GameObject swingEffect = null;

		public static GameObject swingEffectFocus = null;

		public static GameObject hitEffect = null;

		public static AnimationCurve swingCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[3]
		{
			new Keyframe(0f, 0f, 0.25312966f, float.PositiveInfinity, 0f, 1f / 3f),
			new Keyframe(0.24929532f, 0.2f, -1.3447399f, -1.3447399f, 1f / 3f, 0.09076658f),
			new Keyframe(0.6705322f, 0f, -0.10235062f, -0.10235062f, 0.73324406f, 0f)
		});

		private bool setNextState;

		private string animationLayer;

		public static float force = 1600f;

		private bool hitEnemy;

		public override void OnEnter()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: 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_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			bonusForce = Vector3.zero;
			attackRecoil = 0f;
			muzzleString = ((swingIndex == 1) ? "HandL" : "HandR");
			if ((Object)(object)networkHitSound != (Object)null)
			{
				impactSound = networkHitSound.index;
			}
			damageType = (DamageType)0;
			hitHopVelocity = 8f;
			scaleHitHopWithAttackSpeed = true;
			hitStopDuration = 0.1f;
			hitSoundString = "";
			swingSoundString = "Play_RMOR_Punch";
			hitboxName = "StabHitbox";
			damageCoefficient = 3.9f;
			procCoefficient = 1f;
			baseDuration = 1.3f;
			baseEarlyExitTime = 0.35f;
			attackStartTime = 0.283f;
			attackEndTime = 0.565f;
			pushForce = 0f;
			Ray aimRay = ((BaseState)this).GetAimRay();
			Vector3 direction = ((Ray)(ref aimRay)).direction;
			direction.y = 0f;
			((Vector3)(ref direction)).Normalize();
			bonusForce = force * direction;
			forceForwardVelocity = true;
			forwardVelocityCurve = swingCurve;
			animationLayer = "Gesture, Override";
			Util.PlaySound("Play_RMOR_StartPunch", ((EntityState)this).gameObject);
			OverclockController component = ((EntityState)this).GetComponent<OverclockController>();
			bool flag = Object.op_Implicit((Object)(object)component) && component.BuffActive();
			Animator modelAnimator = ((EntityState)this).GetModelAnimator();
			if (Object.op_Implicit((Object)(object)modelAnimator))
			{
				modelAnimator.SetFloat("hammerIdle", 0f);
			}
			swingEffectPrefab = swingEffect;
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				if (Object.op_Implicit((Object)(object)swingEffectFocus) && ((EntityState)this).characterBody.HasBuff(RMORMod.Content.Shared.Buffs.RMORFocus))
				{
					swingEffectPrefab = swingEffectFocus;
				}
				if (!RMORPlugin.ArenaModeActive && flag && swingIndex == 1)
				{
					damageType = (DamageType)(damageType | 0x400);
				}
			}
			base.OnEnter();
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				if (swingIndex != 0)
				{
					((EntityState)this).characterBody.OnSkillActivated(((EntityState)this).skillLocator.primary);
				}
				if (((EntityState)this).isAuthority && !flag)
				{
					((EntityState)this).characterBody.isSprinting = false;
				}
				((EntityState)this).characterBody.SetAimTimer(3f);
			}
			if (attack != null)
			{
				DamageAPI.AddModdedDamageType(attack, DamageTypes.HANDPrimaryPunch);
				DamageAPI.AddModdedDamageType(attack, DamageTypes.ResetVictimForce);
				if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(RMORMod.Content.Shared.Buffs.RMORFocus))
				{
					attack.damageColorIndex = (DamageColorIndex)12;
				}
			}
		}

		public override void FixedUpdate()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			Ray aimRay = ((BaseState)this).GetAimRay();
			Vector3 direction = ((Ray)(ref aimRay)).direction;
			direction.y = 0f;
			((Vector3)(ref direction)).Normalize();
			if (attack != null)
			{
				attack.forceVector = force * direction;
			}
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				((BaseState)this).damageStat = ((EntityState)this).characterBody.damage;
				if (((EntityState)this).characterBody.HasBuff(RMORMod.Content.Shared.Buffs.RMORFocus))
				{
					swingEffectPrefab = swingEffectFocus;
					attack.damageColorIndex = (DamageColorIndex)12;
				}
				else
				{
					swingEffectPrefab = swingEffect;
					attack.damageColorIndex = (DamageColorIndex)0;
				}
			}
			base.FixedUpdate();
		}

		public override void OnFiredAttack()
		{
			if ((Object)(object)swingEffectPrefab == (Object)(object)swingEffectFocus)
			{
				Util.PlaySound("Play_RMOR_Focus", ((EntityState)this).gameObject);
			}
		}

		protected override void PlayAttackAnimation()
		{
			if (swingIndex == 1)
			{
				((EntityState)this).PlayCrossfade(animationLayer, "StabR", "Punch.playbackRate", duration, 0.2f);
			}
			else
			{
				((EntityState)this).PlayCrossfade(animationLayer, "StabL", "Punch.playbackRate", duration, 0.2f);
			}
		}

		public override void OnExit()
		{
			base.OnExit();
		}

		protected override void OnHitEnemyAuthority()
		{
			base.OnHitEnemyAuthority();
			if (hitEnemy)
			{
				return;
			}
			hitEnemy = true;
			if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody))
			{
				OverclockController component = ((EntityState)this).gameObject.GetComponent<OverclockController>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.ExtendOverclock(0.8f);
				}
				DroneStockController component2 = ((EntityState)this).GetComponent<DroneStockController>();
				if (Object.op_Implicit((Object)(object)component2))
				{
					component2.MeleeHit();
				}
			}
		}

		protected override void SetNextState()
		{
			int num = swingIndex;
			switch (num)
			{
			case 1:
				num = 2;
				break;
			case 0:
			case 2:
				num = 1;
				break;
			}
			setNextState = true;
			((EntityState)this).outer.SetNextState((EntityState)(object)new SwingStab
			{
				swingIndex = num
			});
		}

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			return (InterruptPriority)1;
		}
	}
}
namespace RMOR_Reforged.Content.RMORSurvivor
{
	public class RMORItemDisplays : ItemDisplaysBase
	{
		protected override void SetItemDisplayRules(List<KeyAssetRuleGroup> itemDisplayRules)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: 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)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: 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_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02da: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_0347: Unknown result type (might be due to invalid IL or missing references)
			//IL_034c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_0367: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0382: Unknown result type (might be due to invalid IL or missing references)
			//IL_038a: Unknown result type (might be due to invalid IL or missing references)
			//IL_038f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_039a: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_040d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0412: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0443: Unknown result type (might be due to invalid IL or missing references)
			//IL_0448: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Unknown result type (might be due to invalid IL or missing references)
			//IL_0456: Unknown result type (might be due to invalid IL or missing references)
			//IL_0460: Unknown result type (might be due to invalid IL or missing references)
			//IL_0461: Unknown result type (might be due to invalid IL or missing references)
			//IL_0466: Unknown result type (might be due to invalid IL or missing references)
			//IL_046f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0485: Unknown result type (might be due to invalid IL or missing references)
			//IL_0497: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0509: Unknown result type (might be due to invalid IL or missing references)
			//IL_050e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0516: Unknown result type (might be due to invalid IL or missing references)
			//IL_051b: 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_0526: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Unknown result type (might be due to invalid IL or missing references)
			//IL_054b: Unknown result type (might be due to invalid IL or missing references)
			//IL_055d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0566: Unknown result type (might be due to invalid IL or missing references)
			//IL_0599: Unknown result type (might be due to invalid IL or missing references)
			//IL_059e: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0611: Unknown result type (might be due to invalid IL or missing references)
			//IL_0623: Unknown result type (might be due to invalid IL or missing references)
			//IL_062c: Unknown result type (might be due to invalid IL or missing references)
			//IL_065f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0664: Unknown result type (might be due to invalid IL or missing references)
			//IL_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_067f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0695: Unknown result type (might be due to invalid IL or missing references)
			//IL_069a: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Unknown result type (might be due to invalid IL or missing references)
			//IL_072a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0740: Unknown result type (might be due to invalid IL or missing references)
			//IL_0745: Unknown result type (might be due to invalid IL or missing references)
			//IL_075b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0760: Unknown result type (might be due to invalid IL or missing references)
			//IL_0768: Unknown result type (might be due to invalid IL or missing references)
			//IL_076d: Unknown result type (might be due to invalid IL or missing references)
			//IL_076e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0778: Unknown result type (might be due to invalid IL or missing references)
			//IL_0779: Unknown result type (might be due to invalid IL or missing references)
			//IL_077e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0787: Unknown result type (might be due to invalid IL or missing references)
			//IL_079d: Unknown result type (might be due to invalid IL or missing references)
			//IL_07af: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0806: Unknown result type (might be due to invalid IL or missing references)
			//IL_080b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0821: Unknown result type (might be due to invalid IL or missing references)
			//IL_0826: Unknown result type (might be due to invalid IL or missing references)
			//IL_082e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0833: Unknown result type (might be due to invalid IL or missing references)
			//IL_0834: Unknown result type (might be due to invalid IL or missing references)
			//IL_083e: Unknown result type (might be due to invalid IL or missing references)
			//IL_083f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0844: Unknown result type (might be due to invalid IL or missing references)
			//IL_084d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0863: Unknown result type (might be due to invalid IL or missing references)
			//IL_0875: Unknown result type (might be due to invalid IL or missing references)
			//IL_087e: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0904: 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_090a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0913: Unknown result type (might be due to invalid IL or missing references)
			//IL_0929: Unknown result type (might be due to invalid IL or missing references)
			//IL_093b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0944: Unknown result type (might be due to invalid IL or missing references)
			//IL_0977: Unknown result type (might be due to invalid IL or missing references)
			//IL_097c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0992: Unknown result type (might be due to invalid IL or missing references)
			//IL_0997: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_09cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a42: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a58: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a73: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a78: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a85: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a96: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b96: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c11: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c77: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0caa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ccf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d53: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d58: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d60: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d71: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e19: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e26: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e71: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eca: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed3: 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_0efb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f37: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f99: Unknown result type (might be due to invalid IL or missing references)
			//IL_0faf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fca: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ffd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1002: Unknown result type (might be due to invalid IL or missing references)
			//IL_1018: 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_1033: Unknown result type (might be due to invalid IL or missing references)
			//IL_1038: Unknown result type (might be due to invalid IL or missing references)
			//IL_1040: Unknown result type (might be due to invalid IL or missing references)
			//IL_1045: Unknown result type (might be due to invalid IL or missing references)
			//IL_1046: Unknown result type (might be due to invalid IL or missing references)
			//IL_1050: Unknown result type (might be due to invalid IL or missing references)
			//IL_1051: 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_105f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1075: Unknown result type (might be due to invalid IL or missing references)
			//IL_1087: Unknown result type (might be due to invalid IL or missing references)
			//IL_1090: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_10de: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_10f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_10fe: Unknown result type (might be due to invalid IL or missing references