Please disclose if your mod was created primarily 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 Chocobo Getaway Moons v1.0.1
plugins/BlindPups.dll
Decompiled a year agousing System; using System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using BlindPups.NetcodePatcher; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; using UnityEngine.Animations.Rigging; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("BlindPups")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("BlindPups")] [assembly: AssemblyTitle("BlindPups")] [assembly: AssemblyVersion("1.0.0.0")] [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; } } } namespace BlindPups { [BepInPlugin("JacobG5.BlindPups", "BlindPups", "1.0.0")] public class Plugin : BaseUnityPlugin { private const string modGUID = "JacobG5.BlindPups"; private const string modName = "BlindPups"; private const string modVersion = "1.0.0"; private readonly Harmony harmony = new Harmony("JacobG5.BlindPups"); public static Plugin Instance; internal ManualLogSource mls; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("JacobG5.BlindPups"); Type[] types = Assembly.GetExecutingAssembly().GetTypes(); foreach (Type type in types) { try { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array = methods; foreach (MethodInfo methodInfo in array) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } catch { mls.LogInfo((object)"Skipping Netcode Class"); } } mls.LogInfo((object)"Netcode Successfully Patched!"); } } } namespace BlindPups.Components { public class BlindPupAI : EnemyAI, INoiseListener, IVisibleThreat { [Header("Blind Pup")] public int playerDamage = 50; public int enemyDamage = 2; public float hearingThreshold = 18f; [Header("Vanilla Mouth Dog")] public float noiseApproximation = 14f; public int suspicionLevel; private Vector3 previousPosition; public DampedTransform neckDampedTransform; private float AITimer; private bool hasEnteredChaseModeFully; private bool startedChaseModeCoroutine; public AudioClip screamSFX; public AudioClip breathingSFX; public AudioClip killPlayerSFX; private float hearNoiseCooldown; private bool inLunge; private float lungeCooldown; private bool inKillAnimation; public Transform mouthGrip; public bool endingLunge; private Ray ray; private RaycastHit rayHit; private Vector3 lastHeardNoisePosition; private Vector3 noisePositionGuess; private float lastHeardNoiseDistanceWhenHeard; private bool heardOtherHowl; private DeadBodyInfo? carryingBody; private Coroutine killPlayerCoroutine; public AISearchRoutine roamPlanet; private Collider debugCollider; private float timeSinceHittingOtherEnemy; private float coweringMeter; private bool coweringOnFloor; private bool coweringOnFloorDebounce; ThreatType IVisibleThreat.type => (ThreatType)3; int IVisibleThreat.SendSpecialBehaviour(int id) { return 0; } int IVisibleThreat.GetThreatLevel(Vector3 seenByPosition) { int num = ((base.enemyHP >= 2) ? 5 : 3); if (base.creatureAnimator.GetBool("StartedChase")) { num += 3; } return num; } int IVisibleThreat.GetInterestLevel() { return 0; } Transform IVisibleThreat.GetThreatLookTransform() { return base.eye; } Transform IVisibleThreat.GetThreatTransform() { return ((Component)this).transform; } Vector3 IVisibleThreat.GetThreatVelocity() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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) //IL_0022: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsOwner) { return base.agent.velocity; } return Vector3.zero; } float IVisibleThreat.GetVisibility() { if (base.isEnemyDead) { return 0f; } if (base.creatureAnimator.GetBool("StartedChase")) { return 1f; } return 0.75f; } public override void DoAIInterval() { ((EnemyAI)this).DoAIInterval(); _ = StartOfRound.Instance.livingPlayers; } public override void Start() { ((EnemyAI)this).Start(); base.useSecondaryAudiosOnAnimatedObjects = true; if (Random.Range(0, 10) < 2) { base.creatureVoice.pitch = Random.Range(0.6f, 1.3f); } else { base.creatureVoice.pitch = Random.Range(0.9f, 1.1f); } } public override void Update() { //IL_008e: 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_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0209: 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) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Update(); if (base.isEnemyDead) { base.creatureAnimator.SetLayerWeight(1, 0f); } else { if (!base.ventAnimationFinished) { return; } if (base.stunNormalizedTimer > 0f && !base.isEnemyDead) { if ((Object)(object)base.stunnedByPlayer != (Object)null && base.currentBehaviourStateIndex != 2 && ((NetworkBehaviour)this).IsOwner) { EnrageDogOnLocalClient(((Component)base.stunnedByPlayer).transform.position, Vector3.Distance(((Component)this).transform.position, ((Component)base.stunnedByPlayer).transform.position)); } base.creatureAnimator.SetLayerWeight(1, 1f); } else { base.creatureAnimator.SetLayerWeight(1, 0f); } base.hitsPhysicsObjects = base.currentBehaviourStateIndex >= 2; if (!coweringOnFloor) { if (!coweringOnFloorDebounce) { coweringOnFloorDebounce = true; base.creatureAnimator.SetBool("Cower", false); } if (coweringMeter >= 0f) { coweringMeter -= Time.deltaTime; } } else { if (coweringOnFloorDebounce) { coweringOnFloorDebounce = false; base.creatureAnimator.SetBool("Cower", true); base.creatureAnimator.SetTrigger("StartCowering"); } if (coweringMeter < 0.7f) { coweringMeter += Time.deltaTime; } } hearNoiseCooldown -= Time.deltaTime; timeSinceHittingOtherEnemy += Time.deltaTime; Animator creatureAnimator = base.creatureAnimator; Vector3 val = Vector3.ClampMagnitude(((Component)this).transform.position - previousPosition, 1f); creatureAnimator.SetFloat("speedMultiplier", ((Vector3)(ref val)).sqrMagnitude / (Time.deltaTime / 4f)); previousPosition = ((Component)this).transform.position; if (base.currentBehaviourStateIndex == 2 || base.currentBehaviourStateIndex == 3) { if (GameNetworkManager.Instance.localPlayerController.HasLineOfSightToPosition(((Component)this).transform.position, 50f, 25, 10f)) { GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.4f, 0.5f); } } else if (GameNetworkManager.Instance.localPlayerController.HasLineOfSightToPosition(((Component)this).transform.position, 50f, 30, 5f)) { GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.25f, 0.3f); } switch (base.currentBehaviourStateIndex) { case 0: ((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = 1f; base.creatureAnimator.SetInteger("BehaviourState", 0); if (((NetworkBehaviour)this).IsOwner) { base.agent.speed = 3.5f; if (base.stunNormalizedTimer > 0f || coweringOnFloor) { base.agent.speed = 0f; } if (((NetworkBehaviour)this).IsOwner && !roamPlanet.inProgress) { ((EnemyAI)this).StartSearch(((Component)this).transform.position, roamPlanet); } } break; case 1: if (hasEnteredChaseModeFully) { hasEnteredChaseModeFully = false; base.creatureVoice.Stop(); startedChaseModeCoroutine = false; base.creatureAnimator.SetBool("StartedChase", false); } ((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = Mathf.Lerp(((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight, 1f, 8f * Time.deltaTime); base.creatureAnimator.SetInteger("BehaviourState", 1); if (!((NetworkBehaviour)this).IsOwner) { break; } if (((NetworkBehaviour)this).IsOwner && roamPlanet.inProgress) { ((EnemyAI)this).StopSearch(roamPlanet, true); } base.agent.speed = 4.5f; if (base.stunNormalizedTimer > 0f || coweringOnFloor) { base.agent.speed = 0f; } AITimer -= Time.deltaTime; if (AITimer <= 0f) { AITimer = 4f; suspicionLevel--; if (suspicionLevel <= 1) { ((EnemyAI)this).SwitchToBehaviourState(0); } } break; case 2: if (!hasEnteredChaseModeFully) { if (!startedChaseModeCoroutine) { startedChaseModeCoroutine = true; ((MonoBehaviour)this).StartCoroutine(EnterChaseMode()); } break; } ((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = Mathf.Lerp(((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight, 0.2f, 8f * Time.deltaTime); base.creatureAnimator.SetInteger("BehaviourState", 2); if (!((NetworkBehaviour)this).IsOwner) { break; } if (((NetworkBehaviour)this).IsOwner && roamPlanet.inProgress) { ((EnemyAI)this).StopSearch(roamPlanet, true); } if (!inLunge) { lungeCooldown -= Time.deltaTime; if (Vector3.Distance(((Component)this).transform.position, noisePositionGuess) < 4f && lungeCooldown <= 0f) { inLunge = true; EnterLunge(); break; } } base.agent.speed = Mathf.Clamp(base.agent.speed + Time.deltaTime, 13f, 18f); if (base.stunNormalizedTimer > 0f || coweringOnFloor) { base.agent.speed = 0f; } AITimer -= Time.deltaTime; if (AITimer <= 0f) { AITimer = 3f; suspicionLevel--; if (Vector3.Distance(((Component)this).transform.position, base.agent.destination) < 3f) { SearchForPreviouslyHeardSound(); } if (suspicionLevel <= 8) { ((EnemyAI)this).SwitchToBehaviourState(1); } } break; case 3: if (((NetworkBehaviour)this).IsOwner) { NavMeshAgent agent = base.agent; agent.speed -= Time.deltaTime * 5f; if (!endingLunge && base.agent.speed < 1.5f && !inKillAnimation) { endingLunge = true; lungeCooldown = 0.25f; EndLungeServerRpc(); } } break; } } } private void SearchForPreviouslyHeardSound() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_003c: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) int num = 0; Vector3 val = ((Component)this).transform.position; while (num < 5 && Vector3.Distance(val, ((Component)this).transform.position) < 4f) { num++; val = RoundManager.Instance.GetRandomNavMeshPositionInRadius(lastHeardNoisePosition, lastHeardNoiseDistanceWhenHeard / noiseApproximation, default(NavMeshHit)); } ((EnemyAI)this).SetDestinationToPosition(val, false); noisePositionGuess = val; } private IEnumerator EnterChaseMode() { if (((NetworkBehaviour)this).IsOwner) { base.agent.speed = 0.05f; } DropCarriedBody(); base.creatureVoice.PlayOneShot(screamSFX); if (!base.isEnemyDead) { base.creatureAnimator.SetTrigger("ChaseHowl"); } if (Vector3.Distance(((Component)this).transform.position, ((Component)GameNetworkManager.Instance.localPlayerController).transform.position) < 16f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)2); GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(0.5f, true); } yield return (object)new WaitForSeconds(0.5f); if (!heardOtherHowl) { CallAllDogsWithHowl(); } heardOtherHowl = false; yield return (object)new WaitForSeconds(0.2f); base.creatureVoice.clip = breathingSFX; base.creatureVoice.Play(); base.creatureAnimator.SetBool("StartedChase", true); hasEnteredChaseModeFully = true; base.creatureVoice.PlayOneShot(breathingSFX); } private void CallAllDogsWithHowl() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) MouthDogAI[] array = Object.FindObjectsOfType<MouthDogAI>(); for (int i = 0; i < array.Length; i++) { if (!((Object)(object)array[i] == (Object)(object)this)) { array[i].ReactToOtherDogHowl(((Component)this).transform.position); } } } public void ReactToOtherDogHowl(Vector3 howlPosition) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0041: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) heardOtherHowl = true; lastHeardNoiseDistanceWhenHeard = Vector3.Distance(((Component)this).transform.position, howlPosition); noisePositionGuess = RoundManager.Instance.GetRandomNavMeshPositionInRadius(howlPosition, lastHeardNoiseDistanceWhenHeard / noiseApproximation, default(NavMeshHit)); ((EnemyAI)this).SetDestinationToPosition(noisePositionGuess, false); if (base.currentBehaviourStateIndex < 2) { ((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2); } suspicionLevel = 8; lastHeardNoisePosition = howlPosition; Debug.Log((object)$"Setting lastHeardNoisePosition to {howlPosition}"); } public override void DetectNoise(Vector3 noisePosition, float noiseLoudness, int timesNoisePlayedInOneSpot = 0, int noiseID = 0) { //IL_0002: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).DetectNoise(noisePosition, noiseLoudness, timesNoisePlayedInOneSpot, noiseID); if (base.stunNormalizedTimer > 0f || noiseID == 7 || noiseID == 546 || inKillAnimation || hearNoiseCooldown >= 0f || timesNoisePlayedInOneSpot > 15) { return; } hearNoiseCooldown = 0.03f; float num = Vector3.Distance(((Component)this).transform.position, noisePosition); Debug.Log((object)$"dog '{((Object)((Component)this).gameObject).name}': Heard noise! Distance: {num} meters"); float num2 = hearingThreshold * noiseLoudness; if (Physics.Linecast(((Component)this).transform.position, noisePosition, 256)) { noiseLoudness /= 2f; num2 /= 2f; } if (noiseLoudness < 0.25f) { return; } if (base.currentBehaviourStateIndex < 2 && num < num2) { suspicionLevel = 9; } else { suspicionLevel++; } bool fullyEnrage = false; if (suspicionLevel >= 9) { if (base.currentBehaviourStateIndex < 2) { fullyEnrage = true; } } else if (suspicionLevel >= 5 && base.currentBehaviourStateIndex == 0) { fullyEnrage = false; } AITimer = 3f; EnrageDogOnLocalClient(noisePosition, num, approximatePosition: true, fullyEnrage); } private void EnrageDogOnLocalClient(Vector3 targetPosition, float distanceToNoise, bool approximatePosition = true, bool fullyEnrage = false) { //IL_0006: 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_0044: 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_0028: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)$"Mouth dog targetPos 1: {targetPosition}; distanceToNoise: {distanceToNoise}"); if (approximatePosition) { targetPosition = RoundManager.Instance.GetRandomNavMeshPositionInRadius(targetPosition, distanceToNoise / noiseApproximation, default(NavMeshHit)); } noisePositionGuess = targetPosition; Debug.Log((object)$"Mouth dog targetPos 2: {targetPosition}"); if (fullyEnrage) { if (base.currentBehaviourStateIndex < 2) { ((EnemyAI)this).SwitchToBehaviourState(2); hearNoiseCooldown = 1f; suspicionLevel = 12; } suspicionLevel = Mathf.Clamp(suspicionLevel, 0, 11); } else if (base.currentBehaviourStateIndex == 0) { ((EnemyAI)this).SwitchToBehaviourState(1); } if (!((NetworkBehaviour)this).IsOwner) { ((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId); } if (!inLunge) { ((EnemyAI)this).SetDestinationToPosition(noisePositionGuess, false); } lastHeardNoiseDistanceWhenHeard = distanceToNoise; lastHeardNoisePosition = targetPosition; Debug.Log((object)$"Dog lastheardnoisePosition: {lastHeardNoisePosition}"); } private void EnterLunge() { //IL_0037: 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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)this).IsOwner) { ((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId); } ((EnemyAI)this).SwitchToBehaviourState(3); endingLunge = false; ray = new Ray(((Component)this).transform.position + Vector3.up, ((Component)this).transform.forward); Vector3 val = ((!Physics.Raycast(ray, ref rayHit, 17f, StartOfRound.Instance.collidersAndRoomMask)) ? ((Ray)(ref ray)).GetPoint(17f) : ((RaycastHit)(ref rayHit)).point); val = RoundManager.Instance.GetNavMeshPosition(val, default(NavMeshHit), 5f, -1); ((EnemyAI)this).SetDestinationToPosition(val, false); base.agent.speed = 13f; } [ServerRpc(RequireOwnership = false)] public void EndLungeServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3106330922u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3106330922u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { EndLungeClientRpc(); } } } [ClientRpc] public void EndLungeClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3443765605u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3443765605u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2); if (!base.isEnemyDead) { base.creatureAnimator.SetTrigger("EndLungeNoKill"); } inLunge = false; Debug.Log((object)"Ending lunge"); } } private void ChaseLocalPlayer() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourState(2); ((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId); ((EnemyAI)this).SetDestinationToPosition(((Component)GameNetworkManager.Instance.localPlayerController).transform.position, false); } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { //IL_007c: 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_0092: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); base.enemyHP -= force; if (((NetworkBehaviour)this).IsOwner) { if (base.enemyHP <= 0) { ((EnemyAI)this).KillEnemyOnOwnerClient(false); return; } if (inKillAnimation) { StopKillAnimationServerRpc(); } } if ((Object)(object)playerWhoHit != (Object)null && base.currentBehaviourStateIndex != 2 && ((NetworkBehaviour)this).IsOwner) { EnrageDogOnLocalClient(((Component)playerWhoHit).transform.position, Vector3.Distance(((Component)this).transform.position, ((Component)playerWhoHit).transform.position)); } } public override void OnCollideWithEnemy(Collider other, EnemyAI? collidedEnemy = null) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).OnCollideWithEnemy(other, collidedEnemy); if ((Object)(object)collidedEnemy != (Object)null && (Object)(object)collidedEnemy.enemyType != (Object)(object)base.enemyType && timeSinceHittingOtherEnemy >= 1f) { if (base.currentBehaviourStateIndex == 2 && !inLunge) { ((Component)this).transform.LookAt(((Component)other).transform.position); ((Component)this).transform.localEulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f); inLunge = true; EnterLunge(); } timeSinceHittingOtherEnemy = 0f; collidedEnemy.HitEnemy(enemyDamage, (PlayerControllerB)null, true, -1); } } public override void OnCollideWithPlayer(Collider other) { //IL_007c: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_013c: 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_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).OnCollideWithPlayer(other); PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, inKillAnimation, false); if (!((Object)(object)val != (Object)null)) { return; } VehicleController val2 = Object.FindObjectOfType<VehicleController>(); if ((Object)(object)val2 != (Object)null && (Object)(object)val.physicsParent != (Object)null && (Object)(object)val.physicsParent == (Object)(object)((Component)val2).transform && !val2.backDoorOpen) { return; } Vector3 val3 = Vector3.Normalize((((Component)this).transform.position + Vector3.up - ((Component)val.gameplayCamera).transform.position) * 100f); RaycastHit val4 = default(RaycastHit); if (Physics.Linecast(((Component)this).transform.position + Vector3.up + val3 * 0.5f, ((Component)val.gameplayCamera).transform.position, ref val4, StartOfRound.Instance.collidersAndRoomMask, (QueryTriggerInteraction)1)) { if (!((Object)(object)((RaycastHit)(ref val4)).collider == (Object)(object)debugCollider)) { debugCollider = ((RaycastHit)(ref val4)).collider; } } else if (!val.inVehicleAnimation || !(Vector3.Distance(((Component)this).transform.position, ((Component)val).transform.position) > 3f)) { if (base.currentBehaviourStateIndex == 3) { val.inAnimationWithEnemy = (EnemyAI)(object)this; KillPlayerServerRpc((int)val.playerClientId); } else if (base.currentBehaviourStateIndex == 0 || base.currentBehaviourStateIndex == 1) { ChaseLocalPlayer(); } else if (base.currentBehaviourStateIndex == 2 && !inLunge) { ((Component)this).transform.LookAt(((Component)other).transform.position); ((Component)this).transform.localEulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f); inLunge = true; EnterLunge(); } } } [ServerRpc(RequireOwnership = false)] public void KillPlayerServerRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4001558559u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4001558559u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { if (!inKillAnimation) { inKillAnimation = true; KillPlayerClientRpc(playerId); } else { CancelKillAnimationWithPlayerClientRpc(playerId); } } } [ClientRpc] public void CancelKillAnimationWithPlayerClientRpc(int playerObjectId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1417954382u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerObjectId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1417954382u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { StartOfRound.Instance.allPlayerScripts[playerObjectId].inAnimationWithEnemy = null; } } } [ClientRpc] public void KillPlayerClientRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(233721520u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 233721520u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { Debug.Log((object)"Kill player rpc"); if (killPlayerCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(killPlayerCoroutine); } killPlayerCoroutine = ((MonoBehaviour)this).StartCoroutine(KillPlayer(playerId)); } } private IEnumerator KillPlayer(int playerId) { if (((NetworkBehaviour)this).IsOwner) { base.agent.speed = Mathf.Clamp(base.agent.speed, 2f, 0f); } base.creatureVoice.pitch = Random.Range(0.96f, 1.04f); base.creatureVoice.PlayOneShot(killPlayerSFX, 1f); PlayerControllerB killPlayer = StartOfRound.Instance.allPlayerScripts[playerId]; if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)killPlayer) { killPlayer.DamagePlayer(playerDamage, true, true, (CauseOfDeath)6, 0, false, default(Vector3)); } float startTime = Time.timeSinceLevelLoad; yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)killPlayer.deadBody != (Object)null || Time.timeSinceLevelLoad - startTime > 2f)); if ((Object)(object)killPlayer.deadBody == (Object)null) { Debug.Log((object)"Giant dog: Player body was not spawned or found within 2 seconds."); killPlayer.inAnimationWithEnemy = null; inKillAnimation = false; yield break; } TakeBodyInMouth(killPlayer.deadBody); startTime = Time.timeSinceLevelLoad; Quaternion rotateTo = Quaternion.Euler(new Vector3(0f, RoundManager.Instance.YRotationThatFacesTheFarthestFromPosition(((Component)this).transform.position + Vector3.up * 0.6f, 25f, 6), 0f)); Quaternion rotateFrom = ((Component)this).transform.rotation; while (Time.timeSinceLevelLoad - startTime < 2f) { yield return null; if (((NetworkBehaviour)this).IsOwner) { ((Component)this).transform.rotation = Quaternion.RotateTowards(rotateFrom, rotateTo, 60f * Time.deltaTime); } } yield return (object)new WaitForSeconds(3.01f); DropCarriedBody(); suspicionLevel = 2; ((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2); endingLunge = true; inKillAnimation = false; } private void StopKillAnimation() { if (killPlayerCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(killPlayerCoroutine); } base.creatureVoice.Stop(); DropCarriedBody(); suspicionLevel = 2; ((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2); endingLunge = true; inKillAnimation = false; } [ServerRpc(RequireOwnership = false)] public void StopKillAnimationServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3999301457u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3999301457u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { StopKillAnimationClientRpc(); } } } [ClientRpc] public void StopKillAnimationClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(776545170u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 776545170u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { StopKillAnimation(); } } } private void TakeBodyInMouth(DeadBodyInfo body) { carryingBody = body; carryingBody.attachedTo = mouthGrip; carryingBody.attachedLimb = body.bodyParts[5]; carryingBody.matchPositionExactly = true; } private void DropCarriedBody() { if (!((Object)(object)carryingBody == (Object)null)) { carryingBody.speedMultiplier = 12f; carryingBody.attachedTo = null; carryingBody.attachedLimb = null; carryingBody.matchPositionExactly = false; carryingBody = null; } } public override void KillEnemy(bool destroy = false) { StopKillAnimation(); base.creatureVoice.Stop(); base.creatureSFX.Stop(); ((EnemyAI)this).KillEnemy(destroy); } public override void ReceiveLoudNoiseBlast(Vector3 position, float angle) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).ReceiveLoudNoiseBlast(position, angle); if (angle < 30f) { coweringOnFloor = true; } } public override void EnableEnemyMesh(bool enable, bool overrideDoNotSet = false) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).EnableEnemyMesh(enable, false); ParticleSystem[] componentsInChildren = ((Component)this).gameObject.GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main = componentsInChildren[i].main; ((MainModule)(ref main)).playOnAwake = ((Behaviour)this).enabled; } } public override void OnDrawGizmos() { //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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).OnDrawGizmos(); if (base.debugEnemyAI) { Gizmos.DrawCube(noisePositionGuess, Vector3.one); Gizmos.DrawLine(noisePositionGuess, ((Component)this).transform.position + Vector3.up); } } protected override void __initializeVariables() { ((EnemyAI)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_BlindPupAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(3106330922u, new RpcReceiveHandler(__rpc_handler_3106330922)); NetworkManager.__rpc_func_table.Add(3443765605u, new RpcReceiveHandler(__rpc_handler_3443765605)); NetworkManager.__rpc_func_table.Add(4001558559u, new RpcReceiveHandler(__rpc_handler_4001558559)); NetworkManager.__rpc_func_table.Add(1417954382u, new RpcReceiveHandler(__rpc_handler_1417954382)); NetworkManager.__rpc_func_table.Add(233721520u, new RpcReceiveHandler(__rpc_handler_233721520)); NetworkManager.__rpc_func_table.Add(3999301457u, new RpcReceiveHandler(__rpc_handler_3999301457)); NetworkManager.__rpc_func_table.Add(776545170u, new RpcReceiveHandler(__rpc_handler_776545170)); } private static void __rpc_handler_3106330922(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((BlindPupAI)(object)target).EndLungeServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3443765605(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((BlindPupAI)(object)target).EndLungeClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4001558559(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)1; ((BlindPupAI)(object)target).KillPlayerServerRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1417954382(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerObjectId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerObjectId); target.__rpc_exec_stage = (__RpcExecStage)2; ((BlindPupAI)(object)target).CancelKillAnimationWithPlayerClientRpc(playerObjectId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_233721520(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)2; ((BlindPupAI)(object)target).KillPlayerClientRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3999301457(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((BlindPupAI)(object)target).StopKillAnimationServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_776545170(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((BlindPupAI)(object)target).StopKillAnimationClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "BlindPupAI"; } } } namespace BlindPups.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }
plugins/ScienceBird.Wither.dll
Decompiled a year ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using ScienceBird.Wither.NetcodePatcher; using Unity.Netcode; using UnityEngine; using WeatherRegistry; using Wither.Patches; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ScienceBird.Wither")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+fff23cf0a32e1751435014f304377d754ec02caf")] [assembly: AssemblyProduct("Wither")] [assembly: AssemblyTitle("ScienceBird.Wither")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.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 Wither { public class BridgeTriggerType3 : NetworkBehaviour { private int timesTriggered = 0; private int triggerThreshold; public int maxTriggers = 5; public AnimatedObjectTrigger animatedObjectTriggerShake; public AnimatedObjectTrigger animatedObjectTriggerFall; private bool initialSet = true; private bool bridgeFell; private void Update() { if (initialSet) { if (((NetworkBehaviour)this).IsServer) { triggerThreshold = Random.Range(2, maxTriggers + 1); Wither.Logger.LogDebug((object)$"Catwalk triggers: {triggerThreshold}"); SetThresholdClientRpc(triggerThreshold); } initialSet = false; } } [ClientRpc] public void SetThresholdClientRpc(int threshold) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3153522774u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, threshold); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3153522774u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { triggerThreshold = threshold; } } } private void OnTriggerEnter(Collider other) { if (!bridgeFell) { PlayerControllerB component = ((Component)other).gameObject.GetComponent<PlayerControllerB>(); if ((Object)(object)component != (Object)null && (Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)component) { AddToBridgeInstabilityServerRpc(); } } } [ServerRpc(RequireOwnership = false)] public void AddToBridgeInstabilityServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3956335988u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3956335988u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { timesTriggered++; if (timesTriggered < triggerThreshold) { animatedObjectTriggerShake.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } if (timesTriggered >= triggerThreshold) { bridgeFell = true; animatedObjectTriggerFall.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_BridgeTriggerType3() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(3153522774u, new RpcReceiveHandler(__rpc_handler_3153522774)); NetworkManager.__rpc_func_table.Add(3956335988u, new RpcReceiveHandler(__rpc_handler_3956335988)); } private static void __rpc_handler_3153522774(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int thresholdClientRpc = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref thresholdClientRpc); target.__rpc_exec_stage = (__RpcExecStage)2; ((BridgeTriggerType3)(object)target).SetThresholdClientRpc(thresholdClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3956335988(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((BridgeTriggerType3)(object)target).AddToBridgeInstabilityServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "BridgeTriggerType3"; } } public class EnableScrapSpawn : NetworkBehaviour { public int rarityPoint = 100; public void SetRarity(bool configVal) { if ((Object)(object)RoundManager.Instance.currentLevel != (Object)null) { int num = 0; for (int i = 0; i < RoundManager.Instance.currentLevel.spawnableScrap.Count; i++) { if (RoundManager.Instance.currentLevel.spawnableScrap[i].spawnableItem.itemName == "Ricardorb") { num = i; break; } } Wither.Logger.LogDebug((object)$"Setting spawning to {configVal} for strange scrap (rarity {rarityPoint}, index {num})."); if (configVal) { RoundManager.Instance.currentLevel.spawnableScrap[num].rarity = rarityPoint; } else { RoundManager.Instance.currentLevel.spawnableScrap[num].rarity = 0; } } else { Wither.Logger.LogDebug((object)"No selectable level found, skipping scrap config check."); } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected internal override string __getTypeName() { return "EnableScrapSpawn"; } } public class InFactoryTrigger : NetworkBehaviour { public static bool isInFalseInterior; public StartOfRound playersManager; private void Awake() { isInFalseInterior = false; playersManager = Object.FindObjectOfType<StartOfRound>(); } private void OnTriggerEnter(Collider other) { PlayerControllerB component = ((Component)other).gameObject.GetComponent<PlayerControllerB>(); if ((Object)(object)component == (Object)null) { return; } component.isInElevator = false; component.isInHangarShipRoom = false; for (int i = 0; i < component.ItemSlots.Length; i++) { if ((Object)(object)component.ItemSlots[i] != (Object)null) { component.ItemSlots[i].isInFactory = true; } } if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)component) { isInFalseInterior = true; } component.isInsideFactory = true; } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected internal override string __getTypeName() { return "InFactoryTrigger"; } } public class InsertApparatus : NetworkBehaviour { public StartOfRound playersManager; public AnimatedObjectTrigger objectsEnableTrigger; public InteractTrigger insertTrigger; public AnimatedObjectTrigger animatedDoorTrigger; public bool isInserted; public NetworkObject apparatusContainer; public static bool doingInsertion; private bool initialSet = true; private NetworkObject networkedApp; private void Update() { if (initialSet) { playersManager = Object.FindObjectOfType<StartOfRound>(); initialSet = false; doingInsertion = false; } if (isInserted) { return; } if ((Object)(object)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer != (Object)null && (GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("Apparatus") || GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("apparatus")) && !GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("concept")) { if (StartOfRound.Instance.localPlayerUsingController) { insertTrigger.hoverTip = "Insert apparatus: [D-pad up]"; } else { insertTrigger.hoverTip = "Insert apparatus: [ E ]"; } } else { insertTrigger.hoverTip = "Nothing to insert"; } } public void InsertItem() { //IL_0149: 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) PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if (!((Object)(object)localPlayerController.currentlyHeldObjectServer != (Object)null) || (!localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("Apparatus") && !localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("apparatus")) || localPlayerController.currentlyHeldObjectServer.itemProperties.itemName.Contains("concept") || localPlayerController.isGrabbingObjectAnimation) { return; } if ((Object)(object)localPlayerController.currentlyHeldObjectServer.radarIcon != (Object)null) { Object.Destroy((Object)(object)((Component)localPlayerController.currentlyHeldObjectServer.radarIcon).gameObject); } if ((Object)(object)((Component)localPlayerController.currentlyHeldObjectServer).gameObject.GetComponentInChildren<ScanNodeProperties>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)localPlayerController.currentlyHeldObjectServer).gameObject.GetComponentInChildren<ScanNodeProperties>()).gameObject); } AudioSource[] componentsInChildren = ((Component)localPlayerController.currentlyHeldObjectServer).GetComponentsInChildren<AudioSource>(); if (componentsInChildren != null) { AudioSource[] array = componentsInChildren; foreach (AudioSource val in array) { val.Stop(); } } DestroyChildObjectsServerRpc((int)localPlayerController.playerClientId); ParentObjectToSlotServerRpc(NetworkObjectReference.op_Implicit(((Component)localPlayerController.currentlyHeldObjectServer).gameObject.GetComponent<NetworkObject>())); localPlayerController.DiscardHeldObject(true, apparatusContainer, new Vector3(0f, 0f, 0f), false); AudioSource component = ((Component)apparatusContainer).GetComponent<AudioSource>(); if ((Object)(object)component != (Object)null) { component.Play(); } else { Wither.Logger.LogError((object)"Null audio player!"); } objectsEnableTrigger.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); animatedDoorTrigger.TriggerAnimation(GameNetworkManager.Instance.localPlayerController); } [ServerRpc(RequireOwnership = false)] public void DestroyChildObjectsServerRpc(int playerObj) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3932721504u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerObj); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3932721504u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { DestroyChildObjectsClientRpc(playerObj); } } } [ClientRpc] public void DestroyChildObjectsClientRpc(int playerObj) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1556476157u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerObj); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1556476157u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } doingInsertion = true; if ((Object)(object)playersManager.allPlayerScripts[playerObj] == (Object)(object)GameNetworkManager.Instance.localPlayerController) { return; } if ((Object)(object)playersManager.allPlayerScripts[playerObj].currentlyHeldObjectServer.radarIcon != (Object)null) { Object.Destroy((Object)(object)((Component)playersManager.allPlayerScripts[playerObj].currentlyHeldObjectServer.radarIcon).gameObject); } if ((Object)(object)((Component)((Component)playersManager.allPlayerScripts[playerObj].currentlyHeldObjectServer).gameObject.GetComponentInChildren<ScanNodeProperties>()).gameObject != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)playersManager.allPlayerScripts[playerObj].currentlyHeldObjectServer).gameObject.GetComponentInChildren<ScanNodeProperties>()).gameObject); } AudioSource[] componentsInChildren = ((Component)playersManager.allPlayerScripts[playerObj].currentlyHeldObjectServer).GetComponentsInChildren<AudioSource>(); if (componentsInChildren != null) { AudioSource[] array = componentsInChildren; foreach (AudioSource val3 in array) { val3.Stop(); } } AudioSource component = ((Component)apparatusContainer).GetComponent<AudioSource>(); if ((Object)(object)component != (Object)null) { component.Play(); } else { Wither.Logger.LogError((object)"Null audio player!"); } } [ServerRpc(RequireOwnership = false)] public void ParentObjectToSlotServerRpc(NetworkObjectReference grabbableObjectNetObject) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2703564353u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref grabbableObjectNetObject, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2703564353u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { if (((NetworkObjectReference)(ref grabbableObjectNetObject)).TryGet(ref networkedApp, (NetworkManager)null)) { ParentObjectToSlotClientRpc(grabbableObjectNetObject); } else { Wither.Logger.LogError((object)"ServerRpc: Could not find networked apparatus."); } } } [ClientRpc] public void ParentObjectToSlotClientRpc(NetworkObjectReference grabbableObjectNetObject) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3841800363u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref grabbableObjectNetObject, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3841800363u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkObjectReference)(ref grabbableObjectNetObject)).TryGet(ref networkedApp, (NetworkManager)null)) { ((Component)networkedApp).gameObject.GetComponentInChildren<GrabbableObject>().EnablePhysics(false); ((Component)networkedApp).gameObject.GetComponentInChildren<GrabbableObject>().grabbable = false; } else { Wither.Logger.LogError((object)"ClientRpc: Could not find networked apparatus."); } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_InsertApparatus() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(3932721504u, new RpcReceiveHandler(__rpc_handler_3932721504)); NetworkManager.__rpc_func_table.Add(1556476157u, new RpcReceiveHandler(__rpc_handler_1556476157)); NetworkManager.__rpc_func_table.Add(2703564353u, new RpcReceiveHandler(__rpc_handler_2703564353)); NetworkManager.__rpc_func_table.Add(3841800363u, new RpcReceiveHandler(__rpc_handler_3841800363)); } private static void __rpc_handler_3932721504(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerObj = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerObj); target.__rpc_exec_stage = (__RpcExecStage)1; ((InsertApparatus)(object)target).DestroyChildObjectsServerRpc(playerObj); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1556476157(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerObj = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerObj); target.__rpc_exec_stage = (__RpcExecStage)2; ((InsertApparatus)(object)target).DestroyChildObjectsClientRpc(playerObj); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2703564353(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference grabbableObjectNetObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref grabbableObjectNetObject, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((InsertApparatus)(object)target).ParentObjectToSlotServerRpc(grabbableObjectNetObject); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3841800363(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference grabbableObjectNetObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref grabbableObjectNetObject, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)2; ((InsertApparatus)(object)target).ParentObjectToSlotClientRpc(grabbableObjectNetObject); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "InsertApparatus"; } } public class LoopAudibleHorn : NetworkBehaviour { public Transform noisePosition; public AudioSource hornPlayer; public bool isPlaying = true; public int loopCounter = 16; public AudioClip rumbleClip; private float loopTimer = 2f; private void Update() { if (isPlaying) { LoopAudio(); } } public void LoopAudio() { //IL_0089: Unknown result type (might be due to invalid IL or missing references) if (!hornPlayer.isPlaying) { hornPlayer.Play(); loopCounter--; if (!GameNetworkManager.Instance.localPlayerController.isInsideFactory) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); SoundManager.Instance.PlaySoundAroundLocalPlayer(rumbleClip, 0.65f); } } if (loopTimer <= 0f) { RoundManager.Instance.PlayAudibleNoise(noisePosition.position, 20f, 0.6f, 0, false, 0); loopTimer = 2f; } else { loopTimer -= Time.deltaTime; } if (loopCounter <= 0) { isPlaying = false; } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected internal override string __getTypeName() { return "LoopAudibleHorn"; } } public class NetworkHandler : NetworkBehaviour { public static NetworkHandler Instance { get; private set; } public static event Action<string> LevelEvent; public override void OnNetworkSpawn() { NetworkHandler.LevelEvent = null; if (NetworkManager.Singleton.IsHost || NetworkManager.Singleton.IsServer) { if ((Object)(object)Instance != (Object)null) { GameObject gameObject = ((Component)Instance).gameObject; if (gameObject != null) { NetworkObject component = gameObject.GetComponent<NetworkObject>(); if (component != null) { component.Despawn(true); } } } else { Wither.Logger.LogWarning((object)"Null instance! Network object despawn failed."); } } Instance = this; ((NetworkBehaviour)this).OnNetworkSpawn(); } [ClientRpc] public void EventClientRpc(string eventName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1849323834u, val, (RpcDelivery)0); bool flag = eventName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(eventName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1849323834u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { NetworkHandler.LevelEvent?.Invoke(eventName); } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_NetworkHandler() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(1849323834u, new RpcReceiveHandler(__rpc_handler_1849323834)); } private static void __rpc_handler_1849323834(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_007b: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string eventName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref eventName, false); } target.__rpc_exec_stage = (__RpcExecStage)2; ((NetworkHandler)(object)target).EventClientRpc(eventName); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "NetworkHandler"; } } [HarmonyPatch] public class NetworkObjectManager { private static GameObject networkPrefab; [HarmonyPostfix] [HarmonyPatch(typeof(GameNetworkManager), "Start")] public static void Init() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown if (!((Object)(object)networkPrefab != (Object)null)) { networkPrefab = (GameObject)Wither.NetworkAssets.LoadAsset("WitherNetworkHandler"); networkPrefab.AddComponent<NetworkHandler>(); NetworkManager.Singleton.AddNetworkPrefab(networkPrefab); } } [HarmonyPostfix] [HarmonyPatch(typeof(StartOfRound), "Awake")] private static void SpawnNetworkHandler() { //IL_0024: 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) if (NetworkManager.Singleton.IsHost || NetworkManager.Singleton.IsServer) { GameObject val = Object.Instantiate<GameObject>(networkPrefab, Vector3.zero, Quaternion.identity); val.GetComponent<NetworkObject>().Spawn(false); } } } public class OldElevatorController : NetworkBehaviour { public Animator elevatorAnimator; public Transform elevatorPoint; public bool elevatorFinishedMoving; public float elevatorFinishTimer; public bool elevatorIsAtBottom; public bool elevatorCalled; public bool elevatorMovingDown; private bool movingDownLastFrame = true; public bool calledDown; public float callCooldown; public AudioSource elevatorAudio; public AudioClip elevatorStartUpSFX; public AudioClip elevatorStartDownSFX; public AudioClip elevatorTravelSFX; public AudioClip elevatorFinishUpSFX; public AudioClip elevatorFinishDownSFX; public GameObject elevatorCalledBottomButton; public GameObject elevatorCalledTopButton; public Transform elevatorTopPoint; public Transform elevatorBottomPoint; public Transform elevatorInsidePoint; public Vector3 previousElevatorPosition; public bool elevatorDoorOpen; public AudioSource elevatorJingleMusic; private bool playMusic; private bool startedMusic; private float stopPlayingMusicTimer; public AudioClip[] elevatorHalloweenClips; public AudioClip[] elevatorHalloweenClipsLoop; private int selectedTrack = 0; [ServerRpc] public void SetElevatorMusicServerRpc(bool setOn, int track) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(909026737u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref setOn, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, track); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 909026737u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetElevatorMusicClientRpc(setOn, track); } } [ClientRpc] public void SetElevatorMusicClientRpc(bool setOn, int track) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: 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_00a4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2448796174u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref setOn, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, track); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2448796174u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { selectedTrack = track; playMusic = setOn; } } } private void OnEnable() { Wither.Logger.LogDebug((object)"Skipping elevator instance."); } private void OnDisable() { Wither.Logger.LogDebug((object)"Skipping elevator instance."); } public void LateUpdate() { //IL_0008: 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) previousElevatorPosition = elevatorInsidePoint.position; } public void Update() { if (!playMusic) { if (stopPlayingMusicTimer <= 0f) { if (elevatorJingleMusic.isPlaying) { if (elevatorJingleMusic.pitch < 0.5f) { AudioSource obj = elevatorJingleMusic; obj.volume -= Time.deltaTime * 3f; if (elevatorJingleMusic.volume <= 0.01f) { elevatorJingleMusic.Stop(); } } else { AudioSource obj2 = elevatorJingleMusic; obj2.pitch -= Time.deltaTime; elevatorJingleMusic.volume = Mathf.Max(elevatorJingleMusic.volume - Time.deltaTime * 2f, 0.4f); } } } else { stopPlayingMusicTimer -= Time.deltaTime; } } else { stopPlayingMusicTimer = 1.5f; if (!elevatorJingleMusic.isPlaying) { Wither.Logger.LogDebug((object)$"Elevator playing track {selectedTrack}"); if (elevatorMovingDown) { elevatorJingleMusic.clip = elevatorHalloweenClips[selectedTrack]; elevatorJingleMusic.Play(); elevatorJingleMusic.volume = 1f; } else { elevatorJingleMusic.clip = elevatorHalloweenClipsLoop[selectedTrack]; elevatorJingleMusic.Play(); elevatorJingleMusic.volume = 1f; } } AudioSource obj3 = elevatorJingleMusic; AudioSource obj4 = elevatorJingleMusic; float num2 = (obj4.pitch += Time.deltaTime * 2f); obj3.pitch = Mathf.Clamp(num2, 0.3f, 1f); } elevatorAnimator.SetBool("ElevatorGoingUp", !elevatorMovingDown); elevatorCalledTopButton.SetActive(!elevatorMovingDown || elevatorCalled); elevatorCalledBottomButton.SetActive(elevatorMovingDown || elevatorCalled); if (elevatorMovingDown != movingDownLastFrame) { movingDownLastFrame = elevatorMovingDown; if (elevatorMovingDown) { elevatorAudio.PlayOneShot(elevatorStartDownSFX); } else { elevatorAudio.PlayOneShot(elevatorStartUpSFX); } if (((NetworkBehaviour)this).IsServer) { SetElevatorMovingServerRpc(elevatorMovingDown); } } if (!((NetworkBehaviour)this).IsServer) { return; } if (elevatorFinishedMoving) { if (((NetworkBehaviour)this).IsServer && startedMusic) { playMusic = false; startedMusic = false; SetElevatorMusicServerRpc(setOn: false, selectedTrack); } } else if (((NetworkBehaviour)this).IsServer && !startedMusic) { startedMusic = true; playMusic = true; selectedTrack = Random.Range(0, elevatorHalloweenClips.Length); SetElevatorMusicServerRpc(setOn: true, selectedTrack); } if (elevatorFinishedMoving) { if (elevatorCalled) { if (callCooldown <= 0f) { SwitchElevatorDirection(); SetElevatorCalledClientRpc(setCalled: false, elevatorMovingDown); } else { callCooldown -= Time.deltaTime; } } } else if (elevatorFinishTimer <= 0f) { elevatorFinishedMoving = true; Wither.Logger.LogDebug((object)"Elevator finished moving!"); PlayFinishAudio(!elevatorMovingDown); ElevatorFinishServerRpc(!elevatorMovingDown); } else { elevatorFinishTimer -= Time.deltaTime; } } private void SwitchElevatorDirection() { elevatorMovingDown = !elevatorMovingDown; elevatorFinishedMoving = false; elevatorFinishTimer = 14f; elevatorCalled = false; SetElevatorFinishedMovingClientRpc(finished: false); } [ClientRpc] public void SetElevatorFinishedMovingClientRpc(bool finished) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3386253705u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref finished, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3386253705u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { elevatorFinishedMoving = finished; } } } public void AnimationEvent_ElevatorFinishTop() { if (!elevatorMovingDown && !elevatorFinishedMoving) { elevatorFinishedMoving = true; if (((NetworkBehaviour)this).IsServer) { PlayFinishAudio(!elevatorMovingDown); ElevatorFinishServerRpc(!elevatorMovingDown); } } } public void AnimationEvent_ElevatorStartFromBottom() { ShakePlayerCamera(shakeHard: false); } public void AnimationEvent_ElevatorHitBottom() { ShakePlayerCamera(shakeHard: true); } public void AnimationEvent_ElevatorTravel() { elevatorAudio.PlayOneShot(elevatorTravelSFX); } public void AnimationEvent_ElevatorFinishBottom() { if (elevatorMovingDown && !elevatorFinishedMoving) { elevatorFinishedMoving = true; if (((NetworkBehaviour)this).IsServer) { Wither.Logger.LogDebug((object)"Elevator finished moving B!"); PlayFinishAudio(!elevatorMovingDown); ElevatorFinishServerRpc(!elevatorMovingDown); } } } private void ShakePlayerCamera(bool shakeHard) { //IL_0010: 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 (Vector3.Distance(((Component)StartOfRound.Instance.audioListener).transform.position, elevatorPoint.position) < 4f) { if (shakeHard) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); } else { HUDManager.Instance.ShakeCamera((ScreenShakeType)2); } } } [ServerRpc] public void ElevatorFinishServerRpc(bool atTop) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(795077385u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref atTop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 795077385u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ElevatorFinishClientRpc(atTop); } } [ClientRpc] public void ElevatorFinishClientRpc(bool atTop) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4862135u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref atTop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4862135u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { PlayFinishAudio(atTop); elevatorFinishedMoving = true; } } } private void PlayFinishAudio(bool atTop) { if (atTop) { elevatorAudio.PlayOneShot(elevatorFinishUpSFX); } else { elevatorAudio.PlayOneShot(elevatorFinishDownSFX); } } [ServerRpc] public void SetElevatorMovingServerRpc(bool movingDown) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2034514025u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref movingDown, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2034514025u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetElevatorMovingClientRpc(movingDown); } } [ClientRpc] public void SetElevatorMovingClientRpc(bool movingDown) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(767682336u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref movingDown, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 767682336u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { elevatorMovingDown = movingDown; } } } [ServerRpc(RequireOwnership = false)] public void CallElevatorServerRpc(bool callDown) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3609940504u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref callDown, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3609940504u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CallElevatorOnServer(callDown); } } } public void CallElevatorOnServer(bool callDown) { if (elevatorMovingDown != callDown) { elevatorCalled = true; callCooldown = 4f; SetElevatorCalledClientRpc(elevatorCalled, elevatorMovingDown); } } public void SetElevatorDoorOpen() { elevatorDoorOpen = true; } public void SetElevatorDoorClosed() { elevatorDoorOpen = false; } [ClientRpc] public void SetElevatorCalledClientRpc(bool setCalled, bool elevatorDown) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(574678194u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref setCalled, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref elevatorDown, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 574678194u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsServer) { elevatorCalled = setCalled; elevatorMovingDown = elevatorDown; } } } public void CallElevator(bool callDown) { Wither.Logger.LogDebug((object)$"Call elevator 0; call down: {callDown}; elevator moving down: {elevatorMovingDown}"); CallElevatorServerRpc(callDown); } [ServerRpc(RequireOwnership = false)] public void PressElevatorButtonServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1302763586u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1302763586u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { PressElevatorButtonOnServer(); } } } public void PressElevatorButtonOnServer(bool requireFinishedMoving = false) { if (elevatorFinishedMoving || (elevatorFinishTimer < 0.16f && !requireFinishedMoving)) { SwitchElevatorDirection(); } } public void PressElevatorButton() { PressElevatorButtonServerRpc(); } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_OldElevatorController() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(909026737u, new RpcReceiveHandler(__rpc_handler_909026737)); NetworkManager.__rpc_func_table.Add(2448796174u, new RpcReceiveHandler(__rpc_handler_2448796174)); NetworkManager.__rpc_func_table.Add(3386253705u, new RpcReceiveHandler(__rpc_handler_3386253705)); NetworkManager.__rpc_func_table.Add(795077385u, new RpcReceiveHandler(__rpc_handler_795077385)); NetworkManager.__rpc_func_table.Add(4862135u, new RpcReceiveHandler(__rpc_handler_4862135)); NetworkManager.__rpc_func_table.Add(2034514025u, new RpcReceiveHandler(__rpc_handler_2034514025)); NetworkManager.__rpc_func_table.Add(767682336u, new RpcReceiveHandler(__rpc_handler_767682336)); NetworkManager.__rpc_func_table.Add(3609940504u, new RpcReceiveHandler(__rpc_handler_3609940504)); NetworkManager.__rpc_func_table.Add(574678194u, new RpcReceiveHandler(__rpc_handler_574678194)); NetworkManager.__rpc_func_table.Add(1302763586u, new RpcReceiveHandler(__rpc_handler_1302763586)); } private static void __rpc_handler_909026737(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00bc: 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_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { bool setOn = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref setOn, default(ForPrimitives)); int track = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref track); target.__rpc_exec_stage = (__RpcExecStage)1; ((OldElevatorController)(object)target).SetElevatorMusicServerRpc(setOn, track); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2448796174(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool setOn = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref setOn, default(ForPrimitives)); int track = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref track); target.__rpc_exec_stage = (__RpcExecStage)2; ((OldElevatorController)(object)target).SetElevatorMusicClientRpc(setOn, track); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3386253705(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool elevatorFinishedMovingClientRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref elevatorFinishedMovingClientRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((OldElevatorController)(object)target).SetElevatorFinishedMovingClientRpc(elevatorFinishedMovingClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_795077385(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { bool atTop = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref atTop, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((OldElevatorController)(object)target).ElevatorFinishServerRpc(atTop); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4862135(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool atTop = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref atTop, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((OldElevatorController)(object)target).ElevatorFinishClientRpc(atTop); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2034514025(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { bool elevatorMovingServerRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref elevatorMovingServerRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((OldElevatorController)(object)target).SetElevatorMovingServerRpc(elevatorMovingServerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_767682336(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool elevatorMovingClientRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref elevatorMovingClientRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((OldElevatorController)(object)target).SetElevatorMovingClientRpc(elevatorMovingClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3609940504(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool callDown = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref callDown, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((OldElevatorController)(object)target).CallElevatorServerRpc(callDown); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_574678194(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool setCalled = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref setCalled, default(ForPrimitives)); bool elevatorDown = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref elevatorDown, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((OldElevatorController)(object)target).SetElevatorCalledClientRpc(setCalled, elevatorDown); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1302763586(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((OldElevatorController)(object)target).PressElevatorButtonServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "OldElevatorController"; } } public class PropTP : NetworkBehaviour { public GameObject[] scrapProps; public Vector3 telePosition; public ScanNodeProperties[] scanNodes; private int scrapIndex = -1; private bool wasFallingLastFrame = false; public static bool doingTP; public AudioSource clangPlayer; public float percentOfQuota = 20f; private Vector3 posDiff; private Vector3 posDiff1; private Vector3 posDiff2; private float fallTimeLastFrame; private float yLastFrame = 0f; private int scrapValue = 0; private bool delayedTP = false; private bool foundPrefabs = false; private int failCount = 0; private string[] scrapNames = new string[3] { "WitheredRobotToy(Clone)", "WitheredOldPhone(Clone)", "WitheredDentures(Clone)" }; private float[] randomWeights = new float[3]; private bool initialSet = true; private Random weightRandom; public static bool propReady; private int propCycleFailsafe = 0; private void Update() { //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) if (initialSet && SeedWeightRandom.randomWeightsTemp[0] > 0f) { propReady = false; randomWeights = SeedWeightRandom.randomWeightsTemp; initialSet = false; SeedWeightRandom.randomWeightsTemp = new float[3]; } if (!foundPrefabs) { int i; for (i = 0; i < 3; i++) { if (Object.op_Implicit((Object)(object)GameObject.Find(scrapNames[i]))) { GameObject[] array = (from obj in Resources.FindObjectsOfTypeAll<GameObject>() where ((Object)obj).name == scrapNames[i] select obj).ToArray(); if (array.Length > 1) { GameObject[] array2 = array; foreach (GameObject val in array2) { if (!val.GetComponent<GrabbableObject>().isInShipRoom && !val.GetComponent<GrabbableObject>().scrapPersistedThroughRounds) { scrapProps[i] = val; break; } } } else { scrapProps[i] = GameObject.Find(scrapNames[i]); } if (i == 0) { Wither.Logger.LogDebug((object)"Found prefabs!"); foundPrefabs = true; } } else { foundPrefabs = false; } } GameObject val2 = GameObject.Find("DyingLungApparatus(Clone)"); GameObject[] array3 = (from obj in Resources.FindObjectsOfTypeAll<GameObject>() where ((Object)obj).name == "DyingLungApparatus(Clone)" select obj).ToArray(); if (array3.Length > 1) { GameObject[] array4 = array3; foreach (GameObject val3 in array4) { if (!val3.GetComponent<GrabbableObject>().isInShipRoom && !val3.GetComponent<GrabbableObject>().scrapPersistedThroughRounds) { Wither.Logger.LogDebug((object)"Found apparatus!"); val2 = val3; break; } } } LungProp componentInChildren = val2.GetComponentInChildren<LungProp>(); componentInChildren.isLungPowered = true; componentInChildren.isLungDocked = true; AudioSource componentInChildren2 = val2.GetComponentInChildren<AudioSource>(); componentInChildren2.loop = true; componentInChildren2.Play(); if (foundPrefabs) { for (int l = 0; l < 3; l++) { scanNodes[l] = scrapProps[l].GetComponentInChildren<ScanNodeProperties>(); } telePosition += new Vector3(0.5f, 0f, 0.5f); posDiff = telePosition - scrapProps[0].transform.position; posDiff1 = scrapProps[1].transform.position - scrapProps[0].transform.position; posDiff2 = scrapProps[2].transform.position - scrapProps[0].transform.position; } else { failCount++; } if (failCount >= 100) { foundPrefabs = true; } } if (!doingTP || scrapIndex < 0) { return; } if (((NetworkBehaviour)this).IsServer) { propCycleFailsafe++; if (propCycleFailsafe >= 150) { Wither.Logger.LogWarning((object)"Never recieved fall! Falling back to failsafe..."); propReady = true; } } GrabbableObject component = scrapProps[scrapIndex].GetComponent<GrabbableObject>(); if (propReady && ((NetworkBehaviour)this).IsServer) { propCycleFailsafe = 0; propReady = false; Wither.Logger.LogDebug((object)"Cycling prop..."); CyclePropClientRpc(); if (!doingTP || scrapIndex > 2) { Wither.Logger.LogInfo((object)"Prop TP finished."); doingTP = false; return; } } if (scrapProps[scrapIndex].GetComponent<GrabbableObject>().fallTime < 1f) { wasFallingLastFrame = true; } fallTimeLastFrame = scrapProps[scrapIndex].GetComponent<GrabbableObject>().fallTime; yLastFrame = scrapProps[scrapIndex].transform.position.y; } public void TeleportProp() { doingTP = true; ((MonoBehaviour)this).StartCoroutine(waitToEndOfFrameToFall()); } private IEnumerator waitToEndOfFrameToFall() { yield return (object)new WaitForEndOfFrame(); PropsTeleport(); } public void PropsTeleport() { //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: 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_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) scrapIndex++; int num = scrapIndex; int num2 = 0; float num3 = (float)TimeOfDay.Instance.profitQuota * (percentOfQuota / 300f); if (num3 < 50f) { num3 = 50f; } float num4 = randomWeights[num]; num3 *= num4; scrapValue = Mathf.RoundToInt(num3); if (scrapValue < 50) { scrapValue = 50; } else if (scrapValue > 300) { scrapValue = 300; } switch (num) { case 0: scrapProps[num].transform.Rotate(0f, 0f, 227f, (Space)1); num2 = 227; break; case 1: scrapProps[num].transform.Rotate(0f, 0f, 45f, (Space)1); num2 = 45; break; default: scrapProps[num].transform.Rotate(0f, 0f, 110f, (Space)1); num2 = 110; break; } scrapProps[num].GetComponent<GrabbableObject>().grabbable = false; scrapProps[num].transform.position = scrapProps[num].transform.position + posDiff; scrapProps[num].GetComponent<GrabbableObject>().scrapValue = scrapValue; scanNodes[num].scrapValue = scrapValue; scanNodes[num].subText = $"Value: {scrapValue}"; Transform val = null; Ray val2 = default(Ray); ((Ray)(ref val2))..ctor(scrapProps[num].transform.position, -Vector3.up); RaycastHit val3 = default(RaycastHit); if (Physics.Raycast(val2, ref val3, 80f, 1342179585, (QueryTriggerInteraction)1)) { Debug.DrawRay(scrapProps[num].transform.position, -Vector3.up * 80f, Color.blue, 2f); val = ((Component)((RaycastHit)(ref val3)).collider).gameObject.transform; } if ((Object)(object)val != (Object)null) { Vector3 val4 = ((RaycastHit)(ref val3)).point + Vector3.up * 0.04f + scrapProps[num].GetComponent<GrabbableObject>().itemProperties.verticalOffset * Vector3.up; GrabbableObject component = scrapProps[num].GetComponent<GrabbableObject>(); component.parentObject = null; component.EnablePhysics(true); component.EnableItemMeshes(true); component.isHeld = false; component.isPocketed = false; component.heldByPlayerOnServer = false; ((Component)component).transform.localScale = component.originalScale; ((Component)component).transform.position = ((Component)component).transform.position; component.startFallingPosition = ((Component)component).transform.position; component.targetFloorPosition = val4; component.floorYRot = num2; component.fallTime = 0f; DropObjectServerRpc(num2, val4, NetworkObjectReference.op_Implicit(scrapProps[num].GetComponent<NetworkObject>()), num); } else { Wither.Logger.LogDebug((object)$"Null transform at {num}"); } } [ServerRpc(RequireOwnership = false)] private void DropObjectServerRpc(int floorYRot, Vector3 hitPoint, NetworkObjectReference grabbedObject, int index) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_0101: 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) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(189131659u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, floorYRot); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref hitPoint); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref grabbedObject, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, index); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 189131659u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { DropObjectClientRpc(floorYRot, hitPoint, grabbedObject, index); } } } [ClientRpc] private void DropObjectClientRpc(int floorYRot, Vector3 hitPoint, NetworkObjectReference grabbedObject, int index) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: 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) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2629469171u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, floorYRot); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref hitPoint); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref grabbedObject, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, index); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2629469171u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } NetworkObject val3 = default(NetworkObject); if (((NetworkObjectReference)(ref grabbedObject)).TryGet(ref val3, (NetworkManager)null)) { GrabbableObject component = ((Component)val3).GetComponent<GrabbableObject>(); component.parentObject = null; component.EnablePhysics(true); component.EnableItemMeshes(true); component.isHeld = false; component.isPocketed = false; component.heldByPlayerOnServer = false; ((Component)component).transform.localScale = component.originalScale; switch (index) { case 0: ((Component)component).transform.position = telePosition; component.startFallingPosition = telePosition; break; case 1: ((Component)component).transform.position = telePosition + posDiff1; component.startFallingPosition = telePosition + posDiff1; break; case 2: ((Component)component).transform.position = telePosition + posDiff2; component.startFallingPosition = telePosition + posDiff2; break; } component.startFallingPosition = ((Component)component).transform.position; component.targetFloorPosition = hitPoint; component.floorYRot = floorYRot; component.fallTime = 0f; if (!component.itemProperties.syncDiscardFunction) { component.playerHeldBy = null; } } else { Wither.Logger.LogDebug((object)"The server did not have a reference to the held object (when attempting to PLACE object on client.)"); } } [ClientRpc] public void CyclePropClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2217024285u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2217024285u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } if (scrapIndex > 2 || scrapIndex < 0) { Wither.Logger.LogError((object)$"Invalid scrap index {scrapIndex}!"); if (scrapIndex < 0) { TeleportProp(); } else if (scrapIndex > 2) { Wither.Logger.LogDebug((object)"Making props grabbable... (EDGE CASE)"); for (int i = 0; i < 3; i++) { AnimatedItem componentInChildren = scrapProps[i].GetComponentInChildren<AnimatedItem>(); if (componentInChildren.itemRandomChance == null) { Wither.Logger.LogInfo((object)"Fixing System.Random!"); componentInChildren.itemRandomChance = new Random(StartOfRound.Instance.randomMapSeed + StartOfRound.Instance.currentLevelID + ((GrabbableObject)componentInChildren).itemProperties.itemId); } scrapProps[i].GetComponent<GrabbableObject>().grabbable = true; } doingTP = false; } } clangPlayer.PlayOneShot(scrapProps[scrapIndex].GetComponent<GrabbableObject>().itemProperties.dropSFX); WalkieTalkie.TransmitOneShotAudio(clangPlayer, scrapProps[scrapIndex].GetComponent<GrabbableObject>().itemProperties.dropSFX, 1f); wasFallingLastFrame = false; if (scrapIndex < 2) { TeleportProp(); return; } Wither.Logger.LogDebug((object)"Making props grabbable..."); for (int j = 0; j < 3; j++) { AnimatedItem componentInChildren2 = scrapProps[j].GetComponentInChildren<AnimatedItem>(); if (componentInChildren2.itemRandomChance == null) { Wither.Logger.LogInfo((object)"Fixing System.Random!"); componentInChildren2.itemRandomChance = new Random(StartOfRound.Instance.randomMapSeed + StartOfRound.Instance.currentLevelID + ((GrabbableObject)componentInChildren2).itemProperties.itemId); } scrapProps[j].GetComponent<GrabbableObject>().grabbable = true; } doingTP = false; } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_PropTP() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(189131659u, new RpcReceiveHandler(__rpc_handler_189131659)); NetworkManager.__rpc_func_table.Add(2629469171u, new RpcReceiveHandler(__rpc_handler_2629469171)); NetworkManager.__rpc_func_table.Add(2217024285u, new RpcReceiveHandler(__rpc_handler_2217024285)); } private static void __rpc_handler_189131659(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int floorYRot = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref floorYRot); Vector3 hitPoint = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref hitPoint); NetworkObjectReference grabbedObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref grabbedObject, default(ForNetworkSerializable)); int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); target.__rpc_exec_stage = (__RpcExecStage)1; ((PropTP)(object)target).DropObjectServerRpc(floorYRot, hitPoint, grabbedObject, index); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2629469171(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int floorYRot = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref floorYRot); Vector3 hitPoint = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref hitPoint); NetworkObjectReference grabbedObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref grabbedObject, default(ForNetworkSerializable)); int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); target.__rpc_exec_stage = (__RpcExecStage)2; ((PropTP)(object)target).DropObjectClientRpc(floorYRot, hitPoint, grabbedObject, index); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2217024285(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((PropTP)(object)target).CyclePropClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "PropTP"; } } public class RunAnimSc