Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of AccurateATG v1.0.0
AccurateATG.dll
Decompiled a year agousing 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)); } } }