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 HarvestMoons v1.5.6
BlindPups.dll
Decompiled 4 months 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] 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.2")] public class Plugin : BaseUnityPlugin { private const string modGUID = "JacobG5.BlindPups"; private const string modName = "BlindPups"; private const string modVersion = "1.0.2"; 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) //IL_00c1: 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)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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) //IL_00c1: 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.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 == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((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) //IL_00ce: 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)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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) //IL_00ce: 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.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 == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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) //IL_00ce: 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.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 == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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) //IL_00c1: 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)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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) //IL_00c1: 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.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 == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; 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); } } public GrabbableObject? GetHeldObject() { return null; } public bool IsThreatDead() { return base.isEnemyDead; } protected override void __initializeVariables() { ((EnemyAI)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3106330922u, new RpcReceiveHandler(__rpc_handler_3106330922), "EndLungeServerRpc"); ((NetworkBehaviour)this).__registerRpc(3443765605u, new RpcReceiveHandler(__rpc_handler_3443765605), "EndLungeClientRpc"); ((NetworkBehaviour)this).__registerRpc(4001558559u, new RpcReceiveHandler(__rpc_handler_4001558559), "KillPlayerServerRpc"); ((NetworkBehaviour)this).__registerRpc(1417954382u, new RpcReceiveHandler(__rpc_handler_1417954382), "CancelKillAnimationWithPlayerClientRpc"); ((NetworkBehaviour)this).__registerRpc(233721520u, new RpcReceiveHandler(__rpc_handler_233721520), "KillPlayerClientRpc"); ((NetworkBehaviour)this).__registerRpc(3999301457u, new RpcReceiveHandler(__rpc_handler_3999301457), "StopKillAnimationServerRpc"); ((NetworkBehaviour)this).__registerRpc(776545170u, new RpcReceiveHandler(__rpc_handler_776545170), "StopKillAnimationClientRpc"); ((EnemyAI)this).__initializeRpcs(); } 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)1; ((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)1; ((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)1; ((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)1; ((BlindPupAI)(object)target).StopKillAnimationClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "BlindPupAI"; } } } namespace __GEN { internal class NetworkVariableSerializationHelper { [RuntimeInitializeOnLoadMethod] internal static void InitializeSerialization() { } } } namespace BlindPups.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }