Decompiled source of TKronix Scripts v0.2.0

plugins/TKronix.Scripts.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LethalBots.AI;
using LethalBots.Managers;
using Microsoft.CodeAnalysis;
using TKEditorScripts;
using TKronix.Scripts.NetcodePatcher;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("ClientNetworkTransform")]
[assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")]
[assembly: IgnoresAccessChecksTo("DissonanceVoip")]
[assembly: IgnoresAccessChecksTo("DunGen")]
[assembly: IgnoresAccessChecksTo("DunGen.Integration.ASPP")]
[assembly: IgnoresAccessChecksTo("DunGen.Integration.UnityNav")]
[assembly: IgnoresAccessChecksTo("EasyTextEffects")]
[assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")]
[assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")]
[assembly: IgnoresAccessChecksTo("LethalBots")]
[assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")]
[assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")]
[assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")]
[assembly: IgnoresAccessChecksTo("Unity.Burst")]
[assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")]
[assembly: IgnoresAccessChecksTo("Unity.Collections")]
[assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")]
[assembly: IgnoresAccessChecksTo("Unity.Jobs")]
[assembly: IgnoresAccessChecksTo("Unity.Mathematics")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")]
[assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")]
[assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")]
[assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")]
[assembly: IgnoresAccessChecksTo("Unity.ProBuilder")]
[assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")]
[assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")]
[assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")]
[assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Components")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")]
[assembly: IgnoresAccessChecksTo("Unity.Services.QoS")]
[assembly: IgnoresAccessChecksTo("Unity.Services.Relay")]
[assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")]
[assembly: IgnoresAccessChecksTo("Unity.Timeline")]
[assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.XR.CoreUtils")]
[assembly: IgnoresAccessChecksTo("Unity.XR.Management")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.ConformanceAutomation")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.MetaQuestSupport")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.MockRuntime")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.OculusQuestSupport")]
[assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.RuntimeDebugger")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SpatialTracking")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UI")]
[assembly: IgnoresAccessChecksTo("UnityEngine.XR.LegacyInputHelpers")]
[assembly: AssemblyCompany("TKronix.Scripts")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("0.2.0.0")]
[assembly: AssemblyInformationalVersion("0.2.0")]
[assembly: AssemblyProduct("TKEditorScripts")]
[assembly: AssemblyTitle("TKronix.Scripts")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.2.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
internal class <Module>
{
	static <Module>()
	{
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

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

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

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

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace LCEditorScripts.Scripts
{
	public class WaterSplashTrigger : MonoBehaviour
	{
		[Header("Water Settings")]
		[Tooltip("Set true if this water volume is inside the factory. Setting Inside Water Disables base game Splash Effect")]
		[SerializeField]
		private bool isInsideWater;

		[Tooltip("Set true if you dont want the base game Underwater filter effect")]
		[SerializeField]
		private bool disableBaseGameWaterFilter;

		[Tooltip("Enables Override Effect Volume")]
		[SerializeField]
		private bool overrideVolume;

		[Tooltip("Ádjusts how loud the Underwater Breathing audio effect is. Default: 1")]
		[SerializeField]
		[Range(0.5f, 1f)]
		public float overrideEffectVolume = 1f;

		[Tooltip("Scales the player's falling speed while inside the trigger. Values < 1 make falling slower(floaty). Values > 1 make falling faster.")]
		[SerializeField]
		[Range(0f, 3f)]
		private float fallSpeedModifier = 1f;

		[Tooltip("Controls how quickly fall speed adjusts toward the modified value")]
		[SerializeField]
		[Range(0f, 50f)]
		private float fallSpeedLerp = 10f;

		[Header("Splash Thresholds")]
		[Tooltip("Fall speed required to trigger a splash. Default = -4")]
		[SerializeField]
		private float splashFallThreshold = -4f;

		[Tooltip("Fall speed where splash becomes 'big'. Default = -17")]
		[SerializeField]
		private float bigSplashThreshold = -17f;

		[Header("Player Velocity Splash")]
		[Tooltip("If Player Velocity should cause the splash effect to play also. Player Running into the water will cause splash if enabled")]
		[SerializeField]
		private bool PlayerVelocitySplash;

		[Tooltip("Velocity speed required to trigger a splash. Default = 8")]
		[SerializeField]
		private float splashVelocityThreshold = 8f;

		[Tooltip("Velocity speed where splash becomes 'big'. Default = 15")]
		[SerializeField]
		private float bigSplashVelocityThreshold = 15f;

		private Collider _collider;

		private void Awake()
		{
			_collider = ((Component)this).GetComponent<Collider>();
		}

		private void OnTriggerStay(Collider other)
		{
			//IL_017b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			if (!((Component)other).CompareTag("Player"))
			{
				return;
			}
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if ((Object)(object)component == (Object)null)
			{
				return;
			}
			if (component.isFallingFromJump || component.isFallingNoJump)
			{
				component.fallValue = Mathf.Lerp(component.fallValue, component.fallValue * fallSpeedModifier, fallSpeedLerp * Time.deltaTime);
				component.fallValueUncapped = component.fallValue;
			}
			if ((Object)(object)component.underwaterCollider == (Object)null || (Object)(object)component.underwaterCollider != (Object)(object)((Component)this).GetComponent<Collider>())
			{
				component.underwaterCollider = _collider;
				HUDManager.Instance.underwaterScreenFilter.isGlobal = true;
			}
			else if (component.isUnderwater && (Object)(object)component.underwaterCollider == (Object)(object)_collider)
			{
				if (disableBaseGameWaterFilter)
				{
					HUDManager.Instance.underwaterScreenFilter.isGlobal = false;
				}
				if (overrideVolume)
				{
					HUDManager.Instance.breathingUnderwaterAudio.volume = Mathf.Lerp(HUDManager.Instance.breathingUnderwaterAudio.volume, overrideEffectVolume, 10f * Time.deltaTime);
				}
				StartOfRound.Instance.drowningTimer = 1f;
				if (global::TKEditorScripts.TKEditorScripts.Instance.LethalBotsInstalled)
				{
					LethalBotsDrowning(component);
				}
			}
			else if (!component.isUnderwater)
			{
				component.underwaterCollider = _collider;
				component.isUnderwater = true;
				bool flag = component.fallValue < splashFallThreshold;
				bool flag2 = component.isFallingFromJump || component.isFallingNoJump;
				Vector3 velocity = component.thisController.velocity;
				bool flag3 = ((Vector3)(ref velocity)).magnitude > splashVelocityThreshold;
				if (PlayerVelocitySplash && !flag2 && !isInsideWater && flag3)
				{
					velocity = component.thisController.velocity;
					bool flag4 = ((Vector3)(ref velocity)).magnitude > bigSplashVelocityThreshold;
					TimeOfDay.Instance.WaterSplashEffect(((Component)component).transform.position, flag4, true);
				}
				else if (!isInsideWater && flag2 && flag)
				{
					bool flag5 = component.fallValue > bigSplashThreshold;
					TimeOfDay.Instance.WaterSplashEffect(((Component)component).transform.position, flag5, true);
				}
			}
		}

		private void OnTriggerExit(Collider other)
		{
			if (!((Component)other).CompareTag("Player"))
			{
				return;
			}
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if (!((Object)(object)component == (Object)null))
			{
				if ((Object)(object)component.underwaterCollider == (Object)(object)_collider)
				{
					component.underwaterCollider = null;
					component.isUnderwater = false;
				}
				if ((Object)(object)component == (Object)(object)GameNetworkManager.Instance.localPlayerController)
				{
					HUDManager.Instance.underwaterScreenFilter.isGlobal = true;
				}
			}
		}

		private void LethalBotsDrowning(PlayerControllerB player)
		{
			LethalBotAI lethalBotAI = LethalBotManager.Instance.GetLethalBotAI(player);
			if (Object.op_Implicit((Object)(object)lethalBotAI))
			{
				lethalBotAI.NpcController.DrowningTimer = 1f;
			}
		}

		private void OnDestroy()
		{
			if (Object.op_Implicit((Object)(object)HUDManager.Instance))
			{
				((Behaviour)HUDManager.Instance.underwaterScreenFilter).enabled = true;
				HUDManager.Instance.underwaterScreenFilter.isGlobal = true;
			}
			if (Object.op_Implicit((Object)(object)GameNetworkManager.Instance))
			{
				GameNetworkManager.Instance.localPlayerController.underwaterCollider = null;
				GameNetworkManager.Instance.localPlayerController.isUnderwater = false;
			}
		}
	}
}
namespace TKEditorScripts
{
	[BepInPlugin("TKronix.Scripts", "TKEditorScripts", "0.2.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class TKEditorScripts : BaseUnityPlugin
	{
		public bool LethalBotsInstalled = Chainloader.PluginInfos.ContainsKey("T-Rizzle.LethalBots");

		public static TKEditorScripts Instance { get; private set; }

		internal static ManualLogSource Logger { get; private set; }

		internal static Harmony? Harmony { get; set; }

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			Instance = this;
			NetcodePatcher();
			Logger.LogInfo((object)"TKronix.Scripts v0.2.0 has loaded!");
		}

		private void NetcodePatcher()
		{
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "TKronix.Scripts";

		public const string PLUGIN_NAME = "TKEditorScripts";

		public const string PLUGIN_VERSION = "0.2.0";
	}
}
namespace TKEditorScripts.Scripts
{
	public class BlackHoleTrigger : MonoBehaviour
	{
		[Header("W.I.P Component (Bound to change avoid)")]
		private float pullSpeed = 10f;

		private float swirlSpeed = 8f;

		private float centreThreshold = 1.2f;

		public UnityEvent<PlayerControllerB> OnEnterRange;

		public UnityEvent<PlayerControllerB> OnReachCentre;

		private readonly HashSet<PlayerControllerB> controllersInRange = new HashSet<PlayerControllerB>();

		private void OnTriggerEnter(Collider other)
		{
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if ((Object)(object)component != (Object)null)
			{
				controllersInRange.Add(component);
				OnEnterRange?.Invoke(component);
			}
		}

		private void OnTriggerStay(Collider other)
		{
			//IL_0016: 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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_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)
			//IL_003c: 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)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if ((Object)(object)component != (Object)null)
			{
				Vector3 val = ((Component)this).transform.position - ((Component)component).transform.position;
				float magnitude = ((Vector3)(ref val)).magnitude;
				Vector3 normalized = ((Vector3)(ref val)).normalized;
				Vector3 val2 = normalized * pullSpeed;
				Vector3 val3 = Vector3.Cross(normalized, Vector3.up) * swirlSpeed;
				Vector3 externalForces = val2 + val3;
				component.externalForces = externalForces;
				if (magnitude <= centreThreshold)
				{
					OnReachCentre?.Invoke(component);
				}
			}
		}

		private void OnTriggerExit(Collider other)
		{
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if ((Object)(object)component != (Object)null)
			{
				controllersInRange.Remove(component);
			}
		}
	}
	public class PlantGrowth : MonoBehaviour
	{
		[CompilerGenerated]
		private sealed class <Grow>d__4 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public PlantGrowth <>4__this;

			private float <elapsed>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_006a: 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_00ab: Unknown result type (might be due to invalid IL or missing references)
				int num = <>1__state;
				PlantGrowth plantGrowth = <>4__this;
				switch (num)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<elapsed>5__2 = 0f;
					break;
				case 1:
					<>1__state = -1;
					break;
				}
				if (<elapsed>5__2 < plantGrowth.growTime)
				{
					<elapsed>5__2 += Time.deltaTime;
					float num2 = <elapsed>5__2 / plantGrowth.growTime;
					float num3 = Mathf.Lerp(0f, plantGrowth.finalScale, num2);
					((Component)plantGrowth).transform.localScale = plantGrowth.baseScale * num3;
					<>2__current = null;
					<>1__state = 1;
					return true;
				}
				((Component)plantGrowth).transform.localScale = plantGrowth.baseScale * plantGrowth.finalScale;
				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();
			}
		}

		[Header("W.I.P Component (Bound to change avoid)")]
		[SerializeField]
		private float growTime = 5f;

		[SerializeField]
		private float finalScale = 1f;

		private Vector3 baseScale;

		private void Start()
		{
			//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_0017: Unknown result type (might be due to invalid IL or missing references)
			baseScale = ((Component)this).transform.localScale;
			((Component)this).transform.localScale = Vector3.zero;
			((MonoBehaviour)this).StartCoroutine(Grow());
		}

		[IteratorStateMachine(typeof(<Grow>d__4))]
		private IEnumerator Grow()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Grow>d__4(0)
			{
				<>4__this = this
			};
		}
	}
	public class TeleportScript : MonoBehaviour
	{
		[Tooltip("Teleport Location object for Teleport To")]
		[SerializeField]
		private Transform targetLocation;

		[Tooltip("If Teleport Location object rotation should be used for Teleport To")]
		[SerializeField]
		private bool useTargetRotation;

		public void TeleportTo(PlayerControllerB player)
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)player == (Object)null))
			{
				player.TeleportPlayer(targetLocation.position, useTargetRotation, targetLocation.rotation.z, false, true);
			}
		}
	}
	public class TractorBeamZone : MonoBehaviour
	{
		[Header("Beam Settings")]
		[Tooltip("The Object that the player willbe pulled towards")]
		[SerializeField]
		private Transform pullCenter;

		[Tooltip("This is bascially the Pull Force which means the speed they be pulled at")]
		[SerializeField]
		private float pullSpeed = 50f;

		[Tooltip("The threashold for reaching the center to be registered")]
		[SerializeField]
		private float reachDistance = 0.5f;

		[Header("Events")]
		public UnityEvent OnPlayerEnterBeam;

		public UnityEvent OnPlayerExitBeam;

		public UnityEvent OnPlayerReachedCenter;

		private bool reachedCenter;

		private void OnTriggerEnter(Collider other)
		{
			if (((Component)other).CompareTag("Player"))
			{
				reachedCenter = false;
				UnityEvent onPlayerEnterBeam = OnPlayerEnterBeam;
				if (onPlayerEnterBeam != null)
				{
					onPlayerEnterBeam.Invoke();
				}
			}
		}

		private void OnTriggerExit(Collider other)
		{
			if (((Component)other).CompareTag("Player"))
			{
				reachedCenter = false;
				UnityEvent onPlayerExitBeam = OnPlayerExitBeam;
				if (onPlayerExitBeam != null)
				{
					onPlayerExitBeam.Invoke();
				}
			}
		}

		private void OnTriggerStay(Collider other)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: 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_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			if (!((Component)other).CompareTag("Player"))
			{
				return;
			}
			PlayerControllerB component = ((Component)other).GetComponent<PlayerControllerB>();
			if ((Object)(object)component == (Object)null)
			{
				return;
			}
			Vector3 position = ((Component)component).transform.position;
			component.ResetFallGravity();
			float num = Vector3.Distance(position, pullCenter.position);
			if (!reachedCenter && num <= reachDistance)
			{
				reachedCenter = true;
				UnityEvent onPlayerReachedCenter = OnPlayerReachedCenter;
				if (onPlayerReachedCenter != null)
				{
					onPlayerReachedCenter.Invoke();
				}
			}
			Vector3 val = pullCenter.position - position;
			Vector3 normalized = ((Vector3)(ref val)).normalized;
			Vector3 externalForces = normalized * pullSpeed;
			component.externalForces = externalForces;
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}
namespace TKronix.Scripts.NetcodePatcher
{
	[AttributeUsage(AttributeTargets.Module)]
	internal class NetcodePatchedAssemblyAttribute : Attribute
	{
	}
}