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 BackstabRework v1.0.4
BackstabRework.dll
Decompiled 2 years 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 IL.RoR2; using Mono.Cecil.Cil; using MonoMod.Cil; using R2API; using R2API.Utils; 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("BackstabRework")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BackstabRework")] [assembly: AssemblyTitle("BackstabRework")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace BackstabRework; [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Moffein.BackstabRework", "Backstab Rework", "1.0.4")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class BackstabRework : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__2_1; public static Func<int, CharacterBody, int> <>9__2_2; public static Manipulator <>9__2_0; internal void <Awake>b__2_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "ConvertCritChanceToCritDamage") }); val.Index += 2; val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<int, CharacterBody, int>>((Func<int, CharacterBody, int>)delegate(int cdCount, CharacterBody self) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) if (cdCount < 1 && self.bodyIndex == Bandit2Index && ((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)128)) { cdCount = 1; } return cdCount; }); } internal bool <Awake>b__2_1(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "ConvertCritChanceToCritDamage"); } internal int <Awake>b__2_2(int cdCount, CharacterBody self) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) if (cdCount < 1 && self.bodyIndex == Bandit2Index && ((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)128)) { cdCount = 1; } return cdCount; } } public static BodyIndex Bandit2Index; public static float baseCritMultiplier = 1.5f; public void Awake() { //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected O, but got Unknown baseCritMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Settings", "Base Crit Multiplier", 1.5f, "Bandit's base crit multiplier. 2.0 is standard.").Value; LanguageAPI.Add("BackstabRework_BANDIT2_PASSIVE_DESC", "All attacks from <style=cIsDamage>behind</style> are <style=cIsDamage>Critical Strikes</style>. All <style=cIsDamage>Critical Strike Chance</style> is converted into <style=cIsDamage>Critical Strike Damage</style>."); GameObject val = LegacyResourcesAPI.Load<GameObject>("prefabs/characterbodies/bandit2body"); val.GetComponent<SkillLocator>().passiveSkill.skillDescriptionToken = "BackstabRework_BANDIT2_PASSIVE_DESC"; RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoad)); object obj = <>c.<>9__2_0; if (obj == null) { Manipulator val2 = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) ILCursor val3 = new ILCursor(il); val3.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Items), "ConvertCritChanceToCritDamage") }); val3.Index += 2; val3.Emit(OpCodes.Ldarg_0); val3.EmitDelegate<Func<int, CharacterBody, int>>((Func<int, CharacterBody, int>)delegate(int cdCount, CharacterBody self) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) if (cdCount < 1 && self.bodyIndex == Bandit2Index && ((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)128)) { cdCount = 1; } return cdCount; }); }; <>c.<>9__2_0 = val2; obj = (object)val2; } CharacterBody.RecalculateStats += (Manipulator)obj; RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void OnLoad() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) Bandit2Index = BodyCatalog.FindBodyIndex("Bandit2Body"); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (sender.bodyIndex == Bandit2Index && ((Enum)sender.bodyFlags).HasFlag((Enum)(object)(BodyFlags)128)) { args.critDamageMultAdd -= 2f - baseCritMultiplier; } } }