Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of TKronix Scripts v0.2.0
plugins/TKronix.Scripts.dll
Decompiled 2 weeks agousing 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 { } }