Decompiled source of AcolyteInstantSacrifice v1.1.0

AcolyteInstantSacrifice.dll

Decompiled 3 days ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using EntityStates;
using EntityStates.Acolyte.Weapon;
using HarmonyLib;
using RoR2;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("AcolyteInstantSacrifice")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("AcolyteInstantSacrifice")]
[assembly: AssemblyTitle("AcolyteInstantSacrifice")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[BepInPlugin("AcolyteInstantSacrifice", "AcolyteInstantSacrifice", "1.0.0")]
public class AcolyteInstantSacrifice : BaseUnityPlugin
{
	[HarmonyPatch(typeof(AimSacrifice), "OnEnter")]
	public static class OnEnter
	{
		[HarmonyPostfix]
		private static void Postfix(AimSacrifice __instance)
		{
			AimSacrifice.minDuration = 0f;
			GenericSkill special = ((Component)((EntityState)__instance).outer).GetComponent<CharacterBody>().skillLocator.special;
			special.skillDef.mustKeyPress = false;
		}
	}

	[HarmonyPatch(typeof(AimSacrifice), "FixedUpdateAuthority")]
	public static class FixedUpdateAuthority
	{
		[HarmonyPrefix]
		private static bool Prefix(AimSacrifice __instance)
		{
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			if (KeyDown((BaseSkillState)(object)__instance))
			{
				if ((Object)(object)Target.Invoke(__instance) != (Object)null)
				{
					Stopwatch.Invoke(__instance) = 0f;
					((EntityState)__instance).outer.SetNextState((EntityState)new Sacrifice
					{
						target = Target.Invoke(__instance)
					});
				}
				else
				{
					Stopwatch.Invoke(__instance) -= Time.fixedDeltaTime;
					if (Stopwatch.Invoke(__instance) <= 0f)
					{
						Stopwatch.Invoke(__instance) += 1f / AimSacrifice.trackerUpdateFrequency;
						InputBankTest component = ((Component)((EntityState)__instance).outer).GetComponent<InputBankTest>();
						Ray val = default(Ray);
						((Ray)(ref val))..ctor(component.aimOrigin, component.aimDirection);
						__instance.SearchForTarget(val);
					}
				}
			}
			else
			{
				Stopwatch.Invoke(__instance) = 0f;
				((EntityState)__instance).outer.SetNextStateToMain();
			}
			return false;
		}
	}

	internal static ManualLogSource Log;

	internal static readonly FieldRef<AimSacrifice, HurtBox> Target = AccessTools.FieldRefAccess<AimSacrifice, HurtBox>("trackingTarget");

	internal static readonly Func<BaseSkillState, bool> KeyDown = AccessTools.MethodDelegate<Func<BaseSkillState, bool>>(AccessTools.Method(typeof(BaseSkillState), "IsKeyDownAuthority", (Type[])null, (Type[])null), (object)null, true);

	internal static readonly FieldRef<AimSacrifice, float> Stopwatch = AccessTools.FieldRefAccess<AimSacrifice, float>("trackerUpdateStopwatch");

	private void Awake()
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Expected O, but got Unknown
		Log = ((BaseUnityPlugin)this).Logger;
		Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
		val.PatchAll(typeof(AcolyteInstantSacrifice).Assembly);
	}
}