using 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);
}
}
}