Decompiled source of AccurateATG v1.0.0

AccurateATG.dll

Decompiled 16 hours 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 IL.RoR2;
using Microsoft.CodeAnalysis;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using On.RoR2;
using R2API;
using RoR2;
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("AccurateATG")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("AccurateATG")]
[assembly: AssemblyTitle("AccurateATG")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
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 AccurateATG
{
	public static class ConsumedIcon
	{
		public static string EncodedSprite = "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";

		public static Sprite GetSprite()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			byte[] array = Convert.FromBase64String(EncodedSprite);
			Texture2D val = new Texture2D(2, 2);
			ImageConversion.LoadImage(val, array);
			return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f);
		}
	}
	[BepInPlugin("pseudopulse.AccurateATG", "AccurateATG", "1.0.0")]
	public class Main : BaseUnityPlugin
	{
		public class ATGAmmoHolder : MonoBehaviour
		{
			public int CurrentAmmo;
		}

		public const string PluginGUID = "pseudopulse.AccurateATG";

		public const string PluginAuthor = "pseudopulse";

		public const string PluginName = "AccurateATG";

		public const string PluginVersion = "1.0.0";

		public static ManualLogSource ModLogger;

		public static int MaxATGUses;

		public static bool ATGNoDamageStack;

		public static ItemDef ConsumedATG;

		public void Awake()
		{
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: 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_00f0: Expected O, but got Unknown
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Expected O, but got Unknown
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Expected O, but got Unknown
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Expected O, but got Unknown
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Expected O, but got Unknown
			ModLogger = ((BaseUnityPlugin)this).Logger;
			MaxATGUses = ((BaseUnityPlugin)this).Config.Bind<int>("Configuration", "ATG Ammo", 120, "The max missiles ATG can fire before breaking.").Value;
			ATGNoDamageStack = ((BaseUnityPlugin)this).Config.Bind<bool>("Configuration", "ATG Damage Stacking", true, "Prevents ATG from stacking damage.").Value;
			ItemDef val = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/Base/Missile/Missile.asset").WaitForCompletion();
			val.descriptionToken = "ACATG_DESC";
			string text = $"<style=cIsDamage>10%</style> chance to fire a missile that deals <style=cIsDamage>300%</style> <style=cStack>(+300% per stack)</style> TOTAL damage. <style=cDeath>Breaks after {MaxATGUses}</style> <style=cStack>(+{MaxATGUses} per stack)</style> <style=cDeath>uses.</style>";
			string text2 = $"<style=cIsDamage>10%</style> chance to fire a missile that deals <style=cIsDamage>300%</style> TOTAL damage. <style=cDeath>Breaks after {MaxATGUses}</style> <style=cStack>(+{MaxATGUses} per stack)</style> <style=cDeath>uses.</style>";
			string text3 = (ATGNoDamageStack ? text2 : text);
			if (ATGNoDamageStack)
			{
				GlobalEventManager.ProcessHitEnemy += new Manipulator(StripDamageStacking);
			}
			GlobalEventManager.ProcessHitEnemy += new Manipulator(ProcessAmmoUsage);
			CharacterMaster.Start += new hook_Start(AddATGAmmoHolder);
			Inventory.GiveItem_ItemIndex_int += new hook_GiveItem_ItemIndex_int(OnGiveItem);
			Inventory.RemoveItem_ItemIndex_int += new hook_RemoveItem_ItemIndex_int(OnRemoveItem);
			LanguageAPI.Add("ACATG_DESC", text3);
			ItemDef val2 = ScriptableObject.CreateInstance<ItemDef>();
			val2.deprecatedTier = (ItemTier)5;
			val2.nameToken = "CONSUMED_ATG_NAME";
			val2.descriptionToken = "CONSUMED_ATG_PICKUP";
			val2.pickupToken = "CONSUMED_ATG_PICKUP";
			val2.pickupIconSprite = ConsumedIcon.GetSprite();
			ConsumedATG = val2;
			LanguageAPI.Add("CONSUMED_ATG_NAME", "Spent AtG Missile Mk. 1");
			LanguageAPI.Add("CONSUMED_ATG_PICKUP", "An empty weapon.");
			ContentAddition.AddItemDef(val2);
		}

		private void OnRemoveItem(orig_RemoveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			orig.Invoke(self, itemIndex, count);
			if (itemIndex == Items.Missile.itemIndex)
			{
				ATGAmmoHolder component = ((Component)self).GetComponent<ATGAmmoHolder>();
				component.CurrentAmmo -= MaxATGUses * count;
				component.CurrentAmmo = Mathf.Max(component.CurrentAmmo, 0);
			}
		}

		private void OnGiveItem(orig_GiveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			orig.Invoke(self, itemIndex, count);
			if (itemIndex == Items.Missile.itemIndex)
			{
				((Component)self).GetComponent<ATGAmmoHolder>().CurrentAmmo += MaxATGUses * count;
			}
		}

		private void AddATGAmmoHolder(orig_Start orig, CharacterMaster self)
		{
			orig.Invoke(self);
			((Component)self).gameObject.AddComponent<ATGAmmoHolder>();
		}

		private void ProcessAmmoUsage(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "Missile")
			});
			ILLabel val2 = default(ILLabel);
			val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchBrfalse(x, ref val2)
			});
			val.Emit(OpCodes.Ldarg_1);
			val.EmitDelegate<Action<DamageInfo>>((Action<DamageInfo>)SubtractATGAmmo);
		}

		private static void SubtractATGAmmo(DamageInfo info)
		{
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)info.attacker))
			{
				CharacterBody component = info.attacker.GetComponent<CharacterBody>();
				ATGAmmoHolder component2 = ((Component)component.master).GetComponent<ATGAmmoHolder>();
				component2.CurrentAmmo--;
				int itemCount = component.inventory.GetItemCount(Items.Missile);
				if (component2.CurrentAmmo <= itemCount * MaxATGUses - MaxATGUses)
				{
					component2.CurrentAmmo += MaxATGUses;
					component.inventory.RemoveItem(Items.Missile, 1);
					component.inventory.GiveItem(ConsumedATG, 1);
					CharacterMasterNotificationQueue.SendTransformNotification(component.master, Items.Missile.itemIndex, ConsumedATG.itemIndex, (TransformationType)0);
				}
			}
		}

		private void StripDamageStacking(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "Missile")
			});
			int index = val.Index;
			val.Index = index + 1;
			val.EmitDelegate<Func<int, int>>((Func<int, int>)((int discard) => (discard >= 1) ? 1 : 0));
		}
	}
}