Decompiled source of WolfoQualityOfLife v3.2.6

WolfoQualityOfLife.dll

Decompiled 2 days 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.IO;
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.MeridianEvent;
using EntityStates.Missions.Arena.NullWard;
using EntityStates.Missions.BrotherEncounter;
using EntityStates.Missions.GeodeSecretMission;
using EntityStates.ScavMonster;
using EntityStates.ShrineHalcyonite;
using EntityStates.Toolbot;
using EntityStates.Treebot.TreebotFlower;
using EntityStates.Treebot.Weapon;
using EntityStates.VoidRaidCrab;
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 Microsoft.CodeAnalysis;
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.Missions.BrotherEncounter;
using On.EntityStates.Missions.GeodeSecretMission;
using On.EntityStates.ScavMonster;
using On.EntityStates.ShrineHalcyonite;
using On.EntityStates.Toolbot;
using On.EntityStates.Treebot.TreebotFlower;
using On.EntityStates.Treebot.Weapon;
using On.EntityStates.VoidRaidCrab;
using On.EntityStates.VoidSurvivor.Weapon;
using On.RoR2;
using On.RoR2.Artifacts;
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 RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
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.Events;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("WolfoQualityOfLife")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+5f87b68d2b94023c05b38e0911627864803c6ac0")]
[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: RefSafetyRules(11)]
[module: UnverifiableCode]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace WolfoQualityOfLife
{
	internal static class Assets
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static hook_SetFolders <0>__SetFolders;
		}

		public static AssetBundle Bundle;

		public static AssetBundle OldDuplicatorBundle;

		public static PluginInfo PluginInfo;

		public static string Folder = "QualityOfLife\\";

		internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location);

		internal static void Init(PluginInfo info)
		{
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			PluginInfo = info;
			if (!Directory.Exists(GetPathToFile("QualityOfLife")))
			{
				Folder = "";
			}
			if (Directory.Exists(GetPathToFile(Folder + "Languages")))
			{
				object obj = <>O.<0>__SetFolders;
				if (obj == null)
				{
					hook_SetFolders val = SetFolders;
					<>O.<0>__SetFolders = val;
					obj = (object)val;
				}
				Language.SetFolders += (hook_SetFolders)obj;
			}
			else
			{
				Debug.LogWarning((object)"COULD NOT FIND LANGUAGES FOLDER");
			}
			if (Directory.Exists(GetPathToFile(Folder + "AssetBundles")))
			{
				Bundle = AssetBundle.LoadFromFile(GetPathToFile(Folder + "AssetBundles", "wolfoqualityoflife"));
				OldDuplicatorBundle = AssetBundle.LoadFromFile(GetPathToFile(Folder + "AssetBundles", "oldduplicatorbundle"));
			}
			else
			{
				Debug.LogWarning((object)"COULD NOT FIND ASSETBUNDLES FOLDER");
			}
		}

		private static void SetFolders(orig_SetFolders orig, Language self, IEnumerable<string> newFolders)
		{
			IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(GetPathToFile(Folder + "Languages")), self.name);
			orig.Invoke(self, newFolders.Union(second));
		}

		internal static string GetPathToFile(string folderName)
		{
			return Path.Combine(assemblyDir, folderName);
		}

		internal static string GetPathToFile(string folderName, string fileName)
		{
			return Path.Combine(assemblyDir, folderName, fileName);
		}
	}
	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 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 DuplicatorModel
	{
		public static GameObject FBXDuplicatorOld = Assets.OldDuplicatorBundle.LoadAsset<GameObject>("Assets/mdlDuplicatorOld/mdlDuplicatorOld.fbx");

		public static GameObject FBXDuplicatorOld2 = Assets.OldDuplicatorBundle.LoadAsset<GameObject>("Assets/mdlDuplicatorOld2/mdlDuplicatorOld2.fbx");

		public static GameObject FBXDuplicatorOldMili = Assets.OldDuplicatorBundle.LoadAsset<GameObject>("Assets/mdlDuplicatorMiliOld/mdlDuplicatorMiliOld.fbx");

		public static GameObject FBXDuplicatorOldWild = Assets.OldDuplicatorBundle.LoadAsset<GameObject>("Assets/mdlDuplicatorWildOld/mdlDuplicatorWildOld.fbx");

		public static RuntimeAnimatorController OldAnimControll = Assets.OldDuplicatorBundle.LoadAsset<RuntimeAnimatorController>("Assets/animationcontroller/animDuplicator.controller");

		public static GameObject Duplicator = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/chest/Duplicator");

		public static GameObject DuplicatorLarge = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/chest/DuplicatorLarge");

		public static GameObject DuplicatorMili = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/chest/DuplicatorMilitary");

		public static GameObject DuplicatorWild = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/chest/DuplicatorWild");

		[Obsolete]
		public static void DuplicatorModelChanger()
		{
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_025a: 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_02e0: 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)
			if (WConfig.OldModelDuplcators.Value)
			{
				((Behaviour)((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).GetComponent<RandomizeSplatBias>()).enabled = false;
				((Component)((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).transform.FindChild("DuplicatorMesh")).GetComponent<SkinnedMeshRenderer>().sharedMesh = ((Component)((Component)FBXDuplicatorOld2.transform.GetChild(0)).transform.GetChild(2)).GetComponent<SkinnedMeshRenderer>().sharedMesh;
				((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).transform.FindChild("PickupDisplay").localPosition = ((Component)FBXDuplicatorOld2.transform.GetChild(0)).transform.GetChild(4).localPosition;
				((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).transform.FindChild("DropPivot").localPosition = ((Component)FBXDuplicatorOld2.transform.GetChild(0)).transform.GetChild(0).localPosition;
				((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).transform.FindChild("HologramPivot").localScale = new Vector3(1.15f, 1.15f, 1.15f);
				((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).transform.FindChild("HologramPivot").localPosition = new Vector3(0f, 0.55f, 1.64f);
				((Component)DuplicatorLarge.transform.FindChild("mdlDuplicator")).GetComponent<Animator>().runtimeAnimatorController = OldAnimControll;
			}
			if (WConfig.OldModelDuplcators.Value)
			{
				((Component)((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).transform.FindChild("DuplicatorMesh")).GetComponent<SkinnedMeshRenderer>().sharedMesh = ((Component)((Component)FBXDuplicatorOldMili.transform.GetChild(0)).transform.GetChild(2)).GetComponent<SkinnedMeshRenderer>().sharedMesh;
				((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).transform.FindChild("PickupDisplay").localPosition = ((Component)FBXDuplicatorOldMili.transform.GetChild(0)).transform.GetChild(4).localPosition;
				((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).transform.FindChild("DropPivot").localPosition = ((Component)FBXDuplicatorOldMili.transform.GetChild(0)).transform.GetChild(0).localPosition;
				((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).transform.FindChild("HologramPivot").localScale = new Vector3(1.15f, 1.15f, 1.15f);
				((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).transform.FindChild("HologramPivot").localPosition = new Vector3(0f, 0.55f, 1.64f);
				((Component)DuplicatorMili.transform.FindChild("mdlDuplicator")).GetComponent<Animator>().runtimeAnimatorController = OldAnimControll;
			}
		}
	}
	public class RandomMisc
	{
		public class InstantiateGameObjectAtLocation : MonoBehaviour
		{
			public GameObject objectToInstantiate;

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

		[CompilerGenerated]
		private static class <>O
		{
			public static Manipulator <0>__BiggerSaleStarRange;

			public static hook_AddShrineStack <1>__ChanceDollUniqueLine;

			public static hook_Awake <2>__AddFlowersToMiscHoldoutZone;
		}

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

			public static hook_TryGrantItem <>9__2_0;

			public static hook_OnEnter <>9__2_1;

			public static hook_FixedUpdate <>9__2_2;

			public static hook_PreStartClient <>9__2_3;

			public static hook_DropPickup <>9__2_4;

			public static hook_OnEnter <>9__2_5;

			public static hook_OnEnter <>9__2_6;

			public static hook_PlayExtraLifeSFX <>9__2_7;

			public static hook_UpdatePickupDisplayAndAnimations <>9__2_8;

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

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

			public static Func<GameObject, InteractionDriver, GameObject> <>9__3_1;

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

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

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

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

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

			public static Func<GameObject, GameObject> <>9__3_7;

			public static hook_Awake <>9__7_0;

			public static hook_Awake <>9__7_1;

			public static hook_Awake <>9__7_2;

			public static hook_OnStartClient <>9__8_0;

			public static hook_OnTargetSceneChanged <>9__8_1;

			public static hook_SetRunNextStageToTarget <>9__8_2;

			public static hook_Start <>9__9_0;

			internal void <Start>b__2_0(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_1(orig_OnEnter orig, ReadyMegaBlaster self)
			{
				orig.Invoke(self);
				((EntityState)self).characterBody.AddSpreadBloom(0.4f);
			}

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

			internal void <Start>b__2_3(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_4(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_5(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_6(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_7(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_8(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 bool <BiggerSaleStarRange>b__3_0(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Items", "LowerPricedChests");
			}

			internal bool <BiggerSaleStarRange>b__3_8(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "currentInteractable");
			}

			internal GameObject <BiggerSaleStarRange>b__3_1(GameObject target, InteractionDriver interactionDriver)
			{
				//IL_0062: 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_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00da: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
				//IL_0083: 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_0089: 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_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a1: 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_00ad: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b8: 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)
				//IL_014b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0150: Unknown result type (might be due to invalid IL or missing references)
				if (interactionDriver.networkIdentity.hasAuthority)
				{
					if (interactionDriver.characterBody.inventory.GetItemCount(Items.LowerPricedChests) > 0)
					{
						if ((Object)(object)target == (Object)null)
						{
							float num = 0f;
							float num2 = interactionDriver.interactor.maxInteractionDistance * 2f;
							Vector3 val = interactionDriver.inputBank.aimOrigin;
							Vector3 val2 = interactionDriver.inputBank.aimDirection;
							if (interactionDriver.useAimOffset)
							{
								Vector3 val3 = val + val2 * num2;
								val = interactionDriver.inputBank.aimOrigin + interactionDriver.aimOffset;
								val2 = (val3 - val) / num2;
							}
							Ray val4 = default(Ray);
							((Ray)(ref val4))..ctor(val, val2);
							Ray val5 = CameraRigController.ModifyAimRayIfApplicable(val4, ((Component)interactionDriver).gameObject, ref num);
							target = interactionDriver.interactor.FindBestInteractableObject(val5, num2 + num, ((Ray)(ref val4)).origin, num2);
						}
						if (Object.op_Implicit((Object)(object)target))
						{
							PurchaseInteraction component = target.GetComponent<PurchaseInteraction>();
							if ((Object)(object)component != (Object)null && component.saleStarCompatible && !Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
							{
								interactionDriver.saleStarEffect = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow"), target.transform.position, Quaternion.identity, target.transform);
								return null;
							}
						}
						else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
						{
							Object.Destroy((Object)(object)interactionDriver.saleStarEffect);
							return null;
						}
					}
					else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
					{
						Object.Destroy((Object)(object)interactionDriver.saleStarEffect);
						return null;
					}
				}
				return null;
			}

			internal bool <BiggerSaleStarRange>b__3_2(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect");
			}

			internal bool <BiggerSaleStarRange>b__3_3(Instruction x)
			{
				return ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy");
			}

			internal bool <BiggerSaleStarRange>b__3_4(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect");
			}

			internal bool <BiggerSaleStarRange>b__3_5(Instruction x)
			{
				return ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy");
			}

			internal bool <BiggerSaleStarRange>b__3_6(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect");
			}

			internal GameObject <BiggerSaleStarRange>b__3_7(GameObject target)
			{
				return null;
			}

			internal void <PriceTransformStuff>b__7_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__7_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__7_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__8_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__8_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__8_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_037d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0382: Unknown result type (might be due to invalid IL or missing references)
				//IL_0315: Unknown result type (might be due to invalid IL or missing references)
				//IL_031a: Unknown result type (might be due to invalid IL or missing references)
				//IL_033f: Unknown result type (might be due to invalid IL or missing references)
				//IL_034f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0354: Unknown result type (might be due to invalid IL or missing references)
				//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0394: Unknown result type (might be due to invalid IL or missing references)
				//IL_0399: Unknown result type (might be due to invalid IL or missing references)
				//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
				//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
				//IL_0300: Unknown result type (might be due to invalid IL or missing references)
				//IL_0366: Unknown result type (might be due to invalid IL or missing references)
				//IL_036b: 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":
						case "artifactworld01":
						case "artifactworld02":
						case "artifactworld03":
							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;
						case "lemuriantemple":
						case "habitat":
						case "habitatfall":
						case "meridian":
							val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/PortalColossus.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__9_0(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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c5: 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_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Expected O, but got Unknown
			//IL_0062: 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_006d: Expected O, but got Unknown
			//IL_02fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0388: Unknown result type (might be due to invalid IL or missing references)
			//IL_038a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_045e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0499: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ce: Expected O, but got Unknown
			//IL_04f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fc: Expected O, but got Unknown
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0531: Unknown result type (might be due to invalid IL or missing references)
			//IL_056a: Unknown result type (might be due to invalid IL or missing references)
			//IL_056f: Unknown result type (might be due to invalid IL or missing references)
			//IL_058d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0592: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0603: Unknown result type (might be due to invalid IL or missing references)
			//IL_0626: Unknown result type (might be due to invalid IL or missing references)
			//IL_0636: Unknown result type (might be due to invalid IL or missing references)
			//IL_063b: Unknown result type (might be due to invalid IL or missing references)
			//IL_064e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0653: Unknown result type (might be due to invalid IL or missing references)
			//IL_0516: Unknown result type (might be due to invalid IL or missing references)
			//IL_051b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0521: Expected O, but got Unknown
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0680: Expected O, but got Unknown
			//IL_069a: Unknown result type (might be due to invalid IL or missing references)
			//IL_069f: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a5: Expected O, but got Unknown
			//IL_06bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Expected O, but got Unknown
			//IL_06fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_071c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0721: Unknown result type (might be due to invalid IL or missing references)
			//IL_073e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0743: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ef: Expected O, but got Unknown
			//IL_076f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0774: Unknown result type (might be due to invalid IL or missing references)
			//IL_077a: Expected O, but got Unknown
			//IL_0794: Unknown result type (might be due to invalid IL or missing references)
			//IL_0799: Unknown result type (might be due to invalid IL or missing references)
			//IL_079f: Expected O, but got Unknown
			RandomMiscWithConfig.Start();
			FlowersForOtherHoldoutZones();
			if (WConfig.cfgLunarSeerName.Value)
			{
				LunarSeerStuff();
			}
			PriceTransformStuff();
			Unused();
			VoidAffix();
			if (!Chainloader.PluginInfos.ContainsKey("0p41.Sots_Items_Reworked"))
			{
				object obj = <>O.<0>__BiggerSaleStarRange;
				if (obj == null)
				{
					Manipulator val = BiggerSaleStarRange;
					<>O.<0>__BiggerSaleStarRange = val;
					obj = (object)val;
				}
				InteractionDriver.MyFixedUpdate += (Manipulator)obj;
			}
			object obj2 = <>O.<1>__ChanceDollUniqueLine;
			if (obj2 == null)
			{
				hook_AddShrineStack val2 = ChanceDollUniqueLine;
				<>O.<1>__ChanceDollUniqueLine = val2;
				obj2 = (object)val2;
			}
			ShrineChanceBehavior.AddShrineStack += (hook_AddShrineStack)obj2;
			GameObject val3 = LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow");
			val3.transform.GetChild(0).localPosition = new Vector3(0f, 0.6f, 0f);
			val3.transform.GetChild(1).localPosition = new Vector3(0f, 0.6f, 0f);
			val3.transform.GetChild(2).localPosition = new Vector3(0f, 0.4f, 0f);
			val3.transform.GetChild(3).localPosition = new Vector3(0f, 0.7f, 0f);
			val3.transform.GetChild(3).localScale = new Vector3(1f, 1.4f, 1f);
			Color colorShrineRewardJackpot = default(Color);
			((Color)(ref colorShrineRewardJackpot))..ctor(0.3f, 1f, 0.1f, 1f);
			LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/shrines/ShrineChance").GetComponent<ShrineChanceBehavior>().colorShrineRewardJackpot = colorShrineRewardJackpot;
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ShrineChance/ShrineChanceSandy Variant.prefab").WaitForCompletion().GetComponent<ShrineChanceBehavior>()
				.colorShrineRewardJackpot = colorShrineRewardJackpot;
			Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ShrineChance/ShrineChanceSnowy Variant.prefab").WaitForCompletion().GetComponent<ShrineChanceBehavior>()
				.colorShrineRewardJackpot = colorShrineRewardJackpot;
			Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/bazaar/matBazaarSeerGolemplains.mat").WaitForCompletion().SetFloat("_Boost", 1.5f);
			Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/bazaar/matBazaarSeerGoolake.mat").WaitForCompletion().SetFloat("_Boost", 1.5f);
			Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/ancientloft/matBazaarSeerAncientloft.mat").WaitForCompletion().SetFloat("_Boost", 2f);
			Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/lemuriantemple/matBazaarSeerLemurianTemple.mat").WaitForCompletion().SetFloat("_Boost", 2.5f);
			Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/habitat/matBazaarSeerHabitat.mat").WaitForCompletion().SetFloat("_Boost", 2.5f);
			Material val4 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/Child/matChild.mat").WaitForCompletion();
			val4.SetFloat("_EliteBrightnessMax", 1.09f);
			val4.SetFloat("_EliteBrightnessMin", -0.7f);
			object obj3 = <>c.<>9__2_0;
			if (obj3 == null)
			{
				hook_TryGrantItem val5 = 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_0 = val5;
				obj3 = (object)val5;
			}
			CaptainDefenseMatrixController.TryGrantItem += (hook_TryGrantItem)obj3;
			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;
			ItemDefInfo val6 = default(ItemDefInfo);
			val6.itemDef = LegacyResourcesAPI.Load<ItemDef>("ItemDefs/LunarTrinket");
			val6.count = 1;
			val6.dontExceedCount = true;
			ItemDefInfo val7 = val6;
			ItemDefInfo[] itemDefInfos = (ItemDefInfo[])(object)new ItemDefInfo[1] { val7 };
			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 val8 = 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 val9 = Object.Instantiate<Material>(((Renderer)((Component)val8.transform.GetChild(0)).GetComponent<MeshRenderer>()).material);
			val9.SetColor("_TintColor", new Color(0f, 0.4f, 0.8f, 1f));
			((Renderer)((Component)val8.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = val9;
			val8.transform.localScale = new Vector3(6.67f, 6.67f, 6.67f);
			GameObject val10 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Shocking.prefab").WaitForCompletion();
			((Component)val10.transform.GetChild(2).GetChild(0)).gameObject.AddComponent<InstantiateGameObjectAtLocation>().objectToInstantiate = val8;
			object obj4 = <>c.<>9__2_1;
			if (obj4 == null)
			{
				hook_OnEnter val11 = delegate(orig_OnEnter orig, ReadyMegaBlaster self)
				{
					orig.Invoke(self);
					((EntityState)self).characterBody.AddSpreadBloom(0.4f);
				};
				<>c.<>9__2_1 = val11;
				obj4 = (object)val11;
			}
			ReadyMegaBlaster.OnEnter += (hook_OnEnter)obj4;
			object obj5 = <>c.<>9__2_2;
			if (obj5 == null)
			{
				hook_FixedUpdate val12 = delegate(orig_FixedUpdate orig, ReadyMegaBlaster self)
				{
					orig.Invoke(self);
					((EntityState)self).characterBody.SetSpreadBloom(0.2f, true);
				};
				<>c.<>9__2_2 = val12;
				obj5 = (object)val12;
			}
			ReadyMegaBlaster.FixedUpdate += (hook_FixedUpdate)obj5;
			GameObject val13 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/sulfurpools/SulfurpoolsDioramaDisplay.prefab").WaitForCompletion();
			MeshRenderer component = ((Component)val13.transform.GetChild(2)).GetComponent<MeshRenderer>();
			Material val14 = Object.Instantiate<Material>(((Renderer)component).material);
			val14.SetTexture("_SnowTex", (Texture)(object)Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC1/sulfurpools/texSPGroundDIFVein.tga").WaitForCompletion());
			((Renderer)component).material = val14;
			ModelPanelParameters component2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/voidstage/VoidStageDiorama.prefab").WaitForCompletion().GetComponent<ModelPanelParameters>();
			component2.minDistance = 20f;
			component2.minDistance = 240f;
			GameObject val15 = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/DamageZoneWard");
			val15.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 obj6 = <>c.<>9__2_3;
			if (obj6 == null)
			{
				hook_PreStartClient val16 = 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_3 = val16;
				obj6 = (object)val16;
			}
			ShopTerminalBehavior.PreStartClient += (hook_PreStartClient)obj6;
			object obj7 = <>c.<>9__2_4;
			if (obj7 == null)
			{
				hook_DropPickup val17 = 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_4 = val17;
				obj7 = (object)val17;
			}
			ShopTerminalBehavior.DropPickup += (hook_DropPickup)obj7;
			object obj8 = <>c.<>9__2_5;
			if (obj8 == null)
			{
				hook_OnEnter val18 = 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_5 = val18;
				obj8 = (object)val18;
			}
			Sit.OnEnter += (hook_OnEnter)obj8;
			object obj9 = <>c.<>9__2_6;
			if (obj9 == null)
			{
				hook_OnEnter val19 = delegate(orig_OnEnter orig, Detonate self)
				{
					orig.Invoke(self);
					Util.PlaySound("Play_item_lunar_specialReplace_apply", ((Component)((EntityState)self).outer).gameObject);
				};
				<>c.<>9__2_6 = val19;
				obj9 = (object)val19;
			}
			Detonate.OnEnter += (hook_OnEnter)obj9;
			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 obj10 = <>c.<>9__2_7;
			if (obj10 == null)
			{
				hook_PlayExtraLifeSFX val20 = 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_7 = val20;
				obj10 = (object)val20;
			}
			CharacterMaster.PlayExtraLifeSFX += (hook_PlayExtraLifeSFX)obj10;
			object obj11 = <>c.<>9__2_8;
			if (obj11 == null)
			{
				hook_UpdatePickupDisplayAndAnimations val21 = 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_8 = val21;
				obj11 = (object)val21;
			}
			ShopTerminalBehavior.UpdatePickupDisplayAndAnimations += (hook_UpdatePickupDisplayAndAnimations)obj11;
		}

		private static void BiggerSaleStarRange(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Items", "LowerPricedChests")
			});
			if (val.TryGotoPrev((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "currentInteractable")
			}))
			{
				val.Emit(OpCodes.Ldarg_0);
				val.EmitDelegate<Func<GameObject, InteractionDriver, GameObject>>((Func<GameObject, InteractionDriver, GameObject>)delegate(GameObject target, InteractionDriver interactionDriver)
				{
					//IL_0062: 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_006f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0074: Unknown result type (might be due to invalid IL or missing references)
					//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
					//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
					//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
					//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
					//IL_00da: Unknown result type (might be due to invalid IL or missing references)
					//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
					//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
					//IL_0083: 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_0089: 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_009b: Unknown result type (might be due to invalid IL or missing references)
					//IL_00a1: 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_00ad: Unknown result type (might be due to invalid IL or missing references)
					//IL_00af: Unknown result type (might be due to invalid IL or missing references)
					//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
					//IL_00b8: 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)
					//IL_014b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0150: Unknown result type (might be due to invalid IL or missing references)
					if (interactionDriver.networkIdentity.hasAuthority)
					{
						if (interactionDriver.characterBody.inventory.GetItemCount(Items.LowerPricedChests) > 0)
						{
							if ((Object)(object)target == (Object)null)
							{
								float num = 0f;
								float num2 = interactionDriver.interactor.maxInteractionDistance * 2f;
								Vector3 val2 = interactionDriver.inputBank.aimOrigin;
								Vector3 val3 = interactionDriver.inputBank.aimDirection;
								if (interactionDriver.useAimOffset)
								{
									Vector3 val4 = val2 + val3 * num2;
									val2 = interactionDriver.inputBank.aimOrigin + interactionDriver.aimOffset;
									val3 = (val4 - val2) / num2;
								}
								Ray val5 = default(Ray);
								((Ray)(ref val5))..ctor(val2, val3);
								Ray val6 = CameraRigController.ModifyAimRayIfApplicable(val5, ((Component)interactionDriver).gameObject, ref num);
								target = interactionDriver.interactor.FindBestInteractableObject(val6, num2 + num, ((Ray)(ref val5)).origin, num2);
							}
							if (Object.op_Implicit((Object)(object)target))
							{
								PurchaseInteraction component = target.GetComponent<PurchaseInteraction>();
								if ((Object)(object)component != (Object)null && component.saleStarCompatible && !Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
								{
									interactionDriver.saleStarEffect = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow"), target.transform.position, Quaternion.identity, target.transform);
									return null;
								}
							}
							else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
							{
								Object.Destroy((Object)(object)interactionDriver.saleStarEffect);
								return null;
							}
						}
						else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect))
						{
							Object.Destroy((Object)(object)interactionDriver.saleStarEffect);
							return null;
						}
					}
					return null;
				});
				val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"),
					(Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy")
				});
				val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"),
					(Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy")
				});
				val.TryGotoPrev((MoveType)2, new Func<Instruction, bool>[1]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect")
				});
				Debug.Log((object)val);
				val.EmitDelegate<Func<GameObject, GameObject>>((Func<GameObject, GameObject>)((GameObject target) => null));
				Debug.Log((object)"IL Found: Sale Star Range");
			}
			else
			{
				Debug.LogWarning((object)"IL Failed: Sale Star Range");
			}
		}

		private static void ChanceDollUniqueLine(orig_AddShrineStack orig, ShrineChanceBehavior self, Interactor activator)
		{
			//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_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			orig.Invoke(self, activator);
			if (self.chanceDollWin)
			{
				Chat.SendBroadcastChat((ChatMessageBase)new SubjectFormatChatMessage
				{
					subjectAsCharacterBody = ((Component)activator).GetComponent<CharacterBody>(),
					baseToken = "SHRINE_CHANCE_SUCCESS_MESSAGE_DOLL"
				});
			}
		}

		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_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: 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]);
			Texture2D val3 = Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/ColorChanger/UniqueAffixVoid.png");
			((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__7_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__7_0 = val7;
				obj = (object)val7;
			}
			ChestBehavior.Awake += (hook_Awake)obj;
			object obj2 = <>c.<>9__7_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__7_1 = val8;
				obj2 = (object)val8;
			}
			OptionChestBehavior.Awake += (hook_Awake)obj2;
			object obj3 = <>c.<>9__7_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__7_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__8_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__8_0 = val;
				obj = (object)val;
			}
			SeerStationController.OnStartClient += (hook_OnStartClient)obj;
			object obj2 = <>c.<>9__8_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__8_1 = val2;
				obj2 = (object)val2;
			}
			SeerStationController.OnTargetSceneChanged += (hook_OnTargetSceneChanged)obj2;
			object obj3 = <>c.<>9__8_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_037d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0382: Unknown result type (might be due to invalid IL or missing references)
					//IL_0315: Unknown result type (might be due to invalid IL or missing references)
					//IL_031a: Unknown result type (might be due to invalid IL or missing references)
					//IL_033f: Unknown result type (might be due to invalid IL or missing references)
					//IL_034f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0354: Unknown result type (might be due to invalid IL or missing references)
					//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
					//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
					//IL_0394: Unknown result type (might be due to invalid IL or missing references)
					//IL_0399: Unknown result type (might be due to invalid IL or missing references)
					//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
					//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
					//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
					//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
					//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
					//IL_0300: Unknown result type (might be due to invalid IL or missing references)
					//IL_0366: Unknown result type (might be due to invalid IL or missing references)
					//IL_036b: 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":
							case "artifactworld01":
							case "artifactworld02":
							case "artifactworld03":
								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;
							case "lemuriantemple":
							case "habitat":
							case "habitatfall":
							case "meridian":
								val5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/PortalColossus.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__8_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_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Expected O, but got Unknown
			//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ee: 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 = <>O.<2>__AddFlowersToMiscHoldoutZone;
			if (obj == null)
			{
				hook_Awake val = AddFlowersToMiscHoldoutZone;
				<>O.<2>__AddFlowersToMiscHoldoutZone = val;
				obj = (object)val;
			}
			HoldoutZoneController.Awake += (hook_Awake)obj;
			object obj2 = <>c.<>9__9_0;
			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__9_0 = val2;
				obj2 = (object)val2;
			}
			HoldoutZoneController.Start += (hook_Start)obj2;
		}

		private static void AddFlowersToMiscHoldoutZone(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("InfiniteTowerSafeWard"))
				{
					self.healingNovaItemEffect = Object.Instantiate<GameObject>(LeptonDaisyTeleporterDecoration, ((Component)self).transform.GetChild(0).GetChild(0).GetChild(8)
						.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;
			}
		}

		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_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Invalid comparison between Unknown and I4
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: 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)
			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, false), 0u);
						}
						if ((int)inventory.alternateEquipmentIndex == -1)
						{
							inventory.SetEquipment(new EquipmentState((EquipmentIndex)(-1), FixedTimeStamp.negativeInfinity, (byte)0, false), 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;

			private bool enigma = false;

			public void Start()
			{
				if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.enigmaArtifactDef))
				{
					Object.Destroy((Object)(object)this);
					enigma = true;
				}
				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_00be: 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;
						body.baseNameToken = "EQUIPMENTDRONE_BODY_NAME";
					}
					else
					{
						body.baseNameToken = Language.GetString("EQUIPMENTDRONE_BODY_NAME") + "\n(" + Language.GetString(EquipmentCatalog.GetEquipmentDef(body.inventory.currentEquipmentIndex).nameToken) + ")";
						Debug.Log((object)body.baseNameToken);
						changed = true;
					}
				}
			}
		}

		[CompilerGenerated]
		private static class <>O
		{
			public static Manipulator <0>__DelayThunderMessage;

			public static Manipulator <1>__TeleporterDiscoveredRed;

			public static hook_Awake <2>__AllowMoreChatMessages;

			public static hook_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType <3>__CharacterMasterNotificationQueue_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType;
		}

		[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;

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

			public static Func<string, string> <>9__3_0;

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

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

			public static Func<Color, ChargeIndicatorController, Color> <>9__7_1;

			internal void <Start>b__2_0(orig_AddShrineStack orig, TeleporterInteraction self)
			{
				orig.Invoke(self);
				Debug.Log((object)"On.RoR2.TeleporterInteraction.AddShrineStack");
				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>();
				if (SprintingCrosshair.transform.childCount > 0)
				{
					Object.Destroy((Object)(object)((Component)SprintingCrosshair.transform.GetChild(1)).gameObject);
					Object.Destroy((Object)(object)((Component)SprintingCrosshair.transform.GetChild(0)).gameObject);
				}
				val.transform.SetParent(SprintingCrosshair.transform);
				val2.transform.SetParent(SprintingCrosshair.transform);
				component.spriteSpreadPositions[0].target = val2.GetComponent<RectTransform>();
				component.spriteSpreadPositions[1].target = val.GetComponent<RectTransform>();
			}

			internal bool <DelayThunderMessage>b__3_1(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.PortalSpawner", "spawnPreviewMessageToken");
			}

			internal string <DelayThunderMessage>b__3_0(string target)
			{
				if (Object.op_Implicit((Object)(object)ClassicStageInfo.instance) && !string.IsNullOrEmpty(target))
				{
					((MonoBehaviour)ClassicStageInfo.instance).StartCoroutine(DelayedBroadCast(target));
					return null;
				}
				return target;
			}

			internal bool <TeleporterDiscoveredRed>b__7_0(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.UI.ChargeIndicatorController", "isDiscovered");
			}

			internal bool <TeleporterDiscoveredRed>b__7_2(Instruction x)
			{
				return ILPatternMatchingExt.MatchLdfld(x, "RoR2.UI.ChargeIndicatorController", "spriteChargedColor");
			}

			internal Color <TeleporterDiscoveredRed>b__7_1(Color value, ChargeIndicatorController charg)
			{
				//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)
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				return charg.spriteFlashColor;
			}
		}

		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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Expected O, but got Unknown
			//IL_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Expected O, but got Unknown
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Expected O, but got Unknown
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Expected O, but got Unknown
			//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)
			//IL_01ce: Expected O, but got Unknown
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Expected O, but got Unknown
			if (WConfig.cfgDelayGreenOrb.Value)
			{
				object obj = <>O.<0>__DelayThunderMessage;
				if (obj == null)
				{
					Manipulator val = DelayThunderMessage;
					<>O.<0>__DelayThunderMessage = val;
					obj = (object)val;
				}
				PortalSpawner.Start += (Manipulator)obj;
			}
			if (WConfig.cfgTpIconDiscoveredRed.Value)
			{
				object obj2 = <>O.<1>__TeleporterDiscoveredRed;
				if (obj2 == null)
				{
					Manipulator val2 = TeleporterDiscoveredRed;
					<>O.<1>__TeleporterDiscoveredRed = val2;
					obj2 = (object)val2;
				}
				ChargeIndicatorController.Update += (Manipulator)obj2;
			}
			if (WConfig.cfgVoidAllyCyanEyes.Value)
			{
				Material val3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Nullifier/matNullifierAlly.mat").WaitForCompletion();
				val3.SetColor("_EmColor", new Color(0f, 3f, 4f, 1f));
				val3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/VoidJailer/matVoidJailerEyesAlly.mat").WaitForCompletion();
				val3.SetColor("_EmColor", new Color(0f, 1f, 1.33f, 1f));
				val3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/VoidMegaCrab/matVoidMegaCrabAlly.mat").WaitForCompletion();
				val3.SetColor("_EmColor", new Color(0f, 1.5f, 2.5f, 1f));
			}
			if (WConfig.cfgMountainStacks.Value)
			{
				object obj3 = <>c.<>9__2_0;
				if (obj3 == null)
				{
					hook_AddShrineStack val4 = delegate(orig_AddShrineStack orig, TeleporterInteraction self)
					{
						orig.Invoke(self);
						Debug.Log((object)"On.RoR2.TeleporterInteraction.AddShrineStack");
						Chat.SendBroadcastChat((ChatMessageBase)(object)new SendExtraMountainIcon
						{
							teleporterObject = ((Component)self).gameObject,
							shrineStacks = self.shrineBonusStacks
						});
					};
					<>c.<>9__2_0 = val4;
					obj3 = (object)val4;
				}
				TeleporterInteraction.AddShrineStack += (hook_AddShrineStack)obj3;
			}
			object obj4 = <>O.<2>__AllowMoreChatMessages;
			if (obj4 == null)
			{
				hook_Awake val5 = AllowMoreChatMessages;
				<>O.<2>__AllowMoreChatMessages = val5;
				obj4 = (object)val5;
			}
			ChatBox.Awake += (hook_Awake)obj4;
			object obj5 = <>c.<>9__2_1;
			if (obj5 == null)
			{
				hook_RebuildPing val6 = delegate(orig_RebuildPing orig, PingIndicator self)
				{
					orig.Invoke(self);
					self.fixedTimer *= 2f;
				};
				<>c.<>9__2_1 = val6;
				obj5 = (object)val6;
			}
			PingIndicator.RebuildPing += (hook_RebuildPing)obj5;
			if (WConfig.cfgNewSprintCrosshair.Value)
			{
				object obj6 = <>c.<>9__2_2;
				if (obj6 == null)
				{
					hook_OnEnable val7 = delegate(orig_OnEnable orig, CrosshairManager self)
					{
						orig.Invoke(self);
						GameObject val10 = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(2)).gameObject);
						GameObject val11 = Object.Instantiate<GameObject>(((Component)LoaderCrosshair.transform.GetChild(3)).gameObject);
						CrosshairController component = SprintingCrosshair.GetComponent<CrosshairController>();
						if (SprintingCrosshair.transform.childCount > 0)
						{
							Object.Destroy((Object)(object)((Component)SprintingCrosshair.transform.GetChild(1)).gameObject);
							Object.Destroy((Object)(object)((Component)SprintingCrosshair.transform.GetChild(0)).gameObject);
						}
						val10.transform.SetParent(SprintingCrosshair.transform);
						val11.transform.SetParent(SprintingCrosshair.transform);
						component.spriteSpreadPositions[0].target = val11.GetComponent<RectTransform>();
						component.spriteSpreadPositions[1].target = val10.GetComponent<RectTransform>();
					};
					<>c.<>9__2_2 = val7;
					obj6 = (object)val7;
				}
				CrosshairManager.OnEnable += (hook_OnEnable)obj6;
			}
			if (WConfig.cfgEquipmentDroneName.Value)
			{
				GameObject val8 = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/EquipmentDroneBody");
				val8.AddComponent<EquipmentDroneNameComponent>();
				object obj7 = <>O.<3>__CharacterMasterNotificationQueue_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType;
				if (obj7 == null)
				{
					hook_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType val9 = CharacterMasterNotificationQueue_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType;
					<>O.<3>__CharacterMasterNotificationQueue_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType = val9;
					obj7 = (object)val9;
				}
				CharacterMasterNotificationQueue.SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType += (hook_SendTransformNotification_CharacterMaster_EquipmentIndex_EquipmentIndex_TransformationType)obj7;
			}
		}

		private static void DelayThunderMessage(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.PortalSpawner", "spawnPreviewMessageToken")
			}))
			{
				val.EmitDelegate<Func<string, string>>((Func<string, string>)delegate(string target)
				{
					if (Object.op_Implicit((Object)(object)ClassicStageInfo.instance) && !string.IsNullOrEmpty(target))
					{
						((MonoBehaviour)ClassicStageInfo.instance).StartCoroutine(DelayedBroadCast(target));
						return null;
					}
					return target;
				});
				Debug.Log((object)"IL Found: Delay Thunder Message");
			}
			else
			{
				Debug.LogWarning((object)"IL Failed: Delay Thunder Message");
			}
		}

		public static IEnumerator DelayedBroadCast(string familySelectionChatString)
		{
			yield return (object)new WaitForSeconds(1f);
			Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
			{
				baseToken = familySelectionChatString
			});
		}

		private static void Enigma_EquipmentDroneName(orig_OnServerEquipmentActivated orig, EquipmentSlot equipmentSlot, EquipmentIndex equipmentIndex)
		{
			//IL_0003: Unknown result typ