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 ArtiQOL v1.1.2
ArtiQOL.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 BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.Mage; using EntityStates.Mage.Weapon; using Microsoft.CodeAnalysis; using On.EntityStates.Mage.Weapon; using On.RoR2; using On.RoR2.Skills; using R2API; using RoR2; using RoR2.Projectile; using RoR2.Skills; 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("ExamplePlugin")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ExamplePlugin")] [assembly: AssemblyTitle("ExamplePlugin")] [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 ExamplePlugin { internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } } namespace myArtiTweaks { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("IrrationalIntegral.ArtiQOL", "ArtiQOL", "1.1.1")] public class myArtiTweaks : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static hook_OnEnter <0>__Flamethrower_OnEnter; public static hook_OnEnter <1>__ChargeIceBomb_OnEnter; public static hook_OnEnter <2>__PrepWall_OnEnter; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FixedUpdate <>9__30_0; public static hook_FixedUpdate <>9__30_1; public static hook_Init <>9__30_2; internal void <Awake>b__30_0(orig_FixedUpdate orig, AntiGravityForce self) { self.antiGravityCoefficient = AntiGravModifier; orig.Invoke(self); } internal void <Awake>b__30_1(orig_FixedUpdate orig, BaseChargeBombState self) { if (((EntityState)self).isAuthority && self.CalcCharge() > 0.98f) { ((EntityState)self).fixedAge = self.duration * 0.98f; } orig.Invoke(self); } internal void <Awake>b__30_2(orig_Init orig) { orig.Invoke(); if (IonSurgeHeightEnabled) { FlyUpState.duration *= IonSurgeHeightModifier; } if (JetpackThrustEnabled) { JetpackOn.hoverAcceleration *= JetpackThrustModifier; } if (FlamethrowerSprintingEnabled) { SkillDef val = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyFlamethrower"); if (Object.op_Implicit((Object)(object)val)) { val.canceledFromSprinting = false; val.cancelSprintingOnActivation = false; } } if (M2SprintingEnabled) { SkillDef val2 = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyNovaBomb"); if (Object.op_Implicit((Object)(object)val2)) { val2.cancelSprintingOnActivation = false; } SkillDef val3 = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyIceBomb"); if (Object.op_Implicit((Object)(object)val3)) { val3.cancelSprintingOnActivation = false; } } } } public const string PluginGUID = "IrrationalIntegral.ArtiQOL"; public const string PluginAuthor = "IrrationalIntegral"; public const string PluginName = "ArtiQOL"; public const string PluginVersion = "1.1.1"; public static bool AntiGravEnabled; public static float AntiGravModifier; public static bool FlamethrowerTweaks; public static float FlamethrowerRangeModifier; public static bool FlamethrowerSprintingEnabled; public static float FlamethrowerDamageCoeff; public static float Flamethrowerignitechance; public static bool IonSurgeHeightEnabled; public static float IonSurgeHeightModifier; public static bool JetpackThrustEnabled; public static float JetpackThrustModifier; public static bool M2InfiniteChargeEnabled; public static bool M2SprintingEnabled; public static bool IceSpearTweaks; public static float IceSpearCastTime; public static float IceSpearProcCoeffModifier; public static float IceSpearMaxDmgModifier; public static float IceWallSpeed; public static string IceSpearSkillToken => "secondary_ice"; public static string IceSpearDescText => "<style=cIsUtility>Freezing</style>. Charge up a <style=cIsDamage>piercing</style> nano-spear that deals <style=cIsDamage>" + d(4f) + "-" + d(IceSpearMaxDmgModifier) + "</style> damage."; public static string FlamethrowerSkillToken => "special_fire"; public static string FlamethrowerDescText => "<style=cIsDamage>Ignite</style>. Burn all enemies in front of you for <style=cIsDamage>" + d(FlamethrowerDamageCoeff + FlamethrowerDamageCoeff / (1f / (Flamethrowerignitechance / 100f))) + " damage</style>."; public void Awake() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Expected O, but got Unknown //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Expected O, but got Unknown LoadConfig(); if (AntiGravEnabled) { object obj = <>c.<>9__30_0; if (obj == null) { hook_FixedUpdate val = delegate(orig_FixedUpdate orig, AntiGravityForce self) { self.antiGravityCoefficient = AntiGravModifier; orig.Invoke(self); }; <>c.<>9__30_0 = val; obj = (object)val; } AntiGravityForce.FixedUpdate += (hook_FixedUpdate)obj; } if (FlamethrowerTweaks) { object obj2 = <>O.<0>__Flamethrower_OnEnter; if (obj2 == null) { hook_OnEnter val2 = Flamethrower_OnEnter; <>O.<0>__Flamethrower_OnEnter = val2; obj2 = (object)val2; } Flamethrower.OnEnter += (hook_OnEnter)obj2; string text = "MAGE_" + FlamethrowerSkillToken.ToUpper() + "_DESCRIPTION"; LanguageAPI.Add(text, FlamethrowerDescText); } if (M2InfiniteChargeEnabled) { object obj3 = <>c.<>9__30_1; if (obj3 == null) { hook_FixedUpdate val3 = delegate(orig_FixedUpdate orig, BaseChargeBombState self) { if (((EntityState)self).isAuthority && self.CalcCharge() > 0.98f) { ((EntityState)self).fixedAge = self.duration * 0.98f; } orig.Invoke(self); }; <>c.<>9__30_1 = val3; obj3 = (object)val3; } BaseChargeBombState.FixedUpdate += (hook_FixedUpdate)obj3; } if (IceSpearTweaks) { object obj4 = <>O.<1>__ChargeIceBomb_OnEnter; if (obj4 == null) { hook_OnEnter val4 = ChargeIceBomb_OnEnter; <>O.<1>__ChargeIceBomb_OnEnter = val4; obj4 = (object)val4; } BaseChargeBombState.OnEnter += (hook_OnEnter)obj4; BaseThrowBombState.OnEnter += new hook_OnEnter(ThrownIceBomb_OnEnter); string text2 = "MAGE_" + IceSpearSkillToken.ToUpper() + "_DESCRIPTION"; LanguageAPI.Add(text2, IceSpearDescText); } object obj5 = <>O.<2>__PrepWall_OnEnter; if (obj5 == null) { hook_OnEnter val5 = PrepWall_OnEnter; <>O.<2>__PrepWall_OnEnter = val5; obj5 = (object)val5; } PrepWall.OnEnter += (hook_OnEnter)obj5; object obj6 = <>c.<>9__30_2; if (obj6 == null) { hook_Init val6 = delegate(orig_Init orig) { orig.Invoke(); if (IonSurgeHeightEnabled) { FlyUpState.duration *= IonSurgeHeightModifier; } if (JetpackThrustEnabled) { JetpackOn.hoverAcceleration *= JetpackThrustModifier; } if (FlamethrowerSprintingEnabled) { SkillDef val7 = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyFlamethrower"); if (Object.op_Implicit((Object)(object)val7)) { val7.canceledFromSprinting = false; val7.cancelSprintingOnActivation = false; } } if (M2SprintingEnabled) { SkillDef val8 = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyNovaBomb"); if (Object.op_Implicit((Object)(object)val8)) { val8.cancelSprintingOnActivation = false; } SkillDef val9 = Resources.Load<SkillDef>("skilldefs/magebody/MageBodyIceBomb"); if (Object.op_Implicit((Object)(object)val9)) { val9.cancelSprintingOnActivation = false; } } }; <>c.<>9__30_2 = val6; obj6 = (object)val6; } SkillCatalog.Init += (hook_Init)obj6; } private static void Flamethrower_OnEnter(orig_OnEnter orig, Flamethrower self) { if (((EntityState)self).isAuthority) { self.maxDistance *= FlamethrowerRangeModifier; } Flamethrower.totalDamageCoefficient = FlamethrowerDamageCoeff; Flamethrower.ignitePercentChance = Flamethrowerignitechance; orig.Invoke(self); } private static void ChargeIceBomb_OnEnter(orig_OnEnter orig, BaseChargeBombState self) { if (self is ChargeIcebomb) { self.baseDuration = IceSpearCastTime; } orig.Invoke(self); } private static void PrepWall_OnEnter(orig_OnEnter orig, PrepWall self) { self.duration = PrepWall.baseDuration / IceWallSpeed; orig.Invoke(self); } private void ThrownIceBomb_OnEnter(orig_OnEnter orig, BaseThrowBombState self) { if (self is ThrowIcebomb) { self.projectilePrefab.GetComponent<ProjectileController>().procCoefficient = IceSpearProcCoeffModifier; self.maxDamageCoefficient = IceSpearMaxDmgModifier; } orig.Invoke(self); } public static string d(float dmgMod) { return dmgMod * 100f + "%"; } private void LoadConfig() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002c: Expected O, but got Unknown //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_0065: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown //IL_009a: Expected O, but got Unknown //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Expected O, but got Unknown //IL_00d3: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Expected O, but got Unknown //IL_0108: Expected O, but got Unknown //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_0141: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown //IL_017a: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Expected O, but got Unknown //IL_01af: Expected O, but got Unknown //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Expected O, but got Unknown //IL_01e8: Expected O, but got Unknown //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Expected O, but got Unknown //IL_021d: Expected O, but got Unknown //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Expected O, but got Unknown //IL_0256: Expected O, but got Unknown //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Expected O, but got Unknown //IL_028b: Expected O, but got Unknown //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Expected O, but got Unknown //IL_02c0: Expected O, but got Unknown //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Expected O, but got Unknown //IL_02f5: Expected O, but got Unknown //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Expected O, but got Unknown //IL_032e: Expected O, but got Unknown //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Expected O, but got Unknown //IL_0367: Expected O, but got Unknown //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Expected O, but got Unknown //IL_03a0: Expected O, but got Unknown //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Expected O, but got Unknown //IL_03d9: Expected O, but got Unknown AntiGravEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Gravity", "Anti Gravity Enabled"), false, new ConfigDescription("Enable modifying Anti Gravity", (AcceptableValueBase)null, Array.Empty<object>())).Value; AntiGravModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Gravity", "Anti Gravity Value"), 1f, new ConfigDescription("Affects Gravity on Artificer's NanoBomb and Void Fiend's Corrupted Flood. No Gravity: 1, Vanilla Value: 0.7", (AcceptableValueBase)null, Array.Empty<object>())).Value; FlamethrowerTweaks = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Flamethrower", "Tweaks"), true, new ConfigDescription("Enable modifying Flamethrower range", (AcceptableValueBase)null, Array.Empty<object>())).Value; FlamethrowerRangeModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Flamethrower", "Range Modifier"), 1.5f, new ConfigDescription("Multiply Flamethrower range by this value.", (AcceptableValueBase)null, Array.Empty<object>())).Value; FlamethrowerSprintingEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Flamethrower", "Sprinting Enabled"), true, new ConfigDescription("Enable sprinting during Flamethrower usage", (AcceptableValueBase)null, Array.Empty<object>())).Value; FlamethrowerDamageCoeff = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Flamethrower", "Tatal Damage"), 20f, new ConfigDescription("Change Flamethrower damage to this value. Vanilla Value: 20", (AcceptableValueBase)null, Array.Empty<object>())).Value; Flamethrowerignitechance = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Flamethrower", "Ignite Chance"), 100f, new ConfigDescription("Change Flamethrower ignite chance to this value. Vanilla Value: 50", (AcceptableValueBase)null, Array.Empty<object>())).Value; IonSurgeHeightEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Ion Surge", "Height Enabled"), true, new ConfigDescription("Enable modifying IonSurge Height", (AcceptableValueBase)null, Array.Empty<object>())).Value; IonSurgeHeightModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Ion Surge", "Height Modifier"), 0.95f, new ConfigDescription("Modify Ion Surge height by this value.", (AcceptableValueBase)null, Array.Empty<object>())).Value; JetpackThrustEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Jetpack", "Thrust Enabled"), true, new ConfigDescription("Enable modifying Jetpack thrust", (AcceptableValueBase)null, Array.Empty<object>())).Value; JetpackThrustModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Jetpack", "Thrust Modifier"), 1.5f, new ConfigDescription("Modify how fast Jetpack slows your fall", (AcceptableValueBase)null, Array.Empty<object>())).Value; M2InfiniteChargeEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("M2", "Infinite Charge Enabled"), false, new ConfigDescription("Enable holding M2 Max Charge Infinitely", (AcceptableValueBase)null, Array.Empty<object>())).Value; M2SprintingEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("M2", "Sprinting Enabled"), true, new ConfigDescription("Do not cancel sprint during M2 usage", (AcceptableValueBase)null, Array.Empty<object>())).Value; IceSpearTweaks = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Ice Spear", "Tweaks"), true, new ConfigDescription("Enable modifying Ice Spear cast time", (AcceptableValueBase)null, Array.Empty<object>())).Value; IceSpearCastTime = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Ice Spear", "Cast Time"), 1.375f, new ConfigDescription("Modify Ice Spear cast time to this value in seconds. Vanilla value: 2.0", (AcceptableValueBase)null, Array.Empty<object>())).Value; IceSpearProcCoeffModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Ice Spear", "Proc Coefficient"), 1f, new ConfigDescription("Modify Ice Spear proc coefficient to this value. Vanilla value: 1.0", (AcceptableValueBase)null, Array.Empty<object>())).Value; IceSpearMaxDmgModifier = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Ice Spear", "Max Damage Modifier"), 15f, new ConfigDescription("Modify Ice Spear maximum charge damage. Vanilla value: 12", (AcceptableValueBase)null, Array.Empty<object>())).Value; IceWallSpeed = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Ice Wall", "Speed"), 4f, new ConfigDescription("Modify Cast time of snapfreeze, higher is faster. Vanilla value: 1", (AcceptableValueBase)null, Array.Empty<object>())).Value; } } }