Decompiled source of FentoKill v2.4.164

FentoKill.dll

Decompiled a week ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using FentoKill;
using HarmonyLib;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using TMPro;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.AddressableAssets;
using UnityEngine.AddressableAssets.ResourceLocators;
using UnityEngine.InputSystem;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.ResourceManagement.ResourceLocations;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("FentoKill")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FentoKill")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("d24676a8-4da0-4d43-a77a-48484b462e3c")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
public class a
{
	public static void Collect()
	{
		string text = "";
		int num = 0;
		IList<IResourceLocation> list = default(IList<IResourceLocation>);
		foreach (IResourceLocator resourceLocator in Addressables.ResourceLocators)
		{
			foreach (object key in resourceLocator.Keys)
			{
				if (!resourceLocator.Locate(key, typeof(object), ref list))
				{
					continue;
				}
				foreach (IResourceLocation item in list)
				{
					text = text + item.PrimaryKey + "\n";
					num++;
				}
			}
		}
		object obj = Path.Combine(Path.GetDirectoryName(typeof(Fento_Loader).Assembly.Location), "Addressables.txt");
		File.WriteAllText((string)obj, text);
		if (obj == null)
		{
			obj = "";
		}
		Debug.LogError(obj);
		Debug.LogError((object)$"Done! Total Assets: {num}");
	}
}
namespace FentoKill;

public static class Fento_Utils
{
	public enum DetectebleEnemies
	{
		Super_Projectile_Zombie,
		Minotaur,
		Body,
		MinosBoss,
		DroneSkull_Variant,
		Guttertank,
		Zombie,
		Mandalore,
		Gutterman,
		Gabriel,
		V2,
		Big_Johninator,
		DroneFlesh,
		Gabriel_2nd_Variant,
		Flesh_Prison,
		Turret,
		Streetcleaner,
		Virtue,
		DroneFleshCamera_Variant,
		Wicked,
		MinosPrime,
		ShotgunHusk,
		Ferryman,
		Mindflayer,
		Sisyphus,
		Idol,
		Drone,
		CentaurMortar,
		Mannequin,
		Projectile_Zombie,
		CentaurTower,
		Puppet,
		SisyphusPrime,
		Very_Cancerous_Rodent,
		V2_Green_Arm_Variant,
		Stalker,
		Cancerous_Rodent,
		Mass,
		CentaurRocketLauncher,
		Flesh_Prison_2,
		SwordsMachineNonboss,
		Cerberus
	}

	public class AddresableObject
	{
		[CompilerGenerated]
		private sealed class <Long_Load>d__6 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			public AddresableObject <>4__this;

			private AsyncOperationHandle<GameObject> <handle>5__2;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Long_Load>d__6(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				<handle>5__2 = default(AsyncOperationHandle<GameObject>);
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_0059: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_0085: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Invalid comparison between Unknown and I4
				int num = <>1__state;
				AddresableObject addresableObject = <>4__this;
				switch (num)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if ((Object)(object)addresableObject.obj != (Object)null)
					{
						Fento_Loader._Logger.LogWarning((object)("[Long_Load] - " + addresableObject.path + " Already Loaded - !!!"));
						return false;
					}
					<handle>5__2 = Addressables.LoadAssetAsync<GameObject>((object)addresableObject.path);
					<>2__current = <handle>5__2;
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					if ((int)<handle>5__2.Status == 1)
					{
						addresableObject.fast_load = false;
						addresableObject.obj = <handle>5__2.Result;
						Fento_Loader._Logger.LogInfo((object)("[Long_Load] - " + addresableObject.path + " Loaded Without Errors"));
					}
					else
					{
						Fento_Loader._Logger.LogError((object)("[Long_Load] - Failed to load asset at path: " + addresableObject.path));
					}
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		public bool fast_load;

		public string path;

		public GameObject obj;

		public GameObject Object
		{
			get
			{
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003b: Unknown result type (might be due to invalid IL or missing references)
				if ((Object)(object)obj == (Object)null)
				{
					Fento_Loader._Logger.LogInfo((object)("[Fast_Load] - Loading " + path));
					fast_load = true;
					obj = Addressables.LoadAssetAsync<GameObject>((object)path).WaitForCompletion();
				}
				return obj;
			}
		}

		public Transform[] childs => GetAllChilds(transform);

		public Transform transform
		{
			get
			{
				if ((Object)(object)Object != (Object)null)
				{
					return Object.transform;
				}
				return null;
			}
		}

		public GameObject gameObject => Object;

		public T GetComponent<T>()
		{
			if ((Object)(object)Object != (Object)null)
			{
				return Object.GetComponent<T>();
			}
			return default(T);
		}

		[IteratorStateMachine(typeof(<Long_Load>d__6))]
		public IEnumerator Long_Load()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Long_Load>d__6(0)
			{
				<>4__this = this
			};
		}

		public Transform GetChild(int id)
		{
			if ((Object)(object)transform != (Object)null)
			{
				return transform.GetChild(id);
			}
			return null;
		}

		public AddresableObject(string path)
		{
			this.path = path;
			fast_load = false;
			obj = null;
		}

		public static implicit operator AddresableObject(string path)
		{
			return new AddresableObject(path);
		}

		public override string ToString()
		{
			return path;
		}
	}

	public struct PathObject
	{
		public string path;

		public GameObject obj;

		public GameObject Object
		{
			get
			{
				if ((Object)(object)obj == (Object)null)
				{
					obj = FindObjectByPath(path);
				}
				return obj;
			}
		}

		public Transform[] childs => GetAllChilds(transform);

		public Transform transform
		{
			get
			{
				if ((Object)(object)Object != (Object)null)
				{
					return Object.transform;
				}
				return null;
			}
		}

		public GameObject gameObject => Object;

		public T GetComponent<T>()
		{
			if ((Object)(object)Object != (Object)null)
			{
				return Object.GetComponent<T>();
			}
			return default(T);
		}

		public Transform _GetChild(int id)
		{
			if ((Object)(object)transform != (Object)null)
			{
				return transform.GetChild(id);
			}
			return null;
		}

		public PathObject(string path)
		{
			this.path = path;
			obj = null;
		}

		public static implicit operator PathObject(string path)
		{
			return new PathObject(path);
		}

		public override string ToString()
		{
			return path;
		}
	}

	[CompilerGenerated]
	private sealed class <Delay_Coroutine>d__3 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public float time;

		public Action action;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Delay_Coroutine>d__3(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(time);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				try
				{
					action?.Invoke();
				}
				catch
				{
					Fento_Loader._Logger.LogError((object)"Delay_Coroutine - Error Detected");
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <Next_FrameCoroutine>d__2 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public Action action;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Next_FrameCoroutine>d__2(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForEndOfFrame();
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				try
				{
					action?.Invoke();
				}
				catch
				{
					Fento_Loader._Logger.LogError((object)"Next_FrameCoroutine - Error Detected");
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	public static Type DetectEnemyType = typeof(DetectebleEnemies);

	public static EnemyIdentifier[] AllEnemies = (EnemyIdentifier[])(object)new EnemyIdentifier[0];

	public static void Invoke_NextFrame(Action action)
	{
		//IL_0005: 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)
		//IL_0015: Expected O, but got Unknown
		//IL_001a: Expected O, but got Unknown
		GameObject val = new GameObject("Wait And LOader");
		Object.Destroy((Object)val, 1f);
		((MonoBehaviour)GameObjectExtensions.GetOrAddComponent<Waiter>(val)).StartCoroutine(Next_FrameCoroutine(action));
	}

	public static void Invoke_WithDelay(float time, Action action)
	{
		//IL_0005: 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)
		//IL_0017: Expected O, but got Unknown
		//IL_001c: Expected O, but got Unknown
		GameObject val = new GameObject("Wait And LOader");
		Object.Destroy((Object)val, time + 1f);
		((MonoBehaviour)GameObjectExtensions.GetOrAddComponent<Waiter>(val)).StartCoroutine(Delay_Coroutine(time, action));
	}

	[IteratorStateMachine(typeof(<Next_FrameCoroutine>d__2))]
	public static IEnumerator Next_FrameCoroutine(Action action)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <Next_FrameCoroutine>d__2(0)
		{
			action = action
		};
	}

	[IteratorStateMachine(typeof(<Delay_Coroutine>d__3))]
	public static IEnumerator Delay_Coroutine(float time, Action action)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <Delay_Coroutine>d__3(0)
		{
			time = time,
			action = action
		};
	}

	public static void Forse_Clear()
	{
		//IL_0014: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: 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)
		ActivateArena[] array = Resources.FindObjectsOfTypeAll<ActivateArena>();
		foreach (ActivateArena val in array)
		{
			Scene scene = ((Component)val).gameObject.scene;
			if (((Scene)(ref scene)).IsValid())
			{
				scene = ((Component)val).gameObject.scene;
				if (((Scene)(ref scene)).isLoaded)
				{
					Fento_Loader._Logger.LogInfo((object)("Forse_Clear - " + ((Object)((Component)val).transform).name + " ActivateArena Cleared From Nulls"));
					val.enemies = val.enemies.RemoveDestroyed().ToArray();
				}
			}
		}
	}

	public static void Set_HudMessage(this HudMessage hudMessage, string message, string message2 = "", InputActionReference actionReference = null)
	{
		if ((Object)(object)hudMessage == (Object)null)
		{
			Fento_Loader._Logger.LogError((object)"Set_HudMessage - hudMessage is null");
			return;
		}
		hudMessage.message = message;
		hudMessage.message2 = message2;
		hudMessage.actionReference = actionReference;
	}

	public static void For_InStack(Transform GetFrom, Action<Transform> action)
	{
		Transform[] allChilds = GetAllChilds(GetFrom);
		foreach (Transform obj in allChilds)
		{
			action?.Invoke(obj);
		}
	}

	public static void Enemy_InStack(Transform GetFrom, Action<EnemyIdentifier> action, bool Hard_Mode_Only = false)
	{
		if (Hard_Mode_Only && Difficulty_Options.Issue_Disable_Most_Buffs)
		{
			return;
		}
		Transform[] allChilds = GetAllChilds(GetFrom);
		if (allChilds == null)
		{
			return;
		}
		Transform[] array = allChilds;
		for (int i = 0; i < array.Length; i++)
		{
			EnemyIdentifier component = ((Component)array[i]).GetComponent<EnemyIdentifier>();
			if ((Object)(object)component != (Object)null)
			{
				action?.Invoke(component);
			}
		}
	}

	public static void Make_List_MachineSymbiote(List<Machine> machines)
	{
		if (machines == null || machines.Count < 2)
		{
			Fento_Loader._Logger.LogWarning((object)"Make_List_MachineSymbiote - Need More Machines To Make Symbiotes");
			return;
		}
		for (int i = 0; i < machines.Count; i++)
		{
			Machine toMake = machines[i];
			Machine symbiote = machines[(i + 1) % machines.Count];
			Make_MachineSymbiote(toMake, symbiote);
		}
	}

	public static void Make_MachineSymbiote(Machine toMake, Machine symbiote)
	{
		if ((Object)(object)toMake == (Object)null)
		{
			Fento_Loader._Logger.LogWarning((object)"Make_MachineSymbiote - No toMake");
			return;
		}
		if ((Object)(object)symbiote == (Object)null)
		{
			Fento_Loader._Logger.LogWarning((object)"Make_MachineSymbiote - No symbiote");
			return;
		}
		if (Difficulty_Options.Mech_Disable_Custom_Symbiotes)
		{
			Fento_Loader._Logger.LogInfo((object)$"Make_MachineSymbiote - {toMake} + {symbiote} Disabled From - Difficulty_Options.Disable_Custom_Symbiotes");
			return;
		}
		toMake.symbiote = symbiote;
		Fento_Loader._Logger.LogInfo((object)$"Make_MachineSymbiote - New Symbiot Pair: {toMake} + {symbiote}");
	}

	public static void Clear_AreaFromClones(Transform ToClear)
	{
		Enemy_InStack(ToClear, delegate(EnemyIdentifier enemy)
		{
			if (!Object.op_Implicit((Object)(object)((Component)enemy).GetComponent<Fento_DontLoop_Tag>()))
			{
				Object.Destroy((Object)(object)((Component)enemy).gameObject);
			}
		});
	}

	public static void Update_ActivateNextWave(ActivateNextWave activateNextWave, Transform GetFrom = null)
	{
		if ((Object)(object)GetFrom == (Object)null)
		{
			GetFrom = ((Component)activateNextWave).transform;
		}
		List<GameObject> list = new List<GameObject>();
		for (int i = 0; i < GetFrom.childCount; i++)
		{
			Transform child = GetFrom.GetChild(i);
			if (Object.op_Implicit((Object)(object)((Component)child).GetComponent<EnemyIdentifier>()))
			{
				list.Add(((Component)child).gameObject);
			}
		}
		activateNextWave.toActivate = list.ToArray();
	}

	public static void Update_ActivateArena(ActivateArena activateArena, Transform GetFrom = null)
	{
		if ((Object)(object)GetFrom == (Object)null)
		{
			GetFrom = ((Component)activateArena).transform;
		}
		List<GameObject> list = new List<GameObject>();
		for (int i = 0; i < GetFrom.childCount; i++)
		{
			Transform child = GetFrom.GetChild(i);
			if (Object.op_Implicit((Object)(object)((Component)child).GetComponent<EnemyIdentifier>()) || Object.op_Implicit((Object)(object)((Component)child).GetComponent<Fento_DontLoop_Tag>()))
			{
				list.Add(((Component)child).gameObject);
			}
		}
		activateArena.enemies = list.ToArray();
	}

	public static EnemyIdentifier Custom_ReplaceEnemy(DetectebleEnemies enemy, Transform toReplace, Vector3 Pos = default(Vector3), Quaternion Quart = default(Quaternion), bool active = false, bool DestroyOnReplace = true)
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)((Component)toReplace).GetComponent<Fento_DontLoop_Tag>()))
		{
			return null;
		}
		EnemyIdentifier result = Integrate_Enemy(enemy, toReplace.parent, active, Pos, Quart);
		if (DestroyOnReplace)
		{
			Object.Destroy((Object)(object)((Component)toReplace).gameObject);
		}
		return result;
	}

	public static EnemyIdentifier Base_ReplaceEnemy(DetectebleEnemies enemy, Transform toReplace, Vector3 extraPos = default(Vector3), bool DestroyOnReplace = true)
	{
		//IL_0022: 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_0028: 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)
		if (Object.op_Implicit((Object)(object)((Component)toReplace).GetComponent<Fento_DontLoop_Tag>()))
		{
			return null;
		}
		EnemyIdentifier result = Integrate_Enemy(enemy, toReplace.parent, ((Component)toReplace).gameObject.activeSelf, toReplace.position + extraPos, toReplace.rotation);
		if (DestroyOnReplace)
		{
			Object.Destroy((Object)(object)((Component)toReplace).gameObject);
		}
		return result;
	}

	public static EnemyIdentifier Integrate_Enemy(DetectebleEnemies enemy, Transform Parent, bool active, Vector3 Pos = default(Vector3), Quaternion Quart = default(Quaternion))
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Unknown result type (might be due to invalid IL or missing references)
		EnemyIdentifier val = FindEnemyByType(enemy);
		GameObject val2 = null;
		val2 = ((enemy != DetectebleEnemies.Body) ? ((Component)Object.Instantiate<EnemyIdentifier>(val, Pos, Quart)).gameObject : ((Component)Object.Instantiate<Transform>(((Component)val).transform.root, Pos, Quart)).gameObject);
		val2.transform.root.parent = Parent;
		val2.transform.position = Pos;
		val2.transform.rotation = Quart;
		val2.SetActive(active);
		GameObjectExtensions.GetOrAddComponent<Fento_DontLoop_Tag>(val2);
		KeepInBounds component = val2.GetComponent<KeepInBounds>();
		if (Object.op_Implicit((Object)(object)component))
		{
			Object.Destroy((Object)(object)component);
		}
		NavMeshAgent component2 = val2.GetComponent<NavMeshAgent>();
		if (Object.op_Implicit((Object)(object)component2))
		{
			((Behaviour)component2).enabled = true;
		}
		return val2.GetComponentInChildren<EnemyIdentifier>();
	}

	public static Vector3 GetRandomNavMeshPoint(Vector3 origin, float radius)
	{
		//IL_0000: Unknown result type (might be due to invalid IL or missing references)
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		NavMeshHit val = default(NavMeshHit);
		if (NavMesh.SamplePosition(origin + Random.insideUnitSphere * radius, ref val, radius, -1))
		{
			return ((NavMeshHit)(ref val)).position;
		}
		return Vector3.zero;
	}

	public static Vector3 DeepSearchNavMeshPoint(Vector3 origin, float radius)
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: 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_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 1; i <= 35; i++)
		{
			float num = 10f * (float)i;
			float radius2 = radius + 50f * (float)i;
			Vector3 insideUnitSphere = Random.insideUnitSphere;
			Vector3 val = ((Vector3)(ref insideUnitSphere)).normalized * num * Random.value;
			Vector3 randomNavMeshPoint = GetRandomNavMeshPoint(origin + val, radius2);
			if (randomNavMeshPoint != Vector3.zero)
			{
				return randomNavMeshPoint;
			}
		}
		return Vector3.zero;
	}

	public static string ParseRealName(string input)
	{
		return input?.Replace('_', ' ');
	}

	public static EnemyIdentifier FindEnemyByType(DetectebleEnemies enemy)
	{
		string realName = ParseRealName(Enum.GetName(DetectEnemyType, enemy));
		return AllEnemies.Where((EnemyIdentifier o) => ((Object)o).name == realName).FirstOrDefault();
	}

	public static GameObject FindEnemyByName(string name)
	{
		return Fento_Core.AllObjs.Where((GameObject o) => (Object)(object)o != (Object)null && ((Object)o).name == name && o.scene != Fento_Core.CurrentScene && Object.op_Implicit((Object)(object)o.GetComponent<EnemyIdentifier>())).FirstOrDefault();
	}

	public static GameObject FindObjectByPath(string path)
	{
		string[] array = path.Split(new char[1] { '/' });
		if (array.Length == 0)
		{
			return null;
		}
		GameObject val = FindObjectByDirectPath(path);
		if ((Object)(object)val != (Object)null)
		{
			return val;
		}
		return FindObjectByStepwisePath(array);
	}

	public static string GetFullRootPath(Transform transform)
	{
		string text = ((Object)transform).name;
		while ((Object)(object)transform.parent != (Object)null)
		{
			transform = transform.parent;
			text = ((Object)transform).name + "/" + text;
		}
		return text;
	}

	[Obsolete]
	private static GameObject FindObjectByDirectPath(string path)
	{
		GameObject obj = GameObject.Find(path);
		if ((Object)(object)obj == (Object)null)
		{
			Fento_Loader._Logger.LogWarning((object)("Direct Search - Object not found with path: " + path));
		}
		return obj;
	}

	[Obsolete]
	private static GameObject FindObjectByStepwisePath(string[] pathParts)
	{
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		GameObject val = null;
		GameObject[] allObjs = Fento_Core.AllObjs;
		foreach (GameObject val2 in allObjs)
		{
			if ((Object)(object)val2 == (Object)null || (Object)(object)val2.transform.root != (Object)(object)val2.transform)
			{
				continue;
			}
			Scene scene = val2.scene;
			if (((Scene)(ref scene)).IsValid())
			{
				scene = val2.scene;
				if (((Scene)(ref scene)).isLoaded && ((Object)val2).name == pathParts[0])
				{
					val = val2;
					break;
				}
			}
		}
		if ((Object)(object)val == (Object)null)
		{
			Fento_Loader._Logger.LogWarning((object)("FindObjectByStepwisePath - Root not found: " + pathParts[0]));
			return null;
		}
		return FindObjectByPathInHierarchy(val, pathParts, 1);
	}

	[Obsolete]
	private static GameObject FindObjectByPathInHierarchy(GameObject parent, string[] pathParts, int index)
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Expected O, but got Unknown
		if (index >= pathParts.Length)
		{
			return parent;
		}
		foreach (Transform item in parent.transform)
		{
			Transform val = item;
			if (((Object)val).name == pathParts[index])
			{
				GameObject val2 = FindObjectByPathInHierarchy(((Component)val).gameObject, pathParts, index + 1);
				if ((Object)(object)val2 != (Object)null)
				{
					return val2;
				}
			}
		}
		return null;
	}

	public static void Make_Colored(Transform to_change, Color color, bool keep_a = true, float mult = 0.55f)
	{
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_0126: Unknown result type (might be due to invalid IL or missing references)
		//IL_0128: Unknown result type (might be due to invalid IL or missing references)
		//IL_012d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_014b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0134: 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_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0061: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00db: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		Renderer[] componentsInChildren = ((Component)to_change).GetComponentsInChildren<Renderer>(true);
		foreach (Renderer val in componentsInChildren)
		{
			if ((Object)(object)val == (Object)null)
			{
				continue;
			}
			Material[] materials = val.materials;
			foreach (Material val2 in materials)
			{
				if (val2.HasProperty("_Color"))
				{
					Color val3 = Color.Lerp(val2.GetColor("_Color"), color, mult);
					if (keep_a)
					{
						float a = val2.GetColor("_Color").a;
						val3.a = a;
					}
					val2.SetColor("_Color", val3);
				}
				if (val2.HasProperty("_BaseColor"))
				{
					Color val4 = Color.Lerp(val2.GetColor("_BaseColor"), color, mult);
					if (keep_a)
					{
						float a2 = val2.GetColor("_BaseColor").a;
						val4.a = a2;
					}
					val2.SetColor("_BaseColor", Color.Lerp(val2.GetColor("_BaseColor"), color, mult));
				}
			}
		}
		Light[] componentsInChildren2 = ((Component)to_change).GetComponentsInChildren<Light>(true);
		foreach (Light val5 in componentsInChildren2)
		{
			if (!((Object)(object)val5 == (Object)null))
			{
				Color color2 = Color.Lerp(val5.color, color, mult);
				if (keep_a)
				{
					float a3 = val5.color.a;
					color2.a = a3;
				}
				val5.color = color2;
			}
		}
	}

	public static Transform[] GetAllChilds(Transform GetFrom)
	{
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Expected O, but got Unknown
		if ((Object)(object)GetFrom == (Object)null)
		{
			return null;
		}
		List<Transform> list = new List<Transform>();
		foreach (Transform item2 in GetFrom)
		{
			Transform item = item2;
			list.Add(item);
		}
		return list.ToArray();
	}

	public static void AddCount(this ref int i, bool[] toCount)
	{
		for (int j = 0; j < toCount.Length; j++)
		{
			if (toCount[j])
			{
				i++;
			}
		}
	}

	public static T[] Append<T>(this T[] array, T item)
	{
		if (array == null)
		{
			return new T[1] { item };
		}
		T[] array2 = new T[array.Length + 1];
		array.CopyTo(array2, 0);
		array2[array.Length] = item;
		return array2;
	}

	public static IEnumerable<GameObject> RemoveDestroyed(this IEnumerable<GameObject> array)
	{
		List<GameObject> list = array.ToList();
		list.RemoveAll(delegate(GameObject obj)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: 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)
			if (!((Object)(object)obj == (Object)null))
			{
				Scene scene = obj.scene;
				if (((Scene)(ref scene)).IsValid())
				{
					scene = obj.scene;
					return !((Scene)(ref scene)).isLoaded;
				}
			}
			return true;
		});
		return list;
	}

	public static IEnumerable<T> RemoveNulls<T>(this IEnumerable<T> array)
	{
		List<T> list = array.ToList();
		list.RemoveAll((T l) => l == null);
		return list;
	}

	public static bool Try_GetFrom_Config(BoolField boolField, bool regular = false)
	{
		if (boolField != null)
		{
			return boolField.value;
		}
		return regular;
	}

	public static float Try_GetFrom_Config(FloatField floatField, float regular = 1f)
	{
		if (floatField != null)
		{
			return floatField.value;
		}
		return regular;
	}
}
[BepInPlugin("com.enragedone.fentokill", "FentoKill", "2.4.164")]
public class Fento_Loader : BaseUnityPlugin
{
	public const string GUID = "com.enragedone.fentokill";

	public const string Name = "FentoKill";

	public const string Version = "2.4.164";

	private Harmony _Harmony = new Harmony("com.enragedone.fentokill.levelpatches");

	public static ManualLogSource _Logger;

	public static Fento_Loader _Instance;

	public const string Set_Guid = "com.enragedone.fentokill.settings";

	public PluginConfigurator config;

	public bool Confing_Loaded;

	public void Awake()
	{
		//IL_0096: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: 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_00e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0102: Unknown result type (might be due to invalid IL or missing references)
		//IL_010b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0110: Unknown result type (might be due to invalid IL or missing references)
		//IL_012c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0142: 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_0166: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0178: Expected O, but got Unknown
		//IL_0173: 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_018e: 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_01a9: Expected O, but got Unknown
		//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ae: Expected O, but got Unknown
		//IL_01be: Expected O, but got Unknown
		//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c3: Expected O, but got Unknown
		//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f0: 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_0214: Unknown result type (might be due to invalid IL or missing references)
		//IL_0221: Expected O, but got Unknown
		//IL_021c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0232: Unknown result type (might be due to invalid IL or missing references)
		//IL_0237: Unknown result type (might be due to invalid IL or missing references)
		//IL_0241: Unknown result type (might be due to invalid IL or missing references)
		//IL_0252: Expected O, but got Unknown
		//IL_024d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0257: Expected O, but got Unknown
		//IL_0257: Unknown result type (might be due to invalid IL or missing references)
		//IL_0268: Expected O, but got Unknown
		//IL_0263: Unknown result type (might be due to invalid IL or missing references)
		//IL_026d: Expected O, but got Unknown
		//IL_026d: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Expected O, but got Unknown
		//IL_0279: Unknown result type (might be due to invalid IL or missing references)
		//IL_0283: Expected O, but got Unknown
		//IL_0283: Unknown result type (might be due to invalid IL or missing references)
		//IL_0298: Expected O, but got Unknown
		//IL_0293: Unknown result type (might be due to invalid IL or missing references)
		//IL_029d: Expected O, but got Unknown
		//IL_029d: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b2: Expected O, but got Unknown
		//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b7: Expected O, but got Unknown
		//IL_02cb: Expected O, but got Unknown
		//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d0: Expected O, but got Unknown
		//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0318: Unknown result type (might be due to invalid IL or missing references)
		//IL_031d: Unknown result type (might be due to invalid IL or missing references)
		//IL_032a: Expected O, but got Unknown
		//IL_0325: Unknown result type (might be due to invalid IL or missing references)
		//IL_0337: Unknown result type (might be due to invalid IL or missing references)
		//IL_033c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0346: Unknown result type (might be due to invalid IL or missing references)
		//IL_0357: Expected O, but got Unknown
		//IL_0352: Unknown result type (might be due to invalid IL or missing references)
		//IL_035c: Expected O, but got Unknown
		//IL_035c: Unknown result type (might be due to invalid IL or missing references)
		//IL_036d: Expected O, but got Unknown
		//IL_0368: Unknown result type (might be due to invalid IL or missing references)
		//IL_0372: Expected O, but got Unknown
		//IL_0382: Expected O, but got Unknown
		//IL_037d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0387: Expected O, but got Unknown
		//IL_0399: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e4: Expected O, but got Unknown
		//IL_03df: 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_03f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0403: Unknown result type (might be due to invalid IL or missing references)
		//IL_0414: Expected O, but got Unknown
		//IL_040f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0419: Expected O, but got Unknown
		//IL_0429: Expected O, but got Unknown
		//IL_0424: Unknown result type (might be due to invalid IL or missing references)
		//IL_042e: Expected O, but got Unknown
		//IL_0440: Unknown result type (might be due to invalid IL or missing references)
		//IL_0453: Unknown result type (might be due to invalid IL or missing references)
		//IL_0458: Unknown result type (might be due to invalid IL or missing references)
		//IL_0477: Unknown result type (might be due to invalid IL or missing references)
		//IL_047c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0489: Expected O, but got Unknown
		//IL_0484: Unknown result type (might be due to invalid IL or missing references)
		//IL_0497: Unknown result type (might be due to invalid IL or missing references)
		//IL_049c: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bb: Expected O, but got Unknown
		//IL_04b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c0: Expected O, but got Unknown
		//IL_04c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d5: Expected O, but got Unknown
		//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04da: Expected O, but got Unknown
		//IL_04ee: Expected O, but got Unknown
		//IL_04e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f3: Expected O, but got Unknown
		//IL_0505: Unknown result type (might be due to invalid IL or missing references)
		//IL_0518: Unknown result type (might be due to invalid IL or missing references)
		//IL_051d: Unknown result type (might be due to invalid IL or missing references)
		//IL_053c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0541: Unknown result type (might be due to invalid IL or missing references)
		//IL_054e: Expected O, but got Unknown
		//IL_0549: Unknown result type (might be due to invalid IL or missing references)
		//IL_055c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0561: Unknown result type (might be due to invalid IL or missing references)
		//IL_056b: Unknown result type (might be due to invalid IL or missing references)
		//IL_057c: Expected O, but got Unknown
		//IL_0577: Unknown result type (might be due to invalid IL or missing references)
		//IL_0581: Expected O, but got Unknown
		//IL_0581: Unknown result type (might be due to invalid IL or missing references)
		//IL_0592: Expected O, but got Unknown
		//IL_058d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0597: Expected O, but got Unknown
		//IL_0597: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ac: Expected O, but got Unknown
		//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b1: Expected O, but got Unknown
		//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c6: Expected O, but got Unknown
		//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05cb: Expected O, but got Unknown
		//IL_05cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e0: Expected O, but got Unknown
		//IL_05db: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e5: Expected O, but got Unknown
		//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f2: Expected O, but got Unknown
		//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0600: Unknown result type (might be due to invalid IL or missing references)
		//IL_0605: Unknown result type (might be due to invalid IL or missing references)
		//IL_060f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0620: Expected O, but got Unknown
		//IL_061b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0625: Expected O, but got Unknown
		//IL_0625: Unknown result type (might be due to invalid IL or missing references)
		//IL_0636: Expected O, but got Unknown
		//IL_0631: Unknown result type (might be due to invalid IL or missing references)
		//IL_063b: Expected O, but got Unknown
		//IL_063b: Unknown result type (might be due to invalid IL or missing references)
		//IL_064c: Expected O, but got Unknown
		//IL_0647: Unknown result type (might be due to invalid IL or missing references)
		//IL_0651: Expected O, but got Unknown
		//IL_0651: Unknown result type (might be due to invalid IL or missing references)
		//IL_0662: Expected O, but got Unknown
		//IL_065d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0667: Expected O, but got Unknown
		//IL_0667: Unknown result type (might be due to invalid IL or missing references)
		//IL_0678: Expected O, but got Unknown
		//IL_0673: Unknown result type (might be due to invalid IL or missing references)
		//IL_067d: Expected O, but got Unknown
		//IL_067d: Unknown result type (might be due to invalid IL or missing references)
		//IL_068e: Expected O, but got Unknown
		//IL_0689: Unknown result type (might be due to invalid IL or missing references)
		//IL_0693: Expected O, but got Unknown
		//IL_06a3: Expected O, but got Unknown
		//IL_069e: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a8: Expected O, but got Unknown
		_Instance = this;
		_Logger = ((BaseUnityPlugin)this).Logger;
		_Logger.LogInfo((object)"Fento_Loader v2.4.164 has started.");
		try
		{
			config = PluginConfigurator.Create("FENTOKILL", "com.enragedone.fentokill.settings");
			string text = Path.Combine(Path.GetDirectoryName(typeof(Fento_Loader).Assembly.Location), "icon.png");
			_Logger.LogInfo((object)$"Fento Icon Path {text}");
			config.SetIconWithURL("file://" + text);
			new ConfigHeader(config.rootPanel, "SOME CHANGES REQUIRE LEVEL RESTART", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue));
			new ConfigHeader(config.rootPanel, "They will be marked with <color=#FF0000>+</color>", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue));
			new ConfigHeader(config.rootPanel, "     ", 24).textColor = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, (byte)0));
			new ConfigHeader(config.rootPanel, "Main / Global Settings", 24).textColor = Color32.op_Implicit(new Color32((byte)105, (byte)172, byte.MaxValue, byte.MaxValue));
			ConfigPanel val = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.main_change");
			new ConfigHeader(val, "Main / Global Settings", 24).textColor = Color32.op_Implicit(new Color32((byte)105, (byte)172, byte.MaxValue, byte.MaxValue));
			Difficulty_Options.B__Global_Disable_Level_Changes = new BoolField(val, "Disable Level Changes<color=#FF0000>+</color>", "com.enragedone.fentokill.settings.B__Global_Disable_Level_Changes", false);
			Difficulty_Options.B__Global_Enable_Modify_Everyone = new BoolField(val, "Modify Every Enemy With Changes Below", "com.enragedone.fentokill.settings.B__Global_Enable_Modify_Everyone", false);
			new ConfigHeader(config.rootPanel, "Extra Respected Difficulty Options", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)158, (byte)105, byte.MaxValue));
			ConfigPanel val2 = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.extra_change");
			new ConfigHeader(val2, "Extra Respected Difficulty Options", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)158, (byte)105, byte.MaxValue));
			Difficulty_Options.B__Buff_Forse_All_ImmuneFriendly = new BoolField(val2, "Make Friendly Fire Weaker", "com.enragedone.fentokill.settings.B__Buff_Forse_All_ImmuneFriendly", false);
			Difficulty_Options.B__Buff_Forse_All_PreSanded = new BoolField(val2, "Make Every Enemy Pre Sanded", "com.enragedone.fentokill.settings.B__Buff_Forse_All_PreSanded", false);
			Difficulty_Options.B__Buff_Forse_All_Radiance = new BoolField(val2, "Make Every Enemy Radiant", "com.enragedone.fentokill.settings.B__Buff_Forse_All_Radiance", false);
			Difficulty_Options.V__Varb_Multiply_HardDamage = new FloatField(val2, "Change Hard Damage Multiplier", "com.enragedone.fentokill.settings.V__Varb_Multiply_HardDamage", 1f);
			Difficulty_Options.V__Varb_Multiply_Radiance_Tier = new FloatField(val2, "Change Radiance Tier Multiplier", "com.enragedone.fentokill.settings.V__Varb_Multiply_Radiance_Tier", 1f);
			Difficulty_Options.V__Varb_Add_Radiance_Tier = new FloatField(val2, "Add Extra Radiance Tiers", "com.enragedone.fentokill.settings.V__Varb_Add_Radiance_Tier", 0f);
			new ConfigHeader(config.rootPanel, "Skill Issue Options", 24).textColor = Color32.op_Implicit(new Color32((byte)61, (byte)204, (byte)0, byte.MaxValue));
			ConfigPanel val3 = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.extra_change");
			new ConfigHeader(val3, "Skill Issue Options", 24).textColor = Color32.op_Implicit(new Color32((byte)61, (byte)204, (byte)0, byte.MaxValue));
			Difficulty_Options.B__Issue_Disable_Most_Buffs = new BoolField(val3, "Disable Most Fento Buffs<color=#FF0000>+</color>", "com.enragedone.fentokill.settings.B__Issue_Disable_Most_Buffs", false);
			Difficulty_Options.B__Issue_Disable_PreSanded = new BoolField(val3, "Disable Pre Sanded Buff", "com.enragedone.fentokill.settings.B__Issue_Disable_PreSanded", false);
			Difficulty_Options.B__Issue_Disable_Radiance = new BoolField(val3, "Disable Radiance Buff", "com.enragedone.fentokill.settings.B__Issue_Disable_Radiance", false);
			new ConfigHeader(config.rootPanel, "Fento Custom Mechanics Options", 24).textColor = Color32.op_Implicit(new Color32((byte)0, (byte)204, (byte)132, byte.MaxValue));
			ConfigPanel val4 = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.extra_change");
			new ConfigHeader(val4, "Fento Custom Mechanics Options", 24).textColor = Color32.op_Implicit(new Color32((byte)0, (byte)204, (byte)132, byte.MaxValue));
			Difficulty_Options.B__Mech_Disable_RadIdols_Buff = new BoolField(val4, "Disable Rad Idols <color=#89FFFF>INCREASE RADIANCE</color>", "com.enragedone.fentokill.settings.B__Mech_Disable_RadIdols_Buff", false);
			Difficulty_Options.B__Mech_Disable_Custom_Symbiotes = new BoolField(val4, "Disable <color=#89FFFF>UNIQUE SYMBIOTIC PAIRS</color><color=#FF0000>+</color>", "com.enragedone.fentokill.settings.B__Mech_Disable_Custom_Symbiotes", false);
			new ConfigHeader(config.rootPanel, "Extra Radiance Options", 24).textColor = Color32.op_Implicit(new Color32((byte)93, (byte)74, (byte)186, byte.MaxValue));
			ConfigPanel val5 = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.extra_change");
			new ConfigHeader(val5, "Extra Radiance Options", 24).textColor = Color32.op_Implicit(new Color32((byte)93, (byte)74, (byte)186, byte.MaxValue));
			Difficulty_Options.V__Varb_Radiance_Health_Mult = new FloatField(val5, "Change Radiance Health Multiplier", "com.enragedone.fentokill.settings.V__Varb_Extra_Rad_Health_Mult", 1f);
			Difficulty_Options.V__Varb_Radiance_Damage_Mult = new FloatField(val5, "Change Radiance Damage Multiplier", "com.enragedone.fentokill.settings.V__Varb_Extra_Rad_Damage_Mult", 1f);
			Difficulty_Options.V__Varb_Radiance_Speed_Mult = new FloatField(val5, "Change Radiance Speed Multiplier", "com.enragedone.fentokill.settings.V__Varb_Extra_Rad_Speed_Mult", 1f);
			new ConfigHeader(config.rootPanel, "[7-4 ...LIKE ANTENNAS TO HEAVEN] Options", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)28, (byte)62, byte.MaxValue));
			ConfigPanel val6 = new ConfigPanel(config.rootPanel, "Edit", "com.enragedone.fentokill.settings.extra_change");
			new ConfigHeader(val6, "[7-4 ...LIKE ANTENNAS TO HEAVEN] Options", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)28, (byte)62, byte.MaxValue));
			Difficulty_Options.B__7_4_Disable_Defence = new BoolField(val6, "Disable Self Defence<color=#FF0000>+-</color>", "com.enragedone.fentokill.settings.B__7_4_Disable_Defence", false);
			Difficulty_Options.B__7_4_Disable_OverHeat = new BoolField(val6, "Disable OverHeat<color=#FF0000>+-</color>", "com.enragedone.fentokill.settings.B__7_4_Disable_OverHeat", false);
			Difficulty_Options.V__Varb_7_4_Fire_Rate = new FloatField(val6, "Change Fire Rate Mult", "com.enragedone.fentokill.settings.V__Varb_7_4_Fire_Rate", 1f);
			Difficulty_Options.V__Varb_7_4_Gently_WaitTime = new FloatField(val6, "Change Gently Wait Time", "com.enragedone.fentokill.settings.V__Varb_7_4_Gently_WaitTime", 5f);
			Difficulty_Options.V__Varb_7_4_CoolDown_Time = new FloatField(val6, "Change Cooldown Time", "com.enragedone.fentokill.settings.V__Varb_7_4_CoolDown_Time", 21f);
			new ConfigHeader(val6, "Individual Weapons", 24).textColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)28, (byte)62, byte.MaxValue));
			Difficulty_Options.B__7_4_Disable_OBLITERATION_BEAM_CANNON = new BoolField(val6, "Disable OBLIT-N BEAM CANNON", "com.enragedone.fentokill.settings.B__7_4_Disable_OBLITERATION_BEAM_CANNON", false);
			Difficulty_Options.B__7_4_Disable_DRONE_SWARM_PROTOCOL = new BoolField(val6, "Disable DRONE SWARM PROTOCOL", "com.enragedone.fentokill.settings.B__7_4_Disable_DRONE_SWARM_PROTOCOL", false);
			Difficulty_Options.B__7_4_Disable_SUPPORT_DROP_FORCES = new BoolField(val6, "Disable SUPPORT DROP FORCES", "com.enragedone.fentokill.settings.B__7_4_Disable_SUPPORT_DROP_FORCES", false);
			Difficulty_Options.B__7_4_Disable_NUCLEAR_THUNDERBOLT_EMITTER = new BoolField(val6, "Disable NUCLEAR THUNDERBOLT EMITTER", "com.enragedone.fentokill.settings.B__7_4_Disable_NUCLEAR_THUNDERBOLT_EMITTER", false);
			Difficulty_Options.B__7_4_Disable_CARPET_BOMBING_BATTERY = new BoolField(val6, "Disable CARPET BOMBING BATTERY", "com.enragedone.fentokill.settings.B__7_4_Disable_CARPET_BOMBING_BATTERY", false);
			Difficulty_Options.B__7_4_Disable_LASER_GRID = new BoolField(val6, "Disable LASER GRID", "com.enragedone.fentokill.settings.B__7_4_Disable_LASER_GRID", false);
			Difficulty_Options.B__7_4_Disable_EMP_CHARGE_SERVICES = new BoolField(val6, "Disable E.M.P. CHARGE SERVICES", "com.enragedone.fentokill.settings.B__7_4_Disable_EMP_CHARGE_SERVICES", false);
			_Logger.LogInfo((object)"Config v2.4.164 loaded successfully");
			Confing_Loaded = true;
		}
		catch
		{
			_Logger.LogError((object)"Fento_Loader v2.4.164 !!!---!!! ERROR With PluginConfigurator Init");
		}
		Fento_Core.Boot_Core();
		_Harmony.PatchAll(typeof(Harmony_Patches));
		_Harmony.PatchAll(typeof(Other_Classes));
		_Logger.LogInfo((object)"Fento_Loader v2.4.164 loaded successfully without error.");
	}
}
public static class Difficulty_Options
{
	public static BoolField B__Global_Disable_Level_Changes;

	public static BoolField B__Global_Enable_Modify_Everyone;

	public static BoolField B__Buff_Forse_All_ImmuneFriendly;

	public static BoolField B__Buff_Forse_All_PreSanded;

	public static BoolField B__Buff_Forse_All_Radiance;

	public static FloatField V__Varb_Multiply_HardDamage;

	public static FloatField V__Varb_Multiply_Radiance_Tier;

	public static FloatField V__Varb_Add_Radiance_Tier;

	public static BoolField B__Issue_Disable_Most_Buffs;

	public static BoolField B__Issue_Disable_PreSanded;

	public static BoolField B__Issue_Disable_Radiance;

	public static BoolField B__Mech_Disable_RadIdols_Buff;

	public static BoolField B__Mech_Disable_Custom_Symbiotes;

	public static FloatField V__Varb_Radiance_Health_Mult;

	public static FloatField V__Varb_Radiance_Damage_Mult;

	public static FloatField V__Varb_Radiance_Speed_Mult;

	public static BoolField B__7_4_Disable_Defence;

	public static BoolField B__7_4_Disable_OverHeat;

	public static FloatField V__Varb_7_4_Fire_Rate;

	public static FloatField V__Varb_7_4_Gently_WaitTime;

	public static FloatField V__Varb_7_4_CoolDown_Time;

	public static BoolField B__7_4_Disable_OBLITERATION_BEAM_CANNON;

	public static BoolField B__7_4_Disable_DRONE_SWARM_PROTOCOL;

	public static BoolField B__7_4_Disable_SUPPORT_DROP_FORCES;

	public static BoolField B__7_4_Disable_NUCLEAR_THUNDERBOLT_EMITTER;

	public static BoolField B__7_4_Disable_CARPET_BOMBING_BATTERY;

	public static BoolField B__7_4_Disable_LASER_GRID;

	public static BoolField B__7_4_Disable_EMP_CHARGE_SERVICES;

	public static int Count_Extra_Skill_Respect
	{
		get
		{
			int i = 0;
			i.AddCount(new bool[9]
			{
				Buff_Forse_All_ImmuneFriendly,
				Buff_Forse_All_PreSanded,
				Buff_Forse_All_Radiance,
				Varb_Multiply_HardDamage > 1f,
				Varb_Multiply_Radiance_Tier > 1f,
				Varb_Add_Radiance_Tier > 0f,
				Varb_Radiance_Health_Mult > 1f,
				Varb_Radiance_Damage_Mult > 1f,
				Varb_Radiance_Speed_Mult > 1f
			});
			return i;
		}
	}

	public static int Count_Issues_With_Skill
	{
		get
		{
			int i = 0;
			i.AddCount(new bool[11]
			{
				Issue_Disable_Most_Buffs,
				Issue_Disable_PreSanded,
				Issue_Disable_Radiance,
				Mech_Disable_RadIdols_Buff,
				Mech_Disable_Custom_Symbiotes,
				Varb_Multiply_HardDamage < 1f,
				Varb_Multiply_Radiance_Tier < 1f,
				Varb_Add_Radiance_Tier < 0f,
				Varb_Radiance_Health_Mult < 1f,
				Varb_Radiance_Damage_Mult < 1f,
				Varb_Radiance_Speed_Mult < 1f
			});
			return i;
		}
	}

	public static bool Extra_Skill_Respect => Count_Extra_Skill_Respect > 0;

	public static bool Skill_Issue => Count_Issues_With_Skill > 0;

	public static bool Global_Disable_Level_Changes => Fento_Utils.Try_GetFrom_Config(B__Global_Disable_Level_Changes);

	public static bool Global_Enable_Modify_Everyone => Fento_Utils.Try_GetFrom_Config(B__Global_Enable_Modify_Everyone);

	public static bool Buff_Forse_All_ImmuneFriendly => Fento_Utils.Try_GetFrom_Config(B__Buff_Forse_All_ImmuneFriendly);

	public static bool Buff_Forse_All_PreSanded => Fento_Utils.Try_GetFrom_Config(B__Buff_Forse_All_PreSanded);

	public static bool Buff_Forse_All_Radiance => Fento_Utils.Try_GetFrom_Config(B__Buff_Forse_All_Radiance);

	public static float Varb_Multiply_HardDamage => Fento_Utils.Try_GetFrom_Config(V__Varb_Multiply_HardDamage);

	public static float Varb_Multiply_Radiance_Tier => Fento_Utils.Try_GetFrom_Config(V__Varb_Multiply_Radiance_Tier);

	public static float Varb_Add_Radiance_Tier => Fento_Utils.Try_GetFrom_Config(V__Varb_Add_Radiance_Tier, 0f);

	public static bool Issue_Disable_Most_Buffs => Fento_Utils.Try_GetFrom_Config(B__Issue_Disable_Most_Buffs);

	public static bool Issue_Disable_PreSanded => Fento_Utils.Try_GetFrom_Config(B__Issue_Disable_PreSanded);

	public static bool Issue_Disable_Radiance => Fento_Utils.Try_GetFrom_Config(B__Issue_Disable_Radiance);

	public static bool Mech_Disable_RadIdols_Buff => Fento_Utils.Try_GetFrom_Config(B__Mech_Disable_RadIdols_Buff);

	public static bool Mech_Disable_Custom_Symbiotes => Fento_Utils.Try_GetFrom_Config(B__Mech_Disable_Custom_Symbiotes);

	public static float Varb_Radiance_Health_Mult => Fento_Utils.Try_GetFrom_Config(V__Varb_Radiance_Health_Mult);

	public static float Varb_Radiance_Damage_Mult => Fento_Utils.Try_GetFrom_Config(V__Varb_Radiance_Damage_Mult);

	public static float Varb_Radiance_Speed_Mult => Fento_Utils.Try_GetFrom_Config(V__Varb_Radiance_Speed_Mult);

	public static bool Issue_7_4_Disable_Defence => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_Defence);

	public static bool Buff_7_4_Disable_OverHeat => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_OverHeat);

	public static float Varb_7_4_Fire_Rate => Fento_Utils.Try_GetFrom_Config(V__Varb_7_4_Fire_Rate);

	public static float Varb_7_4_Gently_WaitTime => Fento_Utils.Try_GetFrom_Config(V__Varb_7_4_Gently_WaitTime, 5f);

	public static float Varb_7_4_CoolDown_Time => Fento_Utils.Try_GetFrom_Config(V__Varb_7_4_CoolDown_Time, 21f);

	public static bool Issue_7_4_Disable_OBLITERATION_BEAM_CANNON => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_OBLITERATION_BEAM_CANNON);

	public static bool Issue_7_4_Disable_DRONE_SWARM_PROTOCOL => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_DRONE_SWARM_PROTOCOL);

	public static bool Issue_7_4_Disable_SUPPORT_DROP_FORCES => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_SUPPORT_DROP_FORCES);

	public static bool Issue_7_4_Disable_NUCLEAR_THUNDERBOLT_EMITTER => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_NUCLEAR_THUNDERBOLT_EMITTER);

	public static bool Issue_7_4_Disable_CARPET_BOMBING_BATTERY => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_CARPET_BOMBING_BATTERY);

	public static bool Issue_7_4_Disable_LASER_GRID => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_LASER_GRID);

	public static bool Issue_7_4_Disable_EMP_CHARGE_SERVICES => Fento_Utils.Try_GetFrom_Config(B__7_4_Disable_EMP_CHARGE_SERVICES);
}
public static class Fento_Core
{
	public static TMP_FontAsset MainFont;

	public static GameObject[] AllObjs = null;

	public static Scene CurrentScene;

	public static int History = 0;

	public static int ActiveHistory = 0;

	public static EnemyClass Example_Class = (EnemyClass)0;

	public static EnemyType Example_Type = (EnemyType)34;

	public static void Boot_Core()
	{
		SceneManager.sceneLoaded += OnSceneLoaded;
		Fento_Loader._Logger.LogInfo((object)"Fento_Core v2.4.164 - Boot_Core successfully.");
	}

	public static void OnSceneLoaded(Scene scene, LoadSceneMode mode)
	{
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		History = 0;
		ActiveHistory = 0;
		CurrentScene = scene;
		Fento_Loader._Logger.LogInfo((object)((Scene)(ref scene)).name);
		string currentScene = SceneHelper.CurrentScene;
		Fento_Loader._Logger.LogInfo((object)currentScene);
		AllObjs = Resources.FindObjectsOfTypeAll<GameObject>();
		if (Fento_Utils.AllEnemies.RemoveNulls().ToArray().Length <= 40)
		{
			Fento_Utils.AllEnemies = (from e in Resources.FindObjectsOfTypeAll<EnemyIdentifier>()
				where ((Component)e).gameObject.scene != CurrentScene
				select e).ToArray();
		}
		if ((Object)(object)MainFont == (Object)null)
		{
			MainFont = (from e in Resources.FindObjectsOfTypeAll<TMP_FontAsset>()
				where (Object)(object)e != (Object)null && ((Object)e).name == "VCR_OSD_MONO_1"
				select e).FirstOrDefault();
		}
		Setup_Levels(currentScene);
	}

	public static void Setup_Levels(string levelName)
	{
		if (levelName == "Main Menu")
		{
			Invoke_Load_FentoLevel(levelName, Fento_LevelLoaders.Main_Menu.SetupFentoLevel);
			Fento_Utils.Invoke_WithDelay(0.75f, delegate
			{
				if ((Object)(object)Fento_Assets.Guttertank.obj == (Object)null || (Object)(object)Fento_Assets.Gutterman.obj == (Object)null || (Object)(object)Fento_Assets.RagePrefab.obj == (Object)null || (Object)(object)Fento_Assets.Insignia.obj == (Object)null)
				{
					((MonoBehaviour)Fento_Loader._Instance).StartCoroutine(Fento_Assets.Fento_LoadAllAssetsGradually());
				}
			});
			return;
		}
		Fento_Utils.Invoke_NextFrame(delegate
		{
			if ((Object)(object)MonoSingleton<FinalRank>.Instance != (Object)null && MonoSingleton<FinalRank>.Instance.toAppear.Length != 0 && (Object)(object)MonoSingleton<FinalRank>.Instance.toAppear[0] != (Object)null && (Object)(object)MonoSingleton<FinalRank>.Instance.toAppear[0].transform.GetChild(1) != (Object)null)
			{
				ComponentExtensions.GetOrAddComponent<Add_Fento_Marked>((Component)(object)MonoSingleton<FinalRank>.Instance.toAppear[0].transform.GetChild(1)).Real_Level = false;
				GameObjectExtensions.GetOrAddComponent<Add_Fento_Skill_Marked>(((Component)MonoSingleton<FinalRank>.Instance.extraInfo).gameObject).Real_Level = false;
			}
		});
		if (!Difficulty_Options.Global_Disable_Level_Changes)
		{
			if (levelName == "Level 0-1")
			{
				Invoke_Load_FentoLevel(levelName, Fento_LevelLoaders.Prelude_0_1.SetupFentoLevel);
			}
			else if (levelName == "Level 7-4")
			{
				Invoke_Load_FentoLevel(levelName, Fento_LevelLoaders.VIOLENCE_7_4.SetupFentoLevel);
			}
		}
	}

	public static void Invoke_Load_FentoLevel(string levelName, Action levelCaster)
	{
		Fento_Utils.Invoke_NextFrame(delegate
		{
			if ((Object)(object)MonoSingleton<FinalRank>.Instance != (Object)null && MonoSingleton<FinalRank>.Instance.toAppear.Length != 0 && (Object)(object)MonoSingleton<FinalRank>.Instance.toAppear[0] != (Object)null && (Object)(object)MonoSingleton<FinalRank>.Instance.toAppear[0].transform.GetChild(1) != (Object)null)
			{
				ComponentExtensions.GetOrAddComponent<Add_Fento_Marked>((Component)(object)MonoSingleton<FinalRank>.Instance.toAppear[0].transform.GetChild(1)).Real_Level = true;
				GameObjectExtensions.GetOrAddComponent<Add_Fento_Skill_Marked>(((Component)MonoSingleton<FinalRank>.Instance.extraInfo).gameObject).Real_Level = true;
			}
		});
		if (levelCaster != null)
		{
			Fento_Loader._Logger.LogInfo((object)("!!!---!!! Start Fento LOADER " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! Start Fento LOADER " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogInfo((object)("!!!---!!! Start Fento LOADER " + levelName + " !!!---!!!"));
			levelCaster();
			StatsManager instance = MonoSingleton<StatsManager>.Instance;
			if ((Object)(object)instance != (Object)null && Fento_LevelLoaders.Level_Mults.TryGetValue(levelName, out (float, float, float) value))
			{
				for (int i = 0; i < instance.timeRanks.Length; i++)
				{
					instance.timeRanks[i] = (int)((float)instance.timeRanks[i] * value.Item1);
				}
				for (int j = 0; j < instance.styleRanks.Length; j++)
				{
					instance.styleRanks[j] = (int)((float)instance.styleRanks[j] * value.Item2);
				}
				for (int k = 0; k < instance.killRanks.Length; k++)
				{
					instance.killRanks[k] = (int)((float)instance.killRanks[k] * value.Item3);
				}
			}
			Fento_Utils.Invoke_NextFrame(delegate
			{
				Fento_Utils.Invoke_WithDelay(0.5f, Fento_Utils.Forse_Clear);
			});
			Fento_Loader._Logger.LogInfo((object)("!!!---!!! End Fento LOADER " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! End Fento LOADER " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogInfo((object)("!!!---!!! End Fento LOADER " + levelName + " !!!---!!!"));
		}
		else
		{
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! MISSING Fento Level Loader " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! MISSING Fento Level Loader " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! MISSING Fento Level Loader " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! MISSING Fento Level Loader " + levelName + " !!!---!!!"));
			Fento_Loader._Logger.LogWarning((object)("!!!---!!! MISSING Fento Level Loader " + levelName + " !!!---!!!"));
		}
	}
}
public static class Fento_Assets
{
	[CompilerGenerated]
	private sealed class <Fento_LoadAllAssetsGradually>d__7 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		private FieldInfo[] <>7__wrap1;

		private int <>7__wrap2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <Fento_LoadAllAssetsGradually>d__7(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>7__wrap1 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
			{
				<>1__state = -1;
				Fento_Loader._Logger.LogInfo((object)"[Loader] Loading Assets");
				FieldInfo[] fields = typeof(Fento_Assets).GetFields(BindingFlags.Static | BindingFlags.Public);
				<>7__wrap1 = fields;
				<>7__wrap2 = 0;
				goto IL_00d1;
			}
			case 1:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(0.05f);
				<>1__state = 2;
				return true;
			case 2:
				{
					<>1__state = -1;
					goto IL_00c3;
				}
				IL_00d1:
				if (<>7__wrap2 < <>7__wrap1.Length)
				{
					if (<>7__wrap1[<>7__wrap2].GetValue(typeof(Fento_Assets)) is Fento_Utils.AddresableObject addresableObject)
					{
						Fento_Loader._Logger.LogInfo((object)"-------------------------------------------------------");
						<>2__current = addresableObject.Long_Load();
						<>1__state = 1;
						return true;
					}
					goto IL_00c3;
				}
				<>7__wrap1 = null;
				Fento_Loader._Logger.LogInfo((object)"All Fento assets loaded.");
				return false;
				IL_00c3:
				<>7__wrap2++;
				goto IL_00d1;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	public static Fento_Utils.AddresableObject Guttertank = "Assets/Prefabs/Enemies/Spawners/BombEnemySpawnerGuttertank Variant.prefab";

	public static Fento_Utils.AddresableObject Gutterman = "Assets/Prefabs/Enemies/Spawners/BombEnemySpawnerGutterman Variant.prefab";

	public static Fento_Utils.AddresableObject RagePrefab = "Assets/Particles/Enemies/RageEffect.prefab";

	public static Fento_Utils.AddresableObject Insignia = "Virtue Insignia";

	public static Fento_Utils.AddresableObject Bolt = "Assets/Particles/Environment/LightningBoltWindupFollow Variant.prefab";

	public static Fento_Utils.AddresableObject BoltExplosion = "Assets/Prefabs/Attacks and Projectiles/Explosions/Lightning Strike Explosive.prefab";

	public static Fento_Utils.AddresableObject EnemyRocket = "Assets/Prefabs/Attacks and Projectiles/RocketEnemy.prefab";

	[IteratorStateMachine(typeof(<Fento_LoadAllAssetsGradually>d__7))]
	public static IEnumerator Fento_LoadAllAssetsGradually()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <Fento_LoadAllAssetsGradually>d__7(0);
	}
}
public static class Fento_LevelLoaders
{
	public static class Main_Menu
	{
		public static Fento_Utils.PathObject ExtraText_1 = "Canvas/Main Menu (1)/LeftSide/Text (3)";

		public static Fento_Utils.PathObject ExtraText_2 = "Canvas/Main Menu (1)/LeftSide/Text (3)/Text";

		public static Fento_Utils.PathObject ExtraText_Christmas = "Canvas/Main Menu (1)/LeftSide/Holiday Greetings/Text (Christmas)";

		public static Fento_Utils.PathObject ExtraText_Halloween = "Canvas/Main Menu (1)/LeftSide/Holiday Greetings/Text (Halloween)";

		public static Fento_Utils.PathObject ExtraText_Easter = "Canvas/Main Menu (1)/LeftSide/Holiday Greetings/Text (Easter)";

		public static TextMeshProUGUI Text_1;

		public static TextMeshProUGUI Text_2;

		public static TextMeshProUGUI Text_Christmas;

		public static TextMeshProUGUI Text_Halloween;

		public static TextMeshProUGUI Text_Easter;

		public static void SetupFentoLevel()
		{
			if ((Object)(object)ExtraText_1.gameObject != (Object)null)
			{
				Text_1 = ExtraText_1.GetComponent<TextMeshProUGUI>();
				TryAddFento(Text_1);
			}
			if ((Object)(object)ExtraText_2.gameObject != (Object)null)
			{
				Text_2 = ExtraText_2.GetComponent<TextMeshProUGUI>();
				TryAddFento(Text_2);
			}
			if ((Object)(object)ExtraText_Christmas.gameObject != (Object)null)
			{
				Text_Christmas = ExtraText_Christmas.GetComponent<TextMeshProUGUI>();
				TryAddFento(Text_Christmas);
			}
			if ((Object)(object)ExtraText_Halloween.gameObject != (Object)null)
			{
				Text_Halloween = ExtraText_Halloween.GetComponent<TextMeshProUGUI>();
				TryAddFento(Text_Halloween);
			}
			if ((Object)(object)ExtraText_Easter.gameObject != (Object)null)
			{
				Text_Easter = ExtraText_Easter.GetComponent<TextMeshProUGUI>();
				TryAddFento(Text_Easter);
			}
			LevelSelectPanel[] array = Resources.FindObjectsOfTypeAll<LevelSelectPanel>().Where(delegate(LevelSelectPanel L)
			{
				//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)
				Scene scene = ((Component)L).gameObject.scene;
				return ((Scene)(ref scene)).isLoaded && Changed_Levels.Contains(L.levelNumber);
			}).ToArray();
			foreach (LevelSelectPanel val in array)
			{
				if ((Object)(object)val != (Object)null && (Object)(object)((Component)val).transform.GetChild(0) != (Object)null)
				{
					GameObjectExtensions.GetOrAddComponent<Add_Fento_Marked>(((Component)((Component)val).transform.GetChild(0)).gameObject).Real_Level = true;
				}
			}
		}

		public static void TryAddFento(TextMeshProUGUI toAdd)
		{
			if (!((Object)(object)toAdd == (Object)null) && !((TMP_Text)toAdd).text.Contains("Fento Modfied"))
			{
				((TMP_Text)toAdd).text = ((TMP_Text)toAdd).text + "<color=#FF0000> + Fento</color> <color=#FF3F00>2.4.164</color> <color=#FF6A00>Modified</color>";
			}
		}
	}

	public static class Prelude_0_1
	{
		public static Fento_Utils.PathObject UTRAKILL = "Canvas/HurtScreen/Title Sound/Image";

		public static Fento_Utils.PathObject FentoTitle = "Canvas/HurtScreen/Title Sound";

		public static TextMeshProUGUI Text;

		public static Fento_Utils.PathObject A_Wave_1 = "3 - Gun Room/Enemies/Wave 1";

		public static Fento_Utils.PathObject A_Wave_2 = "3 - Gun Room/Enemies/Wave 2";

		public static Fento_Utils.PathObject A_Trigger_1 = "3 - Gun Room/Enemies/Trigger";

		public static ActivateArena A_ActivateArena_1;

		public static ActivateNextWave A_ActivateNextWave_1;

		public static Fento_Utils.PathObject B_Wave_1 = "4 - Hallway/4 Stuff/Enemy/Wave 1";

		public static Fento_Utils.PathObject B_Trigger_1 = "4 - Hallway/4 Stuff/Enemy/Trigger 1";

		public static Fento_Utils.PathObject B_Wave_2 = "4 - Hallway/4 Stuff/Enemy/Wave 2";

		public static Fento_Utils.PathObject B_Trigger_2 = "4 - Hallway/4 Stuff/Enemy/Trigger 2";

		public static ActivateArena B_ActivateArena_1;

		public static ActivateArena B_ActivateArena_2;

		public static Fento_Utils.PathObject C_Wave_1 = "6 - Glass Hallway/6 Content/Enemies";

		public static Fento_Utils.PathObject C_Trigger_1 = "6 - Glass Hallway/6 Content/Enemies/Trigger";

		public static ActivateArena C_ActivateArena_1;

		public static Fento_Utils.PathObject D_Wave_1 = "7 - Fan Room/7 Content/Enemies";

		public static Fento_Utils.PathObject D_Trigger_1 = "7 - Fan Room/7 Content/Enemies/Cube";

		public static Transform[] D_childs_1;

		public static ActivateArena D_ActivateArena_1;

		public static Fento_Utils.PathObject D_Wave_1_Clone = "7 - Fan Room/7 Content(Clone)/Enemies";

		public static Fento_Utils.PathObject E_Wave_1 = "9 - Projectile Arena/9 Content/Enemies/Projectile Wave";

		public static Fento_Utils.PathObject E_Wave_2 = "9 - Projectile Arena/9 Content/Enemies/New Wave";

		public static Fento_Utils.PathObject E_Trigger_1 = "9 - Projectile Arena/9 Content/Enemies/Cube";

		public static ActivateArena E_ActivateArena_1;

		public static ActivateNextWave E_ActivateNextWave_1;

		public static ActivateNextWave E_ActivateNextWave_2;

		public static Fento_Utils.PathObject E_Wave_1_Clone = "9 - Projectile Arena/9 Content(Clone)/Enemies/Projectile Wave";

		public static Fento_Utils.PathObject E_Wave_2_Clone = "9 - Projectile Arena/9 Content(Clone)/Enemies/New Wave";

		public static Fento_Utils.PathObject F_Wave_1 = "10 - Combo Hallway/10 Content/Enemies/Wave 1";

		public static Fento_Utils.PathObject F_Wave_2 = "10 - Combo Hallway/10 Content/Enemies/Wave 2";

		public static Fento_Utils.PathObject F_Trigger_1 = "10 - Combo Hallway/10 Content/Enemies/Trigger 1";

		public static Fento_Utils.PathObject F_Trigger_2 = "10 - Combo Hallway/10 Content/Enemies/Trigger 2";

		public static ActivateArena F_ActivateArena_1;

		public static ActivateArena F_ActivateArena_2;

		public static Fento_Utils.PathObject F_Wave_1_Clone = "10 - Combo Hallway/10 Content(Clone)/Enemies/Wave 1";

		public static Fento_Utils.PathObject F_Wave_2_Clone = "10 - Combo Hallway/10 Content(Clone)/Enemies/Wave 2";

		public static Fento_Utils.PathObject G_Wave_1 = "11 - Projectile Zombies Room/11 Content/Enemies/Wave 1";

		public static Fento_Utils.PathObject G_Wave_2 = "11 - Projectile Zombies Room/11 Content/Enemies/Wave 1/Filth";

		public static Fento_Utils.PathObject G_Trigger_1A = "11 - Projectile Zombies Room/11 Content/Enemies/Trigger 1A";

		public static Fento_Utils.PathObject G_Trigger_1B = "11 - Projectile Zombies Room/11 Content/Enemies/Trigger 1B";

		public static Fento_Utils.PathObject G_Trigger_2 = "11 - Projectile Zombies Room/11 Content/Enemies/Trigger 2";

		public static ActivateArena G_ActivateArena_1A;

		public static ActivateArena G_ActivateArena_1B;

		public static ActivateArena G_ActivateArena_2;

		public static Fento_Utils.PathObject G_Wave_1_Clone = "11 - Projectile Zombies Room/11 Content(Clone)/Enemies/Wave 1";

		public static Fento_Utils.PathObject G_Wave_2_Clone = "11 - Projectile Zombies Room/11 Content(Clone)/Enemies/Wave 1/Filth";

		public static Fento_Utils.PathObject H_Wave_1 = "12 - Boss Hallway/12 Content/Enemies";

		public static Fento_Utils.PathObject H_Trigger_1 = "12 - Boss Hallway/12 Content/Enemies/Cube";

		public static Transform[] H_childs_1;

		public static ActivateArena H_ActivateArena_1;

		public static Fento_Utils.PathObject H_Wave_1_Clone = "12 - Boss Hallway/12 Content(Clone)/Enemies";

		public static Fento_Utils.PathObject H_Secret_Wave_1 = "12 - Boss Hallway/12 Content/Secret Area";

		public static EnemyIdentifier I_Boss_MaliciousFace;

		public static List<Idol> I_Idols = new List<Idol>();

		public static Fento_Utils.PathObject I_Boss = "13 - Malicious Face Arena/13 Content/Boss/Spider";

		public static Fento_Utils.PathObject I_Wave_1 = "13 - Malicious Face Arena/13 Content/Boss";

		public static Fento_Utils.PathObject I_Trigger_1 = "13 - Malicious Face Arena/13 Content/Trigger";

		public static ObjectActivator I_ObjectActivator_1;

		public static ActivateNextWave I_ActivateNextWave_1;

		public static ActivateArena I_ActivateArena_1;

		public static Fento_Utils.PathObject I_Wave_1_Clone = "13 - Malicious Face Arena/13 Content(Clone)/Boss";

		public static List<Machine> A_3_Machines_1 = new List<Machine>();

		public static List<Machine> E_9_Machines_2 = new List<Machine>();

		public static List<Machine> F_10_Machines_3 = new List<Machine>();

		public static List<Machine> G_11_Machines_4 = new List<Machine>();

		public static List<Machine> H_12_Machines_5 = new List<Machine>();

		public static Fento_Utils.PathObject Hint_1 = "5 - Glass Intro/5 Nonstuff/Cube (2)";

		public static HudMessage Message_1;

		public const string Text_1 = "<color=orange>ENVIRONMENT</color> and <color=orange>TACTICS</color> can be very <color=#89FFFF>USEFUL</color> \n<color=#FF0000>YOU KNOW THE DRIL</color>";

		public static Fento_Utils.PathObject Hint_2 = "10 - Combo Hallway/10 Nonstuff/Hint";

		public static HudMessage Message_2;

		public const string Text_2 = "Upon death <color=orange>Radiance Idols</color> now can <color=#89FFFF>INCREASE RADIANCE TIER</color> \n<color=#FF0000>IT'S NOT GONNA HURT</color>";

		public static Fento_Utils.PathObject Hint_3 = "11 - Projectile Zombies Room/11 Nonstuff/Hint";

		public static HudMessage Message_3;

		public const string Text_3 = "<color=#FF6A00>SOME ENEMIES</color> now form <color=#89FFFF>UNIQUE SYMBIOTIC PAIRS</color> \n<color=#FF0000>DON'T BE SURPRISED</color>";

		public static Fento_Utils.PathObject Hint_4 = "12 - Boss Hallway/12 Nonstuff/Hint";

		public static HudMessage Message_4;

		public const string Text_4 = "<color=#FF0000>GOOD LUCK</color>";

		public static void SetupFentoLevel()
		{
			//IL_0022: 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_0182: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_071e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0732: Unknown result type (might be due to invalid IL or missing references)
			//IL_0757: Unknown result type (might be due to invalid IL or missing references)
			//IL_076b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0790: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0800: Unknown result type (might be due to invalid IL or missing references)
			//IL_0814: Unknown result type (might be due to invalid IL or missing references)
			//IL_0838: Unknown result type (might be due to invalid IL or missing references)
			//IL_084c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0871: Unknown result type (might be due to invalid IL or missing references)
			//IL_0885: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dd7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0deb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ece: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe4: Unknown result type (might be due to invalid IL or missing references)
			//IL_100b: Unknown result type (might be due to invalid IL or missing references)
			//IL_101f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1046: Unknown result type (might be due to invalid IL or missing references)
			//IL_105a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1081: Unknown result type (might be due to invalid IL or missing references)
			//IL_1095: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_110b: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)UTRAKILL.transform != (Object)null)
			{
				UTRAKILL.transform.localScale = Vector3.zero;
				UTRAKILL.gameObject.SetActive(false);
			}
			if ((Object)(object)FentoTitle.transform != (Object)null)
			{
				Text = GameObjectExtensions.GetOrAddComponent<TextMeshProUGUI>(FentoTitle.gameObject);
				if ((Object)(object)Text != (Object)null && ((TMP_Text)Text).text != (Difficulty_Options.Skill_Issue ? "SKILLISSUE" : "FENTOKILL"))
				{
					((TMP_Text)Text).font = Fento_Core.MainFont;
					((Graphic)Text).color = new Color(1f, 1f, 1f);
					if (Difficulty_Options.Skill_Issue)
					{
						((TMP_Text)Text).fontSize = 190f;
						((TMP_Text)Text).text = "SKILLISSUE";
						((TMP_Text)Text).colorGradient = new VertexGradient(new Color(0.3f, 1f, 0.3f, 1f), new Color(0.1f, 0.95f, 0.1f, 1f), new Color(0f, 0.5f, 0f, 1f), new Color(0f, 0.15f, 0f, 1f));
					}
					else
					{
						((TMP_Text)Text).colorGradient = new VertexGradient(new Color(1f, 0.3f, 0.3f, 1f), new Color(0.95f, 0.1f, 0.1f, 1f), new Color(0.5f, 0f, 0f, 1f), new Color(0.15f, 0f, 0f, 1f));
						if (Difficulty_Options.Extra_Skill_Respect)
						{
							((TMP_Text)Text).fontSize = 190f;
							((TMP_Text)Text).text = "FENTOKILL+";
						}
						else
						{
							((TMP_Text)Text).fontSize = 200f;
							((TMP_Text)Text).text = "FENTOKILL";
						}
					}
					((TMP_Text)Text).fontStyle = (FontStyles)1;
					((TMP_Text)Text).enableVertexGradient = true;
					((TMP_Text)Text).alignment = (TextAlignmentOptions)514;
				}
			}
			A_3_Machines_1.Clear();
			E_9_Machines_2.Clear();
			F_10_Machines_3.Clear();
			G_11_Machines_4.Clear();
			H_12_Machines_5.Clear();
			I_Idols.Clear();
			I_Boss_MaliciousFace = null;
			Message_1 = Hint_1.GetComponent<HudMessage>();
			Message_1.Set_HudMessage("<color=orange>ENVIRONMENT</color> and <color=orange>TACTICS</color> can be very <color=#89FFFF>USEFUL</color> \n<color=#FF0000>YOU KNOW THE DRIL</color>");
			Message_2 = Hint_2.GetComponent<HudMessage>();
			Message_2.Set_HudMessage("Upon death <color=orange>Radiance Idols</color> now can <color=#89FFFF>INCREASE RADIANCE TIER</color> \n<color=#FF0000>IT'S NOT GONNA HURT</color>");
			Message_3 = Hint_3.GetComponent<HudMessage>();
			Message_3.Set_HudMessage("<color=#FF6A00>SOME ENEMIES</color> now form <color=#89FFFF>UNIQUE SYMBIOTIC PAIRS</color> \n<color=#FF0000>DON'T BE SURPRISED</color>");
			Message_4 = Hint_4.GetComponent<HudMessage>();
			Message_4.Set_HudMessage("<color=#FF0000>GOOD LUCK</color>");
			A_ActivateArena_1 = A_Trigger_1.GetComponent<ActivateArena>();
			A_ActivateNextWave_1 = A_Wave_1.GetComponent<ActivateNextWave>();
			B_ActivateArena_1 = B_Trigger_1.GetComponent<ActivateArena>();
			B_ActivateArena_2 = B_Trigger_2.GetComponent<ActivateArena>();
			C_ActivateArena_1 = C_Trigger_1.GetComponent<ActivateArena>();
			D_childs_1 = D_Wave_1.childs;
			D_ActivateArena_1 = D_Trigger_1.GetComponent<ActivateArena>();
			E_ActivateArena_1 = E_Trigger_1.GetComponent<ActivateArena>();
			E_ActivateNextWave_1 = E_Wave_1.GetComponent<ActivateNextWave>();
			E_ActivateNextWave_2 = E_Wave_2.GetComponent<ActivateNextWave>();
			F_ActivateArena_1 = F_Trigger_1.GetComponent<ActivateArena>();
			F_ActivateArena_2 = F_Trigger_2.GetComponent<ActivateArena>();
			G_ActivateArena_1A = G_Trigger_1A.GetComponent<ActivateArena>();
			G_ActivateArena_1B = G_Trigger_1B.GetComponent<ActivateArena>();
			G_ActivateArena_2 = G_Trigger_2.GetComponent<ActivateArena>();
			H_childs_1 = H_Wave_1.childs;
			H_ActivateArena_1 = H_Trigger_1.GetComponent<ActivateArena>();
			I_ObjectActivator_1 = I_Trigger_1.GetComponent<ObjectActivator>();
			I_ActivateNextWave_1 = I_Wave_1.GetComponent<ActivateNextWave>();
			I_ActivateArena_1 = I_Trigger_1.GetComponent<ActivateArena>();
			Fento_Utils.Enemy_InStack(A_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Mindflayer, ((Component)enemy).transform, Vector3.up * (5f + Random.value * 15f));
			});
			Fento_Utils.Enemy_InStack(A_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				enemy.Sandify(false);
			}, Hard_Mode_Only: true);
			Fento_Utils.Update_ActivateArena(A_ActivateArena_1, A_Wave_1.transform);
			bool mini = false;
			Fento_Utils.Enemy_InStack(A_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_003e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: 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_0029: Unknown result type (might be due to invalid IL or missing references)
				mini = !mini;
				if (!mini)
				{
					Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.SwordsMachineNonboss, ((Component)enemy).transform, Vector3.up * 0.1f);
				}
				else
				{
					Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Drone, ((Component)enemy).transform, Vector3.up * (16f + Random.value * 6f));
				}
			});
			Fento_Utils.Enemy_InStack(A_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Invalid comparison between Unknown and I4
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_002c: Invalid comparison between Unknown and I4
				if ((int)enemy.enemyType == 7)
				{
					Machine component10 = ((Component)enemy).GetComponent<Machine>();
					if ((Object)(object)component10 != (Object)null)
					{
						A_3_Machines_1.Add(component10);
					}
				}
				else if ((int)enemy.enemyType == 1)
				{
					GameObjectExtensions.GetOrAddComponent<Drone_AntiSoftLock>(((Component)enemy).gameObject);
				}
			});
			Fento_Utils.Enemy_InStack(A_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Invalid comparison between Unknown and I4
				enemy.immuneToFriendlyFire = true;
				if ((int)enemy.enemyType == 1)
				{
					enemy.radianceTier += 1.1f;
					enemy.healthBuffModifier += 1.1f;
					enemy.BuffAll();
				}
			}, Hard_Mode_Only: true);
			Fento_Utils.Make_List_MachineSymbiote(A_3_Machines_1);
			Fento_Utils.Update_ActivateNextWave(A_ActivateNextWave_1, A_Wave_2.transform);
			Fento_Utils.Enemy_InStack(B_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				if ((int)enemy.enemyType != 21)
				{
					enemy.Sandify(false);
					enemy.radianceTier += 2f;
					enemy.healthBuffModifier += 25f;
					enemy.BuffAll();
				}
			}, Hard_Mode_Only: true);
			Fento_Utils.Update_ActivateArena(B_ActivateArena_1, B_Wave_1.transform);
			Fento_Utils.Invoke_NextFrame(delegate
			{
				Fento_Utils.Clear_AreaFromClones(((Component)B_ActivateArena_1).transform);
			});
			Fento_Utils.Enemy_InStack(B_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Cerberus, ((Component)enemy).transform);
			});
			Fento_Utils.Enemy_InStack(B_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				Transform transform9 = ((Component)enemy).transform;
				transform9.localScale *= 0.55f;
				NavMeshAgent component9 = ((Component)enemy).GetComponent<NavMeshAgent>();
				if ((Object)(object)component9 != (Object)null)
				{
					component9.acceleration = 50f;
					component9.speed = 50f;
				}
			});
			Fento_Utils.Update_ActivateArena(B_ActivateArena_2, B_Wave_2.transform);
			bool variant = false;
			Fento_Utils.Enemy_InStack(C_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: 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_0036: Unknown result type (might be due to invalid IL or missing references)
				variant = !variant;
				Vector3 val;
				if (!variant)
				{
					Transform transform7 = ((Component)enemy).transform;
					val = new Vector3(Random.value, 0f, Random.value);
					Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Turret, transform7, ((Vector3)(ref val)).normalized, DestroyOnReplace: false);
				}
				else
				{
					Transform transform8 = ((Component)enemy).transform;
					val = new Vector3(Random.value, 0f, Random.value);
					Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.ShotgunHusk, transform8, ((Vector3)(ref val)).normalized, DestroyOnReplace: false);
				}
				GameObjectExtensions.GetOrAddComponent<Fento_DontLoop_Tag>(((Component)enemy).gameObject);
			});
			Fento_Utils.Enemy_InStack(C_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0013: Unknown result type (might be due to invalid IL or missing references)
				//IL_001a: Invalid comparison between Unknown and I4
				enemy.radianceTier += 3.5f;
				if ((int)enemy.enemyType == 20)
				{
					enemy.Sandify(false);
					enemy.radianceTier -= 1.4f;
					enemy.healthBuffModifier += 0.55f;
				}
				else
				{
					enemy.healthBuffModifier += 1.7f;
				}
				enemy.damageBuffModifier += 0.5f;
				enemy.BuffAll();
			}, Hard_Mode_Only: true);
			Fento_Utils.Update_ActivateArena(C_ActivateArena_1, C_Wave_1.transform);
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Virtue, D_childs_1[0], new Vector3(10f, 61f, 576f), Quaternion.Euler(0f, 90f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Virtue, D_childs_1[1], new Vector3(60f, -10f, 607f), Quaternion.Euler(0f, 200f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Mindflayer, D_childs_1[2], new Vector3(23f, 25f, 565f), Quaternion.Euler(0f, 45f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Mindflayer, D_childs_1[3], new Vector3(68f, 30f, 597f), Quaternion.Euler(0f, 230f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.SwordsMachineNonboss, D_childs_1[4], new Vector3(54f, -6.8762f, 567f), Quaternion.Euler(0f, 270f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Gutterman, D_childs_1[5], new Vector3(40f, 8.0833f, 621f), Quaternion.Euler(0f, 180f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Guttertank, D_childs_1[6], new Vector3(59f, -1.8618f, 585f), Quaternion.Euler(0f, 200f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Guttertank, D_childs_1[7], new Vector3(22f, 8.1667f, 590f), Quaternion.Euler(0f, 125f, 0f));
			Fento_Utils.Custom_ReplaceEnemy(Fento_Utils.DetectebleEnemies.CentaurRocketLauncher, D_childs_1[8], new Vector3(67f, 87.5f, 579f), Quaternion.Euler(0f, 180f, 0f));
			Fento_Utils.Enemy_InStack(D_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0060: Invalid comparison between Unknown and I4
				//IL_006c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Invalid comparison between Unknown and I4
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_007d: Invalid comparison between Unknown and I4
				if ((int)enemy.enemyType == 35)
				{
					enemy.Sandify(false);
					enemy.damageBuffModifier += 0.75f;
					enemy.healthBuffModifier += 0.25f;
					enemy.speedBuffModifier += 0.5f;
					enemy.radianceTier += 2.5f;
				}
				if ((int)enemy.enemyType == 5)
				{
					enemy.Sandify(false);
				}
				else if ((int)enemy.enemyType != 34 && (int)enemy.enemyType != 9)
				{
					enemy.radianceTier += 1.25f;
					enemy.BuffAll();
				}
				enemy.immuneToFriendlyFire = true;
			}, Hard_Mode_Only: true);
			Fento_Utils.Update_ActivateArena(D_ActivateArena_1, D_Wave_1.transform);
			Fento_Utils.Invoke_NextFrame(delegate
			{
				Fento_Utils.Clear_AreaFromClones(D_Wave_1_Clone.transform);
			});
			Fento_Utils.Enemy_InStack(E_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Turret, ((Component)enemy).transform);
			});
			Fento_Utils.Enemy_InStack(E_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				enemy.Sandify(false);
				enemy.healthBuffModifier += 0.35f;
				enemy.radianceTier = 4f;
				enemy.BuffAll();
				NavMeshAgent component8 = ((Component)enemy).GetComponent<NavMeshAgent>();
				if ((Object)(object)component8 != (Object)null)
				{
					component8.acceleration += 15f;
					component8.speed += 15f;
				}
			}, Hard_Mode_Only: true);
			Fento_Utils.Update_ActivateArena(E_ActivateArena_1, E_Wave_1.transform);
			bool idolOnly = false;
			Fento_Utils.Enemy_InStack(E_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Invalid comparison between Unknown and I4
				//IL_0087: Unknown result type (might be due to invalid IL or missing references)
				//IL_008c: Unknown result type (might be due to invalid IL or missing references)
				//IL_008f: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: 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_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				if ((int)enemy.enemyType == 3)
				{
					Object.Destroy((Object)(object)((Component)enemy).gameObject);
				}
				else
				{
					idolOnly = !idolOnly;
					Vector3 extraPos;
					if (idolOnly)
					{
						Transform transform4 = ((Component)enemy).transform;
						extraPos = new Vector3(Random.value * 3.5f, 0f, Random.value * 3.5f);
						Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Idol, transform4, ((Vector3)(ref extraPos)).normalized);
					}
					else
					{
						Transform transform5 = ((Component)enemy).transform;
						extraPos = new Vector3(Random.value * 3.5f, 0f, Random.value * 3.5f);
						Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Idol, transform5, ((Vector3)(ref extraPos)).normalized, DestroyOnReplace: false);
						Transform transform6 = ((Component)enemy).transform;
						extraPos = default(Vector3);
						Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Sisyphus, transform6, extraPos);
					}
				}
			});
			Fento_Utils.Enemy_InStack(E_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				if ((int)enemy.enemyType == 19)
				{
					Machine component7 = ((Component)enemy).GetComponent<Machine>();
					if ((Object)(object)component7 != (Object)null)
					{
						E_9_Machines_2.Add(component7);
					}
				}
			});
			Fento_Utils.Enemy_InStack(E_Wave_2.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: Unknown result type (might be due to invalid IL or missing references)
				if ((int)enemy.enemyType == 21)
				{
					Transform transform3 = ((Component)enemy).transform;
					transform3.localScale *= 0.6f;
					GameObjectExtensions.GetOrAddComponent<Idol_Buff_Radiance>(((Component)enemy).gameObject).TierToAdd = 0.15f;
					enemy.BuffAll();
					enemy.Sandify(false);
				}
			}, Hard_Mode_Only: true);
			Fento_Utils.Make_List_MachineSymbiote(E_9_Machines_2);
			Fento_Utils.Update_ActivateNextWave(E_ActivateNextWave_1, E_Wave_2.transform);
			E_ActivateNextWave_2.enemyCount = 6;
			Fento_Utils.Invoke_NextFrame(delegate
			{
				Fento_Utils.Clear_AreaFromClones(E_Wave_1_Clone.transform);
				Fento_Utils.Clear_AreaFromClones(E_Wave_2_Clone.transform);
			});
			Fento_Utils.Enemy_InStack(F_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				//IL_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0033: Unknown result type (might be due to invalid IL or missing references)
				Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Idol, ((Component)enemy).transform, new Vector3(2f, 0f, 0f), DestroyOnReplace: false);
				Fento_Utils.Base_ReplaceEnemy(Fento_Utils.DetectebleEnemies.Streetcleaner, ((Component)enemy).transform);
			});
			Fento_Utils.Enemy_InStack(F_Wave_1.transform, delegate(EnemyIdentifier enemy)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Invalid comparison between Unknown and I4
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_0049: Invalid comparison between Unknown and I4
				//IL_005e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				if ((int)enemy.enemyType == 6)
				{
					enemy.healthBuffModifier += 8f;
					enemy.damageBuffModifier += 0.25f;
					enemy.radianceTier += 2.5f;
				}
				else if ((int)enemy.enemyType == 21)
				{
					GameObjectExtensions.GetOrAddComponent<Idol_Buff_Radiance>(((Component)enemy).