Decompiled source of RisingTides v1.2.0

RisingTides.dll

Decompiled 4 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
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.Configuration;
using BepInEx.Logging;
using EntityStates;
using EntityStates.AI.Walker;
using EntityStates.GlobalSkills.LunarDetonator;
using HG;
using HG.Reflection;
using IL.RoR2;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using MysticsItems;
using MysticsRisky2Utils;
using MysticsRisky2Utils.BaseAssetTypes;
using MysticsRisky2Utils.ContentManagement;
using MysticsRisky2Utils.SoftDependencies;
using On.RoR2;
using On.RoR2.UI;
using R2API;
using R2API.Networking;
using R2API.Networking.Interfaces;
using R2API.Utils;
using RisingTides.Buffs;
using RisingTides.Equipment;
using RoR2;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Navigation;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.Rendering.PostProcessing;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: OptIn]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("RisingTides")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("RisingTides")]
[assembly: AssemblyTitle("RisingTides")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace RisingTides
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.themysticsword.risingtides", "Rising Tides", "1.2.0")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	public class RisingTidesPlugin : BaseUnityPlugin
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static CollectContentPackProvidersDelegate <>9__14_0;

			internal void <Awake>b__14_0(AddContentPackProviderDelegate addContentPackProvider)
			{
				addContentPackProvider.Invoke((IContentPackProvider)(object)new RisingTidesContent());
			}
		}

		public const string PluginGUID = "com.themysticsword.risingtides";

		public const string PluginName = "Rising Tides";

		public const string PluginVersion = "1.2.0";

		public static Assembly executingAssembly;

		internal static Type declaringType;

		internal static PluginInfo pluginInfo;

		internal static ManualLogSource logger;

		internal static ConfigFile config;

		public static ConfigurableValue<bool> ignoreBalanceChanges;

		public static ConfigurableValue<bool> eliteDamageMultipliersEnabled;

		private static AssetBundle _assetBundle;

		internal static bool mysticsItemsCompatibility;

		public static AssetBundle AssetBundle
		{
			get
			{
				if ((Object)(object)_assetBundle == (Object)null)
				{
					_assetBundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(pluginInfo.Location), "risingtidesassetbundle"));
				}
				return _assetBundle;
			}
		}

		public void Awake()
		{
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Expected O, but got Unknown
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Expected O, but got Unknown
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			pluginInfo = ((BaseUnityPlugin)this).Info;
			logger = ((BaseUnityPlugin)this).Logger;
			config = ((BaseUnityPlugin)this).Config;
			executingAssembly = Assembly.GetExecutingAssembly();
			declaringType = MethodBase.GetCurrentMethod().DeclaringType;
			SoundBanks.Add(File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(pluginInfo.Location), "RisingTidesSoundbank.bnk")));
			if (RiskOfOptionsDependency.enabled)
			{
				Sprite val = null;
				string path = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "icon.png");
				if (File.Exists(path))
				{
					Texture2D val2 = new Texture2D(2, 2);
					ImageConversion.LoadImage(val2, File.ReadAllBytes(path));
					val = Sprite.Create(val2, new Rect(0f, 0f, (float)((Texture)val2).width, (float)((Texture)val2).height), new Vector2(0f, 0f), 100f);
				}
				RiskOfOptionsDependency.RegisterModInfo("com.themysticsword.risingtides", "Rising Tides", "New elites and a new enemy!", val);
			}
			ignoreBalanceChanges = ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", config, "General", "Ignore Balance Changes", true, "If true, most of the numerical balance-related config options will be ignored and will use recommended default values. These are usually the values that might get tweaked often during mod updates.", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)null);
			ContentLoadHelper.PluginAwakeLoad<BaseItem>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseEquipment>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseBuff>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseElite>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseInteractable>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseCharacterBody>(executingAssembly);
			ContentLoadHelper.PluginAwakeLoad<BaseCharacterMaster>(executingAssembly);
			object obj = <>c.<>9__14_0;
			if (obj == null)
			{
				CollectContentPackProvidersDelegate val3 = delegate(AddContentPackProviderDelegate addContentPackProvider)
				{
					addContentPackProvider.Invoke((IContentPackProvider)(object)new RisingTidesContent());
				};
				<>c.<>9__14_0 = val3;
				obj = (object)val3;
			}
			ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)obj;
			mysticsItemsCompatibility = Chainloader.PluginInfos.ContainsKey("com.themysticsword.mysticsitems");
		}
	}
	public class RisingTidesContent : IContentPackProvider
	{
		public static class Resources
		{
			public static List<GameObject> bodyPrefabs = new List<GameObject>();

			public static List<GameObject> masterPrefabs = new List<GameObject>();

			public static List<GameObject> projectilePrefabs = new List<GameObject>();

			public static List<GameObject> effectPrefabs = new List<GameObject>();

			public static List<GameObject> gameModePrefabs = new List<GameObject>();

			public static List<GameObject> networkedObjectPrefabs = new List<GameObject>();

			public static List<NetworkSoundEventDef> networkSoundEventDefs = new List<NetworkSoundEventDef>();

			public static List<UnlockableDef> unlockableDefs = new List<UnlockableDef>();

			public static List<Type> entityStateTypes = new List<Type>();

			public static List<SkillDef> skillDefs = new List<SkillDef>();

			public static List<SkillFamily> skillFamilies = new List<SkillFamily>();

			public static List<SceneDef> sceneDefs = new List<SceneDef>();

			public static List<GameEndingDef> gameEndingDefs = new List<GameEndingDef>();
		}

		public static class Items
		{
			public static ItemDef RisingTides_MirrorClone;
		}

		public static class Buffs
		{
			public static BuffDef RisingTides_AffixWater;

			public static BuffDef RisingTides_WaterInvincibility;

			public static BuffDef RisingTides_WaterBubbleTrapCooldown;

			public static BuffDef RisingTides_AffixBarrier;

			public static BuffDef RisingTides_MaxBarrierGained;

			public static BuffDef RisingTides_AffixBlackHole;

			public static BuffDef RisingTides_AffectedByVoidFreeze;

			public static BuffDef RisingTides_BlackHoleMark;

			public static BuffDef RisingTides_AffixMoney;

			public static BuffDef RisingTides_AffixNight;

			public static BuffDef RisingTides_NightSpeedBoost;

			public static BuffDef RisingTides_NightReducedVision;

			public static BuffDef RisingTides_AffixImpPlane;

			public static BuffDef RisingTides_ImpPlaneScar;

			public static BuffDef RisingTides_ImpPlaneDotImmunity;

			public static BuffDef RisingTides_AffixMirror;
		}

		public static class Elites
		{
			public static EliteDef RisingTides_Water;

			public static EliteDef RisingTides_Barrier;

			public static EliteDef RisingTides_BlackHole;

			public static EliteDef RisingTides_Money;

			public static EliteDef RisingTides_Night;

			public static EliteDef RisingTides_ImpPlane;

			public static EliteDef RisingTides_Mirror;
		}

		public static class Equipment
		{
			public static EquipmentDef RisingTides_AffixWater;

			public static EquipmentDef RisingTides_AffixBarrier;

			public static EquipmentDef RisingTides_AffixBlackHole;

			public static EquipmentDef RisingTides_AffixMoney;

			public static EquipmentDef RisingTides_AffixNight;

			public static EquipmentDef RisingTides_AffixImpPlane;

			public static EquipmentDef RisingTides_AffixMirror;
		}

		private ContentPack contentPack = new ContentPack();

		public string identifier => "Rising Tides";

		public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
		{
			contentPack.identifier = identifier;
			ContentLoadHelper contentLoadHelper = new ContentLoadHelper();
			Assembly executingAssembly = RisingTidesPlugin.executingAssembly;
			Action[] loadDispatchers3 = new Action[7]
			{
				delegate
				{
					contentLoadHelper.DispatchLoad<ItemDef>(executingAssembly, typeof(BaseItem), (Action<ItemDef[]>)delegate(ItemDef[] x)
					{
						contentPack.itemDefs.Add(x);
					});
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<EquipmentDef>(executingAssembly, typeof(BaseEquipment), (Action<EquipmentDef[]>)delegate(EquipmentDef[] x)
					{
						contentPack.equipmentDefs.Add(x);
					});
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<BuffDef>(executingAssembly, typeof(BaseBuff), (Action<BuffDef[]>)delegate(BuffDef[] x)
					{
						contentPack.buffDefs.Add(x);
					});
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<EliteDef>(executingAssembly, typeof(BaseElite), (Action<EliteDef[]>)delegate(EliteDef[] x)
					{
						contentPack.eliteDefs.Add(x);
					});
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<GameObject>(executingAssembly, typeof(BaseInteractable), (Action<GameObject[]>)null);
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<GameObject>(executingAssembly, typeof(BaseCharacterBody), (Action<GameObject[]>)delegate(GameObject[] x)
					{
						contentPack.bodyPrefabs.Add(x);
					});
				},
				delegate
				{
					contentLoadHelper.DispatchLoad<GameObject>(executingAssembly, typeof(BaseCharacterMaster), (Action<GameObject[]>)delegate(GameObject[] x)
					{
						contentPack.masterPrefabs.Add(x);
					});
				}
			};
			int k = 0;
			while (k < loadDispatchers3.Length)
			{
				loadDispatchers3[k]();
				args.ReportProgress(Util.Remap((float)(k + 1), 0f, (float)loadDispatchers3.Length, 0f, 0.05f));
				yield return null;
				int num = k + 1;
				k = num;
			}
			while (contentLoadHelper.coroutine.MoveNext())
			{
				args.ReportProgress(Util.Remap(contentLoadHelper.progress.value, 0f, 1f, 0.05f, 0.9f));
				yield return contentLoadHelper.coroutine.Current;
			}
			loadDispatchers3 = new Action[17]
			{
				delegate
				{
					ContentLoadHelper.PopulateTypeFields<ItemDef>(typeof(Items), contentPack.itemDefs, (Func<string, string>)null);
				},
				delegate
				{
					ContentLoadHelper.PopulateTypeFields<EquipmentDef>(typeof(Equipment), contentPack.equipmentDefs, (Func<string, string>)null);
				},
				delegate
				{
					ContentLoadHelper.PopulateTypeFields<BuffDef>(typeof(Buffs), contentPack.buffDefs, (Func<string, string>)null);
				},
				delegate
				{
					ContentLoadHelper.PopulateTypeFields<EliteDef>(typeof(Elites), contentPack.eliteDefs, (Func<string, string>)null);
				},
				delegate
				{
					contentPack.bodyPrefabs.Add(Resources.bodyPrefabs.ToArray());
				},
				delegate
				{
					contentPack.masterPrefabs.Add(Resources.masterPrefabs.ToArray());
				},
				delegate
				{
					contentPack.projectilePrefabs.Add(Resources.projectilePrefabs.ToArray());
				},
				delegate
				{
					contentPack.gameModePrefabs.Add(Resources.gameModePrefabs.ToArray());
				},
				delegate
				{
					contentPack.networkedObjectPrefabs.Add(Resources.networkedObjectPrefabs.ToArray());
				},
				delegate
				{
					contentPack.effectDefs.Add(Resources.effectPrefabs.ConvertAll((Converter<GameObject, EffectDef>)((GameObject x) => new EffectDef(x))).ToArray());
				},
				delegate
				{
					contentPack.networkSoundEventDefs.Add(Resources.networkSoundEventDefs.ToArray());
				},
				delegate
				{
					contentPack.unlockableDefs.Add(Resources.unlockableDefs.ToArray());
				},
				delegate
				{
					contentPack.entityStateTypes.Add(Resources.entityStateTypes.ToArray());
				},
				delegate
				{
					contentPack.skillDefs.Add(Resources.skillDefs.ToArray());
				},
				delegate
				{
					contentPack.skillFamilies.Add(Resources.skillFamilies.ToArray());
				},
				delegate
				{
					contentPack.sceneDefs.Add(Resources.sceneDefs.ToArray());
				},
				delegate
				{
					contentPack.gameEndingDefs.Add(Resources.gameEndingDefs.ToArray());
				}
			};
			int j = 0;
			while (j < loadDispatchers3.Length)
			{
				loadDispatchers3[j]();
				args.ReportProgress(Util.Remap((float)(j + 1), 0f, (float)loadDispatchers3.Length, 0.9f, 0.95f));
				yield return null;
				int num = j + 1;
				j = num;
			}
			loadDispatchers3 = new Action[7]
			{
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseItem>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseEquipment>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseBuff>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseElite>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseInteractable>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseCharacterMaster>(executingAssembly);
				},
				delegate
				{
					ContentLoadHelper.InvokeAfterContentPackLoaded<BaseCharacterBody>(executingAssembly);
				}
			};
			int i = 0;
			while (i < loadDispatchers3.Length)
			{
				loadDispatchers3[i]();
				args.ReportProgress(Util.Remap((float)(i + 1), 0f, (float)loadDispatchers3.Length, 0.95f, 0.99f));
				yield return null;
				int num = i + 1;
				i = num;
			}
		}

		public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args)
		{
			ContentPack.Copy(contentPack, args.output);
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator FinalizeAsync(FinalizeAsyncArgs args)
		{
			args.ReportProgress(1f);
			yield break;
		}
	}
}
namespace RisingTides.Items
{
	public class MirrorClone : BaseItem
	{
		public override void OnLoad()
		{
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Expected O, but got Unknown
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.itemDef).name = "RisingTides_MirrorClone";
			((BaseItem)this).SetItemTierWhenAvailable((ItemTier)5);
			ItemDef itemDef = base.itemDef;
			ItemTag[] array = new ItemTag[3];
			RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
			itemDef.tags = (ItemTag[])(object)array;
			base.itemDef.hidden = true;
			base.itemDef.canRemove = false;
			RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients);
			GenericGameEvents.BeforeTakeDamage += new DamageAttackerVictimEventHandler(GenericGameEvents_BeforeTakeDamage);
		}

		private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args)
		{
			if (Object.op_Implicit((Object)(object)sender.inventory) && sender.inventory.GetItemCount(base.itemDef) > 0 && Object.op_Implicit((Object)(object)sender.healthComponent))
			{
				sender.healthComponent.globalDeathEventChanceCoefficient = 0f;
			}
		}

		private void GenericGameEvents_BeforeTakeDamage(DamageInfo damageInfo, GenericCharacterInfo attackerInfo, GenericCharacterInfo victimInfo)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)attackerInfo.inventory) && attackerInfo.inventory.GetItemCount(base.itemDef) > 0)
			{
				damageInfo.damage = Mathf.Min(0.01f, damageInfo.procCoefficient);
				damageInfo.procCoefficient = Mathf.Min(0.01f, damageInfo.procCoefficient);
			}
		}
	}
}
namespace RisingTides.Elites
{
	public class Barrier : BaseElite
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnModelEffectSpawn <>9__0_2;

			internal void <OnLoad>b__0_2(CharacterModel model, GameObject effect)
			{
				//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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)model.body))
				{
					Transform transform = effect.transform;
					transform.localScale += Vector3.one * model.body.radius;
				}
				Util.PlaySound("RisingTides_Play_elite_bismuth_spawn", effect);
			}
		}

		public override void OnLoad()
		{
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_Barrier";
			base.vanillaTier = 2;
			base.isHonor = false;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Bismuth", "Health Boost Coefficient", 18f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Bismuth", "Damage Boost Coefficient", 6f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Barrier/texAffixBarrierRecolorRamp.png"));
			base.modelEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Barrier/AffixBarrierEffect.prefab");
			base.lightColorOverride = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue));
			base.particleMaterialOverride = RisingTidesPlugin.AssetBundle.LoadAsset<Material>("Assets/Mods/RisingTides/Elites/Barrier/matAffixBarrierRainbowParticle.mat");
			object obj = <>c.<>9__0_2;
			if (obj == null)
			{
				OnModelEffectSpawn val = delegate(CharacterModel model, GameObject effect)
				{
					//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_002d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0032: Unknown result type (might be due to invalid IL or missing references)
					if (Object.op_Implicit((Object)(object)model.body))
					{
						Transform transform = effect.transform;
						transform.localScale += Vector3.one * model.body.radius;
					}
					Util.PlaySound("RisingTides_Play_elite_bismuth_spawn", effect);
				};
				<>c.<>9__0_2 = val;
				obj = (object)val;
			}
			base.onModelEffectSpawn = (OnModelEffectSpawn)obj;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Bismuth", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixBarrier : null);
			});
		}
	}
	public class BlackHole : BaseElite
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnModelEffectSpawn <>9__0_2;

			internal void <OnLoad>b__0_2(CharacterModel model, GameObject effect)
			{
				//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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)model.body))
				{
					Transform transform = effect.transform;
					transform.localScale += Vector3.one * model.body.radius;
				}
				Util.PlaySound("RisingTides_Play_elite_onyx_spawn", effect);
				if (Object.op_Implicit((Object)(object)model.mainSkinnedMeshRenderer))
				{
					JitterBones[] components = effect.GetComponents<JitterBones>();
					for (int i = 0; i < components.Length; i++)
					{
						components[i].skinnedMeshRenderer = model.mainSkinnedMeshRenderer;
					}
				}
			}
		}

		public override void OnLoad()
		{
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_BlackHole";
			base.vanillaTier = 2;
			base.isHonor = false;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Onyx", "Health Boost Coefficient", 18f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Onyx", "Damage Boost Coefficient", 6f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/BlackHole/texAffixBlackHoleRecolorRamp.png"));
			base.modelEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/BlackHole/AffixBlackHoleEffect.prefab");
			JitterBones val = base.modelEffect.AddComponent<JitterBones>();
			val.perlinNoiseFrequency = 1f;
			val.perlinNoiseStrength = 0.3f;
			val.perlinNoiseMinimumCutoff = 0f;
			val.perlinNoiseMaximumCutoff = 1f;
			val.headBonusStrength = 80f;
			base.lightColorOverride = Color32.op_Implicit(new Color32((byte)84, (byte)0, byte.MaxValue, byte.MaxValue));
			base.particleMaterialOverride = RisingTidesPlugin.AssetBundle.LoadAsset<Material>("Assets/Mods/RisingTides/Elites/BlackHole/matAffixBlackHoleParticleOverride.mat");
			object obj = <>c.<>9__0_2;
			if (obj == null)
			{
				OnModelEffectSpawn val2 = delegate(CharacterModel model, GameObject effect)
				{
					//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_002d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0032: Unknown result type (might be due to invalid IL or missing references)
					if (Object.op_Implicit((Object)(object)model.body))
					{
						Transform transform = effect.transform;
						transform.localScale += Vector3.one * model.body.radius;
					}
					Util.PlaySound("RisingTides_Play_elite_onyx_spawn", effect);
					if (Object.op_Implicit((Object)(object)model.mainSkinnedMeshRenderer))
					{
						JitterBones[] components = effect.GetComponents<JitterBones>();
						for (int i = 0; i < components.Length; i++)
						{
							components[i].skinnedMeshRenderer = model.mainSkinnedMeshRenderer;
						}
					}
				};
				<>c.<>9__0_2 = val2;
				obj = (object)val2;
			}
			base.onModelEffectSpawn = (OnModelEffectSpawn)obj;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Onyx", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixBlackHole : null);
			});
		}
	}
	public class ImpPlane : BaseElite
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnModelEffectSpawn <>9__0_2;

			internal void <OnLoad>b__0_2(CharacterModel model, GameObject effect)
			{
				//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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)model.body))
				{
					Transform transform = effect.transform;
					transform.localScale += Vector3.one * model.body.radius;
				}
				Util.PlaySound("RisingTides_Play_realgar_spawn", effect);
				if (Object.op_Implicit((Object)(object)model.mainSkinnedMeshRenderer))
				{
					JitterBones[] components = effect.GetComponents<JitterBones>();
					for (int i = 0; i < components.Length; i++)
					{
						components[i].skinnedMeshRenderer = model.mainSkinnedMeshRenderer;
					}
				}
			}
		}

		public override void OnLoad()
		{
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_ImpPlane";
			base.vanillaTier = 2;
			base.isHonor = false;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Realgar", "Health Boost Coefficient", 18f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Realgar", "Damage Boost Coefficient", 6f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/ImpPlane/texAffixImpPlaneRecolorRamp.png"));
			base.modelEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/ImpPlane/AffixImpPlaneEffect.prefab");
			JitterBones val = base.modelEffect.AddComponent<JitterBones>();
			val.perlinNoiseFrequency = 20f;
			val.perlinNoiseStrength = 3f;
			val.perlinNoiseMinimumCutoff = 0.5f;
			val.perlinNoiseMaximumCutoff = 1f;
			val.headBonusStrength = 0f;
			val = base.modelEffect.AddComponent<JitterBones>();
			val.perlinNoiseFrequency = 20f;
			val.perlinNoiseStrength = 0.2f;
			val.perlinNoiseMinimumCutoff = 0.1f;
			val.perlinNoiseMaximumCutoff = 0.9f;
			val.headBonusStrength = 30f;
			base.lightColorOverride = Color32.op_Implicit(new Color32((byte)230, (byte)0, (byte)60, byte.MaxValue));
			base.particleMaterialOverride = RisingTidesPlugin.AssetBundle.LoadAsset<Material>("Assets/Mods/RisingTides/Elites/ImpPlane/matAffixImpPlaneSpikeVoidParticle.mat");
			object obj = <>c.<>9__0_2;
			if (obj == null)
			{
				OnModelEffectSpawn val2 = delegate(CharacterModel model, GameObject effect)
				{
					//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_002d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0032: Unknown result type (might be due to invalid IL or missing references)
					if (Object.op_Implicit((Object)(object)model.body))
					{
						Transform transform = effect.transform;
						transform.localScale += Vector3.one * model.body.radius;
					}
					Util.PlaySound("RisingTides_Play_realgar_spawn", effect);
					if (Object.op_Implicit((Object)(object)model.mainSkinnedMeshRenderer))
					{
						JitterBones[] components = effect.GetComponents<JitterBones>();
						for (int i = 0; i < components.Length; i++)
						{
							components[i].skinnedMeshRenderer = model.mainSkinnedMeshRenderer;
						}
					}
				};
				<>c.<>9__0_2 = val2;
				obj = (object)val2;
			}
			base.onModelEffectSpawn = (OnModelEffectSpawn)obj;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Realgar", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixImpPlane : null);
			});
		}
	}
	public class Mirror : BaseElite
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnModelEffectSpawn <>9__0_2;

			internal void <OnLoad>b__0_2(CharacterModel model, GameObject effect)
			{
				//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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)model.body))
				{
					Transform transform = effect.transform;
					transform.localScale += Vector3.one * model.body.radius;
				}
				Util.PlaySound("RisingTides_Play_elite_phenakite_spawn", effect);
			}
		}

		public override void OnLoad()
		{
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_Mirror";
			base.vanillaTier = 2;
			base.isHonor = false;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Phenakite", "Health Boost Coefficient", 18f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Phenakite", "Damage Boost Coefficient", 6f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Mirror/texAffixMirrorRecolorRamp.png"));
			base.modelEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Mirror/AffixMirrorEffect.prefab");
			base.lightColorOverride = Color32.op_Implicit(new Color32((byte)254, byte.MaxValue, (byte)204, byte.MaxValue));
			base.particleMaterialOverride = RisingTidesPlugin.AssetBundle.LoadAsset<Material>("Assets/Mods/RisingTides/Elites/Mirror/matAffixMirrorNegativeParticle.mat");
			object obj = <>c.<>9__0_2;
			if (obj == null)
			{
				OnModelEffectSpawn val = delegate(CharacterModel model, GameObject effect)
				{
					//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_002d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0032: Unknown result type (might be due to invalid IL or missing references)
					if (Object.op_Implicit((Object)(object)model.body))
					{
						Transform transform = effect.transform;
						transform.localScale += Vector3.one * model.body.radius;
					}
					Util.PlaySound("RisingTides_Play_elite_phenakite_spawn", effect);
				};
				<>c.<>9__0_2 = val;
				obj = (object)val;
			}
			base.onModelEffectSpawn = (OnModelEffectSpawn)obj;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Phenakite", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixMirror : null);
			});
		}
	}
	public class Money : BaseElite
	{
		public override void OnLoad()
		{
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_Money";
			base.vanillaTier = 1;
			base.isHonor = true;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Magnetic", "Health Boost Coefficient", 4f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Magnetic", "Damage Boost Coefficient", 2f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Money/texMoneyWaterRecolorRamp.png"));
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Magnetic", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixMoney : null);
			});
		}
	}
	public class Night : BaseElite
	{
		public override void OnLoad()
		{
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_Night";
			base.vanillaTier = 1;
			base.isHonor = true;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Nocturnal", "Health Boost Coefficient", 4f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Nocturnal", "Damage Boost Coefficient", 2f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Night/texAffixNightRecolorRamp.png"));
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Nocturnal", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixNight : null);
			});
		}
	}
	public class Water : BaseElite
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static OnModelEffectSpawn <>9__0_2;

			internal void <OnLoad>b__0_2(CharacterModel model, GameObject effect)
			{
				//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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				if (Object.op_Implicit((Object)(object)model.body))
				{
					Transform transform = effect.transform;
					transform.localScale += Vector3.one * model.body.radius;
				}
				Util.PlaySound("RisingTides_Play_elite_aquamarine_spawn", effect);
			}
		}

		public override void OnLoad()
		{
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Expected O, but got Unknown
			((BaseLoadableAsset)this).OnLoad();
			((Object)base.eliteDef).name = "RisingTides_Water";
			base.vanillaTier = 2;
			base.isHonor = false;
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Aquamarine", "Health Boost Coefficient", 18f, 0f, 1000f, "How much health this elite should have? (e.g. 18 means it will have 18x health)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.healthBoostCoefficient = newValue;
			});
			ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Aquamarine", "Damage Boost Coefficient", 6f, 0f, 1000f, "How much damage this elite should have? (e.g. 6 means it will have 6x damage)", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<float>)delegate(float newValue)
			{
				base.eliteDef.damageBoostCoefficient = newValue;
			});
			EliteRamp.AddRamp(base.eliteDef, RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Water/texAffixWaterRecolorRamp.png"));
			base.modelEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Water/AffixWaterEffect.prefab");
			base.lightColorOverride = Color32.op_Implicit(new Color32((byte)122, byte.MaxValue, (byte)241, byte.MaxValue));
			base.particleMaterialOverride = RisingTidesPlugin.AssetBundle.LoadAsset<Material>("Assets/Mods/RisingTides/Elites/Water/matWaterMist.mat");
			object obj = <>c.<>9__0_2;
			if (obj == null)
			{
				OnModelEffectSpawn val = delegate(CharacterModel model, GameObject effect)
				{
					//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_002d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0032: Unknown result type (might be due to invalid IL or missing references)
					if (Object.op_Implicit((Object)(object)model.body))
					{
						Transform transform = effect.transform;
						transform.localScale += Vector3.one * model.body.radius;
					}
					Util.PlaySound("RisingTides_Play_elite_aquamarine_spawn", effect);
				};
				<>c.<>9__0_2 = val;
				obj = (object)val;
			}
			base.onModelEffectSpawn = (OnModelEffectSpawn)obj;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			ConfigurableValue.CreateBool("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Enabled Elites", "Aquamarine", true, "", (List<string>)null, (ConfigEntry<bool>)null, false, (Action<bool>)delegate(bool newValue)
			{
				base.eliteDef.eliteEquipmentDef = (newValue ? RisingTidesContent.Equipment.RisingTides_AffixWater : null);
			});
		}
	}
}
namespace RisingTides.Equipment
{
	public class AffixBarrierEquipment : BaseEliteAffix
	{
		public static ConfigurableValue<float> barrierRecharge = ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Bismuth", "On Use Barrier Recharge", 25f, 0f, 100f, "How much barrier should this elite aspect's on-use effect regen? (in %)", (List<string>)null, RisingTidesPlugin.ignoreBalanceChanges.bepinexConfigEntry, false, (Action<float>)null);

		public static GameObject selfBuffUseEffect;

		public override void OnLoad()
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_021f: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0291: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0303: Unknown result type (might be due to invalid IL or missing references)
			//IL_0312: Unknown result type (might be due to invalid IL or missing references)
			//IL_033c: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_0384: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0420: Unknown result type (might be due to invalid IL or missing references)
			//IL_042f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ad: Unknown result type (might be due to invalid IL or missing references)
			base.OnLoad();
			((Object)((BaseEquipment)this).equipmentDef).name = "RisingTides_AffixBarrier";
			((BaseEquipment)this).equipmentDef.cooldown = 30f;
			((BaseEquipment)this).equipmentDef.pickupIconSprite = RisingTidesPlugin.AssetBundle.LoadAsset<Sprite>("Assets/Mods/RisingTides/Elites/Barrier/texAffixBarrierEquipmentIcon.png");
			SetUpPickupModel();
			AdjustElitePickupMaterial(Color.white, 4f, (Texture)(object)RisingTidesPlugin.AssetBundle.LoadAsset<Texture2D>("Assets/Mods/RisingTides/Elites/Barrier/texRampAffixBarrierEquipment.png"));
			((BaseItemLike)this).itemDisplayPrefab = ((BaseItemLike)this).PrepareItemDisplayModel(PrefabAPI.InstantiateClone(RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Barrier/AffixBarrierShieldDisplay.prefab"), "RisingTidesAffixBarrierShieldDisplay", false));
			Renderer[] componentsInChildren = ((BaseItemLike)this).itemDisplayPrefab.GetComponentsInChildren<Renderer>();
			foreach (Renderer val in componentsInChildren)
			{
				Material sharedMaterial = val.sharedMaterial;
				sharedMaterial.SetTexture("_EmTex", sharedMaterial.GetTexture("_EmissionMap"));
				sharedMaterial.SetColor("_EmColor", sharedMaterial.GetColor("_EmissionColor"));
				sharedMaterial.SetFloat("_EmPower", 2f);
			}
			((BaseItemLike)this).itemDisplayPrefabs["halo"] = ((BaseItemLike)this).PrepareItemDisplayModel(PrefabAPI.InstantiateClone(RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Barrier/AffixBarrierHeadpiece.prefab"), "RisingTidesAffixBarrierHeadpiece", false));
			BaseItemLike.onSetupIDRS += delegate
			{
				//IL_001b: Unknown result type (might be due to invalid IL or missing references)
				//IL_002f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: 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_00b5: 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_00dd: 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_0116: Unknown result type (might be due to invalid IL or missing references)
				//IL_012a: Unknown result type (might be due to invalid IL or missing references)
				//IL_014f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0163: Unknown result type (might be due to invalid IL or missing references)
				//IL_0177: Unknown result type (might be due to invalid IL or missing references)
				//IL_019c: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0211: Unknown result type (might be due to invalid IL or missing references)
				//IL_0236: Unknown result type (might be due to invalid IL or missing references)
				//IL_024a: Unknown result type (might be due to invalid IL or missing references)
				//IL_025e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0283: Unknown result type (might be due to invalid IL or missing references)
				//IL_0297: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_031d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0331: Unknown result type (might be due to invalid IL or missing references)
				//IL_0345: Unknown result type (might be due to invalid IL or missing references)
				//IL_036a: Unknown result type (might be due to invalid IL or missing references)
				//IL_037e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0392: Unknown result type (might be due to invalid IL or missing references)
				//IL_03b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_03df: Unknown result type (might be due to invalid IL or missing references)
				//IL_0404: Unknown result type (might be due to invalid IL or missing references)
				//IL_0418: Unknown result type (might be due to invalid IL or missing references)
				//IL_042c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0451: Unknown result type (might be due to invalid IL or missing references)
				//IL_0465: Unknown result type (might be due to invalid IL or missing references)
				//IL_0479: Unknown result type (might be due to invalid IL or missing references)
				//IL_049e: Unknown result type (might be due to invalid IL or missing references)
				//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_0513: Unknown result type (might be due to invalid IL or missing references)
				//IL_0538: Unknown result type (might be due to invalid IL or missing references)
				//IL_054c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0560: Unknown result type (might be due to invalid IL or missing references)
				//IL_0585: Unknown result type (might be due to invalid IL or missing references)
				//IL_0599: Unknown result type (might be due to invalid IL or missing references)
				//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_05d2: Unknown result type (might be due to invalid IL or missing references)
				//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
				//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_061f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0633: Unknown result type (might be due to invalid IL or missing references)
				//IL_0647: Unknown result type (might be due to invalid IL or missing references)
				//IL_066c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0680: Unknown result type (might be due to invalid IL or missing references)
				//IL_0694: Unknown result type (might be due to invalid IL or missing references)
				//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
				//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0706: Unknown result type (might be due to invalid IL or missing references)
				//IL_071a: Unknown result type (might be due to invalid IL or missing references)
				//IL_072e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0753: Unknown result type (might be due to invalid IL or missing references)
				//IL_0767: Unknown result type (might be due to invalid IL or missing references)
				//IL_077b: Unknown result type (might be due to invalid IL or missing references)
				//IL_07a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_07b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
				//IL_07ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_0801: Unknown result type (might be due to invalid IL or missing references)
				//IL_0815: Unknown result type (might be due to invalid IL or missing references)
				//IL_083a: Unknown result type (might be due to invalid IL or missing references)
				//IL_084e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0862: Unknown result type (might be due to invalid IL or missing references)
				//IL_0887: Unknown result type (might be due to invalid IL or missing references)
				//IL_089b: Unknown result type (might be due to invalid IL or missing references)
				//IL_08af: Unknown result type (might be due to invalid IL or missing references)
				//IL_08d4: Unknown result type (might be due to invalid IL or missing references)
				//IL_08e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0921: Unknown result type (might be due to invalid IL or missing references)
				//IL_0935: Unknown result type (might be due to invalid IL or missing references)
				//IL_0949: Unknown result type (might be due to invalid IL or missing references)
				//IL_096e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0982: Unknown result type (might be due to invalid IL or missing references)
				//IL_0996: Unknown result type (might be due to invalid IL or missing references)
				//IL_09bb: Unknown result type (might be due to invalid IL or missing references)
				//IL_09cf: Unknown result type (might be due to invalid IL or missing references)
				//IL_09e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a08: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a1c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a55: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a69: Unknown result type (might be due to invalid IL or missing references)
				//IL_0a7d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0aa2: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
				//IL_0aca: Unknown result type (might be due to invalid IL or missing references)
				//IL_0aef: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b17: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b3c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b50: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b89: Unknown result type (might be due to invalid IL or missing references)
				//IL_0b9d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bb1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bd6: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bea: Unknown result type (might be due to invalid IL or missing references)
				//IL_0bfe: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c23: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c37: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c4b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c70: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c84: Unknown result type (might be due to invalid IL or missing references)
				//IL_0c98: Unknown result type (might be due to invalid IL or missing references)
				//IL_0cbd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ce5: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d0a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d1e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d32: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d57: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d6b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0d7f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0da4: Unknown result type (might be due to invalid IL or missing references)
				//IL_0db8: Unknown result type (might be due to invalid IL or missing references)
				//IL_0dcc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0df1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e05: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e19: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e3e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e52: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e66: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e8b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0e9f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eb3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0ed8: Unknown result type (might be due to invalid IL or missing references)
				//IL_0eec: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f00: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f25: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f39: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f4d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f72: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f86: Unknown result type (might be due to invalid IL or missing references)
				//IL_0f9a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0fbf: Unknown result type (might be due to invalid IL or missing references)
				//IL_0fd3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0fe7: Unknown result type (might be due to invalid IL or missing references)
				//IL_100c: Unknown result type (might be due to invalid IL or missing references)
				//IL_1020: Unknown result type (might be due to invalid IL or missing references)
				//IL_1034: Unknown result type (might be due to invalid IL or missing references)
				//IL_1059: Unknown result type (might be due to invalid IL or missing references)
				//IL_106d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1081: Unknown result type (might be due to invalid IL or missing references)
				//IL_10a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_10ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_10ce: Unknown result type (might be due to invalid IL or missing references)
				//IL_1115: Unknown result type (might be due to invalid IL or missing references)
				//IL_1129: Unknown result type (might be due to invalid IL or missing references)
				//IL_113d: Unknown result type (might be due to invalid IL or missing references)
				//IL_115e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1172: Unknown result type (might be due to invalid IL or missing references)
				//IL_1186: Unknown result type (might be due to invalid IL or missing references)
				//IL_12b6: Unknown result type (might be due to invalid IL or missing references)
				//IL_12ca: Unknown result type (might be due to invalid IL or missing references)
				//IL_12de: Unknown result type (might be due to invalid IL or missing references)
				//IL_1303: Unknown result type (might be due to invalid IL or missing references)
				//IL_1317: Unknown result type (might be due to invalid IL or missing references)
				//IL_132b: Unknown result type (might be due to invalid IL or missing references)
				//IL_1350: Unknown result type (might be due to invalid IL or missing references)
				//IL_1364: Unknown result type (might be due to invalid IL or missing references)
				//IL_1378: Unknown result type (might be due to invalid IL or missing references)
				//IL_139d: Unknown result type (might be due to invalid IL or missing references)
				//IL_13b1: Unknown result type (might be due to invalid IL or missing references)
				//IL_13c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_13ea: Unknown result type (might be due to invalid IL or missing references)
				//IL_13fe: Unknown result type (might be due to invalid IL or missing references)
				//IL_1412: Unknown result type (might be due to invalid IL or missing references)
				//IL_1437: Unknown result type (might be due to invalid IL or missing references)
				//IL_144b: Unknown result type (might be due to invalid IL or missing references)
				//IL_145f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1484: Unknown result type (might be due to invalid IL or missing references)
				//IL_1498: Unknown result type (might be due to invalid IL or missing references)
				//IL_14ac: Unknown result type (might be due to invalid IL or missing references)
				//IL_14d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_14e5: Unknown result type (might be due to invalid IL or missing references)
				//IL_14f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_151e: Unknown result type (might be due to invalid IL or missing references)
				//IL_1532: Unknown result type (might be due to invalid IL or missing references)
				//IL_1546: Unknown result type (might be due to invalid IL or missing references)
				//IL_156b: Unknown result type (might be due to invalid IL or missing references)
				//IL_157f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1593: Unknown result type (might be due to invalid IL or missing references)
				//IL_15b8: Unknown result type (might be due to invalid IL or missing references)
				//IL_15cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_15e0: Unknown result type (might be due to invalid IL or missing references)
				//IL_119a: Unknown result type (might be due to invalid IL or missing references)
				//IL_11a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_11b8: Unknown result type (might be due to invalid IL or missing references)
				//IL_11bd: Unknown result type (might be due to invalid IL or missing references)
				//IL_11f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_120d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1212: Unknown result type (might be due to invalid IL or missing references)
				//IL_1254: Unknown result type (might be due to invalid IL or missing references)
				//IL_1268: Unknown result type (might be due to invalid IL or missing references)
				//IL_126d: Unknown result type (might be due to invalid IL or missing references)
				//IL_163f: Unknown result type (might be due to invalid IL or missing references)
				//IL_1644: Unknown result type (might be due to invalid IL or missing references)
				//IL_1649: Unknown result type (might be due to invalid IL or missing references)
				//IL_164d: Unknown result type (might be due to invalid IL or missing references)
				//IL_1663: Unknown result type (might be due to invalid IL or missing references)
				//IL_1670: Unknown result type (might be due to invalid IL or missing references)
				//IL_1682: Unknown result type (might be due to invalid IL or missing references)
				//IL_1687: Unknown result type (might be due to invalid IL or missing references)
				//IL_169d: Unknown result type (might be due to invalid IL or missing references)
				//IL_16a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_16a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_16ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_16ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_16b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_16b4: Unknown result type (might be due to invalid IL or missing references)
				((BaseItemLike)this).AddDisplayRule("CommandoBody", "LowerArmL", new Vector3(-0.0146f, 0.10142f, -0.09926f), new Vector3(80.81804f, 73.87079f, 352.0796f), new Vector3(0.09507f, 0.09507f, 0.09507f));
				((BaseItemLike)this).AddDisplayRule("HuntressBody", "LowerArmL", new Vector3(0.00453f, 0.18608f, -0.0794f), new Vector3(74.06459f, 247.7539f, 163.7938f), new Vector3(0.07896f, 0.07896f, 0.07896f));
				((BaseItemLike)this).AddDisplayRule("Bandit2Body", "LowerArmL", new Vector3(0.07384f, 0.02959f, -0.0921f), new Vector3(54.54504f, 309.9253f, 201.8698f), new Vector3(0.09507f, 0.09507f, 0.09507f));
				((BaseItemLike)this).AddDisplayRule("ToolbotBody", "LowerArmR", new Vector3(-0.05586f, 1.84315f, 0.81928f), new Vector3(282.2477f, 259.3919f, 1.76163f), new Vector3(1.04621f, 1.04621f, 1.04621f));
				((BaseItemLike)this).AddDisplayRule("EngiBody", "LowerArmR", new Vector3(-0.02242f, 0.11966f, -0.07493f), new Vector3(343.2251f, 261.9322f, 178.5142f), new Vector3(0.109f, 0.109f, 0.109f));
				((BaseItemLike)this).AddDisplayRule("EngiTurretBody", "Head", new Vector3(0f, 0.68505f, 0f), new Vector3(0f, 270f, 90f), new Vector3(0.29954f, 0.29954f, 0.29954f));
				((BaseItemLike)this).AddDisplayRule("EngiWalkerTurretBody", "Head", new Vector3(0f, 1.41667f, -0.21911f), new Vector3(0f, 270f, 90f), new Vector3(0.31666f, 0.31666f, 0.31666f));
				((BaseItemLike)this).AddDisplayRule("MageBody", "LowerArmR", new Vector3(-0.05743f, 0.16793f, 0.08284f), new Vector3(282.7379f, 277.4919f, 344.0832f), new Vector3(0.09507f, 0.09507f, 0.09507f));
				((BaseItemLike)this).AddDisplayRule("MercBody", "LowerArmR", new Vector3(-0.02357f, 0.29074f, -0.12531f), new Vector3(283.4819f, 272.5186f, 168.9351f), new Vector3(0.09507f, 0.09507f, 0.09507f));
				((BaseItemLike)this).AddDisplayRule("TreebotBody", "PlatformBase", new Vector3(0f, 1.92666f, -0.97747f), new Vector3(-8E-05f, 89.99995f, 338.9332f), new Vector3(0.23693f, 0.23693f, 0.23693f));
				((BaseItemLike)this).AddDisplayRule("TreebotBody", "PlatformBase", new Vector3(-0.95428f, 1.92644f, -0.15987f), new Vector3(-7E-05f, 170.9057f, 338.9332f), new Vector3(0.23693f, 0.23693f, 0.23693f));
				((BaseItemLike)this).AddDisplayRule("TreebotBody", "PlatformBase", new Vector3(0.12647f, 1.82997f, 0.83765f), new Vector3(-0.00015f, 277.5678f, 338.9332f), new Vector3(0.23693f, 0.23693f, 0.23693f));
				((BaseItemLike)this).AddDisplayRule("TreebotBody", "PlatformBase", new Vector3(0.91269f, 1.92139f, -0.00786f), new Vector3(-0.00022f, 1.56418f, 338.9333f), new Vector3(0.23693f, 0.23693f, 0.23693f));
				((BaseItemLike)this).AddDisplayRule("LoaderBody", "MechBase", new Vector3(-0.0029f, 0.09235f, 0.4434f), new Vector3(0f, 270f, 0f), new Vector3(0.11442f, 0.11442f, 0.11442f));
				((BaseItemLike)this).AddDisplayRule("CrocoBody", "UpperArmL", new Vector3(-1.53705f, -0.49132f, 0.35113f), new Vector3(19.10361f, 27.51384f, 188.1016f), new Vector3(0.66791f, 0.66791f, 0.66791f));
				((BaseItemLike)this).AddDisplayRule("CrocoBody", "UpperArmR", new Vector3(1.30091f, 0.7689f, 0.42121f), new Vector3(341.9067f, 153.8942f, 172.765f), new Vector3(0.66791f, 0.66791f, 0.66791f));
				((BaseItemLike)this).AddDisplayRule("CaptainBody", "ClavicleL", new Vector3(0.07978f, 0.17095f, -0.1458f), new Vector3(344.9297f, 240.0269f, 175.6339f), new Vector3(0.08304f, 0.08304f, 0.08304f));
				((BaseItemLike)this).AddDisplayRule("CaptainBody", "ClavicleR", new Vector3(-0.03803f, 0.18421f, -0.14963f), new Vector3(6.35989f, 291.6088f, 176.4272f), new Vector3(0.08304f, 0.08304f, 0.08304f));
				((BaseItemLike)this).AddDisplayRule("WispBody", "Head", new Vector3(0f, 0.21494f, 0.57267f), new Vector3(0f, 90.00002f, 112.6696f), new Vector3(0.28338f, 0.28338f, 0.28338f));
				((BaseItemLike)this).AddDisplayRule("JellyfishBody", "Hull2", new Vector3(-0.66769f, 0.5537f, -0.38737f), new Vector3(352.1283f, 330.5081f, 147.708f), new Vector3(0.27148f, 0.27148f, 0.27148f));
				((BaseItemLike)this).AddDisplayRule("JellyfishBody", "Hull2", new Vector3(0.74791f, 0.19783f, -0.53016f), new Vector3(354.2131f, 220.0504f, 167.8046f), new Vector3(0.27148f, 0.27148f, 0.27148f));
				((BaseItemLike)this).AddDisplayRule("JellyfishBody", "Hull2", new Vector3(-0.08774f, -0.09304f, 1.00823f), new Vector3(355.0139f, 86.40502f, 178.2649f), new Vector3(0.27148f, 0.27148f, 0.27148f));
				((BaseItemLike)this).AddDisplayRule("BeetleBody", "Head", new Vector3(0f, 0.34403f, 0.37159f), new Vector3(0f, 90f, 112.8398f), new Vector3(0.25041f, 0.25041f, 0.25041f));
				((BaseItemLike)this).AddDisplayRule("BeetleBody", "Chest", new Vector3(0f, 0.19652f, -0.61841f), new Vector3(0f, 90f, 2.51592f), new Vector3(0.25041f, 0.25041f, 0.25041f));
				((BaseItemLike)this).AddDisplayRule("LemurianBody", "LowerArmL", new Vector3(-0.28231f, -1.43541f, -0.90572f), new Vector3(5.52779f, 286.69f, 183.0832f), new Vector3(1.5576f, 1.5576f, 1.5576f));
				((BaseItemLike)this).AddDisplayRule("HermitCrabBody", "Base", new Vector3(-0.35249f, 0.58269f, 0.35845f), new Vector3(358.8646f, 225.772f, 31.04556f), new Vector3(0.17834f, 0.17834f, 0.17834f));
				((BaseItemLike)this).AddDisplayRule("HermitCrabBody", "Base", new Vector3(0.00685f, 0.55719f, -0.51574f), new Vector3(344.942f, 83.88705f, 25.03429f), new Vector3(0.17834f, 0.17834f, 0.17834f));
				((BaseItemLike)this).AddDisplayRule("ImpBody", "LowerArmL", new Vector3(0.06972f, 0.11975f, -0.03627f), new Vector3(23.06966f, 280.1783f, 174.6163f), new Vector3(0.12856f, 0.12856f, 0.12856f));
				((BaseItemLike)this).AddDisplayRule("VultureBody", "LowerArmL", new Vector3(0.99875f, 1.2198f, -0.07211f), new Vector3(346.7694f, 18.99189f, 353.5514f), new Vector3(1.6618f, 1.6618f, 1.6618f));
				((BaseItemLike)this).AddDisplayRule("RoboBallMiniBody", "ROOT", new Vector3(0.81676f, 0.00111f, -0.02604f), new Vector3(0f, 0f, 0f), new Vector3(0.26827f, 0.26827f, 0.26827f));
				((BaseItemLike)this).AddDisplayRule("RoboBallMiniBody", "ROOT", new Vector3(-0.84845f, -0.00118f, -0.01821f), new Vector3(0f, 180f, 0f), new Vector3(0.26827f, 0.26827f, 0.26827f));
				((BaseItemLike)this).AddDisplayRule("MiniMushroomBody", "Head", new Vector3(-0.11137f, -0.70176f, -0.00532f), new Vector3(2.31515f, 179.125f, 332.3143f), new Vector3(0.27659f, 0.27216f, 0.27659f));
				((BaseItemLike)this).AddDisplayRule("BellBody", "Chain", new Vector3(-1.54561f, 2.68301f, -0.88636f), new Vector3(359.0105f, 327.1622f, 186.3831f), new Vector3(0.51058f, 0.51058f, 0.51058f));
				((BaseItemLike)this).AddDisplayRule("BeetleGuardBody", "UpperArmL", new Vector3(0.70768f, 0.08173f, -0.65703f), new Vector3(296.3565f, 38.50573f, 359.3476f), new Vector3(0.53579f, 0.53579f, 0.53579f));
				((BaseItemLike)this).AddDisplayRule("BeetleGuardBody", "UpperArmR", new Vector3(-0.46761f, -0.5243f, -0.96396f), new Vector3(66.01485f, 102.1822f, 316.7295f), new Vector3(0.53579f, 0.53579f, 0.53579f));
				((BaseItemLike)this).AddDisplayRule("BeetleGuardBody", "Chest", new Vector3(-0.04737f, 0.46906f, -2.27501f), new Vector3(0f, 90f, 338.564f), new Vector3(0.69074f, 0.69074f, 0.69074f));
				((BaseItemLike)this).AddDisplayRule("BisonBody", "Head", new Vector3(-0.01011f, 0.11968f, 0.81293f), new Vector3(359.9691f, 90.42268f, 96.09669f), new Vector3(0.17392f, 0.17392f, 0.17392f));
				((BaseItemLike)this).AddDisplayRule("BisonBody", "Chest", new Vector3(-0.72052f, 0.35763f, 0.20302f), new Vector3(289.3813f, 2.77055f, 216.4511f), new Vector3(0.17392f, 0.17392f, 0.17392f));
				((BaseItemLike)this).AddDisplayRule("BisonBody", "Chest", new Vector3(0.67709f, 0.41002f, 0.23429f), new Vector3(58.92508f, 166.8929f, 200.6828f), new Vector3(0.17392f, 0.17392f, 0.17392f));
				((BaseItemLike)this).AddDisplayRule("GolemBody", "Chest", new Vector3(0f, 0.23156f, 0.5453f), new Vector3(0f, 270f, 2.80391f), new Vector3(0.42934f, 0.42934f, 0.42934f));
				((BaseItemLike)this).AddDisplayRule("ParentBody", "Chest", new Vector3(110.5298f, -126.4879f, -0.57111f), new Vector3(0.00012f, 4E-05f, 0.62143f), new Vector3(35.59922f, 35.59922f, 35.59922f));
				((BaseItemLike)this).AddDisplayRule("ClayBruiserBody", "Muzzle", new Vector3(0.01772f, -0.96556f, -0.22935f), new Vector3(0.2352f, 273.3438f, 358.8563f), new Vector3(0.17276f, 0.17276f, 0.17276f));
				((BaseItemLike)this).AddDisplayRule("ClayBruiserBody", "UpperArmL", new Vector3(-0.13775f, 0.27827f, -0.23297f), new Vector3(77.3063f, 174.8385f, 82.23293f), new Vector3(0.18463f, 0.18463f, 0.18463f));
				((BaseItemLike)this).AddDisplayRule("GreaterWispBody", "MaskBase", new Vector3(0.00844f, 0.86168f, 0.53122f), new Vector3(0.85633f, 266.8001f, 29.95748f), new Vector3(0.21107f, 0.21107f, 0.21107f));
				((BaseItemLike)this).AddDisplayRule("LemurianBruiserBody", "LowerArmL", new Vector3(-0.63009f, 3.8933f, -0.49942f), new Vector3(15.7766f, 355.9879f, 166.7924f), new Vector3(1.62279f, 1.62279f, 1.62279f));
				((BaseItemLike)this).AddDisplayRule("NullifierBody", "Muzzle", new Vector3(0f, -2.22915f, 0.72636f), new Vector3(0f, 270f, 336.7043f), new Vector3(0.60054f, 0.60054f, 0.60054f));
				((BaseItemLike)this).AddDisplayRule("BeetleQueen2Body", "Head", new Vector3(0f, 3.39523f, 0.11428f), new Vector3(0f, 90f, 60.1568f), new Vector3(0.84575f, 0.84575f, 0.84575f));
				((BaseItemLike)this).AddDisplayRule("BeetleQueen2Body", "Butt", new Vector3(1E-05f, -2.28304f, -4.30972f), new Vector3(0f, 90f, 277.3143f), new Vector3(0.99843f, 0.99843f, 0.99843f));
				((BaseItemLike)this).AddDisplayRule("ClayBossBody", "PotBase", new Vector3(1.47037f, 0.14472f, 1.15155f), new Vector3(356.2741f, 328.1895f, 8.26984f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				((BaseItemLike)this).AddDisplayRule("ClayBossBody", "PotBase", new Vector3(-1.42564f, 0.14467f, 1.15156f), new Vector3(3.53829f, 214.9017f, 8.46569f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				((BaseItemLike)this).AddDisplayRule("ClayBossBody", "PotBase", new Vector3(0f, 0.15405f, -1.82541f), new Vector3(0f, 90f, 14.66357f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				((BaseItemLike)this).AddDisplayRule("TitanBody", "UpperArmL", new Vector3(1.86778f, 0.0468f, -0.43658f), new Vector3(354.5138f, 195.9479f, 182.7553f), new Vector3(2.25074f, 2.25074f, 2.25074f));
				((BaseItemLike)this).AddDisplayRule("TitanGoldBody", "UpperArmL", new Vector3(1.86778f, 0.0468f, -0.43658f), new Vector3(354.5138f, 195.9479f, 182.7553f), new Vector3(2.25074f, 2.25074f, 2.25074f));
				((BaseItemLike)this).AddDisplayRule("VagrantBody", "Hull", new Vector3(0f, 0.95729f, 1.16298f), new Vector3(0f, 270f, 29.51815f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				((BaseItemLike)this).AddDisplayRule("VagrantBody", "Hull", new Vector3(-0.98958f, 0.95724f, -0.58474f), new Vector3(9E-05f, 152.7161f, 29.51817f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				((BaseItemLike)this).AddDisplayRule("VagrantBody", "Hull", new Vector3(0.98958f, 0.95708f, -0.58468f), new Vector3(0.00012f, 36.37237f, 29.51816f), new Vector3(0.24784f, 0.24784f, 0.24784f));
				string[] array = new string[2] { "MagmaWormBody", "ElectricWormBody" };
				string[] array2 = array;
				foreach (string text in array2)
				{
					((BaseItemLike)this).AddDisplayRule(text, "Head", new Vector3(1E-05f, 0.20321f, 0.35653f), new Vector3(0f, 270f, 338.4637f), new Vector3(0.50219f, 0.50219f, 0.50219f));
					((BaseItemLike)this).AddDisplayRule(text, "Head", new Vector3(-4E-05f, 0.21744f, -1.24892f), new Vector3(0f, 90f, 350.3356f), new Vector3(0.50219f, 0.50219f, 0.50219f));
					for (int k = 1; k <= 16; k++)
					{
						Vector3 val4 = Vector3.one * 0.38363f * Mathf.Pow(43f / 46f, (float)(k - 1));
						((BaseItemLike)this).AddDisplayRule(text, "Neck" + k, new Vector3(0f, 0.67666f + 0.03293f * (float)(k - 1), 0.75189f - 0.02657f * (float)(k - 1)), new Vector3(0f, 270f, 350.3946f), val4);
						((BaseItemLike)this).AddDisplayRule(text, "Neck" + k, new Vector3(0f, 0.67666f + 0.03293f * (float)(k - 1), -1.298979f + 0.02657f * (float)(k - 1)), new Vector3(0f, 90f, 350.3946f), val4);
					}
				}
				((BaseItemLike)this).AddDisplayRule("RoboBallBossBody", "MainEyeMuzzle", new Vector3(-0.54958f, 0.32175f, -0.28987f), new Vector3(297.4961f, 98.16615f, 145.5536f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("RoboBallBossBody", "MainEyeMuzzle", new Vector3(0.56366f, 0.31158f, -0.30237f), new Vector3(63.15763f, 91.27869f, 163.8493f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("RoboBallBossBody", "MainEyeMuzzle", new Vector3(0.0067f, -0.67212f, -0.41237f), new Vector3(0f, 270f, 321.6538f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("SuperRoboBallBossBody", "MainEyeMuzzle", new Vector3(-0.54958f, 0.32175f, -0.28987f), new Vector3(297.4961f, 98.16615f, 145.5536f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("SuperRoboBallBossBody", "MainEyeMuzzle", new Vector3(0.56366f, 0.31158f, -0.30237f), new Vector3(63.15763f, 91.27869f, 163.8493f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("SuperRoboBallBossBody", "MainEyeMuzzle", new Vector3(0.0067f, -0.67212f, -0.41237f), new Vector3(0f, 270f, 321.6538f), new Vector3(0.1247f, 0.1247f, 0.1247f));
				((BaseItemLike)this).AddDisplayRule("GravekeeperBody", "DanglingRope4L", new Vector3(0.0001f, 1.80608f, 3E-05f), new Vector3(0f, 0f, 180f), new Vector3(0.75697f, 0.75697f, 0.75697f));
				((BaseItemLike)this).AddDisplayRule("GravekeeperBody", "DanglingRope4R", new Vector3(0.0001f, 1.80608f, 3E-05f), new Vector3(-1E-05f, 180f, 180f), new Vector3(0.75697f, 0.75697f, 0.75697f));
				((BaseItemLike)this).AddDisplayRule("ImpBossBody", "LowerArmL", new Vector3(0.24444f, 0.45194f, -0.22689f), new Vector3(0f, 270f, 174.7788f), new Vector3(0.66607f, 0.66607f, 0.66607f));
				((BaseItemLike)this).AddDisplayRule("GrandParentBody", "Head", new Vector3(0f, 8.3197f, 1E-05f), new Vector3(0f, 270f, 0f), new Vector3(1.8948f, 1.8948f, 1.8948f));
				((BaseItemLike)this).AddDisplayRule("ScavBody", "Stomach", new Vector3(0.23239f, 4.35636f, -8.43252f), new Vector3(9.37492f, 90.28594f, 11.99715f), new Vector3(1.72618f, 1.72618f, 1.72618f));
				foreach (CharacterBody allBodyPrefabBodyBodyComponent in BodyCatalog.allBodyPrefabBodyBodyComponents)
				{
					CharacterModel componentInChildren = ((Component)allBodyPrefabBodyBodyComponent).GetComponentInChildren<CharacterModel>();
					if (Object.op_Implicit((Object)(object)componentInChildren) && (Object)(object)componentInChildren.itemDisplayRuleSet != (Object)null)
					{
						DisplayRuleGroup equipmentDisplayRuleGroup = componentInChildren.itemDisplayRuleSet.GetEquipmentDisplayRuleGroup(Equipment.AffixWhite.equipmentIndex);
						if (!((DisplayRuleGroup)(ref equipmentDisplayRuleGroup)).Equals(DisplayRuleGroup.empty))
						{
							string bodyName = BodyCatalog.GetBodyName(allBodyPrefabBodyBodyComponent.bodyIndex);
							ItemDisplayRule[] rules = equipmentDisplayRuleGroup.rules;
							foreach (ItemDisplayRule val5 in rules)
							{
								((BaseItemLike)this).AddDisplayRule(bodyName, ((BaseItemLike)this).itemDisplayPrefabs["halo"], val5.childName, val5.localPos, val5.localAngles, val5.localScale);
							}
						}
					}
				}
			};
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlLemurian",
				transformLocation = "LemurianArm/ROOT/base/stomach/chest/shoulder.l/upper_arm.l/lower_arm.l",
				childName = "LowerArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlImp",
				transformLocation = "ImpArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l",
				childName = "LowerArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlVulture",
				transformLocation = "VultureArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l",
				childName = "LowerArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlBeetleGuard",
				transformLocation = "BeetleGuardArmature/ROOT/base/chest",
				childName = "Chest"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlBeetleGuard",
				transformLocation = "BeetleGuardArmature/ROOT/base/chest/upper_arm.l",
				childName = "UpperArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlBeetleGuard",
				transformLocation = "BeetleGuardArmature/ROOT/base/chest/upper_arm.r",
				childName = "UpperArmR"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlBison",
				transformLocation = "BisonArmature/ROOT/Base/stomach/chest",
				childName = "Chest"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlClayBruiser",
				transformLocation = "ClayBruiserArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l",
				childName = "UpperArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlLemurianBruiser",
				transformLocation = "LemurianBruiserArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l",
				childName = "LowerArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlClayBoss",
				transformLocation = "ClayBossArmature/ROOT/PotBase",
				childName = "PotBase"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlTitan",
				transformLocation = "TitanArmature/ROOT/base/stomach/chest/upper_arm.l",
				childName = "UpperArmL"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlGravekeeper",
				transformLocation = "GravekeeperArmature/ROOT/base/stomach/chest/neck.1/neck.2/head/danglingrope.1.1.l/danglingrope.1.2.l/danglingrope.1.3.l/danglingrope.1.4.l",
				childName = "DanglingRope4L"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlGravekeeper",
				transformLocation = "GravekeeperArmature/ROOT/base/stomach/chest/neck.1/neck.2/head/danglingrope.1.1.r/danglingrope.1.2.r/danglingrope.1.3.r/danglingrope.1.4.r",
				childName = "DanglingRope4R"
			});
			ChildLocatorAdditions.list.Add(new Addition
			{
				modelName = "mdlImpBoss",
				transformLocation = "ImpBossArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l",
				childName = "LowerArmL"
			});
			selfBuffUseEffect = RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/Barrier/SelfBuffInflictVFX.prefab");
			EffectComponent val2 = selfBuffUseEffect.AddComponent<EffectComponent>();
			val2.applyScale = true;
			val2.parentToReferencedTransform = true;
			val2.soundName = "Play_merc_sword_impact";
			VFXAttributes val3 = selfBuffUseEffect.AddComponent<VFXAttributes>();
			val3.vfxIntensity = (VFXIntensity)1;
			val3.vfxPriority = (VFXPriority)1;
			RisingTidesContent.Resources.effectPrefabs.Add(selfBuffUseEffect);
		}

		public override bool OnUse(EquipmentSlot equipmentSlot)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: 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_003d: Expected O, but got Unknown
			if (Object.op_Implicit((Object)(object)equipmentSlot.characterBody))
			{
				EffectData val = new EffectData
				{
					origin = equipmentSlot.characterBody.corePosition,
					scale = equipmentSlot.characterBody.radius
				};
				val.SetHurtBoxReference(((Component)equipmentSlot.characterBody).gameObject);
				EffectManager.SpawnEffect(selfBuffUseEffect, val, true);
				if (Object.op_Implicit((Object)(object)equipmentSlot.characterBody.healthComponent))
				{
					equipmentSlot.characterBody.healthComponent.AddBarrier(equipmentSlot.characterBody.maxBarrier * ConfigurableValue<float>.op_Implicit(barrierRecharge) / 100f);
				}
				return true;
			}
			return false;
		}

		public override void AfterContentPackLoaded()
		{
			((BaseLoadableAsset)this).AfterContentPackLoaded();
			((BaseEquipment)this).equipmentDef.passiveBuffDef = RisingTidesContent.Buffs.RisingTides_AffixBarrier;
		}
	}
	public class AffixBlackHoleEquipment : BaseEliteAffix
	{
		public class DetonationController
		{
			public HurtBox[] detonationTargets;

			public CharacterBody characterBody;

			public float damageStat;

			public bool isCrit;

			public float interval;

			private int i;

			private float timer;

			private bool _active;

			public bool active
			{
				get
				{
					return _active;
				}
				set
				{
					if (_active != value)
					{
						_active = value;
						if (_active)
						{
							RoR2Application.onFixedUpdate += FixedUpdate;
						}
						else
						{
							RoR2Application.onFixedUpdate -= FixedUpdate;
						}
					}
				}
			}

			private void FixedUpdate()
			{
				if (!Object.op_Implicit((Object)(object)characterBody) || !Object.op_Implicit((Object)(object)characterBody.healthComponent) || !characterBody.healthComponent.alive)
				{
					active = false;
					return;
				}
				timer -= Time.deltaTime;
				if (!(timer <= 0f))
				{
					return;
				}
				for (timer = interval; i < detonationTargets.Length; i++)
				{
					try
					{
						HurtBox targetHurtBox = null;
						Util.Swap<HurtBox>(ref targetHurtBox, ref detonationTargets[i]);
						if (DoDetonation(targetHurtBox))
						{
							break;
						}
					}
					catch (Exception)
					{
					}
				}
				if (i >= detonationTargets.Length)
				{
					active = false;
				}
			}

			private bool DoDetonation(HurtBox targetHurtBox)
			{
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
				if (!Object.op_Implicit((Object)(object)targetHurtBox))
				{
					return false;
				}
				HealthComponent healthComponent = targetHurtBox.healthComponent;
				if (!Object.op_Implicit((Object)(object)healthComponent))
				{
					return false;
				}
				CharacterBody body = healthComponent.body;
				if (!Object.op_Implicit((Object)(object)body))
				{
					return false;
				}
				int buffCount = body.GetBuffCount(RisingTidesContent.Buffs.RisingTides_BlackHoleMark);
				if (buffCount <= 0)
				{
					return false;
				}
				BlackHoleDetonatorOrb blackHoleDetonatorOrb = new BlackHoleDetonatorOrb
				{
					origin = characterBody.corePosition,
					target = targetHurtBox,
					attacker = ((Component)characterBody).gameObject,
					damageValue = damageStat * (ConfigurableValue<float>.op_Implicit(detonationDamagePerMark) / 100f) * (float)buffCount,
					damageColorIndex = (DamageColorIndex)0,
					isCrit = isCrit,
					procChainMask = default(ProcChainMask),
					procCoefficient = 0f
				};
				OrbManager.instance.AddOrb((Orb)(object)blackHoleDetonatorOrb);
				return true;
			}
		}

		public class BlackHoleDetonatorOrb : GenericDamageOrb
		{
			public override void Begin()
			{
				base.speed = 120f;
				((GenericDamageOrb)this).Begin();
			}

			public override GameObject GetOrbEffect()
			{
				return Detonate.orbEffectPrefab;
			}

			public override void OnArrival()
			{
				//IL_001d: 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_002e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_003a: Unknown result type (might be due to invalid IL or missing references)
				//IL_003f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0044: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: Expected O, but got Unknown
				((GenericDamageOrb)this).OnArrival();
				if (Object.op_Implicit((Object)(object)((Orb)this).target))
				{
					EffectManager.SpawnEffect(Detonate.detonationEffectPrefab, new EffectData
					{
						origin = ((Component)((Orb)this).target).transform.position,
						rotation = Quaternion.identity,
						scale = 1f
					}, true);
				}
			}
		}

		public static ConfigurableValue<float> detonationDamagePerMark = ConfigurableValue.CreateFloat("com.themysticsword.risingtides", "Rising Tides", RisingTidesPlugin.config, "Elites: Onyx", "On Use Detonation Damage Per Mark", 100f, 0f, 1000f, "How much damage should this elite aspect's on-use detonation deal to each enemy per their debuff stack? (in %)", (List<string>)null, RisingTidesPlugin.ignoreBalanceChanges.bepinexConfigEntry, false, (Action<float>)null);

		public override void OnLoad()
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			base.OnLoad();
			((Object)((BaseEquipment)this).equipmentDef).name = "RisingTides_AffixBlackHole";
			((BaseEquipment)this).equipmentDef.cooldown = 10f;
			((BaseEquipment)this).equipmentDef.pickupIconSprite = RisingTidesPlugin.AssetBundle.LoadAsset<Sprite>("Assets/Mods/RisingTides/Elites/BlackHole/texAffixBlackHoleEquipmentIcon.png");
			SetUpPickupModel();
			AdjustElitePickupMaterial(Color.black, 1.26f);
			((BaseItemLike)this).itemDisplayPrefab = ((BaseItemLike)this).PrepareItemDisplayModel(PrefabAPI.InstantiateClone(RisingTidesPlugin.AssetBundle.LoadAsset<GameObject>("Assets/Mods/RisingTides/Elites/BlackHole/BlackHoleSharkFin.prefab"), "RisingTidesAffixBarrierHeadpiece", false));
			Material sharedMaterial = ((BaseItemLike)this).itemDisplayPrefab.GetComponentInChildren<Renderer>().sharedMaterial;
			Standard.Apply(sharedMaterial, (Properties)null);
			Standard.DisableEverything(sharedMaterial);
			BaseItemLike.onSetupIDRS += delegate
			{
				//IL_001b: Unknown result type (might be due to invalid IL or missing references)
				//IL_002f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: 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_00b5: 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_00dd: 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_0116: Unknown result type (might be due to invalid IL or missing references)
				//IL_012a: Unknown result type (might be due to invalid IL or missing references)
				//IL_014f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0163: Unknown result type (might be due to invalid IL or missing references)
				//IL_0177: Unknown result type (might be due to invalid IL or missing references)
				//IL_019c: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0211: Unknown result type (might be due to invalid IL or missing references)
				//IL_0236: Unknown result type (might be due to invalid IL or missing references)
				//IL_024a: Unknown result type (might be due to invalid IL or missing references)
				//IL_025e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0283: Unknown result type (might be due to invalid IL or missing references)
				//IL_0297: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_031d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0331: Unknown result type (might be due to invalid IL or missing references)
				//IL_0345: Unknown result type (might be due to invalid IL or missing references)
				//IL_036a: Unknown result type (might be due to invalid IL or missing references)
				//IL_037e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0392: Unknown result type (might be due to invalid IL or missing references)
				//IL_03b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_03df: Unknown result type (might be due to invalid IL or missing references)
				//IL_0404: Unknown result type (might be due to invalid IL or missing references)
				//IL_0418: Unknown result type (might be due to invalid IL or missing references)
				//IL_042c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0451: Unknown result type (might be due to invalid IL or missing references)
				//IL_0465: Unknown result type (might be due to invalid IL or missing references)
				//IL_0479: Unknown result type (might be due to invalid IL or missing references)
				//IL_049e: Unknown result type (might be due to invalid IL or missing references)
				//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
				//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_0513: Unknown result type (might be due to invalid IL or missing references)
				//IL_0538: Unknown result type (might be due to invalid IL or missing references)
				//IL_054c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0560: Unknown result type (might be due to invalid IL or missing references)
				//IL_0585: Unknown result type (might be due to invalid IL or missing references)
				//IL_0599: Unknown result type (might be due to invalid IL or missing references)
				//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_05d2: Unknown result type (might be due to invalid IL or missing references)
				//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
				//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_061f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0633: Unknown result type (might be due to invalid IL or missing references)
				//IL_0647: Unknown result type (might be due to invalid IL or missing references)
				//IL_066c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0680: Unknown result type (might be due to invalid IL or missing references)
				//IL_0694: Unknown result type (might be due to invalid IL or missing references)
				//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
				//IL_06e1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0706: Unknown result type (might be due to invalid IL or missing references)
				//IL_071a: Unknown result type (might be due to invalid IL or missing references)
				//IL_072e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0753: Unknown result type (might be due to invalid IL or missing references)
				//IL_0767: Unknown result type (might be due to invalid IL or missing references)
				//IL_077b: Unknown result type (might be due to invalid IL or missing references)
				//IL_07a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_07b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
				//IL_07ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_0801: Unknown result type (might be due to invalid IL or missing references)
				//IL_0815: Unknown result