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 SuppressSkillActivation v1.0.0
SuppressSkillActivation.dll
Decompiled 4 months 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 EntityStates; using EntityStates.Captain.Weapon; using EntityStates.Engi.EngiMissilePainter; using EntityStates.Mage.Weapon; using On.EntityStates.Captain.Weapon; using On.EntityStates.Engi.EngiMissilePainter; using On.EntityStates.Mage.Weapon; using R2API.Utils; using RoR2; using RoR2.ContentManagement; using RoR2.Skills; using RoR2BepInExPack.GameAssetPaths.Version_1_39_0; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; [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 = "")] [assembly: AssemblyCompany("SuppressSkillActivation")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("SuppressSkillActivation")] [assembly: AssemblyTitle("SuppressSkillActivation")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace SuppressSkillActivation; [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.RiskOfBrainrot.SuppressSkillActivation", "SuppressSkillActivation", "1.0.0")] public class SuppressSkillActivationPlugin : BaseUnityPlugin { public const string guid = "com.RiskOfBrainrot.SuppressSkillActivation"; public const string teamName = "RiskOfBrainrot"; public const string modName = "SuppressSkillActivation"; public const string version = "1.0.0"; private void Awake() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Mage.MageBodyWall_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallAirstrike_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallAirstrikeAlt_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallSupplyDropEquipmentRestock_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallSupplyDropHacking_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallSupplyDropHealing_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Captain.CallSupplyDropShocking_asset, (Action<SkillDef>)SuppressSkillActivation); SuppressSkillActivationPlugin.LoadAsync<SkillDef>(RoR2_Base_Engi.EngiHarpoons_asset, (Action<SkillDef>)SuppressSkillActivation); PrepWall.OnExit += new hook_OnExit(PrepWall_OnExit); Fire.FireMissile += new hook_FireMissile(Fire_FireMissile); CallAirstrikeBase.OnEnter += new hook_OnEnter(CallAirstrikeBase_OnEnter); CallSupplyDropBase.OnEnter += new hook_OnEnter(CallSupplyDropBase_OnEnter); } public static void SuppressSkillActivation(SkillDef skill) { skill.suppressSkillActivation = true; } public static AssetReferenceT<T> LoadAsync<T>(string guid, Action<T> callback) where T : Object { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) AssetReferenceT<T> val = new AssetReferenceT<T>(guid); AsyncOperationHandle<T> handle2 = AssetAsyncReferenceManager<T>.LoadAsset(val, (AsyncReferenceHandleUnloadType)2); if (callback == null) { return val; } if (handle2.IsDone) { onCompleted(handle2); return val; } handle2.Completed += onCompleted; return val; void onCompleted(AsyncOperationHandle<T> handle) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Invalid comparison between Unknown and I4 if (handle.Result == null || (int)handle.Status != 1) { Debug.LogError((object)$"Failed to load asset [{handle.DebugName}] : {handle.OperationException}"); } else { callback(handle.Result); } } } private void CallSupplyDropBase_OnEnter(orig_OnEnter orig, CallSupplyDropBase self) { orig.Invoke(self); if (self.placementInfo.ok) { ((EntityState)self).characterBody.OnSkillActivated(((EntityState)self).skillLocator.utility); } } private void CallAirstrikeBase_OnEnter(orig_OnEnter orig, CallAirstrikeBase self) { orig.Invoke(self); ((EntityState)self).characterBody.OnSkillActivated(((EntityState)self).skillLocator.utility); } private void Fire_FireMissile(orig_FireMissile orig, Fire self, HurtBox target, Vector3 position) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, target, position); ((EntityState)self).characterBody.OnSkillActivated(((EntityState)self).skillLocator.utility); } private void PrepWall_OnExit(orig_OnExit orig, PrepWall self) { orig.Invoke(self); if (self.goodPlacement) { ((EntityState)self).characterBody.OnSkillActivated(((EntityState)self).skillLocator.utility); } } }