Decompiled source of RMOR REFORGED REVIVED v1.4.4

plugins/RMOR_Reforged/RMORMod.dll

Decompiled an hour ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using 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 Survariants;
using TILER2;
using TMPro;
using ThinkInvisible.ClassicItems;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: CompilationRelaxations(8)]
[assembly: AssemblyCompany("RMORMod")]
[assembly: AssemblyProduct("RMORMod")]
[assembly: AssemblyTitle("RMORMod")]
[assembly: AssemblyInformationalVersion("1.0.0+878cf01c996071fd31c7e29061c156bc7246e735")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[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 = 0f;

		public override void LoadStats()
		{
			//IL_0072: 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 = 0f;

		private float jetFireTime;

		private float jetStopwatch;

		private float timerSinceComplete = 0f;

		private bool beginExit;

		private int startStocks = 0;

		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_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_0228: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: 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 val2 = Object.Instantiate<GameObject>(jetEffectPrefab, leftJet);
				Transform transform = val2.transform;
				transform.localRotation *= Quaternion.Euler(0f, -60f, 0f);
				Transform transform2 = val2.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject val3 = Object.Instantiate<GameObject>(jetEffectPrefab, rightJet);
				Transform transform3 = val3.transform;
				transform3.localRotation *= Quaternion.Euler(0f, 60f, 0f);
				Transform transform4 = val3.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_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: 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_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_00c5: 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_00de: 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_0104: 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)
			((EntityState)this).FixedUpdate();
			jetStopwatch += Time.fixedDeltaTime;
			if (jetStopwatch >= jetFireTime)
			{
				jetStopwatch -= jetFireTime;
				GameObject val = Object.Instantiate<GameObject>(jetEffectPrefab, leftJet);
				Transform transform = val.transform;
				transform.localRotation *= Quaternion.Euler(0f, -60f, 0f);
				Transform transform2 = val.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject val2 = Object.Instantiate<GameObject>(jetEffectPrefab, rightJet);
				Transform transform3 = val2.transform;
				transform3.localRotation *= Quaternion.Euler(0f, 60f, 0f);
				Transform transform4 = val2.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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: 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_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_00c0: 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_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			((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 val3 = Object.Instantiate<GameObject>(jetEffectPrefab, val);
				Transform transform = val3.transform;
				transform.localRotation *= Quaternion.Euler(-60f, -90f, -60f);
				Transform transform2 = val3.transform;
				transform2.localPosition += new Vector3(0f, 0.6f, 0f);
				GameObject val4 = Object.Instantiate<GameObject>(jetEffectPrefab, val2);
				Transform transform3 = val4.transform;
				transform3.localRotation *= Quaternion.Euler(-60f, 90f, -60f);
				Transform transform4 = val4.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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (InterruptPriority)2;
		}
	}
}
namespace EntityStates.RMOR.Secondary
{
	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 = null;

		private RMORTargetingController targetingController;

		public override void OnEnter()
		{
			((BaseState)this).OnEnter();
			hasFired = false;
			Transform modelTransform = ((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_0024: 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_000a: 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_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: 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_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			hasFired = true;
			FireProjectileInfo val = new FireProjectileInfo
			{
				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_002b: 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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (InterruptPriority)1;
		}
	}
}
namespace EntityStates.RMOR.Special
{
	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 = null;

		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, 0f);
			}
			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 val2 = fullChargeEffect;
				EffectManager.SimpleMuzzleFlash(val2, ((EntityState)this).gameObject, "HandL", false);
				EffectManager.SimpleMuzzleFlash(val2, ((EntityState)this).gameObject, "HandR", false);
			}
			if (((EntityState)this).isAuthority && (!Object.op_Implicit((Object)(object)((EntityState)this).inputBank) || !((EntityState)this).inputBank.skill4.down))
			{
				if (chargeLevel > 0)
				{
					SetNextState();
				}
				else
				{
					((EntityState)this).outer.SetNextStateToMain();
				}
			}
		}

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

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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 = false;

		public static GameObject holdChargeVfxPrefab = ChargeSpear.holdChargeVfxPrefab;

		private GameObject holdChargeVfxGameObject = null;

		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, 0f);
			}
			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_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: 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.skill4.down)
			{
				SetNextState();
			}
		}

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

		public override InterruptPriority GetMinimumInterruptPriority()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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_004f: 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_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: 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)
			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, (DamageTypeCombo?)null);
			}
			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 = 0f;

		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 = false;

		public override void OnEnter()
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: 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;
			damageSource = (DamageSource)8;
			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_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: 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, 0f);
		}

		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_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Expected O, but got Unknown
			//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_00f9: 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_0109: 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_0113: 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_012f: Expected O, but got Unknown
			//IL_014c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_0158: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Expected O, but got Unknown
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: 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_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_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: 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()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			if (hasFired && ((EntityState)this).fixedAge >= duration - earlyExitTime)
			{
				return (InterruptPriority)0;
			}
			return (InterruptPriority)2;
		}
	}
	public class FireSlamScepter : FireSlam
	{
		public override void ModifyStats()
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: 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)
			bonusForce *= 1.5f;
			damageCoefficient *= 1.5f;
		}

		public override void ModifyDamageTypes()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			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_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: 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_014e: 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, 0f);
			}
			else
			{
				((EntityState)this).PlayAnimation("FullBody, Override", animString, "Emote.playbackRate", animDuration, 0f);
			}
			CameraParamsOverrideRequest val = new CameraParamsOverrideRequest
			{
				cameraParamsData = emoteCameraParams,
				priority = 0f
			};
			camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val, 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_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			((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_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: 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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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 = false;

		private bool playedSound2 = false;

		private bool playedSound3 = false;

		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 = false;

		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 = false;

		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_0062: 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_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_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_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: 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_00dc: 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_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: 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_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: 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_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: 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_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: 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_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Expected O, but got Unknown
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			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 = DamageTypeCombo.GenericPrimary,
						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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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_0081: 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_00ab: 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)
			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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (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 = false;

		private string animationLayer;

		public static float force = 1600f;

		private bool hitEnemy = false;

		public override void OnEnter()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: 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_00eb: 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_010f: 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_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0294: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02df: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: 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_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: 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()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (InterruptPriority)1;
		}
	}
}
namespace RMOR_Reforged.Content.RMORSurvivor
{
	public class RMORItemDisplays : ItemDisplaysBase
	{
		protected override void SetItemDisplayRules(List<KeyAssetRuleGroup> itemDisplayRules)
		{
			//IL_0004: 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_002c: 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_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: 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_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: 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_013f: 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_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: 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_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_0205: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: 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_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0284: 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)
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_030f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0350: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0386: Unknown result type (might be due to invalid IL or missing references)
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_0394: Unknown result type (might be due to invalid IL or missing references)
			//IL_039e: Unknown result type (might be due to invalid IL or missing references)
			//IL_039f: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03df: Unknown result type (might be due to invalid IL or missing references)
			//IL_0412: Unknown result type (might be due to invalid IL or missing references)
			//IL_0417: 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_0432: 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_044d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_0466: Unknown result type (might be due to invalid IL or missing references)
			//IL_046b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0475: Unknown result type (might be due to invalid IL or missing references)
			//IL_048b: Unknown result type (might be due to invalid IL or missing references)
			//IL_049d: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04de: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_050f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0514: 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_0521: Unknown result type (might be due to invalid IL or missing references)
			//IL_0522: 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_052d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0532: Unknown result type (might be due to invalid IL or missing references)
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0552: Unknown result type (might be due to invalid IL or missing references)
			//IL_0564: Unknown result type (might be due to invalid IL or missing references)
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05db: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0603: Unknown result type (might be due to invalid IL or missing references)
			//IL_0619: Unknown result type (might be due to invalid IL or missing references)
			//IL_062b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0634: Unknown result type (might be due to invalid IL or missing references)
			//IL_0667: Unknown result type (might be due to invalid IL or missing references)
			//IL_066c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0682: Unknown result type (might be due to invalid IL or missing references)
			//IL_0687: Unknown result type (might be due to invalid IL or missing references)
			//IL_069d: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_06af: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e0: 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_06fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_072e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0733: Unknown result type (might be due to invalid IL or missing references)
			//IL_0749: Unknown result type (might be due to invalid IL or missing references)
			//IL_074e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0764: Unknown result type (might be due to invalid IL or missing references)
			//IL_0769: Unknown result type (might be due to invalid IL or missing references)
			//IL_0771: Unknown result type (might be due to invalid IL or missing references)
			//IL_0776: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_0781: Unknown result type (might be due to invalid IL or missing references)
			//IL_0782: 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_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0810: Unknown result type (might be due to invalid IL or missing references)
			//IL_0815: Unknown result type (might be due to invalid IL or missing references)
			//IL_082b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			//IL_0838: Unknown result type (might be due to invalid IL or missing references)
			//IL_083d: Unknown result type (might be due to invalid IL or missing references)
			//IL_083e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0848: Unknown result type (might be due to invalid IL or missing references)
			//IL_0849: Unknown result type (might be due to invalid IL or missing references)
			//IL_084e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0858: Unknown result type (might be due to invalid IL or missing references)
			//IL_086e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0880: Unknown result type (might be due to invalid IL or missing references)
			//IL_0889: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ff: 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_090f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0910: Unknown result type (might be due to invalid IL or missing references)
			//IL_0915: Unknown result type (might be due to invalid IL or missing references)
			//IL_091f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0935: Unknown result type (might be due to invalid IL or missing references)
			//IL_0947: Unknown result type (might be due to invalid IL or missing references)
			//IL_0950: Unknown result type (might be due to invalid IL or missing references)
			//IL_0983: Unknown result type (might be due to invalid IL or missing references)
			//IL_0988: Unknown result type (might be due to invalid IL or missing references)
			//IL_099e: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09be: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c6: 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_09cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6a: 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_0a8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b11: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b31: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b47: 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_0b54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b59: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b74: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c13: 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_0c20: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0caf: 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_0cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cdf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cfa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d63: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d75: 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_0d80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e14: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e37: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e82: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ebd: 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_0ecb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0edb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee5: 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_0f0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f69: 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_0f84: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f92: Unknown result type (might be due to invalid IL or missing