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 BingusModRevived v1.1.5
BingusMod.dll
Decompiled 6 months agousing System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Logging; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using R2API.Utils; using RiskyMod.Allies; using RoR2; using RoR2.CharacterAI; 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("BingusMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BingusMod")] [assembly: AssemblyTitle("BingusMod")] [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 BingusMod { internal class Assets { internal static GameObject BingusPrefab; internal static Sprite BingusIcon; internal static ItemDef BingusItemDef; private const string ModPrefix = "@BingusMod:"; internal static void Init() { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BingusMod.ror2bingus")) { AssetBundle val = AssetBundle.LoadFromStream(stream); BingusPrefab = val.LoadAsset<GameObject>("Assets/Import/bingus/bingus.prefab"); BingusIcon = val.LoadAsset<Sprite>("Assets/Import/bingus_icon/bingus_icon.png"); } BingusAsRedTierItem(); AddLanguageTokens(); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void RiskyModCompat(Inventory inv) { inv.GiveItem(AllyItems.AllyMarkerItem, 1); inv.GiveItem(AllyItems.AllyScalingItem, 1); inv.GiveItem(AllyItems.AllyRegenItem, 40); inv.GiveItem(AllyItems.AllyAllowVoidDeathItem, 1); } private static void BingusAsRedTierItem() { //IL_0025: 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_00c7: 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) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Expected O, but got Unknown BingusItemDef = ScriptableObject.CreateInstance<ItemDef>(); ItemDef bingusItemDef = BingusItemDef; ((Object)bingusItemDef).name = "BINGUS"; bingusItemDef.deprecatedTier = (ItemTier)2; bingusItemDef.pickupModelPrefab = BingusPrefab; bingusItemDef.pickupIconSprite = BingusIcon; bingusItemDef.nameToken = "Bingus"; bingusItemDef.pickupToken = "Entering low health state charms enemies"; bingusItemDef.descriptionToken = "Entering <style=cDeath>low health state</style> charms <style=cIsUtility>2</style> enemies <style=cStack>(+1 per stack)</style>. Why? because they are stupid and think bingus squish is cute."; bingusItemDef.loreToken = "do not let its look fool you, it's a class-534 threat."; ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); bingusItemDef.tags = (ItemTag[])(object)array; ItemDisplayRule[] array2 = (ItemDisplayRule[])(object)new ItemDisplayRule[1]; array2[0].followerPrefab = BingusPrefab; array2[0].childName = "Head"; array2[0].localScale = new Vector3(1f, 1f, 1f); array2[0].localAngles = new Vector3(-90f, 0f, 0f); array2[0].localPos = new Vector3(0f, -0.25f, -0.34f); CustomItem val = new CustomItem(BingusItemDef, array2); bool flag = ItemAPI.Add(val); bool debounce = false; HealthComponent.FixedUpdate += (hook_FixedUpdate)delegate(orig_FixedUpdate orig, HealthComponent self) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Invalid comparison between Unknown and I4 if (((object)self).Equals((object?)null) || !self.body.isPlayerControlled) { orig.Invoke(self); } else { CharacterBody body = self.body; if (body.inventory.GetItemCount(BingusItemDef) > 0) { if (self.isHealthLow && !debounce) { Random random = new Random(); debounce = true; for (int i = 0; i <= body.inventory.GetItemCount(BingusItemDef); i++) { TeamComponent val2 = new TeamComponent(); try { if (TeamComponent.GetTeamMembers((TeamIndex)2).Count == 0) { orig.Invoke(self); return; } val2 = TeamComponent.GetTeamMembers((TeamIndex)2)[random.Next(1, TeamComponent.GetTeamMembers((TeamIndex)2).Count)]; if (!((Object)(object)((Component)val2.body).gameObject.transform == (Object)null)) { if (val2.body.master.isBoss) { val2 = TeamComponent.GetTeamMembers((TeamIndex)2)[random.Next(1, TeamComponent.GetTeamMembers((TeamIndex)2).Count)]; } goto IL_0132; } } catch (ArgumentOutOfRangeException) { } continue; IL_0132: BaseAI component = ((Component)val2.body.master).GetComponent<BaseAI>(); val2.body.master.teamIndex = (TeamIndex)1; val2.body.teamComponent.teamIndex = (TeamIndex)1; if (Chainloader.PluginInfos.ContainsKey("com.RiskyLives.RiskyMod") && Object.op_Implicit((Object)(object)val2.body.inventory)) { RiskyModCompat(val2.body.inventory); } component.currentEnemy.Reset(); component.ForceAcquireNearestEnemyIfNoCurrentEnemy(); } } if (!self.isHealthLow && debounce) { debounce = false; } for (int j = 0; j < TeamComponent.GetTeamMembers((TeamIndex)1).Count; j++) { TeamComponent val3 = TeamComponent.GetTeamMembers((TeamIndex)1)[j]; if (!val3.body.isPlayerControlled && !((Object)(object)((Component)body).gameObject.transform != (Object)null)) { BaseAI component2 = val3.body.masterObject.GetComponent<BaseAI>(); if ((int)component2.currentEnemy.characterBody.teamComponent.teamIndex == 1) { component2.currentEnemy.Reset(); component2.ForceAcquireNearestEnemyIfNoCurrentEnemy(); } } } } orig.Invoke(self); } }; } private static void AddLanguageTokens() { LanguageAPI.Add("BINGUS_NAME", "Bingus"); LanguageAPI.Add("BINGUS_PICKUP", "Entering <style=cDeath>low health state</style> state charms enemies"); LanguageAPI.Add("BINGUS_DESC", "Entering <style=cDeath>low health state</style> charms <style=cIsUtility>2</style> enemies <style=cStack>(+1 per stack)</style>. Why? because they are stupid and think bingus squish is cute."); LanguageAPI.Add("BINGUS_LORE", "do not let its look fool you, it's a class-534 threat."); } } [BepInDependency(/*Could not decode attribute arguments.*/)] [R2APISubmoduleDependency(new string[] { "ItemAPI", "LanguageAPI" })] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.phreel.bingusmodrevived", "Bingus Mod", "1.1.5")] public class CustomItem : BaseUnityPlugin { private const string ModVer = "1.1.5"; private const string ModName = "Bingus Mod"; public const string ModGuid = "com.phreel.bingusmodrevived"; internal static ManualLogSource Logger; public void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Assets.Init(); } } }