Decompiled source of WolfoQualityOfLife v2.5.8

WolfoQualityOfLife.dll

Decompiled 3 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using EntityStates;
using EntityStates.Bell.BellWeapon;
using EntityStates.Croco;
using EntityStates.GameOver;
using EntityStates.GlobalSkills.LunarDetonator;
using EntityStates.Headstompers;
using EntityStates.Loader;
using EntityStates.Merc;
using EntityStates.Merc.Weapon;
using EntityStates.Missions.Arena.NullWard;
using EntityStates.ScavMonster;
using EntityStates.Toolbot;
using EntityStates.Treebot.TreebotFlower;
using EntityStates.Treebot.Weapon;
using EntityStates.VoidSurvivor.Weapon;
using HG;
using IL.EntityStates.Bell.BellWeapon;
using IL.EntityStates.Croco;
using IL.EntityStates.Merc;
using IL.EntityStates.Merc.Weapon;
using IL.RoR2;
using IL.RoR2.Orbs;
using IL.RoR2.UI;
using JetBrains.Annotations;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using On.EntityStates;
using On.EntityStates.Croco;
using On.EntityStates.GameOver;
using On.EntityStates.GlobalSkills.LunarDetonator;
using On.EntityStates.Headstompers;
using On.EntityStates.Loader;
using On.EntityStates.Merc;
using On.EntityStates.Merc.Weapon;
using On.EntityStates.Missions.Arena.NullWard;
using On.EntityStates.ScavMonster;
using On.EntityStates.Toolbot;
using On.EntityStates.Treebot.TreebotFlower;
using On.EntityStates.Treebot.Weapon;
using On.EntityStates.VoidSurvivor.Weapon;
using On.RoR2;
using On.RoR2.Items;
using On.RoR2.Orbs;
using On.RoR2.UI;
using On.RoR2.UI.LogBook;
using On.RoR2.UI.MainMenu;
using R2API;
using R2API.Utils;
using RoR2;
using RoR2.ExpansionManagement;
using RoR2.Hologram;
using RoR2.Items;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Stats;
using RoR2.UI;
using RoR2.UI.LogBook;
using RoR2.UI.MainMenu;
using TMPro;
using ThreeEyedGames;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.UI;
using WolfoQualityOfLife.Properties;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("WolfoQualityOfLife")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("WolfoQualityOfLife")]
[assembly: AssemblyTitle("WolfoQualityOfLife")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: UnverifiableCode]
[module: UnverifiableCode]
namespace WolfoQualityOfLife
{
	public static class ArrayUtil
	{
		public static T[] Add<T>(this T[] array, params T[] items)
		{
			return (array ?? Enumerable.Empty<T>()).Concat(items).ToArray();
		}

		public static T[] Remove<T>(this T[] array, params T[] items)
		{
			return (array ?? Enumerable.Empty<T>()).Except(items).ToArray();
		}
	}
	public class RandomMisc
	{
		public class InstantiateGameObjectAtLocation : MonoBehaviour
		{
			public GameObject objectToInstantiate;

			public void Start()
			{
				Object.Instantiate<GameObject>(objectToInstantiate, ((Component)this).transform);
			}
		}

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

			public static hook_EnforceHistoryLimit <>9__2_0;

			public static hook_TryGrantItem <>9__2_1;

			public static hook_OnEnter <>9__2_2;

			public static hook_FixedUpdate <>9__2_3;

			public static hook_PreStartClient <>9__2_4;

			public static hook_DropPickup <>9__2_5;

			public static hook_OnEnter <>9__2_6;

			public static hook_OnEnter <>9__2_7;

			public static hook_PlayExtraLifeSFX <>9__2_8;

			public static hook_UpdatePickupDisplayAndAnimations <>9__2_9;

			public static hook_Awake <>9__5_0;

			public static hook_Awake <>9__5_1;

			public static hook_Awake <>9__5_2;

			public static hook_OnStartClient <>9__6_0;

			public static hook_OnTargetSceneChanged <>9__6_1;

			public static hook_SetRunNextStageToTarget <>9__6_2;

			public static hook_Awake <>9__7_0;

			public static hook_Start <>9__7_1;

			internal void <Start>b__2_0(orig_EnforceHistoryLimit orig)
			{
				if (Chainloader.PluginInfos.ContainsKey("local.fix.history"))
				{
					orig.Invoke();
					return;
				}
				List<HistoryFileInfo> list = CollectionPool<HistoryFileInfo, List<HistoryFileInfo>>.RentCollection();
				MorgueManager.GetHistoryFiles(list);
				int num = list.Count - 1;
				int num2 = Math.Max(MorgueManager.morgueHistoryLimit.value, 0);
				while (num >= num2)
				{
					num--;
					MorgueManager.RemoveOldestHistoryFile();
				}
				CollectionPool<HistoryFileInfo, List<HistoryFileInfo>>.ReturnCollection(list);
			}

			internal void <Start>b__2_1(orig_TryGrantItem orig, CaptainDefenseMatrixController self)
			{
				orig.Invoke(self);
				CaptainSupplyDropController component = ((Component)self.characterBody).GetComponent<CaptainSupplyDropController>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.CallCmdSetSkillMask((byte)3);
				}
			}

			internal void <Start>b__2_2(orig_OnEnter orig, ReadyMegaBlaster self)
			{
				orig.Invoke(self);
				((EntityState)self).characterBody.AddSpreadBloom(0.5f);
			}

			internal void <Start>b__2_3(orig_FixedUpdate orig, ReadyMegaBlaster self)
			{
				orig.Invoke(self);
				((EntityState)self).characterBody.SetSpreadBloom(0.25f, true);
			}

			internal void <Start>b__2_4(orig_PreStartClient orig, ShopTerminalBehavior self)
			{
				orig.Invoke(self);
				if (((Object)self).name.StartsWith("LunarCauldron,") || ((Object)self).name.StartsWith("ShrineCleanse"))
				{
					Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
					Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
					Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
				}
			}

			internal void <Start>b__2_5(orig_DropPickup orig, ShopTerminalBehavior self)
			{
				orig.Invoke(self);
				if (((Object)self).name.StartsWith("LunarCauldron,") || ((Object)self).name.StartsWith("ShrineCleanse"))
				{
					Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
					Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
					Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
				}
			}

			internal void <Start>b__2_6(orig_OnEnter orig, Sit self)
			{
				orig.Invoke(self);
				if (Object.op_Implicit((Object)(object)((Component)((EntityState)self).outer).gameObject))
				{
					Util.PlaySound(Sit.soundString, ((Component)((EntityState)self).outer).gameObject);
				}
			}

			internal void <Start>b__2_7(orig_OnEnter orig, Detonate self)
			{
				orig.Invoke(self);
				Util.PlaySound("Play_item_lunar_specialReplace_apply", ((Component)((EntityState)self).outer).gameObject);
			}

			internal void <Start>b__2_8(orig_PlayExtraLifeSFX orig, CharacterMaster self)
			{
				orig.Invoke(self);
				GameObject bodyObject = self.GetBodyObject();
				if (Object.op_Implicit((Object)(object)bodyObject))
				{
					Util.PlaySound("Play_item_proc_extraLife", bodyObject);
					Util.PlaySound("Play_item_proc_extraLife", bodyObject);
					Util.PlaySound("Play_item_proc_extraLife", bodyObject);
				}
			}

			internal void <Start>b__2_9(orig_UpdatePickupDisplayAndAnimations orig, ShopTerminalBehavior self)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				if (self.pickupIndex == PickupIndex.none && ((Component)self).GetComponent<PurchaseInteraction>().available)
				{
					self.hasStarted = false;
					orig.Invoke(self);
					self.hasStarted = true;
				}
				else
				{
					orig.Invoke(self);
				}
			}

			internal void <PriceTransformStuff>b__5_0(orig_Awake orig, ChestBehavior self)
			{
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Expected O, but got Unknown
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				orig.Invoke(self);
				if (((Object)((Component)self).gameObject).name.StartsWith("Lockbox"))
				{
					GameObject val = new GameObject("LockboxHoloPivot");
					val.transform.SetParent(((Component)self).transform, false);
					val.transform.localPosition = new Vector3(0f, 2f, 0f);
					((Component)self).GetComponent<HologramProjector>().hologramPivot = val.transform;
				}
			}

			internal void <PriceTransformStuff>b__5_1(orig_Awake orig, OptionChestBehavior self)
			{
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Expected O, but got Unknown
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				orig.Invoke(self);
				if (((Object)((Component)self).gameObject).name.StartsWith("LockboxVoid"))
				{
					GameObject val = new GameObject("LockboxVoidHoloPivot");
					val.transform.SetParent(((Component)self).transform, false);
					val.transform.localPosition = new Vector3(0f, 2f, 0f);
					((Component)self).GetComponent<HologramProjector>().hologramPivot = val.transform;
				}
			}

			internal void <PriceTransformStuff>b__5_2(orig_Awake orig, VendingMachineBehavior self)
			{
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				//IL_002e: Expected O, but got Unknown
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				orig.Invoke(self);
				if (((Object)((Component)self).gameObject).name.StartsWith("VendingMachine"))
				{
					GameObject val = new GameObject("VendingMachineHoloPivot");
					val.transform.SetParent(((Component)self).transform, false);
					val.transform.localPosition = new Vector3(0f, 4.3f, 0f);
					((Component)self).GetComponent<HologramProjector>().hologramPivot = val.transform;
				}
			}

			internal void <LunarSeerStuff>b__6_0(orig_OnStartClient orig, SeerStationController self)
			{
				orig.Invoke(self);
				if (self.NetworktargetSceneDefIndex != -1)
				{
					string @string = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
					@string = @string.Replace("Hidden Realm: ", "");
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + @string;
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + @string + ")";
				}
			}

			internal void <LunarSeerStuff>b__6_1(orig_OnTargetSceneChanged orig, SeerStationController self, SceneDef sceneDef)
			{
				orig.Invoke(self, sceneDef);
				if ((Object)(object)sceneDef != (Object)null)
				{
					string @string = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
					@string = @string.Replace("Hidden Realm: ", "");
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + @string;
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + @string + ")";
				}
			}

			internal void <LunarSeerStuff>b__6_2(orig_SetRunNextStageToTarget orig, SeerStationController self)
			{
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_009c: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_0213: Unknown result type (might be due to invalid IL or missing references)
				//IL_0223: Unknown result type (might be due to invalid IL or missing references)
				//IL_0228: Unknown result type (might be due to invalid IL or missing references)
				//IL_023a: Unknown result type (might be due to invalid IL or missing references)
				//IL_023f: Unknown result type (might be due to invalid IL or missing references)
				//IL_027f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0284: Unknown result type (might be due to invalid IL or missing references)
				//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
				//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
				//IL_0251: Unknown result type (might be due to invalid IL or missing references)
				//IL_0256: Unknown result type (might be due to invalid IL or missing references)
				//IL_0268: Unknown result type (might be due to invalid IL or missing references)
				//IL_026d: Unknown result type (might be due to invalid IL or missing references)
				bool flag = false;
				if (Object.op_Implicit((Object)(object)SceneInfo.instance) && SceneInfo.instance.sceneDef.baseSceneName == "bazaar")
				{
					flag = true;
					GameObject val = GameObject.Find("/PortalShop");
					SceneDef sceneDef = SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex);
					if (Object.op_Implicit((Object)(object)sceneDef) && Object.op_Implicit((Object)(object)val))
					{
						val.transform.localScale = new Vector3(0.7f, 1.26f, 0.7f);
						val.transform.position = new Vector3(12.88f, -5.53f, -7.34f);
						GameObject val2 = null;
						GenericObjectiveProvider val3 = null;
						GameObject val4 = null;
						switch (sceneDef.baseSceneName)
						{
						case "goldshores":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalGoldshores/PortalGoldshores.prefab").WaitForCompletion();
							break;
						case "mysteryspace":
						case "limbo":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalMS/PortalMS.prefab").WaitForCompletion();
							break;
						case "artifactworld":
							val.transform.localPosition = new Vector3(12.88f, 0f, -7.34f);
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalArtifactworld/PortalArtifactworld.prefab").WaitForCompletion();
							break;
						case "arena":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalArena/PortalArena.prefab").WaitForCompletion();
							break;
						case "voidstage":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/PortalVoid/PortalVoid.prefab").WaitForCompletion();
							break;
						case "voidraid":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/DeepVoidPortal/DeepVoidPortal.prefab").WaitForCompletion();
							break;
						default:
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalShop/PortalShop.prefab").WaitForCompletion();
							break;
						}
						if ((Object)(object)val2 != (Object)null)
						{
							val3 = val2.GetComponent<GenericObjectiveProvider>();
							val4 = Object.Instantiate<GameObject>(val2, val.transform.position, val.transform.rotation);
							NetworkServer.Spawn(val4);
							val4.GetComponent<SceneExitController>().destinationScene = sceneDef;
							val4.GetComponent<SceneExitController>().useRunNextStageScene = false;
							((Object)val4).name = ((Object)val).name;
							Object.Destroy((Object)(object)val);
						}
					}
				}
				orig.Invoke(self);
				if (flag)
				{
					SeerStationController[] array = Object.FindObjectsOfType(typeof(SeerStationController)) as SeerStationController[];
					for (int i = 0; i < array.Length; i++)
					{
						((Component)array[i]).gameObject.GetComponent<PurchaseInteraction>().SetAvailable(false);
					}
				}
			}

			internal void <FlowersForOtherHoldoutZones>b__7_0(orig_Awake orig, HoldoutZoneController self)
			{
				//IL_02c2: 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_00c3: 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_0197: Unknown result type (might be due to invalid IL or missing references)
				//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e1: 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_028a: Unknown result type (might be due to invalid IL or missing references)
				//IL_02af: Unknown result type (might be due to invalid IL or missing references)
				orig.Invoke(self);
				if (!self.applyHealingNova)
				{
					return;
				}
				if (!Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
				{
					if (((Object)self).name.StartsWith("InfiniteTowerSafeWardAwaitingInteraction(Clone)"))
					{
						self.healingNovaItemEffect = Object.Instantiate<GameObject>(LeptonDaisyTeleporterDecoration, ((Component)self).transform.GetChild(0).GetChild(0).GetChild(7)
							.GetChild(0)
							.GetChild(1)
							.GetChild(0));
						self.healingNovaItemEffect.transform.rotation = new Quaternion(0f, -0.7071f, -0.7071f, 0f);
						self.healingNovaItemEffect.transform.localScale = new Vector3(0.1928f, 0.1928f, 0.1928f);
						self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.4193f, 0f);
					}
					else if (((Object)self).name.StartsWith("MoonBattery"))
					{
						self.healingNovaItemEffect = Object.Instantiate<GameObject>(GlowFlowerForPillar, ((Component)self).transform.GetChild(0).GetChild(0).GetChild(0)
							.GetChild(0)
							.GetChild(1));
					}
					else if (((Object)self).name.StartsWith("NullSafeZone"))
					{
						self.healingNovaItemEffect = Object.Instantiate<GameObject>(LeptonDaisyTeleporterDecoration, ((Component)self).transform);
						self.healingNovaItemEffect.transform.rotation = new Quaternion(-0.5649f, -0.4254f, -0.4254f, 0.5649f);
						self.healingNovaItemEffect.transform.localScale = new Vector3(0.275f, 0.275f, 0.225f);
						self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.3f, 0f);
					}
					else if (((Object)self).name.StartsWith("DeepVoidPortalBattery(Clone)"))
					{
						self.healingNovaItemEffect = (self.healingNovaItemEffect = Object.Instantiate<GameObject>(GlowFlowerForPillar, ((Component)self).transform.GetChild(0).GetChild(2).GetChild(2)
							.GetChild(0)
							.GetChild(0)));
						self.healingNovaItemEffect.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
						self.healingNovaItemEffect.transform.localScale = new Vector3(0.375f, 0.375f, 0.375f);
						self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.4f, 0f);
					}
				}
				if (Util.GetItemCountForTeam((TeamIndex)1, Items.TPHealingNova.itemIndex, false, true) > 0 && Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
				{
					self.healingNovaItemEffect.SetActive(true);
					self.healingNovaItemEffect = null;
				}
			}

			internal void <FlowersForOtherHoldoutZones>b__7_1(orig_Start orig, HoldoutZoneController self)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				orig.Invoke(self);
				if (!self.applyHealingNova)
				{
					return;
				}
				if (Util.GetItemCountForTeam((TeamIndex)1, Items.TPHealingNova.itemIndex, false, true) > 0)
				{
					if (Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
					{
						self.healingNovaItemEffect.SetActive(true);
						self.healingNovaItemEffect = null;
					}
				}
				else if (Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
				{
					self.healingNovaItemEffect.SetActive(false);
				}
			}
		}

		public static GameObject LeptonDaisyTeleporterDecoration;

		public static GameObject GlowFlowerForPillar;

		public static void Start()
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: 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_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_025d: 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_0069: Expected O, but got Unknown
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02aa: Expected O, but got Unknown
			//IL_02da: Unknown result type (might be due to invalid IL or missing references)
			//IL_02df: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_031d: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_039c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0401: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cf: Expected O, but got Unknown
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_042e: Expected O, but got Unknown
			//IL_0448: Unknown result type (might be due to invalid IL or missing references)
			//IL_044d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0453: Expected O, but got Unknown
			//IL_046d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0472: Unknown result type (might be due to invalid IL or missing references)
			//IL_0478: Expected O, but got Unknown
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0492: Unknown result type (might be due to invalid IL or missing references)
			//IL_0497: Unknown result type (might be due to invalid IL or missing references)
			//IL_049d: Expected O, but got Unknown
			//IL_051d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0522: Unknown result type (might be due to invalid IL or missing references)
			//IL_0528: Expected O, but got Unknown
			//IL_0542: Unknown result type (might be due to invalid IL or missing references)
			//IL_0547: Unknown result type (might be due to invalid IL or missing references)
			//IL_054d: Expected O, but got Unknown
			RandomMiscWithConfig.Start();
			FlowersForOtherHoldoutZones();
			LunarSeerStuff();
			PriceTransformStuff();
			Unused();
			VoidAffix();
			object obj = <>c.<>9__2_0;
			if (obj == null)
			{
				hook_EnforceHistoryLimit val = delegate(orig_EnforceHistoryLimit orig)
				{
					if (Chainloader.PluginInfos.ContainsKey("local.fix.history"))
					{
						orig.Invoke();
					}
					else
					{
						List<HistoryFileInfo> list = CollectionPool<HistoryFileInfo, List<HistoryFileInfo>>.RentCollection();
						MorgueManager.GetHistoryFiles(list);
						int num = list.Count - 1;
						int num2 = Math.Max(MorgueManager.morgueHistoryLimit.value, 0);
						while (num >= num2)
						{
							num--;
							MorgueManager.RemoveOldestHistoryFile();
						}
						CollectionPool<HistoryFileInfo, List<HistoryFileInfo>>.ReturnCollection(list);
					}
				};
				<>c.<>9__2_0 = val;
				obj = (object)val;
			}
			MorgueManager.EnforceHistoryLimit += (hook_EnforceHistoryLimit)obj;
			object obj2 = <>c.<>9__2_1;
			if (obj2 == null)
			{
				hook_TryGrantItem val2 = delegate(orig_TryGrantItem orig, CaptainDefenseMatrixController self)
				{
					orig.Invoke(self);
					CaptainSupplyDropController component3 = ((Component)self.characterBody).GetComponent<CaptainSupplyDropController>();
					if (Object.op_Implicit((Object)(object)component3))
					{
						component3.CallCmdSetSkillMask((byte)3);
					}
				};
				<>c.<>9__2_1 = val2;
				obj2 = (object)val2;
			}
			CaptainDefenseMatrixController.TryGrantItem += (hook_TryGrantItem)obj2;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/artifactworld").shouldIncludeInLogbook = true;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/voidstage").stageOrder = 102;
			Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/voidraid/voidraid.asset").WaitForCompletion().stageOrder = 103;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/arena").stageOrder = 104;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/mysteryspace").stageOrder = 105;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/limbo").stageOrder = 106;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/bazaar").stageOrder = 107;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/artifactworld").stageOrder = 108;
			LegacyResourcesAPI.Load<SceneDef>("SceneDefs/goldshores").stageOrder = 108;
			ItemDefInfo val3 = default(ItemDefInfo);
			val3.itemDef = LegacyResourcesAPI.Load<ItemDef>("ItemDefs/LunarTrinket");
			val3.count = 1;
			val3.dontExceedCount = true;
			ItemDefInfo val4 = val3;
			ItemDefInfo[] itemDefInfos = (ItemDefInfo[])(object)new ItemDefInfo[1] { val4 };
			LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar1Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar2Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar3Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar4Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos;
			GameObject val5 = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Hacking.prefab").WaitForCompletion().transform.GetChild(2).GetChild(0).GetChild(4)).gameObject, "ShockIndicator", false);
			Material val6 = Object.Instantiate<Material>(((Renderer)((Component)val5.transform.GetChild(0)).GetComponent<MeshRenderer>()).material);
			val6.SetColor("_TintColor", new Color(0f, 0.4f, 0.8f, 1f));
			((Renderer)((Component)val5.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = val6;
			val5.transform.localScale = new Vector3(6.67f, 6.67f, 6.67f);
			GameObject val7 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Shocking.prefab").WaitForCompletion();
			((Component)val7.transform.GetChild(2).GetChild(0)).gameObject.AddComponent<InstantiateGameObjectAtLocation>().objectToInstantiate = val5;
			object obj3 = <>c.<>9__2_2;
			if (obj3 == null)
			{
				hook_OnEnter val8 = delegate(orig_OnEnter orig, ReadyMegaBlaster self)
				{
					orig.Invoke(self);
					((EntityState)self).characterBody.AddSpreadBloom(0.5f);
				};
				<>c.<>9__2_2 = val8;
				obj3 = (object)val8;
			}
			ReadyMegaBlaster.OnEnter += (hook_OnEnter)obj3;
			object obj4 = <>c.<>9__2_3;
			if (obj4 == null)
			{
				hook_FixedUpdate val9 = delegate(orig_FixedUpdate orig, ReadyMegaBlaster self)
				{
					orig.Invoke(self);
					((EntityState)self).characterBody.SetSpreadBloom(0.25f, true);
				};
				<>c.<>9__2_3 = val9;
				obj4 = (object)val9;
			}
			ReadyMegaBlaster.FixedUpdate += (hook_FixedUpdate)obj4;
			GameObject val10 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/sulfurpools/SulfurpoolsDioramaDisplay.prefab").WaitForCompletion();
			MeshRenderer component = ((Component)val10.transform.GetChild(2)).GetComponent<MeshRenderer>();
			Material val11 = Object.Instantiate<Material>(((Renderer)component).material);
			val11.SetTexture("_SnowTex", (Texture)(object)Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC1/sulfurpools/texSPGroundDIFVein.tga").WaitForCompletion());
			((Renderer)component).material = val11;
			ModelPanelParameters component2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/voidstage/VoidStageDiorama.prefab").WaitForCompletion().GetComponent<ModelPanelParameters>();
			component2.minDistance = 20f;
			component2.minDistance = 240f;
			GameObject val12 = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/DamageZoneWard");
			val12.transform.GetChild(1).GetChild(2).GetChild(1)
				.localScale = new Vector3(2f, 2f, 2f);
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Plant/InterstellarDeskPlant.prefab").WaitForCompletion().transform.GetChild(0).localScale = new Vector3(0.6f, 0.6f, 0.6f);
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElectricWorm/ElectricWormBody.prefab").WaitForCompletion().GetComponent<WormBodyPositions2>()
				.blastAttackEffect = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ElectricWorm/ElectricWormImpactExplosion.prefab").WaitForCompletion();
			object obj5 = <>c.<>9__2_4;
			if (obj5 == null)
			{
				hook_PreStartClient val13 = delegate(orig_PreStartClient orig, ShopTerminalBehavior self)
				{
					orig.Invoke(self);
					if (((Object)self).name.StartsWith("LunarCauldron,") || ((Object)self).name.StartsWith("ShrineCleanse"))
					{
						Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
						Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
						Util.PlaySound("Play_ui_obj_lunarPool_idle_loop", ((Component)self).gameObject);
					}
				};
				<>c.<>9__2_4 = val13;
				obj5 = (object)val13;
			}
			ShopTerminalBehavior.PreStartClient += (hook_PreStartClient)obj5;
			object obj6 = <>c.<>9__2_5;
			if (obj6 == null)
			{
				hook_DropPickup val14 = delegate(orig_DropPickup orig, ShopTerminalBehavior self)
				{
					orig.Invoke(self);
					if (((Object)self).name.StartsWith("LunarCauldron,") || ((Object)self).name.StartsWith("ShrineCleanse"))
					{
						Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
						Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
						Util.PlaySound("Play_ui_obj_lunarPool_activate", ((Component)self).gameObject);
					}
				};
				<>c.<>9__2_5 = val14;
				obj6 = (object)val14;
			}
			ShopTerminalBehavior.DropPickup += (hook_DropPickup)obj6;
			object obj7 = <>c.<>9__2_6;
			if (obj7 == null)
			{
				hook_OnEnter val15 = delegate(orig_OnEnter orig, Sit self)
				{
					orig.Invoke(self);
					if (Object.op_Implicit((Object)(object)((Component)((EntityState)self).outer).gameObject))
					{
						Util.PlaySound(Sit.soundString, ((Component)((EntityState)self).outer).gameObject);
					}
				};
				<>c.<>9__2_6 = val15;
				obj7 = (object)val15;
			}
			Sit.OnEnter += (hook_OnEnter)obj7;
			object obj8 = <>c.<>9__2_7;
			if (obj8 == null)
			{
				hook_OnEnter val16 = delegate(orig_OnEnter orig, Detonate self)
				{
					orig.Invoke(self);
					Util.PlaySound("Play_item_lunar_specialReplace_apply", ((Component)((EntityState)self).outer).gameObject);
				};
				<>c.<>9__2_7 = val16;
				obj8 = (object)val16;
			}
			Detonate.OnEnter += (hook_OnEnter)obj8;
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/RoboBallBoss/RoboBallMiniBody.prefab").WaitForCompletion().GetComponent<SfxLocator>()
				.aliveLoopStart = "Play_roboBall_attack2_mini_spawn";
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/RoboBallBuddy/RoboBallRedBuddyBody.prefab").WaitForCompletion().GetComponent<SfxLocator>()
				.aliveLoopStart = "Play_roboBall_attack2_mini_spawn";
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/RoboBallBuddy/RoboBallGreenBuddyBody.prefab").WaitForCompletion().GetComponent<SfxLocator>()
				.aliveLoopStart = "Play_roboBall_attack2_mini_spawn";
			object obj9 = <>c.<>9__2_8;
			if (obj9 == null)
			{
				hook_PlayExtraLifeSFX val17 = delegate(orig_PlayExtraLifeSFX orig, CharacterMaster self)
				{
					orig.Invoke(self);
					GameObject bodyObject = self.GetBodyObject();
					if (Object.op_Implicit((Object)(object)bodyObject))
					{
						Util.PlaySound("Play_item_proc_extraLife", bodyObject);
						Util.PlaySound("Play_item_proc_extraLife", bodyObject);
						Util.PlaySound("Play_item_proc_extraLife", bodyObject);
					}
				};
				<>c.<>9__2_8 = val17;
				obj9 = (object)val17;
			}
			CharacterMaster.PlayExtraLifeSFX += (hook_PlayExtraLifeSFX)obj9;
			object obj10 = <>c.<>9__2_9;
			if (obj10 == null)
			{
				hook_UpdatePickupDisplayAndAnimations val18 = delegate(orig_UpdatePickupDisplayAndAnimations orig, ShopTerminalBehavior self)
				{
					//IL_0002: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					if (self.pickupIndex == PickupIndex.none && ((Component)self).GetComponent<PurchaseInteraction>().available)
					{
						self.hasStarted = false;
						orig.Invoke(self);
						self.hasStarted = true;
					}
					else
					{
						orig.Invoke(self);
					}
				};
				<>c.<>9__2_9 = val18;
				obj10 = (object)val18;
			}
			ShopTerminalBehavior.UpdatePickupDisplayAndAnimations += (hook_UpdatePickupDisplayAndAnimations)obj10;
		}

		public static void VoidAffix()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: 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_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Expected O, but got Unknown
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			EquipmentDef val = Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteVoid/EliteVoidEquipment.asset").WaitForCompletion();
			GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(), "PickupAffixVoidW", false);
			val2.transform.GetChild(0).GetChild(1).SetAsFirstSibling();
			val2.transform.GetChild(1).localPosition = new Vector3(0f, 0.7f, 0f);
			val2.transform.GetChild(1).GetChild(0).localPosition = new Vector3(0f, -0.5f, -0.6f);
			val2.transform.GetChild(1).GetChild(0).localScale = new Vector3(1.5f, 1.5f, 1.5f);
			((Component)val2.transform.GetChild(1).GetChild(1)).gameObject.SetActive(false);
			((Component)val2.transform.GetChild(1).GetChild(3)).gameObject.SetActive(false);
			val2.transform.GetChild(0).eulerAngles = new Vector3(310f, 0f, 0f);
			val2.transform.GetChild(0).localScale = new Vector3(0.75f, 0.75f, 0.75f);
			ItemDisplay component = val2.GetComponent<ItemDisplay>();
			component.rendererInfos = component.rendererInfos.Remove(component.rendererInfos[4]);
			LanguageAPI.Add("EQUIPMENT_AFFIXVOID_NAME", "Voidborne Curiosity", "en");
			LanguageAPI.Add("EQUIPMENT_AFFIXVOID_PICKUP", "Lose your aspect of self.", "en");
			LanguageAPI.Add("EQUIPMENT_AFFIXVOID_DESC", "Increases <style=cIsHealing>maximum health</style> by <style=cIsHealing>50%</style> and decrease <style=cIsDamage>base damage</style> by <style=cIsDamage>30%</style>. <style=cIsDamage>Collapse</style> enemies on hit and <style=cIsHealing>block</style> incoming damage once every <style=cIsUtility>15 seconds</style>. ", "en");
			Texture2D val3 = new Texture2D(128, 128, (TextureFormat)12, false);
			ImageConversion.LoadImage(val3, Resources.UniqueAffixVoid, true);
			((Texture)val3).filterMode = (FilterMode)1;
			((Texture)val3).wrapMode = (TextureWrapMode)1;
			Sprite pickupIconSprite = Sprite.Create(val3, v.rec128, v.half);
			val.pickupIconSprite = pickupIconSprite;
			val.pickupModelPrefab = val2;
		}

		public static void Unused()
		{
		}

		internal static void PriceTransformStuff()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: 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_0056: 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_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: 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_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Expected O, but got Unknown
			//IL_01a6: 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_01b1: Expected O, but got Unknown
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Expected O, but got Unknown
			GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ShrineCleanse/ShrineCleanse.prefab").WaitForCompletion();
			GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ShrineCleanse/ShrineCleanseSandy Variant.prefab").WaitForCompletion();
			GameObject val3 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ShrineCleanse/ShrineCleanseSnowy Variant.prefab").WaitForCompletion();
			GameObject val4 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/TreasureCache/Lockbox.prefab").WaitForCompletion();
			GameObject val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/TreasureCacheVoid/LockboxVoid.prefab").WaitForCompletion();
			GameObject val6 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VendingMachine/VendingMachine.prefab").WaitForCompletion();
			val.AddComponent<HologramProjector>().disableHologramRotation = true;
			val2.AddComponent<HologramProjector>().disableHologramRotation = true;
			val3.AddComponent<HologramProjector>().disableHologramRotation = true;
			val.transform.GetChild(1).localPosition = new Vector3(0f, 0.75f, -1.65f);
			val2.transform.GetChild(1).localPosition = new Vector3(0f, 0.75f, -1.65f);
			val3.transform.GetChild(1).localPosition = new Vector3(0f, 0.75f, -1.65f);
			val.GetComponent<HologramProjector>().hologramPivot = val.transform.GetChild(1);
			val2.GetComponent<HologramProjector>().hologramPivot = val2.transform.GetChild(1);
			val3.GetComponent<HologramProjector>().hologramPivot = val3.transform.GetChild(1);
			val4.AddComponent<HologramProjector>();
			val5.AddComponent<HologramProjector>();
			val6.AddComponent<HologramProjector>();
			object obj = <>c.<>9__5_0;
			if (obj == null)
			{
				hook_Awake val7 = delegate(orig_Awake orig, ChestBehavior self)
				{
					//IL_0028: Unknown result type (might be due to invalid IL or missing references)
					//IL_002e: Expected O, but got Unknown
					//IL_0056: Unknown result type (might be due to invalid IL or missing references)
					orig.Invoke(self);
					if (((Object)((Component)self).gameObject).name.StartsWith("Lockbox"))
					{
						GameObject val12 = new GameObject("LockboxHoloPivot");
						val12.transform.SetParent(((Component)self).transform, false);
						val12.transform.localPosition = new Vector3(0f, 2f, 0f);
						((Component)self).GetComponent<HologramProjector>().hologramPivot = val12.transform;
					}
				};
				<>c.<>9__5_0 = val7;
				obj = (object)val7;
			}
			ChestBehavior.Awake += (hook_Awake)obj;
			object obj2 = <>c.<>9__5_1;
			if (obj2 == null)
			{
				hook_Awake val8 = delegate(orig_Awake orig, OptionChestBehavior self)
				{
					//IL_0028: Unknown result type (might be due to invalid IL or missing references)
					//IL_002e: Expected O, but got Unknown
					//IL_0056: Unknown result type (might be due to invalid IL or missing references)
					orig.Invoke(self);
					if (((Object)((Component)self).gameObject).name.StartsWith("LockboxVoid"))
					{
						GameObject val11 = new GameObject("LockboxVoidHoloPivot");
						val11.transform.SetParent(((Component)self).transform, false);
						val11.transform.localPosition = new Vector3(0f, 2f, 0f);
						((Component)self).GetComponent<HologramProjector>().hologramPivot = val11.transform;
					}
				};
				<>c.<>9__5_1 = val8;
				obj2 = (object)val8;
			}
			OptionChestBehavior.Awake += (hook_Awake)obj2;
			object obj3 = <>c.<>9__5_2;
			if (obj3 == null)
			{
				hook_Awake val9 = delegate(orig_Awake orig, VendingMachineBehavior self)
				{
					//IL_0028: Unknown result type (might be due to invalid IL or missing references)
					//IL_002e: Expected O, but got Unknown
					//IL_0056: Unknown result type (might be due to invalid IL or missing references)
					orig.Invoke(self);
					if (((Object)((Component)self).gameObject).name.StartsWith("VendingMachine"))
					{
						GameObject val10 = new GameObject("VendingMachineHoloPivot");
						val10.transform.SetParent(((Component)self).transform, false);
						val10.transform.localPosition = new Vector3(0f, 4.3f, 0f);
						((Component)self).GetComponent<HologramProjector>().hologramPivot = val10.transform;
					}
				};
				<>c.<>9__5_2 = val9;
				obj3 = (object)val9;
			}
			VendingMachineBehavior.Awake += (hook_Awake)obj3;
		}

		public static void LunarSeerStuff()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Expected O, but got Unknown
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			object obj = <>c.<>9__6_0;
			if (obj == null)
			{
				hook_OnStartClient val = delegate(orig_OnStartClient orig, SeerStationController self)
				{
					orig.Invoke(self);
					if (self.NetworktargetSceneDefIndex != -1)
					{
						string string2 = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
						string2 = string2.Replace("Hidden Realm: ", "");
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + string2;
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + string2 + ")";
					}
				};
				<>c.<>9__6_0 = val;
				obj = (object)val;
			}
			SeerStationController.OnStartClient += (hook_OnStartClient)obj;
			object obj2 = <>c.<>9__6_1;
			if (obj2 == null)
			{
				hook_OnTargetSceneChanged val2 = delegate(orig_OnTargetSceneChanged orig, SeerStationController self, SceneDef sceneDef)
				{
					orig.Invoke(self, sceneDef);
					if ((Object)(object)sceneDef != (Object)null)
					{
						string @string = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
						@string = @string.Replace("Hidden Realm: ", "");
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + @string;
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + @string + ")";
					}
				};
				<>c.<>9__6_1 = val2;
				obj2 = (object)val2;
			}
			SeerStationController.OnTargetSceneChanged += (hook_OnTargetSceneChanged)obj2;
			object obj3 = <>c.<>9__6_2;
			if (obj3 == null)
			{
				hook_SetRunNextStageToTarget val3 = delegate(orig_SetRunNextStageToTarget orig, SeerStationController self)
				{
					//IL_007c: Unknown result type (might be due to invalid IL or missing references)
					//IL_009c: Unknown result type (might be due to invalid IL or missing references)
					//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
					//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
					//IL_0213: Unknown result type (might be due to invalid IL or missing references)
					//IL_0223: Unknown result type (might be due to invalid IL or missing references)
					//IL_0228: Unknown result type (might be due to invalid IL or missing references)
					//IL_023a: Unknown result type (might be due to invalid IL or missing references)
					//IL_023f: Unknown result type (might be due to invalid IL or missing references)
					//IL_027f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0284: Unknown result type (might be due to invalid IL or missing references)
					//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
					//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
					//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
					//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
					//IL_0251: Unknown result type (might be due to invalid IL or missing references)
					//IL_0256: Unknown result type (might be due to invalid IL or missing references)
					//IL_0268: Unknown result type (might be due to invalid IL or missing references)
					//IL_026d: Unknown result type (might be due to invalid IL or missing references)
					bool flag = false;
					if (Object.op_Implicit((Object)(object)SceneInfo.instance) && SceneInfo.instance.sceneDef.baseSceneName == "bazaar")
					{
						flag = true;
						GameObject val4 = GameObject.Find("/PortalShop");
						SceneDef sceneDef2 = SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex);
						if (Object.op_Implicit((Object)(object)sceneDef2) && Object.op_Implicit((Object)(object)val4))
						{
							val4.transform.localScale = new Vector3(0.7f, 1.26f, 0.7f);
							val4.transform.position = new Vector3(12.88f, -5.53f, -7.34f);
							GameObject val5 = null;
							GenericObjectiveProvider val6 = null;
							GameObject val7 = null;
							switch (sceneDef2.baseSceneName)
							{
							case "goldshores":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalGoldshores/PortalGoldshores.prefab").WaitForCompletion();
								break;
							case "mysteryspace":
							case "limbo":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalMS/PortalMS.prefab").WaitForCompletion();
								break;
							case "artifactworld":
								val4.transform.localPosition = new Vector3(12.88f, 0f, -7.34f);
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalArtifactworld/PortalArtifactworld.prefab").WaitForCompletion();
								break;
							case "arena":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalArena/PortalArena.prefab").WaitForCompletion();
								break;
							case "voidstage":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/PortalVoid/PortalVoid.prefab").WaitForCompletion();
								break;
							case "voidraid":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/DeepVoidPortal/DeepVoidPortal.prefab").WaitForCompletion();
								break;
							default:
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/PortalShop/PortalShop.prefab").WaitForCompletion();
								break;
							}
							if ((Object)(object)val5 != (Object)null)
							{
								val6 = val5.GetComponent<GenericObjectiveProvider>();
								val7 = Object.Instantiate<GameObject>(val5, val4.transform.position, val4.transform.rotation);
								NetworkServer.Spawn(val7);
								val7.GetComponent<SceneExitController>().destinationScene = sceneDef2;
								val7.GetComponent<SceneExitController>().useRunNextStageScene = false;
								((Object)val7).name = ((Object)val4).name;
								Object.Destroy((Object)(object)val4);
							}
						}
					}
					orig.Invoke(self);
					if (flag)
					{
						SeerStationController[] array = Object.FindObjectsOfType(typeof(SeerStationController)) as SeerStationController[];
						for (int i = 0; i < array.Length; i++)
						{
							((Component)array[i]).gameObject.GetComponent<PurchaseInteraction>().SetAvailable(false);
						}
					}
				};
				<>c.<>9__6_2 = val3;
				obj3 = (object)val3;
			}
			SeerStationController.SetRunNextStageToTarget += (hook_SetRunNextStageToTarget)obj3;
		}

		public static void FlowersForOtherHoldoutZones()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: 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_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_024a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Expected O, but got Unknown
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f2: Expected O, but got Unknown
			HoldoutZoneController component = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/teleporters/Teleporter1").GetComponent<HoldoutZoneController>();
			LeptonDaisyTeleporterDecoration = component.healingNovaItemEffect;
			GlowFlowerForPillar = PrefabAPI.InstantiateClone(LeptonDaisyTeleporterDecoration, "GlowFlowerForPillar", false);
			GlowFlowerForPillar.transform.localScale = new Vector3(0.6f, 0.6f, 0.55f);
			GlowFlowerForPillar.transform.localPosition = new Vector3(0f, 0f, 1f);
			GlowFlowerForPillar.transform.localRotation = new Quaternion(0.5373f, 0.8434f, 0f, 0f);
			GlowFlowerForPillar.transform.GetChild(0).localPosition = new Vector3(-0.9f, -2.9f, 4.35f);
			GlowFlowerForPillar.transform.GetChild(0).localRotation = new Quaternion(-0.4991f, 0.0297f, 0.2375f, -0.8328f);
			GlowFlowerForPillar.transform.GetChild(0).localScale = new Vector3(0.4f, 0.4f, 0.4f);
			GlowFlowerForPillar.transform.GetChild(1).localPosition = new Vector3(0.9f, 2.9f, 4.3f);
			GlowFlowerForPillar.transform.GetChild(1).localRotation = new Quaternion(0.5f, 0f, 0f, -0.866f);
			GlowFlowerForPillar.transform.GetChild(1).localScale = new Vector3(0.55f, 0.55f, 0.55f);
			GlowFlowerForPillar.transform.GetChild(2).localPosition = new Vector3(-2.7f, 1.3f, 4.4f);
			GlowFlowerForPillar.transform.GetChild(2).localRotation = new Quaternion(-0.1504f, -0.4924f, -0.0868f, 0.8529f);
			GlowFlowerForPillar.transform.GetChild(2).localScale = new Vector3(0.45f, 0.45f, 0.45f);
			GlowFlowerForPillar.transform.GetChild(3).localPosition = new Vector3(2.8f, -1f, 4.3f);
			GlowFlowerForPillar.transform.GetChild(3).localRotation = new Quaternion(0.1504f, 0.4924f, -0.0868f, 0.8529f);
			GlowFlowerForPillar.transform.GetChild(3).localScale = new Vector3(0.5f, 0.5f, 0.5f);
			object obj = <>c.<>9__7_0;
			if (obj == null)
			{
				hook_Awake val = delegate(orig_Awake orig, HoldoutZoneController self)
				{
					//IL_02c2: 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_00c3: 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_0197: Unknown result type (might be due to invalid IL or missing references)
					//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
					//IL_01e1: 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_028a: Unknown result type (might be due to invalid IL or missing references)
					//IL_02af: Unknown result type (might be due to invalid IL or missing references)
					orig.Invoke(self);
					if (self.applyHealingNova)
					{
						if (!Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
						{
							if (((Object)self).name.StartsWith("InfiniteTowerSafeWardAwaitingInteraction(Clone)"))
							{
								self.healingNovaItemEffect = Object.Instantiate<GameObject>(LeptonDaisyTeleporterDecoration, ((Component)self).transform.GetChild(0).GetChild(0).GetChild(7)
									.GetChild(0)
									.GetChild(1)
									.GetChild(0));
								self.healingNovaItemEffect.transform.rotation = new Quaternion(0f, -0.7071f, -0.7071f, 0f);
								self.healingNovaItemEffect.transform.localScale = new Vector3(0.1928f, 0.1928f, 0.1928f);
								self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.4193f, 0f);
							}
							else if (((Object)self).name.StartsWith("MoonBattery"))
							{
								self.healingNovaItemEffect = Object.Instantiate<GameObject>(GlowFlowerForPillar, ((Component)self).transform.GetChild(0).GetChild(0).GetChild(0)
									.GetChild(0)
									.GetChild(1));
							}
							else if (((Object)self).name.StartsWith("NullSafeZone"))
							{
								self.healingNovaItemEffect = Object.Instantiate<GameObject>(LeptonDaisyTeleporterDecoration, ((Component)self).transform);
								self.healingNovaItemEffect.transform.rotation = new Quaternion(-0.5649f, -0.4254f, -0.4254f, 0.5649f);
								self.healingNovaItemEffect.transform.localScale = new Vector3(0.275f, 0.275f, 0.225f);
								self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.3f, 0f);
							}
							else if (((Object)self).name.StartsWith("DeepVoidPortalBattery(Clone)"))
							{
								self.healingNovaItemEffect = (self.healingNovaItemEffect = Object.Instantiate<GameObject>(GlowFlowerForPillar, ((Component)self).transform.GetChild(0).GetChild(2).GetChild(2)
									.GetChild(0)
									.GetChild(0)));
								self.healingNovaItemEffect.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
								self.healingNovaItemEffect.transform.localScale = new Vector3(0.375f, 0.375f, 0.375f);
								self.healingNovaItemEffect.transform.localPosition = new Vector3(0f, -0.4f, 0f);
							}
						}
						if (Util.GetItemCountForTeam((TeamIndex)1, Items.TPHealingNova.itemIndex, false, true) > 0 && Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
						{
							self.healingNovaItemEffect.SetActive(true);
							self.healingNovaItemEffect = null;
						}
					}
				};
				<>c.<>9__7_0 = val;
				obj = (object)val;
			}
			HoldoutZoneController.Awake += (hook_Awake)obj;
			object obj2 = <>c.<>9__7_1;
			if (obj2 == null)
			{
				hook_Start val2 = delegate(orig_Start orig, HoldoutZoneController self)
				{
					//IL_001a: Unknown result type (might be due to invalid IL or missing references)
					orig.Invoke(self);
					if (self.applyHealingNova)
					{
						if (Util.GetItemCountForTeam((TeamIndex)1, Items.TPHealingNova.itemIndex, false, true) > 0)
						{
							if (Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
							{
								self.healingNovaItemEffect.SetActive(true);
								self.healingNovaItemEffect = null;
							}
						}
						else if (Object.op_Implicit((Object)(object)self.healingNovaItemEffect))
						{
							self.healingNovaItemEffect.SetActive(false);
						}
					}
				};
				<>c.<>9__7_1 = val2;
				obj2 = (object)val2;
			}
			HoldoutZoneController.Start += (hook_Start)obj2;
		}

		public static void MULTEquipmentThing(orig_OnEnter orig, ToolbotStanceA self)
		{
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Invalid comparison between Unknown and I4
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Invalid comparison between Unknown and I4
			//IL_0092: 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_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			if (NetworkServer.active)
			{
				Inventory inventory = ((Component)((EntityState)self).outer).gameObject.GetComponent<CharacterBody>().inventory;
				if (inventory.GetEquipmentSlotCount() < 2)
				{
					SkillLocator component = ((Component)((EntityState)self).outer).gameObject.GetComponent<SkillLocator>();
					if (Object.op_Implicit((Object)(object)component) && (Object)(object)component.special.skillDef == (Object)(object)component.special.defaultSkillDef && Object.op_Implicit((Object)(object)inventory))
					{
						if ((int)inventory.currentEquipmentIndex == -1)
						{
							inventory.SetEquipment(new EquipmentState((EquipmentIndex)(-1), FixedTimeStamp.negativeInfinity, (byte)0), 0u);
						}
						if ((int)inventory.alternateEquipmentIndex == -1)
						{
							inventory.SetEquipment(new EquipmentState((EquipmentIndex)(-1), FixedTimeStamp.negativeInfinity, (byte)0), 1u);
						}
						Debug.Log((object)"MulT equipment thing");
					}
				}
			}
			orig.Invoke(self);
		}
	}
	public class RandomMiscWithConfig
	{
		public class SendExtraMountainIcon : ChatMessageBase
		{
			public int shrineStacks;

			public GameObject teleporterObject;

			public override string ConstructChatString()
			{
				//IL_0079: Unknown result type (might be due to invalid IL or missing references)
				//IL_009a: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
				//IL_0127: Unknown result type (might be due to invalid IL or missing references)
				TeleporterInteraction component = teleporterObject.GetComponent<TeleporterInteraction>();
				if (Object.op_Implicit((Object)(object)component))
				{
					Debug.Log((object)"Sent ExtraMountainIcon");
					if (shrineStacks == 1)
					{
						GameObject bossShrineIndicator = component.bossShrineIndicator;
						GameObject val = Object.Instantiate<GameObject>(bossShrineIndicator, bossShrineIndicator.transform);
						Object.Destroy((Object)(object)bossShrineIndicator.GetComponent<MeshRenderer>());
						Object.Destroy((Object)(object)bossShrineIndicator.GetComponent<Billboard>());
						bossShrineIndicator.transform.localPosition = new Vector3(0f, 0f, 6f);
						val.transform.localScale = new Vector3(1f, 1f, 1f);
						val.transform.localPosition = new Vector3(0f, 0f, 0f);
						val.SetActive(true);
					}
					if (shrineStacks > 1)
					{
						GameObject gameObject = ((Component)component.bossShrineIndicator.transform.GetChild(0)).gameObject;
						GameObject val2 = Object.Instantiate<GameObject>(gameObject, gameObject.transform.parent);
						val2.transform.localPosition = new Vector3(0f, (float)(shrineStacks - 1), 0f);
					}
				}
				else
				{
					Debug.LogWarning((object)"Sent ExtraMountainIcon without Teleporter Object");
				}
				return null;
			}

			public override void Serialize(NetworkWriter writer)
			{
				((ChatMessageBase)this).Serialize(writer);
				writer.Write(shrineStacks);
				writer.Write(teleporterObject);
			}

			public override void Deserialize(NetworkReader reader)
			{
				((ChatMessageBase)this).Deserialize(reader);
				shrineStacks = reader.ReadInt32();
				teleporterObject = reader.ReadGameObject();
			}
		}

		public class EquipmentDroneNameComponent : MonoBehaviour
		{
			public CharacterBody body;

			private bool changed = false;

			public void Start()
			{
				if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.enigmaArtifactDef))
				{
					Object.Destroy((Object)(object)this);
				}
				body = ((Component)this).GetComponent<CharacterBody>();
			}

			public void FixedUpdate()
			{
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: Invalid comparison between Unknown and I4
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0077: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
				if (changed)
				{
					Object.Destroy((Object)(object)this);
				}
				if (!changed && Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.inventory) && (int)body.inventory.currentEquipmentIndex != -1)
				{
					if (body.inventory.currentEquipmentIndex == Equipment.BossHunterConsumed.equipmentIndex)
					{
						changed = true;
						return;
					}
					body.baseNameToken = Language.GetString("EQUIPMENTDRONE_BODY_NAME") + "\n(" + Language.GetString(EquipmentCatalog.GetEquipmentDef(body.inventory.currentEquipmentIndex).nameToken) + ")";
					Debug.Log((object)body.baseNameToken);
					changed = true;
				}
			}
		}

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

			public static hook_AddShrineStack <>9__2_0;

			public static hook_RebuildPing <>9__2_1;

			public static hook_OnEnable <>9__2_2;

			internal void <Start>b__2_0(orig_AddShrineStack orig, TeleporterInteraction self)
			{
				orig.Invoke(self);
				Chat.SendBroadcastChat((ChatMessageBase)(object)new SendExtraMountainIcon
				{
					teleporterObject = ((Component)self).gameObject,
					shrineStacks = self.shrineBonusStacks
				});
			}

			internal void <Start>b__2_1(orig_RebuildPing orig, PingIndicator self)
			{
				orig.Invoke(self);
				self.fixedTimer *= 2f;
			}

			internal void <Start>b__2_2(orig_OnEnable orig, CrosshairManager self)
			{
				orig.Invoke(self);
				GameObject val = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(2)).gameObject);
				GameObject val2 = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(3)).gameObject);
				CrosshairController component = SprintingCrosshair.GetComponent<CrosshairController>();
				val.transform.SetParent(SprintingCrosshair.transform);
				val2.transform.SetParent(SprintingCrosshair.transform);
				component.spriteSpreadPositions[0].target = val2.GetComponent<RectTransform>();
				component.spriteSpreadPositions[1].target = val.GetComponent<RectTransform>();
			}
		}

		public static GameObject SprintingCrosshair = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/SprintingCrosshair.prefab").WaitForCompletion();

		public static GameObject LoaderCrosshair = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Loader/LoaderCrosshair.prefab").WaitForCompletion();

		public static void Start()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: 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_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: 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)
			//IL_0102: Expected O, but got Unknown
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Expected O, but got Unknown
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Expected O, but got Unknown
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0158: Expected O, but got Unknown
			if (WConfig.cfgVoidAllyCyanEyes.Value)
			{
				Material val = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Nullifier/matNullifierAlly.mat").WaitForCompletion();
				val.SetColor("_EmColor", new Color(0f, 3f, 4f, 1f));
				val = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/VoidJailer/matVoidJailerEyesAlly.mat").WaitForCompletion();
				val.SetColor("_EmColor", new Color(0f, 1f, 1.33f, 1f));
				val = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/VoidMegaCrab/matVoidMegaCrabAlly.mat").WaitForCompletion();
				val.SetColor("_EmColor", new Color(0f, 1.5f, 2.5f, 1f));
			}
			if (WConfig.cfgMountainStacks.Value)
			{
				object obj = <>c.<>9__2_0;
				if (obj == null)
				{
					hook_AddShrineStack val2 = delegate(orig_AddShrineStack orig, TeleporterInteraction self)
					{
						orig.Invoke(self);
						Chat.SendBroadcastChat((ChatMessageBase)(object)new SendExtraMountainIcon
						{
							teleporterObject = ((Component)self).gameObject,
							shrineStacks = self.shrineBonusStacks
						});
					};
					<>c.<>9__2_0 = val2;
					obj = (object)val2;
				}
				TeleporterInteraction.AddShrineStack += (hook_AddShrineStack)obj;
			}
			ChatBox.Awake += new hook_Awake(AllowMoreChatMessages);
			object obj2 = <>c.<>9__2_1;
			if (obj2 == null)
			{
				hook_RebuildPing val3 = delegate(orig_RebuildPing orig, PingIndicator self)
				{
					orig.Invoke(self);
					self.fixedTimer *= 2f;
				};
				<>c.<>9__2_1 = val3;
				obj2 = (object)val3;
			}
			PingIndicator.RebuildPing += (hook_RebuildPing)obj2;
			if (WConfig.cfgNewSprintCrosshair.Value)
			{
				object obj3 = <>c.<>9__2_2;
				if (obj3 == null)
				{
					hook_OnEnable val4 = delegate(orig_OnEnable orig, CrosshairManager self)
					{
						orig.Invoke(self);
						GameObject val6 = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(2)).gameObject);
						GameObject val7 = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(3)).gameObject);
						CrosshairController component = SprintingCrosshair.GetComponent<CrosshairController>();
						val6.transform.SetParent(SprintingCrosshair.transform);
						val7.transform.SetParent(SprintingCrosshair.transform);
						component.spriteSpreadPositions[0].target = val7.GetComponent<RectTransform>();
						component.spriteSpreadPositions[1].target = val6.GetComponent<RectTransform>();
					};
					<>c.<>9__2_2 = val4;
					obj3 = (object)val4;
				}
				CrosshairManager.OnEnable += (hook_OnEnable)obj3;
			}
			if (WConfig.cfgEquipmentDroneName.Value)
			{
				GameObject val5 = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/EquipmentDroneBody");
				val5.AddComponent<EquipmentDroneNameComponent>();
			}
		}

		public static void SprintUICallLate()
		{
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			CrosshairController component = SprintingCrosshair.GetComponent<CrosshairController>();
			SprintingCrosshair.GetComponent<RawImage>().texture = LoaderCrosshair.GetComponent<RawImage>().texture;
			component.maxSpreadAngle = 11f;
			component.spriteSpreadPositions = (SpritePosition[])(object)new SpritePosition[2]
			{
				new SpritePosition
				{
					onePosition = new Vector3(96f, 0f, 0f),
					target = null,
					zeroPosition = new Vector3(24f, 0f, 0f)
				},
				new SpritePosition
				{
					onePosition = new Vector3(-96f, 0f, 0f),
					target = null,
					zeroPosition = new Vector3(-24f, 0f, 0f)
				}
			};
		}

		private static void AllowMoreChatMessages(orig_Awake orig, ChatBox self)
		{
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: 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)
			orig.Invoke(self);
			if (!((Object)self).name.StartsWith("ChatBox, In Run"))
			{
				return;
			}
			bool flag = Object.op_Implicit((Object)(object)((Component)self).transform.parent.parent.parent.parent.Find("DPSMeterPanel"));
			RectTransform component = ((Component)self).gameObject.GetComponent<RectTransform>();
			if (Object.op_Implicit((Object)(object)component))
			{
				((Component)component).GetComponent<ChatBox>().allowExpandedChatbox = true;
				RectTransform component2 = ((Component)((Transform)component).GetChild(0).GetChild(0)).GetComponent<RectTransform>();
				component2.offsetMax = new Vector2(48f, 48f);
				component2.offsetMin = new Vector2(-8f, 0f);
				RectTransform component3 = ((Component)((Transform)component).GetChild(1)).GetComponent<RectTransform>();
				component3.anchorMax = new Vector2(1f, 1f);
				component3.offsetMax = new Vector2(120f, 0f);
				component3.offsetMin = new Vector2(-10f, 49f);
				RectTransform component4 = ((Component)((Transform)component).GetChild(2)).GetComponent<RectTransform>();
				if (flag)
				{
					component4.offsetMax = new Vector2(120f, 0f);
					component4.offsetMin = new Vector2(-10f, 49f);
				}
				else
				{
					component4.offsetMax = new Vector2(120f, -6f);
					component4.offsetMin = new Vector2(-10f, 0f);
				}
			}
		}

		public static void LogbookEntryAdder(orig_BuildStaticData orig)
		{
			//IL_0257: Unknown result type (might be due to invalid IL or missing references)
			//IL_025d: Invalid comparison between Unknown and I4
			//IL_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_029e: Invalid comparison between Unknown and I4
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_023f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ba: 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)
			if (WConfig.MoreLogEntries.Value)
			{
				UnlockableDef logUnlockableDef = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GupBody").GetComponent<DeathRewards>().logUnlockableDef;
				UnlockableDef logUnlockableDef2 = LegacyResourcesAPI.Load<UnlockableDef>("unlockabledefs/Items.BounceNearby");
				UnlockableDef logUnlockableDef3 = LegacyResourcesAPI.Load<UnlockableDef>("UnlockableDefs/Logs.Stages.bazaar");
				UnlockableDef logUnlockableDef4 = LegacyResourcesAPI.Load<UnlockableDef>("UnlockableDefs/Logs.Stages.limbo");
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ScavLunar3Body").GetComponent<CharacterBody>().baseNameToken = "SCAVLUNAR_BODY_SUBTITLE";
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ScavLunar3Body").GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef4;
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ShopkeeperBody").GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef3;
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/UrchinTurretBody").AddComponent<DeathRewards>().logUnlockableDef = logUnlockableDef2;
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GeepBody").GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef;
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GipBody").GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef;
				LegacyResourcesAPI.Load<EquipmentDef>("equipmentdefs/QuestVolatileBattery").canDrop = true;
			}
			int equipmentCount = EquipmentCatalog.equipmentCount;
			List<EquipmentDef> list = new List<EquipmentDef>();
			if (!Chainloader.PluginInfos.ContainsKey("com.TPDespair.ZetAspects") && WConfig.MoreLogEntriesAspect.Value)
			{
				for (int i = 0; i < equipmentCount; i++)
				{
					EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef((EquipmentIndex)i);
					string name = ((Object)equipmentDef).name;
					if (Object.op_Implicit((Object)(object)equipmentDef.passiveBuffDef) && equipmentDef.passiveBuffDef.isElite && !name.StartsWith("EliteEcho") && !name.StartsWith("EliteSecretSpeed"))
					{
						if (name.StartsWith("ElitePoison") || !name.StartsWith("EliteHaunted"))
						{
						}
						if (WConfig.EnableColorChangeModule.Value)
						{
							equipmentDef.isBoss = true;
							equipmentDef.colorIndex = (ColorIndex)13;
						}
						if (equipmentDef.dropOnDeathChance != 0f)
						{
							equipmentDef.canDrop = true;
							list.Add(equipmentDef);
						}
					}
				}
				LegacyResourcesAPI.Load<EquipmentDef>("equipmentdefs/AffixLunar").isBoss = false;
				LegacyResourcesAPI.Load<EquipmentDef>("equipmentdefs/AffixLunar").isLunar = true;
				LegacyResourcesAPI.Load<EquipmentDef>("equipmentdefs/AffixLunar").colorIndex = (ColorIndex)4;
			}
			for (int j = 0; j < PickupCatalog.entries.Length; j++)
			{
				if ((int)PickupCatalog.entries[j].itemIndex != -1)
				{
					PickupCatalog.entries[j].iconSprite = ItemCatalog.GetItemDef(PickupCatalog.entries[j].itemIndex).pickupIconSprite;
				}
				else if ((int)PickupCatalog.entries[j].equipmentIndex != -1)
				{
					PickupCatalog.entries[j].iconSprite = EquipmentCatalog.GetEquipmentDef(PickupCatalog.entries[j].equipmentIndex).pickupIconSprite;
				}
			}
			orig.Invoke();
			if (WConfig.MoreLogEntries.Value)
			{
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ScavLunar3Body").GetComponent<CharacterBody>().baseNameToken = "SCAVLUNAR3_BODY_NAME";
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ScavLunar3Body").GetComponent<DeathRewards>().logUnlockableDef = SceneCatalog.GetUnlockableLogFromBaseSceneName("limbo");
				LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ShopkeeperBody").GetComponent<DeathRewards>().logUnlockableDef = SceneCatalog.GetUnlockableLogFromBaseSceneName("bazaar");
				LegacyResourcesAPI.Load<EquipmentDef>("equipmentdefs/QuestVolatileBattery").canDrop = false;
			}
			for (int k = 0; k < list.Count; k++)
			{
				list[k].canDrop = false;
			}
			Debug.Log((object)"WolfoQoL: LogbookChanger");
		}
	}
	public class Stupid
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static hook_GetOptionsFromPickupIndex <>9__0_0;

			internal Option[] <Start>b__0_0(orig_GetOptionsFromPickupIndex orig, PickupIndex pickupIndex)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_002f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//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_004b: Unknown result type (might be due to invalid IL or missing references)
				if (pickupIndex == PickupCatalog.FindPickupIndex(Items.AACannon.itemIndex))
				{
					Option[] array = (Option[])(object)new Option[ItemCatalog.itemCount];
					for (int i = 0; i < ItemCatalog.itemCount; i++)
					{
						array[i] = new Option
						{
							available = true,
							pickupIndex = PickupCatalog.FindPickupIndex((ItemIndex)i)
						};
					}
					return array;
				}
				return orig.Invoke(pickupIndex);
			}
		}

		public static void Start()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Expected O, but got Unknown
			object obj = <>c.<>9__0_0;
			if (obj == null)
			{
				hook_GetOptionsFromPickupIndex val = delegate(orig_GetOptionsFromPickupIndex orig, PickupIndex pickupIndex)
				{
					//IL_0001: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					//IL_000c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0069: Unknown result type (might be due to invalid IL or missing references)
					//IL_002f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0040: Unknown result type (might be due to invalid IL or missing references)
					//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_004b: Unknown result type (might be due to invalid IL or missing references)
					if (pickupIndex == PickupCatalog.FindPickupIndex(Items.AACannon.itemIndex))
					{
						Option[] array = (Option[])(object)new Option[ItemCatalog.itemCount];
						for (int i = 0; i < ItemCatalog.itemCount; i++)
						{
							array[i] = new Option
							{
								available = true,
								pickupIndex = PickupCatalog.FindPickupIndex((ItemIndex)i)
							};
						}
						return array;
					}
					return orig.Invoke(pickupIndex);
				};
				<>c.<>9__0_0 = val;
				obj = (object)val;
			}
			PickupPickerController.GetOptionsFromPickupIndex += (hook_GetOptionsFromPickupIndex)obj;
		}

		public static void ModelViewer()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Expected O, but got Unknown
			Texture2D val = new Texture2D(256, 256, (TextureFormat)12, false);
			ImageConversion.LoadImage(val, Resources.autogen_ArchWispBody, true);
			((Texture)val).filterMode = (FilterMode)1;
			((Texture)val).wrapMode = (TextureWrapMode)1;
			Texture2D val2 = new Texture2D(256, 256, (TextureFormat)12, false);
			ImageConversion.LoadImage(val2, Resources.autogen_AncientWispBody, true);
			((Texture)val2).filterMode = (FilterMode)1;
			((Texture)val2).wrapMode = (TextureWrapMode)1;
			Texture2D val3 = new Texture2D(256, 256, (TextureFormat)12, false);
			ImageConversion.LoadImage(val3, Resources.autogen_HANDBody, true);
			((Texture)val3).filterMode = (FilterMode)1;
			((Texture)val3).wrapMode = (TextureWrapMode)1;
			Texture2D val4 = new Texture2D(256, 256, (TextureFormat)12, false);
			ImageConversion.LoadImage(val4, Resources.autogen_texBodyOldBanditIcon, true);
			((Texture)val4).filterMode = (FilterMode)1;
			((Texture)val4).wrapMode = (TextureWrapMode)1;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ArchWispBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)val;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/AncientWispBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)val2;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/HANDBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)val3;
			LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BanditBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)val4;
			UnlockableDef logUnlockableDef = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BeetleBody").GetComponent<DeathRewards>().logUnlockableDef;
			for (int i = 0; i < BodyCatalog.bodyCount; i++)
			{
				DeathRewards component = BodyCatalog.bodyPrefabs[i].GetComponent<DeathRewards>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.logUnlockableDef = logUnlockableDef;
				}
				else
				{
					BodyCatalog.bodyPrefabs[i].AddComponent<DeathRewards>().logUnlockableDef = logUnlockableDef;
				}
			}
		}
	}
	public class v
	{
		public static Rect recnothing = new Rect(0f, 0f, 0f, 0f);

		public static Rect recwide = new Rect(0f, 0f, 384f, 256f);

		public static Rect rechalftall = new Rect(0f, 0f, 256f, 320f);

		public static Rect rechalfwide = new Rect(0f, 0f, 320f, 256f);

		public static Rect rectall = new Rect(0f, 0f, 256f, 384f);

		public static Rect rec512 = new Rect(0f, 0f, 512f, 512f);

		public static Rect rec320 = new Rect(0f, 0f, 320f, 320f);

		public static Rect rec256 = new Rect(0f, 0f, 256f, 256f);

		public static Rect rec192 = new Rect(0f, 0f, 192f, 192f);

		public static Rect rec128 = new Rect(0f, 0f, 128f, 128f);

		public static Rect rec106 = new Rect(0f, 0f, 106f, 106f);

		public static Rect rec64 = new Rect(0f, 0f, 64f, 64f);

		public static Vector2 half = new Vector2(0.5f, 0.5f);

		public static Texture2D dummytex192 = new Texture2D(192, 192, (TextureFormat)12, false);

		public static Texture2D dummytex256 = new Texture2D(256, 256, (TextureFormat)12, false);

		public static Texture2D dummytexwide = new Texture2D(384, 256, (TextureFormat)12, false);

		public static Texture2D dummytex320 = new Texture2D(320, 320, (TextureFormat)12, false);

		public static Texture2D dummytex512 = new Texture2D(512, 512, (TextureFormat)12, false);

		public static Texture2D dummytexhalftall = new Texture2D(256, 320, (TextureFormat)12, false);
	}
	public class AcridBlight
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static hook_OnEnable <>9__25_0;

			public static Func<Instruction, bool> <>9__26_1;

			public static Func<GameObject, LightningOrb, GameObject> <>9__26_0;

			public static hook_BeginMeleeAttackEffect <>9__28_0;

			public static hook_OnEnter <>9__28_1;

			public static hook_BeginMeleeAttackEffect <>9__28_2;

			public static hook_DoImpactAuthority <>9__28_3;

			public static hook_OnEnter <>9__28_4;

			public static Func<Instruction, bool> <>9__29_1;

			public static Func<GameObject, BaseLeap, GameObject> <>9__29_0;

			internal void <Start>b__25_0(orig_OnEnable orig, CharacterSelectSurvivorPreviewDisplayController self)
			{
				//IL_010f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0114: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c3: 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)
				orig.Invoke(self);
				if (((Object)self).name.StartsWith("CrocoDisplay(Clone)") && WConfig.cfgSkinAcridBlight.Value)
				{
					if (((Component)self).transform.GetChild(0).childCount == 4)
					{
						GameObject gameObject = ((Component)((Component)self).transform.GetChild(0).GetChild(3)).gameObject;
						GameObject val = Object.Instantiate<GameObject>(gameObject, ((Component)self).transform.GetChild(0));
						((Component)val.transform.GetChild(0).GetChild(0)).GetComponent<Decal>().Material = matCrocoGooDecalBlight;
						((Renderer)((Component)val.transform.GetChild(0).GetChild(1)).GetComponent<ParticleSystemRenderer>()).material = matCrocoDiseaseSporeBlight;
						((Renderer)((Component)val.transform.GetChild(0).GetChild(2)).GetComponent<ParticleSystemRenderer>()).material = matCrocoDiseaseDrippingsBlight;
						((Component)val.transform.GetChild(0).GetChild(3)).GetComponent<Light>().color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)200, (byte)150, byte.MaxValue));
						((Renderer)((Component)val.transform.GetChild(1).GetChild(3).GetChild(0)).GetComponent<ParticleSystemRenderer>()).material = matCrocoGooSmallBlightD;
						((Renderer)((Component)val.transform.GetChild(1).GetChild(3).GetChild(1)).GetComponent<ParticleSystemRenderer>()).material = matCrocoGooLargeBlight;
						((Renderer)((Component)val.transform.GetChild(1).GetChild(3).GetChild(2)).GetComponent<ParticleSystemRenderer>()).material = matCrocoDiseaseSporeBlight;
						((Component)val.transform.GetChild(1).GetChild(3).GetChild(3)).GetComponent<Light>().color = Color32.op_Implicit(new Color32((byte)100, (byte)75, (byte)50, byte.MaxValue));
					}
					((Component)((Component)self).transform.GetChild(0).GetChild(3).GetChild(1)).gameObject.SetActive(true);
					((Component)((Component)self).transform.GetChild(0).GetChild(4).GetChild(1)).gameObject.SetActive(true);
					((Object)((Component)self).transform.GetChild(0).GetChild(4)).name = "SpawnActive";
				}
			}

			internal bool <BlightedOrbEffect>b__26_1(Instruction x)
			{
				return ILPatternMatchingExt.MatchCall(x, "RoR2.LegacyResourcesAPI", "Load");
			}

			internal GameObject <BlightedOrbEffect>b__26_0(GameObject target, LightningOrb orb)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_000c: Invalid comparison between Unknown and I4
				if ((int)orb.damageType == 1048576)
				{
					return CrocoDiseaseOrbEffectBlight;
				}
				return target;
			}

			internal void <CrocoBlightChanger>b__28_0(orig_BeginMeleeAttackEffect orig, Slash self)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)self).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576)
				{
					if (self.isComboFinisher)
					{
						((BasicMeleeAttack)self).swingEffectPrefab = CrocoComboFinisherSlashBlight;
					}
					else
					{
						((BasicMeleeAttack)self).swingEffectPrefab = CrocoSlashBlight;
					}
				}
				orig.Invoke(self);
			}

			internal void <CrocoBlightChanger>b__28_1(orig_OnEnter orig, FireSpit self)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)self).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576)
				{
					if (((Object)self.projectilePrefab).name.StartsWith("CrocoSpit"))
					{
						self.projectilePrefab = CrocoSpitBlight;
					}
					else if (((Object)self.projectilePrefab).name.StartsWith("CrocoDiseaseProjectile"))
					{
						self.projectilePrefab = CrocoDiseaseProjectileBlight;
					}
					self.effectPrefab = MuzzleflashCrocoBlight;
				}
				orig.Invoke(self);
			}

			internal void <CrocoBlightChanger>b__28_2(orig_BeginMeleeAttackEffect orig, Bite self)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)self).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576)
				{
					((BasicMeleeAttack)self).swingEffectPrefab = CrocoBiteEffectBlight;
				}
				orig.Invoke(self);
			}

			internal void <CrocoBlightChanger>b__28_3(orig_DoImpactAuthority orig, Leap self)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)self).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576)
				{
					((BaseLeap)self).blastEffectPrefab = CrocoLeapExplosionBlight;
				}
				orig.Invoke(self);
			}

			internal void <CrocoBlightChanger>b__28_4(orig_OnEnter orig, BaseLeap self)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)self).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576 && ((Object)self.fistEffectPrefab).name.StartsWith("CrocoFistEffect"))
				{
					self.fistEffectPrefab = CrocoFistEffectBlight;
				}
				orig.Invoke(self);
			}

			internal bool <BaseLeap_DropAcidPoolAuthority>b__29_1(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdsfld(x, "EntityStates.Croco.BaseLeap", "projectilePrefab");
			}

			internal GameObject <BaseLeap_DropAcidPoolAuthority>b__29_0(GameObject target, BaseLeap entityState)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				if ((int)((Component)((EntityState)entityState).outer).GetComponent<CrocoDamageTypeController>().GetDamageType() == 1048576)
				{
					return CrocoLeapAcidBlight;
				}
				return target;
			}
		}

		public static Material matCrocoGooSmallBlightD;

		public static Material matCrocoGooLargeBlight;

		public static Material matCrocoGooSmallBlight;

		public static Material matCrocoDiseaseSporeBlight;

		public static Material matCrocoDiseaseDrippingsBlight;

		public static Material matCrocoDiseaseTrailBlight;

		public static Material matCrocoDiseaseTrailLesserBlight;

		public static Material matCrocoDiseaseTrailOrangeBlight;

		public static Material matCrocoBiteDiseasedBlight;

		public static Material matCrocoDiseaseHeadBlight;

		public static Material matCrocoGooDecalBlight;

		public static GameObject CrocoBiteEffectBlight = null;

		public static GameObject CrocoSlashBlight = null;

		public static GameObject CrocoComboFinisherSlashBlight = null;

		public static GameObject CrocoDiseaseProjectileBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/projectiles/CrocoDiseaseProjectile"), "CrocoDiseaseProjectileBlight", true);

		public static GameObject CrocoSpitBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/projectiles/CrocoSpit"), "CrocoSpitBlight", true);

		public static GameObject CrocoDiseaseOrbEffectBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/effects/orbeffects/CrocoDiseaseOrbEffect"), "CrocoDiseaseOrbEffectBlight", false);

		public static GameObject CrocoDiseaseGhostBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/projectileghosts/CrocoDiseaseGhost"), "CrocoDiseaseProjectileGhostBlight", false);

		public static GameObject CrocoSpitGhostBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/projectileghosts/CrocoSpitGhost"), "CrocoSpitGhostBlight", false);

		public static GameObject CrocoDiseaseImpactEffectBlight = null;

		public static GameObject MuzzleflashCrocoBlight = null;

		public static GameObject CrocoLeapExplosionBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/effects/impacteffects/CrocoLeapExplosion"), "CrocoLeapExplosionBlight", false);

		public static GameObject CrocoFistEffectBlight = null;

		public static GameObject CrocoLeapAcidBlight = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/projectiles/CrocoLeapAcid"), "CrocoLeapAcidBlight", true);

		public static bool BlightedOrb = false;

		public static void Start()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: 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_008e: 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_00b0: 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_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Expected O, but got Unknown
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Expected O, but got Unknown
			CrocoFistEffectBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoFistEffect.prefab").WaitForCompletion(), "CrocoFistEffectBlight", false);
			CrocoBiteEffectBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoBiteEffect.prefab").WaitForCompletion(), "CrocoBiteEffectBlight", false);
			CrocoSlashBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoSlash.prefab").WaitForCompletion(), "CrocoSlashBlight", false);
			CrocoComboFinisherSlashBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoComboFinisherSlash.prefab").WaitForCompletion(), "CrocoComboFinisherSlashBlight", false);
			CrocoDiseaseImpactEffectBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/CrocoDiseaseImpactEffect.prefab").WaitForCompletion(), "CrocoDiseaseImpactEffectBlight", false);
			MuzzleflashCrocoBlight = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Croco/MuzzleflashCroco.prefab").WaitForCompletion(), "MuzzleflashCrocoBlight", false);
			ContentAddition.AddEffect(MuzzleflashCrocoBlight);
			CrocoBlightChanger();
			CrocoBlightSkin();
			ContentAddition.AddEffect(CrocoDiseaseImpactEffectBlight);
			ContentAddition.AddEffect(CrocoDiseaseOrbEffectBlight);
			ContentAddition.AddEffect(CrocoLeapExplosionBlight);
			object obj = <>c.<>9__25_0;
			if (obj == null)
			{
				hook_OnEnable val = delegate(orig_OnEnable orig, CharacterSelectSurvivorPreviewDisplayController self)
				{
					//IL_010f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0114: Unknown result type (might be due to invalid IL or missing references)
					//IL_01c3: 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)
					orig.Invoke(self);
					if (((Object)self).name.StartsWith("CrocoDisplay(Clone)") && WConfig.cfgSkinAcridBlight.Value)
					{
						if (((Component)self).transform.GetChild(0).childCount == 4)
						{
							GameObject gameObject = ((Component)((Component)self).transform.GetChild(0).GetChild(3)).gameObject;
							GameObject val2 = Object.Instantiate<GameObject>(gameObject, ((Component)self).transform.GetChild(0));
							((Component)val2.transform.GetChild(0).GetChild(0)).GetComponent<Decal>().Material = matCrocoGooDecalBlight;
							((Renderer)((Component)val2.transform.GetChild(0).GetChild(1)).GetComponent<ParticleSystemRenderer>()).material = matCrocoDiseaseSporeBlight;