Decompiled source of ElementalReactions v1.0.1

plugins/ElementalReactionsMod.dll

Decompiled 27 minutes 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 System.Text;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using ElementalReactionsMod.Achievements;
using ElementalReactionsMod.Elements;
using ElementalReactionsMod.Environment;
using ElementalReactionsMod.Items;
using ElementalReactionsMod.Loadout;
using ElementalReactionsMod.Orbs;
using ElementalReactionsMod.Reactions;
using EntityStates;
using EntityStates.AffixEarthHealer;
using EntityStates.ClayBruiser.Weapon;
using EntityStates.DefectiveUnit;
using EntityStates.Events;
using EntityStates.FriendUnit;
using EntityStates.MiniMushroom;
using EntityStates.RoboBallBoss.Weapon;
using EntityStates.ScavMonster;
using EntityStates.SolusAmalgamator;
using EntityStates.VoidInfestor;
using Grumpy;
using HG;
using HG.Reflection;
using HarmonyLib;
using IL.EntityStates.AcidLarva;
using IL.EntityStates.AffixEarthHealer;
using IL.EntityStates.DefectiveUnit;
using IL.EntityStates.Destructible;
using IL.EntityStates.VoidInfestor;
using IL.RoR2;
using IL.RoR2.Projectile;
using ItemQualities;
using ItemQualities.ContentManagement;
using ItemQualities.Utilities.Extensions;
using JetBrains.Annotations;
using LookingGlass.ItemStatsNameSpace;
using LookingGlass.LookingGlassLanguage;
using Microsoft.CodeAnalysis;
using Mono.Cecil;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using MonoMod.RuntimeDetour;
using Newtonsoft.Json.Utilities;
using On.EntityStates.ClayBruiser.Weapon;
using On.EntityStates.FriendUnit;
using On.EntityStates.MiniMushroom;
using On.EntityStates.RoboBallBoss.Weapon;
using On.EntityStates.ScavMonster;
using On.EntityStates.SolusAmalgamator;
using On.RoR2;
using On.RoR2.UI.LogBook;
using R2API;
using R2API.Networking;
using R2API.Networking.Interfaces;
using Rewired.ComponentControls.Effects;
using RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
using RoR2;
using RoR2.Achievements;
using RoR2.Artifacts;
using RoR2.ContentManagement;
using RoR2.ExpansionManagement;
using RoR2.Items;
using RoR2.Navigation;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using RoR2BepInExPack.GameAssetPaths.Version_1_39_0;
using RoR2BepInExPack.GameAssetPathsBetter;
using SS2;
using Sandswept.Enemies.CannonballJellyfish;
using TMPro;
using ThreeEyedGames;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Jobs;
using UnityEngine.Networking;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.UI;

[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.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("ElementalReactionsMod")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+f50cb26eda7990cbe120c1ca80656e0bdf7f3c99")]
[assembly: AssemblyProduct("ElementalReactionsMod")]
[assembly: AssemblyTitle("ElementalReactionsMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace ElementalReactionsMod
{
	public static class Assets
	{
		public static class AssetReferences
		{
			public static AssetReferenceT<Sprite> expansionIcon = new AssetReferenceT<Sprite>("64c84609674948a4d80e1fc588a1d8a9");

			public static AssetReferenceT<Sprite> pyroBuffIcon = new AssetReferenceT<Sprite>("0daee0d7c66cf3349a5c729e74a12925");

			public static AssetReferenceT<Sprite> hydroBuffIcon = new AssetReferenceT<Sprite>("7e274e591617cd94f851984046f5c921");

			public static AssetReferenceT<Sprite> electroBuffIcon = new AssetReferenceT<Sprite>("a416b58f4ed2331488afcf4e6eba114f");

			public static AssetReferenceT<Sprite> cryoBuffIcon = new AssetReferenceT<Sprite>("e38221f0cc59ebd4f96bfcc5034fde14");

			public static AssetReferenceT<Sprite> anemoBuffIcon = new AssetReferenceT<Sprite>("2e957546a6b4ecf4088b8cb9a754aaaf");

			public static AssetReferenceT<Sprite> geoBuffIcon = new AssetReferenceT<Sprite>("61c6caa41fc7e8c4abf6534fadeb89b0");

			public static AssetReferenceT<Sprite> dendroBuffIcon = new AssetReferenceT<Sprite>("87b63bb49e9e2fa4f9d2a66665ee07a7");

			public static AssetReferenceT<Sprite> quickenBuffIcon = new AssetReferenceT<Sprite>("fd1a80b8adab48644bde7e4c5d73fd13");

			public static AssetReferenceT<Sprite> superconductBuffIcon = new AssetReferenceT<Sprite>("5fc2055e4d7c33348889a483e5a0df1b");

			public static AssetReferenceT<Sprite> electroChargeBuffIcon = new AssetReferenceT<Sprite>("151966ab1f5e45043ab88e997d14ae7d");

			public static AssetReferenceT<Texture> pyroIcon = new AssetReferenceT<Texture>("13e481dbe51e4d640ad603f14cb6bfe9");

			public static AssetReferenceT<Texture> hydroIcon = new AssetReferenceT<Texture>("3eb8865e5a13b7742b66a47fbdd2aee7");

			public static AssetReferenceT<Texture> electroIcon = new AssetReferenceT<Texture>("56c4fbbb5b62cb84abd0f8a9575caf3f");

			public static AssetReferenceT<Texture> cryoIcon = new AssetReferenceT<Texture>("9435d25802bf8994a89c7275c9264810");

			public static AssetReferenceT<Texture> anemoIcon = new AssetReferenceT<Texture>("38a3562c6487d3d459a11ab8ce19b418");

			public static AssetReferenceT<Texture> geoIcon = new AssetReferenceT<Texture>("f972169ff42390a4da00e9b3eb915dbe");

			public static AssetReferenceT<Texture> dendroIcon = new AssetReferenceT<Texture>("cdc71ccb0e628c74ba052480a5bc3cd4");

			public static AssetReferenceT<Sprite> physicalSkillIcon = new AssetReferenceT<Sprite>("d4a1b90b0494f41468cc3891bf05e53a");

			public static AssetReferenceT<Sprite> pyroSkillIcon = new AssetReferenceT<Sprite>("dc58e8263293feb4d800d43015d479c5");

			public static AssetReferenceT<Sprite> hydroSkillIcon = new AssetReferenceT<Sprite>("e186d9590b77d8248abd9e77fbbd3f48");

			public static AssetReferenceT<Sprite> electroSkillIcon = new AssetReferenceT<Sprite>("993b4bd8d5b61934f93b53275220256d");

			public static AssetReferenceT<Sprite> cryoSkillIcon = new AssetReferenceT<Sprite>("d5fb27b74cc81cf409874d173f52e728");

			public static AssetReferenceT<Sprite> anemoSkillIcon = new AssetReferenceT<Sprite>("7eee6493b891a1746a05e1b540b4eb4d");

			public static AssetReferenceT<Sprite> geoSkillIcon = new AssetReferenceT<Sprite>("c88d96edd23da354696d9d9d66cd102f");

			public static AssetReferenceT<Sprite> dendroSkillIcon = new AssetReferenceT<Sprite>("4e802f5ad484760438a8692950a15773");

			public static AssetReferenceT<GameObject> genericElementActivatedEffect = new AssetReferenceT<GameObject>("0dcaf09df2cb8ab4c838c88c6d997a39");

			public static AssetReferenceT<GameObject> genericElementOrbEffect = new AssetReferenceT<GameObject>("383d58c1367764647bb30cbdd0339ac0");

			public static AssetReferenceT<GameObject> elementEnvironmentScreenEffect = new AssetReferenceT<GameObject>("55f9388a5a1f5834c9ee3506b9141ba8");

			public static AssetReferenceT<GameObject> electroChargeTempVisualEffect = new AssetReferenceT<GameObject>("11147caefb6967a41ab27574e55d2a88");

			public static AssetReferenceT<GameObject> quickenTempVisualEffect = new AssetReferenceT<GameObject>("8c00cd5f2a1b86c4ba23ceab51149285");

			public static AssetReferenceT<GameObject> overloadEffect = new AssetReferenceT<GameObject>("a7c7911aead178a499a9803ee81dd5a3");

			public static AssetReferenceT<GameObject> superconductEffect = new AssetReferenceT<GameObject>("b2ee9cb3889cd7c4bb620fd72233099a");

			public static AssetReferenceT<GameObject> superconductTempVisualEffect = new AssetReferenceT<GameObject>("b46ea4e21788bdc418384e2de927414e");

			public static AssetReferenceT<GameObject> swirlEffect = new AssetReferenceT<GameObject>("7afc921af72c23941980c334193ee394");

			public static AssetReferenceT<GameObject> crystallizeSpawnOrbEffect = new AssetReferenceT<GameObject>("b71c0d9d0e04e4f42a27e5067bc57920");

			public static AssetReferenceT<GameObject> crystallizePickup = new AssetReferenceT<GameObject>("677d6b93d9a81fa44b68adbcd2288857");

			public static AssetReferenceT<Sprite> bloomIcon = new AssetReferenceT<Sprite>("cd5c3c5b432da044d8ab88e45c4ca562");

			public static AssetReferenceT<GameObject> bloomObject = new AssetReferenceT<GameObject>("3208908270e8db14489bfb68079f0dcd");

			public static AssetReferenceT<Material> bloomMaterial = new AssetReferenceT<Material>("c74a8fba09c05e843afab90abce26e10");

			public static AssetReferenceT<Texture> bloomFresnelMask = new AssetReferenceT<Texture>("77d939fda7dde4048a33fccac924a029");

			public static AssetReferenceT<Texture> bloomTransparent = new AssetReferenceT<Texture>("ff18c4fae117474409f084cf24b74999");

			public static AssetReferenceT<GameObject> bloomExplosion = new AssetReferenceT<GameObject>("1a5da254110bef7488484791f3220e83");

			public static AssetReferenceT<GameObject> burgeonExplosion = new AssetReferenceT<GameObject>("016343dff8c6ed345a37610401ac69b4");

			public static AssetReferenceT<GameObject> hyperbloomOrb = new AssetReferenceT<GameObject>("84548caf27cac6b44b9f23e11e0c447d");

			public static AssetReferenceT<Material> visionHolderMaterial = new AssetReferenceT<Material>("e3301a4ccd084f4428b3b23e85dc1733");

			public static AssetReferenceT<GameObject> delusionPickupModel = new AssetReferenceT<GameObject>("9f3cf544c7630a04fa25214a5197c191");

			public static AssetReferenceT<GameObject> delusionDisplayModel = new AssetReferenceT<GameObject>("79b9b2b62c2a66a439fad33cb020271a");

			public static AssetReferenceT<Texture> delusionLogo = new AssetReferenceT<Texture>("8c75207915d01ff4280ac8f0e15b5aad");

			public static AssetReferenceT<Sprite> delusionItemIcon = new AssetReferenceT<Sprite>("884bdf224e0646e43b6dc1b6a2675c92");

			public static AssetReferenceT<Sprite> delusionPyroItemIcon = new AssetReferenceT<Sprite>("c43b3123149962f4ba691794e52b3e43");

			public static AssetReferenceT<Sprite> delusionHydroItemIcon = new AssetReferenceT<Sprite>("cf1b789b5d942b142bd2ceff8f57f3a7");

			public static AssetReferenceT<Sprite> delusionElectroItemIcon = new AssetReferenceT<Sprite>("6556071d8b734a34c9ed73fe8f085b54");

			public static AssetReferenceT<Sprite> delusionCryoItemIcon = new AssetReferenceT<Sprite>("c18bd1206fb57a545b75e8ebe1277ae4");

			public static AssetReferenceT<Sprite> delusionAnemoItemIcon = new AssetReferenceT<Sprite>("d2783fcd777fdc443b2413bea0a67ee4");

			public static AssetReferenceT<Sprite> delusionGeoItemIcon = new AssetReferenceT<Sprite>("41fc2191bdd38634aa9d5d2f99a338c4");

			public static AssetReferenceT<Sprite> delusionDendroItemIcon = new AssetReferenceT<Sprite>("3bedb54f341b8b448b9c0a1cd9dcdd7b");

			public static AssetReferenceT<Sprite> delusionBuffIcon = new AssetReferenceT<Sprite>("6eea3353a4d395843b4cd63335aa6de1");

			public static AssetReferenceT<GameObject> delusionHitEffect = new AssetReferenceT<GameObject>("65c647fb4bb695846b19becd2e583081");

			public static AssetReferenceT<Texture> delusionRamp = new AssetReferenceT<Texture>("77c55f158f600e048ab3cecb73f7b2b6");

			public static AssetReferenceT<Texture> delusionOrbRamp = new AssetReferenceT<Texture>("18f28cc4480fabe408617d74510efcb1");

			public static AssetReferenceT<GameObject> instructorsTeaCupPickupModel = new AssetReferenceT<GameObject>("b51b42d6d9466d845a1d09da7a916642");

			public static AssetReferenceT<GameObject> instructorsTeaCupDisplayModel = new AssetReferenceT<GameObject>("aa757ec80808fa94f8b3e34811f93f35");

			public static AssetReferenceT<Material> instructorsTeaCupMaterial = new AssetReferenceT<Material>("21fcdb5cd2cf4b44fa0b04fe96e09702");

			public static AssetReferenceT<Texture> instructorsTeaCupFresnelMask = new AssetReferenceT<Texture>("053b6932d6b15d5488c3626eb00c31ec");

			public static AssetReferenceT<Sprite> instructorsTeaCupItemIcon = new AssetReferenceT<Sprite>("371e6f4214277484c90a8755fa3e42e1");

			public static AssetReferenceT<GameObject> moonWheelPickupModel = new AssetReferenceT<GameObject>("7e50ea908069f874fac56c93f70a328d");

			public static AssetReferenceT<GameObject> moonWheelDisplayModel = new AssetReferenceT<GameObject>("061359f9d76adfe429aa42f3b25caeb8");

			public static AssetReferenceT<Texture> moonWheelVisionIcon = new AssetReferenceT<Texture>("af83aeca078a68443bf1583507eab088");

			public static AssetReferenceT<Texture> moonWheelVisionRamp = new AssetReferenceT<Texture>("1f819082df45cdf44b5b8f019b4a90b5");

			public static AssetReferenceT<Sprite> moonWheelItemIcon = new AssetReferenceT<Sprite>("00f1f0088ad92dc4eb41b80b7aef67f2");

			public static AssetReferenceT<Sprite> elementalMasteryAchievementIcon = new AssetReferenceT<Sprite>("9547acf0f18b5a547a0533b84299b100");

			public static AssetReferenceT<Texture> lunarVFXSymbol = new AssetReferenceT<Texture>("044f325621315c64a8a6b0b7277ff9b3");

			public static AssetReferenceT<Texture> lunarDecal = new AssetReferenceT<Texture>("4cff496a700287245a5591fc5f7e1906");

			public static AssetReferenceT<GameObject> lunarChargedLightningEffect = new AssetReferenceT<GameObject>("558b1898670f29e4f8aba548a3357090");

			public static AssetReferenceT<Sprite> lunarChargeBuffIcon = new AssetReferenceT<Sprite>("ef41e115d6e9b3b45816e1afb73c5a0f");

			public static AssetReferenceT<GameObject> lunarBloomEffect = new AssetReferenceT<GameObject>("623c28827e49bf041ade36cdd7cdf922");

			public static AssetReferenceT<Sprite> lunarBloomBuffIcon = new AssetReferenceT<Sprite>("b14c2afa0ea1ba6449927fb72cbbd016");

			public static AssetReferenceT<Sprite> lunarBloomChargingBuffIcon = new AssetReferenceT<Sprite>("dc667ee18bd31314a9c85d4ba5590cbf");

			public static AssetReferenceT<GameObject> lunarCrystallizeController = new AssetReferenceT<GameObject>("151ca516e4a36dc4b9071f8c9957d1e4");

			public static AssetReferenceT<GameObject> lunarCrystallizeActivatedEffect = new AssetReferenceT<GameObject>("6eb753463343f764385e8aaad94cbecf");
		}

		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_0;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_1;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_2;

			public static EffectCondition <>9__13_24;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_3;

			public static EffectCondition <>9__13_25;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_4;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_5;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_6;

			public static EffectCondition <>9__13_27;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_7;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_10;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_11;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_15;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_16;

			public static EffectCondition <>9__13_37;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_18;

			public static Action<AsyncOperationHandle<GameObject>> <>9__13_22;

			internal void <Initialize>b__13_0(AsyncOperationHandle<GameObject> x)
			{
				//IL_0032: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0156: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val = x.Result.AddComponent<EffectComponent>();
				val.positionAtReferencedTransform = true;
				val.parentToReferencedTransform = true;
				val.applyScale = true;
				VFXAttributes val2 = x.Result.AddComponent<VFXAttributes>();
				val2.vfxPriority = (VFXPriority)1;
				val2.vfxIntensity = (VFXIntensity)0;
				val2.DoNotPool = false;
				x.Result.AddComponent<NetworkIdentity>();
				GenericElementEffectComponent genericElementEffectComponent = x.Result.AddComponent<GenericElementEffectComponent>();
				ParticleSystem component = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystem>();
				ParticleSystem component2 = ((Component)x.Result.transform.GetChild(1)).GetComponent<ParticleSystem>();
				ParticleSystem component3 = ((Component)x.Result.transform.GetChild(2)).GetComponent<ParticleSystem>();
				genericElementEffectComponent.icon = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystemRenderer>();
				genericElementEffectComponent.particlesToRecolor = (ParticleSystem[])(object)new ParticleSystem[3] { component, component2, component3 };
				x.Result.AddComponent<DestroyOnParticleEnd>().trackedParticleSystem = component;
				ScaleParticleSystemDuration val3 = x.Result.AddComponent<ScaleParticleSystemDuration>();
				val3.initialDuration = 0.7f;
				val3.particleSystems = (ParticleSystem[])(object)new ParticleSystem[3] { component, component2, component3 };
				genericElementEffectComponent.particleDuration = val3;
				((Renderer)((Component)x.Result.transform.GetChild(1)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_FalseSonBoss.matLunarGazeFireLaser3_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				x.Result.AddComponent<ParentEffectToItemDisplay>();
				AddNewEffectDef(x.Result);
			}

			internal void <Initialize>b__13_1(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_007a: Unknown result type (might be due to invalid IL or missing references)
				//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: 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_00f8: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val = x.Result.AddComponent<EffectComponent>();
				val.positionAtReferencedTransform = false;
				val.parentToReferencedTransform = false;
				VFXAttributes val2 = x.Result.AddComponent<VFXAttributes>();
				val2.vfxPriority = (VFXPriority)1;
				val2.vfxIntensity = (VFXIntensity)0;
				val2.DoNotPool = false;
				OrbEffect val3 = x.Result.AddComponent<OrbEffect>();
				val3.startVelocity1 = new Vector3(-30f, -7f, -30f);
				val3.startVelocity2 = new Vector3(30f, 7f, 30f);
				val3.movementCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f);
				val3.endEffect = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_Base_Treebot.OmniImpactVFXSlashSyringe_prefab), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				x.Result.AddComponent<NetworkIdentity>();
				ParticleSystem component = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystem>();
				((Renderer)((Component)component).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matWideGlow_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				GenericElementEffectComponent genericElementEffectComponent = x.Result.AddComponent<GenericElementEffectComponent>();
				genericElementEffectComponent.trailsToRecolor = (TrailRenderer[])(object)new TrailRenderer[1] { ((Component)x.Result.transform.GetChild(1)).GetComponent<TrailRenderer>() };
				genericElementEffectComponent.particlesToRecolor = (ParticleSystem[])(object)new ParticleSystem[2]
				{
					component,
					((Component)x.Result.transform.GetChild(2)).GetComponent<ParticleSystem>()
				};
				AddNewEffectDef(x.Result);
			}

			internal void <Initialize>b__13_2(AsyncOperationHandle<GameObject> x)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_003a: Expected O, but got Unknown
				//IL_0045: Unknown result type (might be due to invalid IL or missing references)
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0071: Unknown result type (might be due to invalid IL or missing references)
				//IL_0082: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0127: Unknown result type (might be due to invalid IL or missing references)
				//IL_012c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0135: Unknown result type (might be due to invalid IL or missing references)
				//IL_013b: Expected O, but got Unknown
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_0173: Unknown result type (might be due to invalid IL or missing references)
				//IL_0184: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
				//IL_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)
				Mesh sharedMesh = AssetAsyncReferenceManager<Mesh>.LoadAsset(new AssetReferenceT<Mesh>(RoR2_Base_Common_VFX.mdlVFXDonut1_fbx_donut1Mesh_), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				Material val = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC1_Common_VFX.matOmniHitspark1GenericAdditive_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				Texture val2 = AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_VFX_ParticleMasks.texGlowPaintMask_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				val.SetTexture("_MainTex", val2);
				val.SetTextureOffset("_MainTex", new Vector2(0.1f, 0.1f));
				val.SetColor("_TintColor", Color.white);
				val.SetTexture("_Cloud1Tex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Nullifier.texNullifierSkySparse_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val.SetTextureScale("_Cloud1Tex", new Vector2(6f, 0.7f));
				val.SetVector("_CutoffScroll", new Vector4(0f, 2f, 0f, 0f));
				val.SetInt("_ZTest", 0);
				val.EnableKeyword("USE_CLOUDS");
				val.SetFloat("_Boost", 2f);
				Material val3 = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Items_SpeedBoostPickup.matSpeedBoostPickupTraill_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val3.SetTexture("_MainTex", val2);
				val3.SetTextureScale("_MainTex", new Vector2(1f, 1f));
				val3.SetTextureOffset("_MainTex", new Vector2(0.25f, 0f));
				val3.SetColor("_TintColor", Color.white);
				val3.SetTexture("_Cloud1Tex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_DLC2_Items_SpeedBoostPickup.texNegateAttackTrail_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val3.SetTextureScale("_Cloud1Tex", new Vector2(2f, 4f));
				val3.SetVector("_CutoffScroll", new Vector4(5f, 10f, -20f, 4f));
				val3.SetInt("_ZTest", 0);
				val3.SetFloat("_AlphaBoost", 0.09f);
				val3.DisableKeyword("DISABLEREMAP");
				Transform child = x.Result.transform.GetChild(0);
				Transform child2 = x.Result.transform.GetChild(1);
				ElementalEnvironmentScreenEffect elementalEnvironmentScreenEffect = x.Result.AddComponent<ElementalEnvironmentScreenEffect>();
				elementalEnvironmentScreenEffect.halfL = ((Component)child).GetComponent<MeshRenderer>();
				elementalEnvironmentScreenEffect.halfR = ((Component)child2).GetComponent<MeshRenderer>();
				((Renderer)elementalEnvironmentScreenEffect.halfL).sharedMaterials = (Material[])(object)new Material[2] { val, val3 };
				((Component)child).GetComponent<MeshFilter>().sharedMesh = sharedMesh;
				((Renderer)elementalEnvironmentScreenEffect.halfR).sharedMaterials = (Material[])(object)new Material[2] { val, val3 };
				((Component)child2).GetComponent<MeshFilter>().sharedMesh = sharedMesh;
			}

			internal void <Initialize>b__13_3(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: Expected O, but got Unknown
				VFXAttributes val = x.Result.AddComponent<VFXAttributes>();
				val.vfxPriority = (VFXPriority)1;
				val.vfxIntensity = (VFXIntensity)0;
				val.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Component)child).GetComponent<ParticleSystemRenderer>().trailMaterial = electroTrailMaterial;
				((Component)child.GetChild(0)).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				DestroyOnTimer val2 = x.Result.AddComponent<DestroyOnTimer>();
				val2.duration = 0.25f;
				TemporaryVisualEffect val3 = x.Result.AddComponent<TemporaryVisualEffect>();
				val3.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val2 };
				val3.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>9__13_24;
				if (obj == null)
				{
					EffectCondition val4 = (CharacterBody body) => body.HasBuff(Buffs.electroChargeBuff);
					<>9__13_24 = val4;
					obj = (object)val4;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			}

			internal bool <Initialize>b__13_24(CharacterBody body)
			{
				return body.HasBuff(Buffs.electroChargeBuff);
			}

			internal void <Initialize>b__13_4(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: Expected O, but got Unknown
				VFXAttributes val = x.Result.AddComponent<VFXAttributes>();
				val.vfxPriority = (VFXPriority)1;
				val.vfxIntensity = (VFXIntensity)0;
				val.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Component)child).GetComponent<ParticleSystemRenderer>().trailMaterial = dendroElectricTrailMaterial;
				((Component)child.GetChild(0)).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				DestroyOnTimer val2 = x.Result.AddComponent<DestroyOnTimer>();
				val2.duration = 0.25f;
				TemporaryVisualEffect val3 = x.Result.AddComponent<TemporaryVisualEffect>();
				val3.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val2 };
				val3.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>9__13_25;
				if (obj == null)
				{
					EffectCondition val4 = (CharacterBody body) => body.HasBuff(Buffs.quickenBuff);
					<>9__13_25 = val4;
					obj = (object)val4;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			}

			internal bool <Initialize>b__13_25(CharacterBody body)
			{
				return body.HasBuff(Buffs.quickenBuff);
			}

			internal void <Initialize>b__13_5(AsyncOperationHandle<GameObject> x)
			{
				//IL_0031: Unknown result type (might be due to invalid IL or missing references)
				//IL_0038: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_0107: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_012d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0132: Unknown result type (might be due to invalid IL or missing references)
				//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0252: Unknown result type (might be due to invalid IL or missing references)
				//IL_0257: Unknown result type (might be due to invalid IL or missing references)
				<>c__DisplayClass13_1 CS$<>8__locals3 = new <>c__DisplayClass13_1();
				EffectComponent val = x.Result.AddComponent<EffectComponent>();
				val.positionAtReferencedTransform = true;
				val.parentToReferencedTransform = false;
				VFXAttributes val2 = x.Result.AddComponent<VFXAttributes>();
				val2.vfxPriority = (VFXPriority)2;
				val2.vfxIntensity = (VFXIntensity)1;
				val2.DoNotPool = false;
				ShakeEmitter val3 = x.Result.AddComponent<ShakeEmitter>();
				val3.amplitudeTimeDecay = true;
				val3.duration = 0.2f;
				val3.radius = 45f;
				val3.scaleShakeRadiusWithLocalScale = false;
				val3.wave = new Wave
				{
					amplitude = 0.7f,
					frequency = 30f,
					cycleOffset = 0f
				};
				x.Result.AddComponent<NetworkIdentity>();
				CS$<>8__locals3.ringParticleRenderer = ((Component)x.Result.transform.Find("OverloadRing")).GetComponent<ParticleSystemRenderer>();
				CS$<>8__locals3.ringParticleRenderer.mesh = AssetAsyncReferenceManager<Mesh>.LoadAsset(new AssetReferenceT<Mesh>(RoR2_Base_Common_VFX.mdlVFXDonut1_fbx_donut1Mesh_), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				AsyncOperationHandle<Material> val4 = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC3_SolusAmalgamator.matSolusAmalgamatorTrackingBombRing_mat), (AsyncReferenceHandleUnloadType)2);
				val4.Completed += delegate(AsyncOperationHandle<Material> y)
				{
					//IL_0008: Unknown result type (might be due to invalid IL or missing references)
					//IL_000e: Expected O, but got Unknown
					//IL_001f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0024: Unknown result type (might be due to invalid IL or missing references)
					Material val7 = new Material(y.Result);
					val7.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampTeslaCoil_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
					((Renderer)CS$<>8__locals3.ringParticleRenderer).sharedMaterial = val7;
				};
				Material sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matTracerBright_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("OverloadSmallFlash")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadFlash")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadSparks")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadDistortion")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matDistortionFaded_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Component)x.Result.transform.Find("OverloadElectricity")).GetComponent<ParticleSystemRenderer>().trailMaterial = electroTrailMaterial;
				((Component)x.Result.transform.Find("OverloadElectricityDark")).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadFire")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Gravekeeper.matOmniExplosion1ArchWisp_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				Transform val5 = x.Result.transform.Find("OverloadLight");
				val2.optionalLights = (Light[])(object)new Light[1] { ((Component)val5).GetComponent<Light>() };
				LightIntensityCurve val6 = ((Component)val5).gameObject.AddComponent<LightIntensityCurve>();
				val6.timeMax = 0.4f;
				val6.curve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
				x.Result.AddComponent<DestroyOnTimer>().duration = 0.7f;
				AddNewEffectDef(x.Result, "Play_FalseSon_MeridianWill_Lightning_Initial");
			}

			internal void <Initialize>b__13_6(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				//IL_0087: Unknown result type (might be due to invalid IL or missing references)
				//IL_008c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: 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_00f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val = x.Result.AddComponent<EffectComponent>();
				val.positionAtReferencedTransform = true;
				val.parentToReferencedTransform = false;
				VFXAttributes val2 = x.Result.AddComponent<VFXAttributes>();
				val2.vfxPriority = (VFXPriority)2;
				val2.vfxIntensity = (VFXIntensity)1;
				val2.DoNotPool = false;
				x.Result.AddComponent<NetworkIdentity>();
				x.Result.AddComponent<DestroyOnTimer>().duration = 0.7f;
				((Renderer)((Component)x.Result.transform.Find("SuperconductSphere")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_EliteIce.matAffixWhiteSphereIndicator_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("SuperconductMist")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondaryFrostVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("SuperconductSnowflakes")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondarySnowflakeVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				AddNewEffectDef(x.Result, "Play_freezeDrone_impact");
			}

			internal void <Initialize>b__13_7(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_004c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bd: Expected O, but got Unknown
				VFXAttributes val = x.Result.AddComponent<VFXAttributes>();
				val.vfxPriority = (VFXPriority)1;
				val.vfxIntensity = (VFXIntensity)0;
				val.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Renderer)((Component)child).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondaryFrostVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				DestroyOnTimer val2 = x.Result.AddComponent<DestroyOnTimer>();
				val2.duration = 0.6f;
				TemporaryVisualEffect val3 = x.Result.AddComponent<TemporaryVisualEffect>();
				val3.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val2 };
				val3.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>9__13_27;
				if (obj == null)
				{
					EffectCondition val4 = (CharacterBody body) => body.HasBuff(Buffs.superconductBuff);
					<>9__13_27 = val4;
					obj = (object)val4;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			}

			internal bool <Initialize>b__13_27(CharacterBody body)
			{
				return body.HasBuff(Buffs.superconductBuff);
			}

			internal void <Initialize>b__13_10(AsyncOperationHandle<GameObject> x)
			{
				ElementalReactionManager.bloomSpawnOrb = PrefabAPI.InstantiateClone(x.Result, "BloomSpawnOrbEffect");
				ElementalReactionManager.bloomSpawnOrb.AddComponent<OrbEffectTargetPosition>();
				ElementalReactionManager.bloomSpawnOrb.AddComponent<NetworkIdentity>();
				Object.Destroy((Object)(object)ElementalReactionManager.bloomSpawnOrb.GetComponent<AkEvent>());
				Object.Destroy((Object)(object)ElementalReactionManager.bloomSpawnOrb.GetComponent<AkGameObj>());
				AddNewEffectDef(ElementalReactionManager.bloomSpawnOrb);
			}

			internal void <Initialize>b__13_11(AsyncOperationHandle<GameObject> x)
			{
				//IL_0041: Unknown result type (might be due to invalid IL or missing references)
				//IL_004c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
				//IL_020a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0269: Unknown result type (might be due to invalid IL or missing references)
				//IL_026e: Unknown result type (might be due to invalid IL or missing references)
				<>c__DisplayClass13_3 CS$<>8__locals7 = new <>c__DisplayClass13_3();
				x.Result.AddComponent<NetworkIdentity>();
				CS$<>8__locals7.characterBody = x.Result.AddComponent<CharacterBody>();
				CS$<>8__locals7.characterBody.baseNameToken = "DS_GAMING_ELEMENTAL_REACTIONS_REACTION_BLOOM_OBJECT_NAME";
				CS$<>8__locals7.characterBody.bodyFlags = (BodyFlags)260;
				AsyncOperationHandle<Sprite> val = AssetAsyncReferenceManager<Sprite>.LoadAsset(AssetReferences.bloomIcon, (AsyncReferenceHandleUnloadType)2);
				val.Completed += delegate(AsyncOperationHandle<Sprite> val8)
				{
					CS$<>8__locals7.characterBody.portraitIcon = (Texture)(object)val8.Result.texture;
				};
				HealthComponent val2 = x.Result.AddComponent<HealthComponent>();
				val2.dontShowHealthbar = true;
				val2.body = CS$<>8__locals7.characterBody;
				CS$<>8__locals7.characterBody.baseMaxHealth = 1f;
				CS$<>8__locals7.characterBody.healthComponent = val2;
				x.Result.AddComponent<PseudoCharacterMotor>();
				HurtBoxGroup val3 = ((Component)x.Result.transform.GetChild(0)).gameObject.AddComponent<HurtBoxGroup>();
				ModelLocator val4 = x.Result.AddComponent<ModelLocator>();
				val4.modelTransform = ((Component)val3).transform;
				val4.dontDetatchFromParent = true;
				val3.mainHurtBox = ((Component)((Component)val3).transform.GetChild(0).GetChild(0).GetChild(0)).gameObject.AddComponent<HurtBox>();
				val3.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val3.mainHurtBox };
				val3.mainHurtBox.healthComponent = val2;
				val3.mainHurtBox.isBullseye = true;
				RotateItem val5 = ((Component)((Component)val3).transform.GetChild(0).GetChild(0)).gameObject.AddComponent<RotateItem>();
				val5.spinSpeed = 80f;
				ObjectScaleCurve val6 = ((Component)val5).gameObject.AddComponent<ObjectScaleCurve>();
				val6.timeMax = 0.2f;
				val6.overallCurve = AnimationCurve.EaseInOut(0f, 0.3f, 1f, 1f);
				val6.useOverallCurveOnly = true;
				((Renderer)((Component)((Component)val6).transform.Find("BloomStartDistortion")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matDistortionFaded_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				SpecialObjectAttributes val7 = x.Result.AddComponent<SpecialObjectAttributes>();
				val7.grabbable = true;
				val7.massOverride = 0f;
				val7.hullClassification = (HullClassification)0;
				val7.orientToFloor = true;
				x.Result.AddComponent<BloomController>();
				x.Result.AddComponent<Deployable>();
				x.Result.AddComponent<ForceFriendlyFire>();
				x.Result.AddComponent<ProjectileController>().cannotBeDeleted = true;
				x.Result.AddComponent<ProjectileDamage>();
				x.Result.AddComponent<ProjectileDeployToOwner>().deployableSlot = ElementalReactionManager.bloomDeployableSlot;
				Content.AddProjectilePrefab(x.Result);
			}

			internal void <Initialize>b__13_15(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_007a: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val = x.Result.AddComponent<EffectComponent>();
				val.positionAtReferencedTransform = false;
				val.parentToReferencedTransform = false;
				VFXAttributes val2 = x.Result.AddComponent<VFXAttributes>();
				val2.vfxPriority = (VFXPriority)2;
				val2.vfxIntensity = (VFXIntensity)0;
				val2.DoNotPool = false;
				OrbEffect val3 = x.Result.AddComponent<OrbEffect>();
				val3.startVelocity1 = new Vector3(-3f, 20f, -3f);
				val3.startVelocity2 = new Vector3(3f, 25f, 3f);
				val3.movementCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f);
				AddNewEffectDef(x.Result);
			}

			internal void <Initialize>b__13_16(AsyncOperationHandle<GameObject> x)
			{
				//IL_0023: Unknown result type (might be due to invalid IL or missing references)
				//IL_0135: Unknown result type (might be due to invalid IL or missing references)
				//IL_013a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0154: Unknown result type (might be due to invalid IL or missing references)
				//IL_0159: Unknown result type (might be due to invalid IL or missing references)
				//IL_0194: Unknown result type (might be due to invalid IL or missing references)
				//IL_0199: Unknown result type (might be due to invalid IL or missing references)
				//IL_0252: Unknown result type (might be due to invalid IL or missing references)
				//IL_0257: Unknown result type (might be due to invalid IL or missing references)
				<>c__DisplayClass13_7 CS$<>8__locals18 = new <>c__DisplayClass13_7();
				x.Result.AddComponent<NetworkIdentity>();
				TeamFilter val = x.Result.AddComponent<TeamFilter>();
				val.defaultTeam = (TeamIndex)1;
				x.Result.AddComponent<DestroyOnTimer>().duration = 10f;
				ProjectileNetworkTransform val2 = x.Result.AddComponent<ProjectileNetworkTransform>();
				val2.interpolationFactor = 2f;
				val2.positionTransmitInterval = 0.066666f;
				GravitatePickup val3 = ((Component)x.Result.transform.Find("GravitationController")).gameObject.AddComponent<GravitatePickup>();
				val3.rigidbody = x.Result.GetComponent<Rigidbody>();
				val3.maxSpeed = 40f;
				val3.acceleration = 5f;
				val3.teamFilter = val;
				val3.gravitateAtFullHealth = true;
				Transform child = x.Result.transform.GetChild(0);
				CS$<>8__locals18.model = ((Component)child.GetChild(0)).gameObject;
				CS$<>8__locals18.crystallizeRings = CS$<>8__locals18.model.transform.Find("CrystallizeRings");
				CS$<>8__locals18.startVFX = CS$<>8__locals18.model.transform.Find("CrystallizeStartGlow");
				((Renderer)((Component)CS$<>8__locals18.startVFX.Find("CrystallizeStartDistortion")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matDistortionFaded_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				AsyncOperationHandle<Material> val4 = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matOmniRing1Generic_mat), (AsyncReferenceHandleUnloadType)2);
				val4.Completed += delegate(AsyncOperationHandle<Material> val5)
				{
					((Renderer)((Component)CS$<>8__locals18.crystallizeRings).GetComponent<ParticleSystemRenderer>()).sharedMaterial = val5.Result;
					((Renderer)((Component)CS$<>8__locals18.startVFX.Find("CrystallizeStartRing")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = val5.Result;
				};
				((Renderer)((Component)CS$<>8__locals18.model.transform.Find("CrystallizeRays")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_FalseSonBoss.matLunarGazeFireLaser3_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				CS$<>8__locals18.model.gameObject.AddComponent<RotateItem>().spinSpeed = 120f;
				CrystallizeController crystallizeController = ((Component)x.Result.transform.Find("PickupTrigger")).gameObject.AddComponent<CrystallizeController>();
				crystallizeController.teamFilter = val;
				crystallizeController.baseGameObject = x.Result;
				crystallizeController.gravitateCollider = ((Component)val3).GetComponent<SphereCollider>();
				crystallizeController.teamRecolorParticle = (ParticleSystem[])(object)new ParticleSystem[2]
				{
					((Component)CS$<>8__locals18.crystallizeRings).GetComponent<ParticleSystem>(),
					((Component)CS$<>8__locals18.startVFX.Find("CrystallizeStartRing")).GetComponent<ParticleSystem>()
				};
				x.Result.AddComponent<Deployable>();
				val4 = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Elites_EliteAurelionite.matEliteAurelioniteAffixDisplay_mat), (AsyncReferenceHandleUnloadType)2);
				val4.Completed += delegate(AsyncOperationHandle<Material> val5)
				{
					//IL_000f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0019: Expected O, but got Unknown
					//IL_0035: 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)
					<>c__DisplayClass13_8 CS$<>8__locals20 = new <>c__DisplayClass13_8
					{
						crystallizeMat = new Material(val5.Result)
					};
					CS$<>8__locals20.crystallizeMat.SetNormal(0.1f);
					AsyncOperationHandle<Texture> val6 = AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampGrandparent_png), (AsyncReferenceHandleUnloadType)2);
					val6.Completed += delegate(AsyncOperationHandle<Texture> y)
					{
						CS$<>8__locals20.crystallizeMat.SetTexture("_FresnelRamp", y.Result);
					};
					CS$<>8__locals20.crystallizeMat.EnableKeyword("FRESNEL_EMISSION");
					CS$<>8__locals20.crystallizeMat.SetFloat("_FresnelBoost", 20f);
					CS$<>8__locals20.crystallizeMat.SetFloat("_FresnelPower", 1.5f);
					((Renderer)CS$<>8__locals18.model.GetComponent<MeshRenderer>()).sharedMaterial = CS$<>8__locals20.crystallizeMat;
				};
				Content.AddNetworkedObjectPrefab(x.Result);
			}

			internal void <Initialize>b__13_18(AsyncOperationHandle<GameObject> x)
			{
				//IL_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_005e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_007a: 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)
				//IL_00db: Unknown result type (might be due to invalid IL or missing references)
				//IL_010b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0110: Unknown result type (might be due to invalid IL or missing references)
				//IL_0116: Expected O, but got Unknown
				<>c__DisplayClass13_9 CS$<>8__locals7 = new <>c__DisplayClass13_9
				{
					delusionActiveEffect = PrefabAPI.InstantiateClone(x.Result, "DelusionActiveEffect", false)
				};
				VFXAttributes val = CS$<>8__locals7.delusionActiveEffect.AddComponent<VFXAttributes>();
				val.vfxPriority = (VFXPriority)2;
				val.vfxIntensity = (VFXIntensity)0;
				val.DoNotPool = false;
				ParticleSystem component = ((Component)CS$<>8__locals7.delusionActiveEffect.transform.GetChild(0).GetChild(0)).GetComponent<ParticleSystem>();
				MainModule main = component.main;
				((MainModule)(ref main)).startColor = new MinMaxGradient(new Color(0.3f, 0.35f, 0.4f));
				((MainModule)(ref main)).scalingMode = (ParticleSystemScalingMode)0;
				TemporaryVisualEffect component2 = CS$<>8__locals7.delusionActiveEffect.GetComponent<TemporaryVisualEffect>();
				DelusionTemporaryVisualEffect delusionTemporaryVisualEffect = CS$<>8__locals7.delusionActiveEffect.AddComponent<DelusionTemporaryVisualEffect>();
				component2.enterComponents = component2.enterComponents.Append((MonoBehaviour)(object)delusionTemporaryVisualEffect).ToArray();
				((Behaviour)delusionTemporaryVisualEffect).enabled = false;
				AsyncOperationHandle<PostProcessProfile> val2 = AssetAsyncReferenceManager<PostProcessProfile>.LoadAsset(new AssetReferenceT<PostProcessProfile>(RoR2_Base_title_PostProcessing.ppLocalDoppelganger_asset), (AsyncReferenceHandleUnloadType)2);
				val2.Completed += delegate(AsyncOperationHandle<PostProcessProfile> y)
				{
					PostProcessProfile val4 = Object.Instantiate<PostProcessProfile>(y.Result);
					val4.RemoveSettings<ColorGrading>();
					PostProcessVolume component3 = ((Component)CS$<>8__locals7.delusionActiveEffect.transform.GetChild(1).GetChild(0)).GetComponent<PostProcessVolume>();
					RuntimeUtilities.DestroyProfile(component3.profile, true);
					component3.sharedProfile = val4;
					((Component)component3).GetComponent<PostProcessDuration>().ppWeightCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 0.5f);
					CS$<>8__locals7.delusionActiveEffect.GetComponent<PostProcessDuration>().ppWeightCurve = AnimationCurve.EaseInOut(0f, 0.5f, 1f, 0f);
				};
				GameObject obj = CS$<>8__locals7.delusionActiveEffect;
				object obj2 = <>9__13_37;
				if (obj2 == null)
				{
					EffectCondition val3 = (CharacterBody body) => body.HasBuff(Buffs.delusionActiveBuff);
					<>9__13_37 = val3;
					obj2 = (object)val3;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(obj, (EffectCondition)obj2, false, "");
			}

			internal bool <Initialize>b__13_37(CharacterBody body)
			{
				return body.HasBuff(Buffs.delusionActiveBuff);
			}

			internal void <Initialize>b__13_22(AsyncOperationHandle<GameObject> x)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: 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_001f: Expected O, but got Unknown
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_0093: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a6: Expected O, but got Unknown
				//IL_00bb: 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)
				//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0127: Unknown result type (might be due to invalid IL or missing references)
				Material val = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Grandparent.matGrandParentSunCore_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_DLC1_Common_ColorRamps.texRampConstructLaserTypeB_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val.SetFloat("_Boost", 1.5f);
				val.SetFloat("_AlphaBoost", 7f);
				val.SetFloat("_AlphaBias", 0.5f);
				val.SetFloat("_FresnelPower", -1f);
				Material val2 = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Items_ExtraStatsOnLevelUp.matBeadsEnlightenGlow_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val2.SetColor("_TintColor", new Color(1f, 0.5f, 0.3f));
				val2.SetTextureScale("_MainTex", new Vector2(1f, 0.5f));
				val2.SetTextureOffset("_MainTex", new Vector2(0f, 0.5f));
				val2.SetTextureScale("_Cloud2Tex", new Vector2(5f, -0.6f));
				val2.SetTextureOffset("_Cloud2Tex", new Vector2(0f, 0.6f));
				val2.SetFloat("_Boost", 1f);
				val2.SetFloat("_AlphaBoost", 0.5f);
				val2.SetFloat("_FresnelPower", 0f);
				LunarCrystallizeController lunarCrystallizeController = x.Result.AddComponent<LunarCrystallizeController>();
				lunarCrystallizeController.moondrift1 = ((Component)x.Result.transform.GetChild(0).GetChild(0)).gameObject;
				CreateMoondrift(lunarCrystallizeController.moondrift1, val, val2);
				lunarCrystallizeController.moondrift2 = ((Component)x.Result.transform.GetChild(1).GetChild(0)).gameObject;
				CreateMoondrift(lunarCrystallizeController.moondrift2, val, val2);
				lunarCrystallizeController.moondrift3 = ((Component)x.Result.transform.GetChild(2).GetChild(0)).gameObject;
				CreateMoondrift(lunarCrystallizeController.moondrift3, val, val2);
			}
		}

		[CompilerGenerated]
		private sealed class <>c__DisplayClass13_1
		{
			public ParticleSystemRenderer ringParticleRenderer;

			internal void <Initialize>b__26(AsyncOperationHandle<Material> y)
			{
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Expected O, but got Unknown
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0024: Unknown result type (might be due to invalid IL or missing references)
				Material val = new Material(y.Result);
				val.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampTeslaCoil_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				((Renderer)ringParticleRenderer).sharedMaterial = val;
			}
		}

		[CompilerGenerated]
		private sealed class <>c__DisplayClass13_3
		{
			public CharacterBody characterBody;

			internal void <Initialize>b__29(AsyncOperationHandle<Sprite> x)
			{
				characterBody.portraitIcon = (Texture)(object)x.Result.texture;
			}
		}

		[CompilerGenerated]
		private sealed class <>c__DisplayClass13_7
		{
			public Transform crystallizeRings;

			public Transform startVFX;

			public GameObject model;

			internal void <Initialize>b__33(AsyncOperationHandle<Material> x)
			{
				((Renderer)((Component)crystallizeRings).GetComponent<ParticleSystemRenderer>()).sharedMaterial = x.Result;
				((Renderer)((Component)startVFX.Find("CrystallizeStartRing")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = x.Result;
			}

			internal void <Initialize>b__34(AsyncOperationHandle<Material> x)
			{
				//IL_000f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0019: Expected O, but got Unknown
				//IL_0035: 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)
				<>c__DisplayClass13_8 CS$<>8__locals6 = new <>c__DisplayClass13_8
				{
					crystallizeMat = new Material(x.Result)
				};
				CS$<>8__locals6.crystallizeMat.SetNormal(0.1f);
				AsyncOperationHandle<Texture> val = AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampGrandparent_png), (AsyncReferenceHandleUnloadType)2);
				val.Completed += delegate(AsyncOperationHandle<Texture> y)
				{
					CS$<>8__locals6.crystallizeMat.SetTexture("_FresnelRamp", y.Result);
				};
				CS$<>8__locals6.crystallizeMat.EnableKeyword("FRESNEL_EMISSION");
				CS$<>8__locals6.crystallizeMat.SetFloat("_FresnelBoost", 20f);
				CS$<>8__locals6.crystallizeMat.SetFloat("_FresnelPower", 1.5f);
				((Renderer)model.GetComponent<MeshRenderer>()).sharedMaterial = CS$<>8__locals6.crystallizeMat;
			}
		}

		[CompilerGenerated]
		private sealed class <>c__DisplayClass13_8
		{
			public Material crystallizeMat;

			internal void <Initialize>b__35(AsyncOperationHandle<Texture> y)
			{
				crystallizeMat.SetTexture("_FresnelRamp", y.Result);
			}
		}

		[CompilerGenerated]
		private sealed class <>c__DisplayClass13_9
		{
			public GameObject delusionActiveEffect;

			internal void <Initialize>b__36(AsyncOperationHandle<PostProcessProfile> y)
			{
				PostProcessProfile val = Object.Instantiate<PostProcessProfile>(y.Result);
				val.RemoveSettings<ColorGrading>();
				PostProcessVolume component = ((Component)delusionActiveEffect.transform.GetChild(1).GetChild(0)).GetComponent<PostProcessVolume>();
				RuntimeUtilities.DestroyProfile(component.profile, true);
				component.sharedProfile = val;
				((Component)component).GetComponent<PostProcessDuration>().ppWeightCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 0.5f);
				delusionActiveEffect.GetComponent<PostProcessDuration>().ppWeightCurve = AnimationCurve.EaseInOut(0f, 0.5f, 1f, 0f);
			}
		}

		public static ExpansionDef elementalReactionExpansionDef;

		public static GameObject elementalReactionManagerPrefab;

		public static GameObject elementLoadoutRowUI;

		public static Material visionMaterial;

		public static Material electroTrailMaterial;

		public static Material darkElectricTrailMaterial;

		public static Material dendroElectricTrailMaterial;

		public static Material genericElementEffectMaterial;

		public static string AddressablesDirectory { get; private set; }

		internal static void LoadAddressables()
		{
			//IL_0035: 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)
			AddressablesDirectory = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)ElementalReactionsPlugin.instance).Info.Location), "Addressables");
			Addressables.LoadContentCatalogAsync(Path.Combine(AddressablesDirectory, "catalog.json"), (string)null).WaitForCompletion();
		}

		public static void Initialize()
		{
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: 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_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: 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_01ab: 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_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Expected O, but got Unknown
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_022d: Expected O, but got Unknown
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_0278: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Expected O, but got Unknown
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: 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_0317: Unknown result type (might be due to invalid IL or missing references)
			//IL_0320: Unknown result type (might be due to invalid IL or missing references)
			//IL_032a: Expected O, but got Unknown
			//IL_033b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Expected O, but got Unknown
			//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_044a: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0460: Unknown result type (might be due to invalid IL or missing references)
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0493: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c1: 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_04f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_055a: Unknown result type (might be due to invalid IL or missing references)
			//IL_055f: Unknown result type (might be due to invalid IL or missing references)
			//IL_057a: Unknown result type (might be due to invalid IL or missing references)
			//IL_057f: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0606: Unknown result type (might be due to invalid IL or missing references)
			//IL_060b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0626: Unknown result type (might be due to invalid IL or missing references)
			//IL_062b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0646: Unknown result type (might be due to invalid IL or missing references)
			//IL_064b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0666: Unknown result type (might be due to invalid IL or missing references)
			//IL_066b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0699: Unknown result type (might be due to invalid IL or missing references)
			//IL_069e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Unknown result type (might be due to invalid IL or missing references)
			//IL_072a: Unknown result type (might be due to invalid IL or missing references)
			//IL_074a: Unknown result type (might be due to invalid IL or missing references)
			//IL_074f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0783: Unknown result type (might be due to invalid IL or missing references)
			//IL_0788: Unknown result type (might be due to invalid IL or missing references)
			//IL_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_079b: Expected O, but got Unknown
			//IL_07ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07db: 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_0853: Unknown result type (might be due to invalid IL or missing references)
			//IL_086d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0872: Unknown result type (might be due to invalid IL or missing references)
			//IL_087b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0885: Expected O, but got Unknown
			//IL_08bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e3: 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_0901: Unknown result type (might be due to invalid IL or missing references)
			//IL_0906: Unknown result type (might be due to invalid IL or missing references)
			//IL_090f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0919: Expected O, but got Unknown
			//IL_0944: Unknown result type (might be due to invalid IL or missing references)
			//IL_0960: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_098a: Unknown result type (might be due to invalid IL or missing references)
			//IL_098f: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3a: 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_0a5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aad: Unknown result type (might be due to invalid IL or missing references)
			LoadAddressables();
			elementalReactionManagerPrefab = PrefabAPI.CreateEmptyPrefab("ElementalReactionManager");
			elementalReactionManagerPrefab.AddComponent<ElementalReactionManager>();
			AddAkBank(elementalReactionManagerPrefab, RoR2_DLC2_FalseSon.FalseSonBody_prefab);
			AddAkBank(elementalReactionManagerPrefab, RoR2_Base_Bandit2.Bandit2Body_prefab);
			AddAkBank(elementalReactionManagerPrefab, RoR2_DLC2_Seeker.SeekerBody_prefab);
			elementalReactionExpansionDef = ScriptableObject.CreateInstance<ExpansionDef>();
			((Object)elementalReactionExpansionDef).name = "ElementalReactionExpansionDef";
			elementalReactionExpansionDef.nameToken = "DS_GAMING_ELEMENTAL_REACTIONS_EXPANSION_NAME";
			elementalReactionExpansionDef.descriptionToken = "DS_GAMING_ELEMENTAL_REACTIONS_EXPANSION_DESCRIPTION";
			elementalReactionExpansionDef.iconSprite = Addressables.LoadAssetAsync<Sprite>((object)AssetReferences.expansionIcon).WaitForCompletion();
			elementalReactionExpansionDef.disabledIconSprite = Addressables.LoadAssetAsync<Sprite>((object)RoR2_Base_Common_MiscIcons.texUnlockIcon_png).WaitForCompletion();
			elementalReactionExpansionDef.runBehaviorPrefab = elementalReactionManagerPrefab;
			elementalReactionExpansionDef.requiredEntitlement = null;
			Content.AddExpansionDef(elementalReactionExpansionDef);
			elementalReactionManagerPrefab.AddComponent<ExpansionRequirementComponent>().requiredExpansion = elementalReactionExpansionDef;
			CreateGenericElementEffectMaterial();
			AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.genericElementActivatedEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_0032: 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_0151: Unknown result type (might be due to invalid IL or missing references)
				//IL_0156: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val3 = x.Result.AddComponent<EffectComponent>();
				val3.positionAtReferencedTransform = true;
				val3.parentToReferencedTransform = true;
				val3.applyScale = true;
				VFXAttributes val4 = x.Result.AddComponent<VFXAttributes>();
				val4.vfxPriority = (VFXPriority)1;
				val4.vfxIntensity = (VFXIntensity)0;
				val4.DoNotPool = false;
				x.Result.AddComponent<NetworkIdentity>();
				GenericElementEffectComponent genericElementEffectComponent = x.Result.AddComponent<GenericElementEffectComponent>();
				ParticleSystem component = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystem>();
				ParticleSystem component2 = ((Component)x.Result.transform.GetChild(1)).GetComponent<ParticleSystem>();
				ParticleSystem component3 = ((Component)x.Result.transform.GetChild(2)).GetComponent<ParticleSystem>();
				genericElementEffectComponent.icon = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystemRenderer>();
				genericElementEffectComponent.particlesToRecolor = (ParticleSystem[])(object)new ParticleSystem[3] { component, component2, component3 };
				x.Result.AddComponent<DestroyOnParticleEnd>().trackedParticleSystem = component;
				ScaleParticleSystemDuration val5 = x.Result.AddComponent<ScaleParticleSystemDuration>();
				val5.initialDuration = 0.7f;
				val5.particleSystems = (ParticleSystem[])(object)new ParticleSystem[3] { component, component2, component3 };
				genericElementEffectComponent.particleDuration = val5;
				((Renderer)((Component)x.Result.transform.GetChild(1)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_FalseSonBoss.matLunarGazeFireLaser3_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				x.Result.AddComponent<ParentEffectToItemDisplay>();
				AddNewEffectDef(x.Result);
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.genericElementOrbEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_007a: Unknown result type (might be due to invalid IL or missing references)
				//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: 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_00f8: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val3 = x.Result.AddComponent<EffectComponent>();
				val3.positionAtReferencedTransform = false;
				val3.parentToReferencedTransform = false;
				VFXAttributes val4 = x.Result.AddComponent<VFXAttributes>();
				val4.vfxPriority = (VFXPriority)1;
				val4.vfxIntensity = (VFXIntensity)0;
				val4.DoNotPool = false;
				OrbEffect val5 = x.Result.AddComponent<OrbEffect>();
				val5.startVelocity1 = new Vector3(-30f, -7f, -30f);
				val5.startVelocity2 = new Vector3(30f, 7f, 30f);
				val5.movementCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f);
				val5.endEffect = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_Base_Treebot.OmniImpactVFXSlashSyringe_prefab), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				x.Result.AddComponent<NetworkIdentity>();
				ParticleSystem component = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystem>();
				((Renderer)((Component)component).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matWideGlow_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				GenericElementEffectComponent genericElementEffectComponent = x.Result.AddComponent<GenericElementEffectComponent>();
				genericElementEffectComponent.trailsToRecolor = (TrailRenderer[])(object)new TrailRenderer[1] { ((Component)x.Result.transform.GetChild(1)).GetComponent<TrailRenderer>() };
				genericElementEffectComponent.particlesToRecolor = (ParticleSystem[])(object)new ParticleSystem[2]
				{
					component,
					((Component)x.Result.transform.GetChild(2)).GetComponent<ParticleSystem>()
				};
				AddNewEffectDef(x.Result);
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.elementEnvironmentScreenEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_003a: Expected O, but got Unknown
				//IL_0045: Unknown result type (might be due to invalid IL or missing references)
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0071: Unknown result type (might be due to invalid IL or missing references)
				//IL_0082: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0127: Unknown result type (might be due to invalid IL or missing references)
				//IL_012c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0135: Unknown result type (might be due to invalid IL or missing references)
				//IL_013b: Expected O, but got Unknown
				//IL_0158: Unknown result type (might be due to invalid IL or missing references)
				//IL_0173: Unknown result type (might be due to invalid IL or missing references)
				//IL_0184: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
				//IL_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)
				Mesh sharedMesh = AssetAsyncReferenceManager<Mesh>.LoadAsset(new AssetReferenceT<Mesh>(RoR2_Base_Common_VFX.mdlVFXDonut1_fbx_donut1Mesh_), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				Material val3 = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC1_Common_VFX.matOmniHitspark1GenericAdditive_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				Texture val4 = AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_VFX_ParticleMasks.texGlowPaintMask_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				val3.SetTexture("_MainTex", val4);
				val3.SetTextureOffset("_MainTex", new Vector2(0.1f, 0.1f));
				val3.SetColor("_TintColor", Color.white);
				val3.SetTexture("_Cloud1Tex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Nullifier.texNullifierSkySparse_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val3.SetTextureScale("_Cloud1Tex", new Vector2(6f, 0.7f));
				val3.SetVector("_CutoffScroll", new Vector4(0f, 2f, 0f, 0f));
				val3.SetInt("_ZTest", 0);
				val3.EnableKeyword("USE_CLOUDS");
				val3.SetFloat("_Boost", 2f);
				Material val5 = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Items_SpeedBoostPickup.matSpeedBoostPickupTraill_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val5.SetTexture("_MainTex", val4);
				val5.SetTextureScale("_MainTex", new Vector2(1f, 1f));
				val5.SetTextureOffset("_MainTex", new Vector2(0.25f, 0f));
				val5.SetColor("_TintColor", Color.white);
				val5.SetTexture("_Cloud1Tex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_DLC2_Items_SpeedBoostPickup.texNegateAttackTrail_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
				val5.SetTextureScale("_Cloud1Tex", new Vector2(2f, 4f));
				val5.SetVector("_CutoffScroll", new Vector4(5f, 10f, -20f, 4f));
				val5.SetInt("_ZTest", 0);
				val5.SetFloat("_AlphaBoost", 0.09f);
				val5.DisableKeyword("DISABLEREMAP");
				Transform child = x.Result.transform.GetChild(0);
				Transform child2 = x.Result.transform.GetChild(1);
				ElementalEnvironmentScreenEffect elementalEnvironmentScreenEffect = x.Result.AddComponent<ElementalEnvironmentScreenEffect>();
				elementalEnvironmentScreenEffect.halfL = ((Component)child).GetComponent<MeshRenderer>();
				elementalEnvironmentScreenEffect.halfR = ((Component)child2).GetComponent<MeshRenderer>();
				((Renderer)elementalEnvironmentScreenEffect.halfL).sharedMaterials = (Material[])(object)new Material[2] { val3, val5 };
				((Component)child).GetComponent<MeshFilter>().sharedMesh = sharedMesh;
				((Renderer)elementalEnvironmentScreenEffect.halfR).sharedMaterials = (Material[])(object)new Material[2] { val3, val5 };
				((Component)child2).GetComponent<MeshFilter>().sharedMesh = sharedMesh;
			};
			Mesh ringMesh = AssetAsyncReferenceManager<Mesh>.LoadAsset(new AssetReferenceT<Mesh>(RoR2_Base_Common_VFX.mdlVFXDonut2_fbx_donut2Mesh_), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
			electroTrailMaterial = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_FalseSonBoss.matPrimeDevastatorChargeVFX2_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			electroTrailMaterial.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampTeslaCoil_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			electroTrailMaterial.SetFloat("_Boost", 2f);
			darkElectricTrailMaterial = new Material(electroTrailMaterial);
			darkElectricTrailMaterial.SetColor("_TintColor", Color.black);
			darkElectricTrailMaterial.SetInt("_DstBlend", 10);
			Texture dendroRampTex = AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampOrbitalLaser_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
			dendroElectricTrailMaterial = new Material(electroTrailMaterial);
			dendroElectricTrailMaterial.SetTexture("_RemapTex", dendroRampTex);
			dendroElectricTrailMaterial.SetColor("_TintColor", new Color(0.5f, 1f, 0f));
			dendroElectricTrailMaterial.SetFloat("_Boost", 4f);
			Material dendroLeafMat = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Seeker.matSeekerLotus_mat_bfd003ca), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
			dendroLeafMat.SetColor("_TintColor", Color.white);
			Material bloomCoreExplosionMat = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matOmniRing1Generic_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			bloomCoreExplosionMat.SetTexture("_MainTex", AssetAsyncReferenceManager<Texture>.LoadAsset(AssetReferences.bloomTransparent, (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			bloomCoreExplosionMat.SetTexture("_RemapTex", dendroRampTex);
			bloomCoreExplosionMat.SetFloat("_AlphaBoost", 1f);
			bloomCoreExplosionMat.SetFloat("_Boost", 1f);
			bloomCoreExplosionMat.SetInt("_SrcBlend", 5);
			bloomCoreExplosionMat.SetInt("_DstBlend", 1);
			Material genericRingMat = new Material(AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_BFG.matBeamSphereBeam_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			genericRingMat.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampTwotoneEnvironment_jpg), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
			genericRingMat.SetFloat("_AlphaBoost", 3f);
			genericRingMat.EnableKeyword("VERTEXCOLOR");
			genericRingMat.SetVector("_CutoffScroll", new Vector4(25f, 0f, -10f, 0f));
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.electroChargeTempVisualEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: Expected O, but got Unknown
				VFXAttributes val3 = x.Result.AddComponent<VFXAttributes>();
				val3.vfxPriority = (VFXPriority)1;
				val3.vfxIntensity = (VFXIntensity)0;
				val3.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Component)child).GetComponent<ParticleSystemRenderer>().trailMaterial = electroTrailMaterial;
				((Component)child.GetChild(0)).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				DestroyOnTimer val4 = x.Result.AddComponent<DestroyOnTimer>();
				val4.duration = 0.25f;
				TemporaryVisualEffect val5 = x.Result.AddComponent<TemporaryVisualEffect>();
				val5.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val4 };
				val5.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>c.<>9__13_24;
				if (obj == null)
				{
					EffectCondition val6 = (CharacterBody body) => body.HasBuff(Buffs.electroChargeBuff);
					<>c.<>9__13_24 = val6;
					obj = (object)val6;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.quickenTempVisualEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: Expected O, but got Unknown
				VFXAttributes val3 = x.Result.AddComponent<VFXAttributes>();
				val3.vfxPriority = (VFXPriority)1;
				val3.vfxIntensity = (VFXIntensity)0;
				val3.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Component)child).GetComponent<ParticleSystemRenderer>().trailMaterial = dendroElectricTrailMaterial;
				((Component)child.GetChild(0)).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				DestroyOnTimer val4 = x.Result.AddComponent<DestroyOnTimer>();
				val4.duration = 0.25f;
				TemporaryVisualEffect val5 = x.Result.AddComponent<TemporaryVisualEffect>();
				val5.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val4 };
				val5.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>c.<>9__13_25;
				if (obj == null)
				{
					EffectCondition val6 = (CharacterBody body) => body.HasBuff(Buffs.quickenBuff);
					<>c.<>9__13_25 = val6;
					obj = (object)val6;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.overloadEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_0031: Unknown result type (might be due to invalid IL or missing references)
				//IL_0038: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_0107: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_012d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0132: Unknown result type (might be due to invalid IL or missing references)
				//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0252: Unknown result type (might be due to invalid IL or missing references)
				//IL_0257: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val3 = x.Result.AddComponent<EffectComponent>();
				val3.positionAtReferencedTransform = true;
				val3.parentToReferencedTransform = false;
				VFXAttributes val4 = x.Result.AddComponent<VFXAttributes>();
				val4.vfxPriority = (VFXPriority)2;
				val4.vfxIntensity = (VFXIntensity)1;
				val4.DoNotPool = false;
				ShakeEmitter val5 = x.Result.AddComponent<ShakeEmitter>();
				val5.amplitudeTimeDecay = true;
				val5.duration = 0.2f;
				val5.radius = 45f;
				val5.scaleShakeRadiusWithLocalScale = false;
				val5.wave = new Wave
				{
					amplitude = 0.7f,
					frequency = 30f,
					cycleOffset = 0f
				};
				x.Result.AddComponent<NetworkIdentity>();
				ParticleSystemRenderer ringParticleRenderer = ((Component)x.Result.transform.Find("OverloadRing")).GetComponent<ParticleSystemRenderer>();
				ringParticleRenderer.mesh = AssetAsyncReferenceManager<Mesh>.LoadAsset(new AssetReferenceT<Mesh>(RoR2_Base_Common_VFX.mdlVFXDonut1_fbx_donut1Mesh_), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				AsyncOperationHandle<Material> val6 = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC3_SolusAmalgamator.matSolusAmalgamatorTrackingBombRing_mat), (AsyncReferenceHandleUnloadType)2);
				val6.Completed += delegate(AsyncOperationHandle<Material> y)
				{
					//IL_0008: Unknown result type (might be due to invalid IL or missing references)
					//IL_000e: Expected O, but got Unknown
					//IL_001f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0024: Unknown result type (might be due to invalid IL or missing references)
					Material val9 = new Material(y.Result);
					val9.SetTexture("_RemapTex", AssetAsyncReferenceManager<Texture>.LoadAsset(new AssetReferenceT<Texture>(RoR2_Base_Common_ColorRamps.texRampTeslaCoil_png), (AsyncReferenceHandleUnloadType)2).WaitForCompletion());
					((Renderer)ringParticleRenderer).sharedMaterial = val9;
				};
				Material sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matTracerBright_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("OverloadSmallFlash")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadFlash")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadSparks")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadDistortion")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Common_VFX.matDistortionFaded_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Component)x.Result.transform.Find("OverloadElectricity")).GetComponent<ParticleSystemRenderer>().trailMaterial = electroTrailMaterial;
				((Component)x.Result.transform.Find("OverloadElectricityDark")).GetComponent<ParticleSystemRenderer>().trailMaterial = darkElectricTrailMaterial;
				((Renderer)((Component)x.Result.transform.Find("OverloadFire")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_Gravekeeper.matOmniExplosion1ArchWisp_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				Transform val7 = x.Result.transform.Find("OverloadLight");
				val4.optionalLights = (Light[])(object)new Light[1] { ((Component)val7).GetComponent<Light>() };
				LightIntensityCurve val8 = ((Component)val7).gameObject.AddComponent<LightIntensityCurve>();
				val8.timeMax = 0.4f;
				val8.curve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
				x.Result.AddComponent<DestroyOnTimer>().duration = 0.7f;
				AddNewEffectDef(x.Result, "Play_FalseSon_MeridianWill_Lightning_Initial");
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.superconductEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				//IL_0087: Unknown result type (might be due to invalid IL or missing references)
				//IL_008c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: 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_00f9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
				EffectComponent val3 = x.Result.AddComponent<EffectComponent>();
				val3.positionAtReferencedTransform = true;
				val3.parentToReferencedTransform = false;
				VFXAttributes val4 = x.Result.AddComponent<VFXAttributes>();
				val4.vfxPriority = (VFXPriority)2;
				val4.vfxIntensity = (VFXIntensity)1;
				val4.DoNotPool = false;
				x.Result.AddComponent<NetworkIdentity>();
				x.Result.AddComponent<DestroyOnTimer>().duration = 0.7f;
				((Renderer)((Component)x.Result.transform.Find("SuperconductSphere")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_Base_EliteIce.matAffixWhiteSphereIndicator_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("SuperconductMist")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondaryFrostVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				((Renderer)((Component)x.Result.transform.Find("SuperconductSnowflakes")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondarySnowflakeVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				AddNewEffectDef(x.Result, "Play_freezeDrone_impact");
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.superconductTempVisualEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_004c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bd: Expected O, but got Unknown
				VFXAttributes val3 = x.Result.AddComponent<VFXAttributes>();
				val3.vfxPriority = (VFXPriority)1;
				val3.vfxIntensity = (VFXIntensity)0;
				val3.DoNotPool = false;
				Transform child = x.Result.transform.GetChild(0);
				((Renderer)((Component)child).GetComponent<ParticleSystemRenderer>()).sharedMaterial = AssetAsyncReferenceManager<Material>.LoadAsset(new AssetReferenceT<Material>(RoR2_DLC2_Chef.matChefSecondaryFrostVFX_mat), (AsyncReferenceHandleUnloadType)2).WaitForCompletion();
				DestroyOnTimer val4 = x.Result.AddComponent<DestroyOnTimer>();
				val4.duration = 0.6f;
				TemporaryVisualEffect val5 = x.Result.AddComponent<TemporaryVisualEffect>();
				val5.exitComponents = (MonoBehaviour[])(object)new MonoBehaviour[1] { (MonoBehaviour)val4 };
				val5.visualTransform = child;
				GameObject result = x.Result;
				object obj = <>c.<>9__13_27;
				if (obj == null)
				{
					EffectCondition val6 = (CharacterBody body) => body.HasBuff(Buffs.superconductBuff);
					<>c.<>9__13_27 = val6;
					obj = (object)val6;
				}
				TempVisualEffectAPI.AddTemporaryVisualEffect(result, (EffectCondition)obj, false, "");
			};
			val = AssetAsyncReferenceManager<GameObject>.LoadAsset(AssetReferences.swirlEffect, (AsyncReferenceHandleUnloadType)2);
			val.Completed += delegate(AsyncOperationHandle<GameObject> x)
			{
				//IL_002b: 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)
				EffectComponent val3 = x.Result.AddComponent<EffectComponent>();
				val3.positionAtReferencedTransform = true;
				val3.parentToReferencedTransform = false;
				VFXAttributes val4 = x.Result.AddComponent<VFXAttributes>();
				val4.vfxPriority = (VFXPriority)2;
				val4.vfxIntensity = (VFXIntensity)0;
				val4.DoNotPool = false;
				x.Result.AddComponent<NetworkIdentity>();
				GenericElementEffectComponent genericElementEffectComponent = x.Result.AddComponent<GenericElementEffectComponent>();
				ParticleSystemRenderer component = ((Component)x.Result.transform.GetChild(0)).GetComponent<ParticleSystemRenderer>();
				genericElementEffectComponent.particlesToRecolor = (ParticleSystem[])(object)new ParticleSystem[1] { ((Component)component).GetComponent<ParticleSystem>() };
				component.mesh = ringMesh;
				((Renderer)component).sharedMaterial = genericRingMat;
				x.Result.AddComponent<DestroyOnTimer>().duration = 0.4f;
				AddNewEffectDef(x.Result, "Play_bandit2_shift_exit");
			};
			AsyncOperationHandle<Material> val2 = AssetAsyncReferenceManager<Material>.LoadAsset(AssetReferences.bloomMaterial, (AsyncReferenceHandleUnloadType)2);
			val2.Completed += delegate(AsyncOperationHandle<Material> x)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				x.Result.SetHopooMaterial();
				AsyncOperationHandle<Texture> val3 = AssetAsyncReferenceManager<Texture>.LoadAsset(AssetReferences.bloomFresnelMask, (AsyncReferen