Decompiled source of AcridM1BitePlus v1.1.1

Bite.dll

Decompiled 2 months 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.Configuration;
using Microsoft.CodeAnalysis;
using RoR2;
using RoR2.Skills;
using UnityEngine;
using UnityEngine.AddressableAssets;

[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("Bite")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Bite")]
[assembly: AssemblyTitle("Bite")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace Bite
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.sixfears7.M1BitePlus", "M1BitePlus", "1.1.0")]
	public class M1Bite : BaseUnityPlugin
	{
		private GameObject acridBodyPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoBody.prefab").WaitForCompletion();

		public static ConfigEntry<bool> m1Bite { get; set; }

		public static ConfigEntry<bool> m1Spit { get; set; }

		public static ConfigEntry<float> changeBiteAttackSpeed { get; set; }

		public static ConfigEntry<float> changeSpitAttackSpeed { get; set; }

		public void Awake()
		{
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Expected O, but got Unknown
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0286: Expected O, but got Unknown
			//IL_028b: 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)
			Debug.Log((object)"Setting Configs");
			m1Bite = ((BaseUnityPlugin)this).Config.Bind<bool>("M1BitePlus", "Bite", true, "Makes Bite a Primary");
			changeBiteAttackSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("M1BitePlus", "Bite Recharge", 0f, "Base recharge interval for Bite");
			changeSpitAttackSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("M1BitePlus+", "Spit Recharge", 2f, "Base recharge interval for Spit");
			m1Spit = ((BaseUnityPlugin)this).Config.Bind<bool>("M1BitePlus", "Spit", false, "Makes Spit a Primary");
			Debug.Log((object)"1");
			SkillLocator component = acridBodyPrefab.GetComponent<SkillLocator>();
			SkillFamily skillFamily = component.primary.skillFamily;
			SkillFamily skillFamily2 = component.secondary.skillFamily;
			GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoBody.prefab").WaitForCompletion();
			for (int i = 0; i < skillFamily2.variants.Length; i++)
			{
				if (skillFamily2.variants[i].skillDef.skillName == "CrocoBite")
				{
					skillFamily2.variants[i].skillDef.baseRechargeInterval = changeBiteAttackSpeed.Value;
					Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1);
					Variant[] variants = skillFamily.variants;
					int num = skillFamily.variants.Length - 1;
					Variant val2 = default(Variant);
					val2.skillDef = skillFamily2.variants[i].skillDef;
					((Variant)(ref val2)).viewableNode = new Node(skillFamily2.variants[i].skillDef.skillNameToken, false, (Node)null);
					variants[num] = val2;
				}
				if (skillFamily2.variants[i].skillDef.skillName == "CrocoSpit")
				{
					skillFamily2.variants[i].skillDef.baseRechargeInterval = changeSpitAttackSpeed.Value;
					if (m1Spit.Value)
					{
						Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1);
						Variant[] variants2 = skillFamily.variants;
						int num2 = skillFamily.variants.Length - 1;
						Variant val3 = default(Variant);
						val3.skillDef = skillFamily2.variants[i].skillDef;
						((Variant)(ref val3)).viewableNode = new Node(skillFamily2.variants[i].skillDef.skillNameToken, false, (Node)null);
						variants2[num2] = val3;
					}
				}
			}
		}
	}
}