Decompiled source of JPOGStegosaurus v1.0.2
plugins/JPOGStegosaurus/JPOGStegosaurus.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using JPOGStegosaurus.Configuration; using JPOGStegosaurus.NetcodePatcher; using LethalLib.Modules; using Microsoft.CodeAnalysis; using Unity.Collections; using Unity.Netcode; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("JPOGStegosaurus")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.2.0")] [assembly: AssemblyInformationalVersion("1.0.2+1ff21c682b6c173ef40edeaa84a39fee2f762eb4")] [assembly: AssemblyProduct("JPOGStegosaurus")] [assembly: AssemblyTitle("JPOGStegosaurus")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.2.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 JPOGStegosaurus { internal class JPOGStegosaurusAI : EnemyAI, IVisibleThreat { private enum State { Roaming, AttackEnemy, ChasingTarget, RunningAway, Stunned, SpecialAttack, Idling } public Transform turnCompass; public Transform aggroArea; private List<DeadBodyInfo> spikedBodies = new List<DeadBodyInfo>(); public AudioSource tailSFX; public Transform tailSpike1; public Transform tailSpike2; public Transform tailSpike3; public Transform tailSpike4; public Transform tailHitBox; public Transform stompHitbox; public Transform attackAreaFront; public Transform attackAreaBack; private float timeSinceHittingLocalPlayer; private float timeSinceNewRandPos; private Vector3 positionRandomness; private Vector3 StalkPos; private Random enemyRandom; private bool isDeadAnimationDone; private float irritationLevel; private float irritationMaxLevel; private float irritationIncrementAmount; private float irritationDecrementAmount; private float irritationDecrementinterval; private float lastIrritationDecreaseTime; private State previousState = State.Idling; private bool inRandomIdleAnimation; private bool isDoneIdling; private float timeToIdle = 30f; private bool inTailAttack; private List<int> tailHitPlayerIds = new List<int>(); private List<int> stompHitPlayerIds = new List<int>(); private float lastIrritationIncrementTime; private float irritationIncrementInterval; private bool inStompAttack; private float roamingStartTime; private float movementCheckInterval = 5f; private Vector3 lastPosition; private float movingThreshold = 0.1f; private bool inStunAnimation; private bool inSpecialTailAttack; private float stopChaseHeight = 7f; private bool isStunned; private bool readyToChaseFromSpecialAttack; private Quaternion originalRotation; private bool readyToChaseFromStunned; private bool specialAttackCanHitPlayer; private bool specialAttackHasHitPlayer; private EnemyAI? targetEntiy; ThreatType IVisibleThreat.type => (ThreatType)3; int IVisibleThreat.SendSpecialBehaviour(int id) { return 0; } int IVisibleThreat.GetThreatLevel(Vector3 seenByPosition) { int num = 0; 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_0014: 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) 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; } [Conditional("DEBUG")] private void LogIfDebugBuild(string text) { Plugin.Logger.LogInfo((object)text); } public override void Start() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) AssignConfigVariables(); ((EnemyAI)this).Start(); ((MonoBehaviour)this).StartCoroutine(checkAggroAndAttackAreas()); timeSinceHittingLocalPlayer = 0f; timeSinceNewRandPos = 0f; positionRandomness = new Vector3(0f, 0f, 0f); enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex); isDeadAnimationDone = false; ((EnemyAI)this).SwitchToBehaviourServerRpc(0); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void Update() { ((EnemyAI)this).Update(); if (base.isEnemyDead) { if (!isDeadAnimationDone) { isDeadAnimationDone = true; base.creatureVoice.Stop(); base.creatureVoice.PlayOneShot(base.dieSFX); } } else if (base.enemyHP > 0 || base.isEnemyDead) { timeSinceHittingLocalPlayer += Time.deltaTime; timeSinceNewRandPos += Time.deltaTime; int currentBehaviourStateIndex = base.currentBehaviourStateIndex; if (timeSinceNewRandPos >= movementCheckInterval && !inStunAnimation) { timeSinceNewRandPos = 0f; CheckMovementServerRpc(); } if ((Object)(object)base.targetPlayer != (Object)null && (currentBehaviourStateIndex == 1 || currentBehaviourStateIndex == 2 || currentBehaviourStateIndex == 4 || currentBehaviourStateIndex == 5)) { LookAtTargetServerRpc(); } if (base.stunNormalizedTimer > 0f) { isStunned = true; } else { isStunned = false; } } } [ServerRpc(RequireOwnership = false)] private void PlayStunnedAnimationServerRpc() { //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(3641107333u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3641107333u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { inStunAnimation = true; ((MonoBehaviour)this).StartCoroutine(BeginStunAnimation()); } } } private IEnumerator BeginStunAnimation() { DoAnimationClientRpc("stunEnemy"); yield return (object)new WaitForSeconds(2.1f); inStunAnimation = false; } [ServerRpc(RequireOwnership = false)] private void CheckMovementServerRpc() { //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) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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(680955357u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 680955357u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { Vector3 position = ((Component)this).transform.position; if (Vector3.Distance(position, lastPosition) < movingThreshold) { ((EnemyAI)this).StopSearch(base.currentSearch, true); ((EnemyAI)this).StartSearch(position, (AISearchRoutine)null); } lastPosition = position; } } public override void DoAIInterval() { //IL_00cd: 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_008a: 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) ((EnemyAI)this).DoAIInterval(); if (base.isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (base.currentBehaviourStateIndex) { case 0: StateChangeHelperServerRpc(State.Roaming); if (irritationLevel == irritationMaxLevel) { ((EnemyAI)this).SwitchToBehaviourServerRpc(2); } break; case 1: StateChangeHelperServerRpc(State.AttackEnemy); if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)base.targetPlayer).transform.position, 45f, 60, -1f, (Transform)null))) { ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } break; case 2: StateChangeHelperServerRpc(State.ChasingTarget); ChasePlayerServerRpc(); if ((Object)(object)base.targetPlayer == (Object)null) { irritationLevel = irritationMaxLevel / 100f * 20f; ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } else if (irritationLevel >= 20f) { DecreaseIrritationServerRpc(); } else if (irritationLevel < irritationMaxLevel / 100f * 20f) { ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } break; case 3: StateChangeHelperServerRpc(State.RunningAway); break; case 6: StateChangeHelperServerRpc(State.Idling); if (!inRandomIdleAnimation) { PlayRandomIdleAnimationClientRpc(); } if (isDoneIdling) { isDoneIdling = false; if (irritationLevel == irritationMaxLevel) { ((EnemyAI)this).SwitchToBehaviourServerRpc(2); } else { ((EnemyAI)this).SwitchToBehaviourServerRpc(0); } } break; case 4: StateChangeHelperServerRpc(State.Stunned); if (!isStunned) { if ((Object)(object)base.targetPlayer != (Object)null) { ((EnemyAI)this).SwitchToBehaviourServerRpc(2); break; } irritationLevel = irritationMaxLevel / 100f * 50f; ((EnemyAI)this).SwitchToBehaviourServerRpc(0); } else if (isStunned && !inStunAnimation) { PlayStunnedAnimationServerRpc(); } break; case 5: StateChangeHelperServerRpc(State.SpecialAttack); if (!specialAttackCanHitPlayer) { ((EnemyAI)this).SwitchToBehaviourServerRpc(2); } else if (readyToChaseFromSpecialAttack) { if (specialAttackHasHitPlayer) { readyToChaseFromSpecialAttack = false; specialAttackHasHitPlayer = false; irritationLevel = irritationMaxLevel / 100f * 40f; specialAttackCanHitPlayer = false; ((EnemyAI)this).SwitchToBehaviourServerRpc(0); } else if ((Object)(object)base.targetPlayer != (Object)null) { readyToChaseFromSpecialAttack = false; specialAttackHasHitPlayer = false; specialAttackCanHitPlayer = false; ((EnemyAI)this).SwitchToBehaviourServerRpc(2); } else { irritationLevel = irritationMaxLevel / 100f * 40f; specialAttackCanHitPlayer = false; ((EnemyAI)this).SwitchToBehaviourServerRpc(0); } } else if (!CheckIfInAttackAnimation() && (Object)(object)base.targetPlayer != (Object)null) { LookAtTargetServerRpc(); PerformSpecialTailAttackServerRpc(); } break; } } [ServerRpc(RequireOwnership = false)] private void CheckIfSpecialAttackCanHitPlayerServerRpc() { //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(2887578632u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2887578632u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CheckIfSpecialAttackCanHitPlayer(); } } } private void CheckIfSpecialAttackCanHitPlayer() { //IL_0015: 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) if (!((Object)(object)base.targetPlayer == (Object)null)) { float num = Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position); if (num <= 10f) { specialAttackCanHitPlayer = true; } else { specialAttackCanHitPlayer = false; } } } [ServerRpc(RequireOwnership = false)] private void ChasePlayerServerRpc() { //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_0140: 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(2766208683u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2766208683u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost)) { return; } bool flag = false; if ((Object)(object)base.targetPlayer != (Object)null && !CheckIfPlayerIsTargetable(base.targetPlayer)) { base.targetPlayer = null; } if ((Object)(object)base.targetPlayer == (Object)null) { flag = ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 100f); if ((Object)(object)base.targetPlayer != (Object)null && (!flag || !CheckIfPlayerIsTargetable(base.targetPlayer))) { base.targetPlayer = null; } } if ((Object)(object)base.targetPlayer != (Object)null) { ChasePlayerClientRpc(((Component)base.targetPlayer).transform.position); } else if (!flag || (Object)(object)base.targetPlayer == (Object)null) { irritationLevel = irritationMaxLevel / 100f * 20f; } } [ClientRpc] private void ChasePlayerClientRpc(Vector3 targetPosition) { //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_0089: 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) 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(2890294529u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref targetPosition); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2890294529u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ((EnemyAI)this).SetDestinationToPosition(targetPosition, false); } } } private bool CheckIfPlayerIsTargetable(PlayerControllerB player) { bool result = false; if ((Object)(object)player != (Object)null) { result = ((!player.isInHangarShipRoom && !player.isClimbingLadder && !player.isPlayerDead) ? true : false); } return result; } private bool CheckHeightDifference() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) bool result = false; if ((Object)(object)base.targetPlayer != (Object)null) { float num = Mathf.Abs(((Component)this).transform.position.y - ((Component)base.targetPlayer).transform.position.y); if (num < stopChaseHeight) { result = true; } } return result; } private bool FoundClosestPlayerInRange(float range, float senseRange) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 70f); if ((Object)(object)base.targetPlayer == (Object)null) { ((EnemyAI)this).TargetClosestPlayer(1.5f, false, 70f); range = senseRange; } if ((Object)(object)base.targetPlayer != (Object)null) { return Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) < range; } return false; } private bool TargetClosestPlayerInAnyCase() { //IL_001d: 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) base.mostOptimalDistance = 2000f; base.targetPlayer = null; for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < base.mostOptimalDistance) { base.mostOptimalDistance = base.tempDist; base.targetPlayer = StartOfRound.Instance.allPlayerScripts[i]; } } if ((Object)(object)base.targetPlayer == (Object)null) { return false; } return true; } private void StickingInFrontOfPlayer() { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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_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_00b8: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)base.targetPlayer == (Object)null) && ((NetworkBehaviour)this).IsOwner && timeSinceNewRandPos > 0.7f) { timeSinceNewRandPos = 0f; if (enemyRandom.Next(0, 5) == 0) { ((MonoBehaviour)this).StartCoroutine(SwingAttack()); } else { positionRandomness = new Vector3((float)enemyRandom.Next(-2, 2), 0f, (float)enemyRandom.Next(-2, 2)); StalkPos = ((Component)base.targetPlayer).transform.position - Vector3.Scale(new Vector3(-5f, 0f, -5f), ((Component)base.targetPlayer).transform.forward) + positionRandomness; } ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); } } private IEnumerator checkAggroAndAttackAreas() { while (!base.isEnemyDead) { CheckForPlayersInAggroAreaServerRpc(); CheckForPlayersInAttackAreaBackServerRpc(); CheckForPlayersInAttackAreaFrontServerRpc(); yield return (object)new WaitForSeconds(1f); } } [ServerRpc(RequireOwnership = false)] private void CheckForEntitiesInAggroRangeServerRpc() { //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(2733064149u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2733064149u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CheckForEntitiesInAggroRangeClientRpc(); } } } [ClientRpc] private void CheckForEntitiesInAggroRangeClientRpc() { //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(30543906u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 30543906u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { CheckForEntitiesInAggroRange(); } } } private void CheckForEntitiesInAggroRange() { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)targetEntiy != (Object)null || base.currentBehaviourStateIndex != 0) { return; } foreach (EnemyAI spawnedEnemy in RoundManager.Instance.SpawnedEnemies) { if (!((Object)base.enemyType).name.Equals(((Object)spawnedEnemy.enemyType).name) && !spawnedEnemy.isEnemyDead && spawnedEnemy.enemyType.canDie) { float num = Vector3.Distance(((Component)spawnedEnemy).transform.position, ((Component)this).transform.position); if (num <= 10f) { targetEntiy = spawnedEnemy; LookAtTargetEntityServerRpc(); ((EnemyAI)this).SwitchToBehaviourServerRpc(5); } } } } [ServerRpc(RequireOwnership = false)] private void LookAtTargetEntityServerRpc() { //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(2295700574u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2295700574u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { LookAtTargetEntityClientRpc(); } } } [ClientRpc] private void LookAtTargetEntityClientRpc() { //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(1440074249u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1440074249u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { LookAtTargetEntity(); } } } private void LookAtTargetEntity() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)targetEntiy != (Object)null) { turnCompass.LookAt(((Component)targetEntiy).transform.position); } } private IEnumerator SwingAttack() { ((EnemyAI)this).SwitchToBehaviourClientRpc(1); StalkPos = ((Component)base.targetPlayer).transform.position; ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); yield return (object)new WaitForSeconds(0.5f); if (!base.isEnemyDead) { DoAnimationClientRpc("swingAttack"); yield return (object)new WaitForSeconds(0.35f); SwingAttackHitClientRpc(); if (base.currentBehaviourStateIndex == 1) { ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } } } public override void OnCollideWithPlayer(Collider other) { //IL_0036: 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) if (!(timeSinceHittingLocalPlayer < 1f)) { PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val != (Object)null) { timeSinceHittingLocalPlayer = 0f; val.DamagePlayer(20, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); } } } public override void OnCollideWithEnemy(Collider other, EnemyAI collidedEnemy) { if (!base.isEnemyDead && !((Object)(object)collidedEnemy == (Object)null) && !collidedEnemy.isEnemyDead && collidedEnemy.enemyType.canDie) { ((EnemyAI)this).OnCollideWithEnemy(other, collidedEnemy); if ((Object)(object)collidedEnemy.enemyType != (Object)(object)base.enemyType && !base.inSpecialAnimation && !inStompAttack && !inSpecialTailAttack) { targetEntiy = collidedEnemy; LookAtTargetEntityServerRpc(); ((MonoBehaviour)this).StartCoroutine(BeginStompAttack()); } } } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); if (base.isEnemyDead) { return; } base.enemyHP -= force; if (((NetworkBehaviour)this).IsOwner) { if (base.enemyHP <= 0 && !base.isEnemyDead) { ((MonoBehaviour)this).StopCoroutine(checkAggroAndAttackAreas()); base.agent.speed = 0f; SetWalkingAnimtionClientRpc(base.agent.speed); SetWalkingAnimtionServerRpc(base.agent.speed); DoAnimationClientRpc("stopTail"); ((MonoBehaviour)this).StopCoroutine(base.searchCoroutine); ((EnemyAI)this).KillEnemyOnOwnerClient(false); } else if ((Object)(object)playerWhoHit != (Object)null && base.currentBehaviourStateIndex != 2) { irritationLevel = irritationMaxLevel; base.targetPlayer = playerWhoHit; ((EnemyAI)this).SwitchToBehaviourServerRpc(5); } } } [ServerRpc(RequireOwnership = false)] private void PerformSpecialTailAttackServerRpc() { //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_00c9: 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.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2863341794u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2863341794u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { readyToChaseFromSpecialAttack = false; originalRotation = ((Component)this).transform.rotation; ((MonoBehaviour)this).StartCoroutine(BeginSpecialTailAttack()); } } } [ServerRpc(RequireOwnership = false)] public void LookAtTargetServerRpc() { //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(3034550381u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3034550381u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { LookAtTargetClientRpc(); } } } [ClientRpc] public void LookAtTargetClientRpc() { //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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_0100: 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_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0144: 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(251069385u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 251069385u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && (Object)(object)base.targetPlayer != (Object)null) { Vector3 position = ((Component)base.targetPlayer.gameplayCamera).transform.position; Vector3 val3 = position - ((Component)this).transform.position; val3.y = 0f; Quaternion val4 = Quaternion.LookRotation(val3); ((Component)this).transform.rotation = Quaternion.Lerp(((Component)this).transform.rotation, val4, 4f * Time.deltaTime); turnCompass.LookAt(((Component)base.targetPlayer.gameplayCamera).transform.position); } } } public override void SetEnemyStunned(bool setToStunned, float setToStunTime = 1f, PlayerControllerB? setStunnedByPlayer = null) { ((EnemyAI)this).SetEnemyStunned(setToStunned, setToStunTime, setStunnedByPlayer); ((EnemyAI)this).SwitchToBehaviourServerRpc(4); if ((Object)(object)setStunnedByPlayer != (Object)null) { irritationLevel = irritationMaxLevel; base.targetPlayer = setStunnedByPlayer; } } [ServerRpc(RequireOwnership = false)] private void CheckForPlayersInAggroAreaServerRpc() { //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(964536497u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 964536497u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CheckForPlayersInAggroAreaClientRpc(); } } } [ClientRpc] private void CheckForPlayersInAggroAreaClientRpc() { //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(726981742u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 726981742u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { CheckForPlayersInAggroArea(); } } } private void CheckForPlayersInAggroArea() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) int num = 8; Collider[] array = Physics.OverlapBox(aggroArea.position, aggroArea.localScale, Quaternion.identity, num); if (array.Length == 0) { return; } Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && irritationLevel != irritationMaxLevel) { IncreaseIrritationServerRpc(); if (irritationLevel == irritationMaxLevel) { base.targetPlayer = val2; break; } } } } [ServerRpc(RequireOwnership = false)] private void CheckForPlayersInAttackAreaFrontServerRpc() { //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 != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2127433461u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2127433461u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { int currentBehaviourStateIndex = base.currentBehaviourStateIndex; if (CheckForPlayersInAttackAreaFront() && (!inStompAttack || !inTailAttack) && currentBehaviourStateIndex == 2) { ((MonoBehaviour)this).StartCoroutine(BeginStompAttack()); } } } private bool CheckForPlayersInAttackAreaFront() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) bool result = false; int num = 8; Collider[] array = Physics.OverlapBox(attackAreaFront.position, attackAreaFront.localScale, Quaternion.identity, num); if (array.Length != 0) { Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && irritationLevel != irritationMaxLevel) { IncreaseIrritationServerRpc(); } } result = true; } return result; } [ServerRpc(RequireOwnership = false)] private void CheckForPlayersInAttackAreaBackServerRpc() { //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 != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2525905385u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2525905385u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost) && CheckForPlayersInAttackAreaBack()) { if (!inStompAttack || !inTailAttack) { ((MonoBehaviour)this).StartCoroutine(BeginTailAttack()); } IncreaseIrritationServerRpc(); } } private bool CheckForPlayersInAttackAreaBack() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) bool result = false; int num = 8; Collider[] array = Physics.OverlapBox(attackAreaBack.position, attackAreaBack.localScale, Quaternion.identity, num); if (array.Length != 0) { Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && irritationLevel != irritationMaxLevel) { IncreaseIrritationServerRpc(); } } result = true; } return result; } [ClientRpc] private void CheckIfStompAttackHitPlayersClientRpc() { //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(1998934567u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1998934567u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && CheckIfStompAttackHitPlayers()) { KillPlayersByStompClientRpc(); } } } [ClientRpc] private void KillPlayersByStompClientRpc() { //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(2825601160u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2825601160u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost) || stompHitPlayerIds.Count <= 0) { return; } foreach (int stompHitPlayerId in stompHitPlayerIds) { ((MonoBehaviour)this).StartCoroutine(KillPlayer(stompHitPlayerId, (CauseOfDeath)8)); } stompHitPlayerIds.Clear(); } private bool CheckIfStompAttackHitPlayers() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) bool result = false; int num = 8; Collider[] array = Physics.OverlapBox(stompHitbox.position, stompHitbox.localScale, Quaternion.identity, num); if (array.Length != 0) { Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && CheckIfPlayerIsTargetable(val2)) { int num2 = (int)val2.actualClientId; if (!stompHitPlayerIds.Contains((int)val2.playerClientId)) { stompHitPlayerIds.Add((int)val2.playerClientId); result = true; } } } } return result; } private bool CheckIfInAttackAnimation() { bool result = true; if (!inSpecialTailAttack && !inStompAttack && !inTailAttack) { result = false; } return result; } private IEnumerator BeginSpecialTailAttack() { if (!CheckIfInAttackAnimation()) { inSpecialTailAttack = true; ((MonoBehaviour)this).StartCoroutine(BeginSpecialTailAnimation()); while (inSpecialTailAttack) { CheckIfTailAttackHitPlayersClientRpc(); CheckIfTailAttackHitEntitiesClientRpc(); yield return null; } } ((Component)this).transform.rotation = Quaternion.Euler(0f, 0f, 0f); readyToChaseFromSpecialAttack = true; } [ClientRpc] private void CheckIfTailAttackHitEntitiesClientRpc() { //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(3564157189u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3564157189u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { CheckIfTailAttackHitEntities(); } } } private void CheckIfTailAttackHitEntities() { //IL_0052: 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) foreach (EnemyAI spawnedEnemy in RoundManager.Instance.SpawnedEnemies) { if (!((Object)base.enemyType).name.Equals(((Object)spawnedEnemy.enemyType).name) && !spawnedEnemy.isEnemyDead && !spawnedEnemy.enemyType.canDie) { float num = Vector3.Distance(((Component)spawnedEnemy).transform.position, ((Component)tailSpike1).transform.position); if (num < 5f) { DamageEntity(spawnedEnemy); } } } } private IEnumerator BeginSpecialTailAttackOnEntity() { base.agent.speed = 0f; SetWalkingAnimtionServerRpc(base.agent.speed); if (!CheckIfInAttackAnimation()) { inSpecialTailAttack = true; ((MonoBehaviour)this).StartCoroutine(BeginSpecialTailAnimation()); yield return (object)new WaitForSeconds(5.5f); base.agent.speed = 3f; SetWalkingAnimtionServerRpc(base.agent.speed); } } private IEnumerator BeginSpecialTailAnimation() { DoAnimationClientRpc("tailFrontalAttack"); yield return (object)new WaitForSeconds(5.7f); inSpecialTailAttack = false; } private IEnumerator BeginStompAttack() { if (!CheckIfInAttackAnimation()) { inStompAttack = true; ((MonoBehaviour)this).StartCoroutine(BeginStompAnimation()); yield return (object)new WaitForSeconds(2f); while (inStompAttack) { CheckIfStompAttackHitPlayersClientRpc(); yield return null; } if ((Object)(object)targetEntiy != (Object)null) { targetEntiy.HitEnemy(5, (PlayerControllerB)null, true, -1); targetEntiy = null; } } } private IEnumerator BeginStompAnimation() { DoAnimationClientRpc("stompAttack"); yield return (object)new WaitForSeconds(2.2f); inStompAttack = false; } private IEnumerator BeginTailAttack() { if (!CheckIfInAttackAnimation()) { inTailAttack = true; ((MonoBehaviour)this).StartCoroutine(BeginTailAttackAnimation()); yield return (object)new WaitForSeconds(0.3f); while (inTailAttack) { CheckIfTailAttackHitPlayersClientRpc(); yield return null; } } } private IEnumerator BeginTailAttackAnimation() { DoAnimationClientRpc("tailAttack"); yield return (object)new WaitForSeconds(2.8f); inTailAttack = false; } [ServerRpc(RequireOwnership = false)] private void CheckIfTailAttackHitPlayersServerRpc() { //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(1744835590u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1744835590u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CheckIfTailAttackHitPlayersClientRpc(); } } } [ClientRpc] private void CheckIfTailAttackHitPlayersClientRpc() { //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(585527103u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 585527103u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && CheckIfTailAttackHitPlayers()) { specialAttackHasHitPlayer = true; KillPlayersByTailClientRpc(); } } } private bool CheckIfTailAttackHitPlayers() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) bool result = false; int num = 8; Collider[] array = Physics.OverlapBox(tailHitBox.position, tailHitBox.localScale, Quaternion.identity, num); if (array.Length != 0) { Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && CheckIfPlayerIsTargetable(val2)) { int num2 = (int)val2.actualClientId; if (!tailHitPlayerIds.Contains((int)val2.playerClientId)) { tailHitPlayerIds.Add((int)val2.playerClientId); result = true; } } } } return result; } [ServerRpc(RequireOwnership = false)] private void CheckIdleTimeServerRpc() { //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(2485712900u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2485712900u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost) && Time.time - roamingStartTime >= timeToIdle && isDoneIdling) { ((EnemyAI)this).SwitchToBehaviourServerRpc(6); } } } [ServerRpc(RequireOwnership = false)] private void IncreaseIrritationServerRpc() { //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 != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(224280285u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 224280285u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { int currentBehaviourStateIndex = base.currentBehaviourStateIndex; if (Time.time - lastIrritationIncrementTime >= irritationIncrementInterval && currentBehaviourStateIndex != 2) { irritationLevel = Mathf.Clamp(irritationLevel + irritationIncrementAmount, 0f, irritationMaxLevel); lastIrritationIncrementTime = Time.time; } } } [ServerRpc(RequireOwnership = false)] private void DecreaseIrritationServerRpc() { //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(2611162217u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2611162217u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost) && Time.time - lastIrritationDecreaseTime >= irritationDecrementinterval) { irritationLevel = Mathf.Clamp(irritationLevel - irritationDecrementinterval, 0f, irritationMaxLevel); lastIrritationDecreaseTime = Time.time; } } } [ClientRpc] public void DoAnimationClientRpc(string animationName) { //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)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1125079064u, val, (RpcDelivery)0); bool flag = animationName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(animationName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1125079064u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { base.creatureAnimator.SetTrigger(animationName); } } [ClientRpc] public void SwingAttackHitClientRpc() { //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_00c3: 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) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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(2213681325u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2213681325u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } int num = 8; Collider[] array = Physics.OverlapBox(attackAreaFront.position, attackAreaFront.localScale, Quaternion.identity, num); if (array.Length == 0) { return; } Collider[] array2 = array; foreach (Collider val3 in array2) { PlayerControllerB val4 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val3, false, false); if ((Object)(object)val4 != (Object)null) { timeSinceHittingLocalPlayer = 0f; val4.DamagePlayer(40, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); } } } [ClientRpc] private void PlayRandomIdleAnimationClientRpc() { //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(2437434051u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2437434051u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { inRandomIdleAnimation = true; switch (GetAnimationNameForIdle()) { case "tailshow": ((MonoBehaviour)this).StartCoroutine(PlayTailShowIdle()); break; case "scratch": ((MonoBehaviour)this).StartCoroutine(PlayScratchIdle()); break; case "stretch": ((MonoBehaviour)this).StartCoroutine(PlayStretchIdle()); break; default: ((MonoBehaviour)this).StartCoroutine(PlayTailShowIdle()); break; } } } private string GetAnimationNameForIdle() { string[] array = new string[3] { "scratch", "stretch", "scratch" }; int num = enemyRandom.Next(0, array.Length); return array[num]; } private IEnumerator PlayTailShowIdle() { DoAnimationClientRpc("tailShow"); yield return (object)new WaitForSeconds(3.8f); inRandomIdleAnimation = false; isDoneIdling = true; } private IEnumerator PlayScratchIdle() { DoAnimationClientRpc("scratch"); yield return (object)new WaitForSeconds(4.5f); inRandomIdleAnimation = false; isDoneIdling = true; } private IEnumerator PlayStretchIdle() { DoAnimationClientRpc("stretch"); yield return (object)new WaitForSeconds(4.1f); inRandomIdleAnimation = false; isDoneIdling = true; } private IEnumerator RoamingStateCoroutine() { yield return (object)new WaitForSeconds(timeToIdle); ((EnemyAI)this).SwitchToBehaviourClientRpc(6); } [ServerRpc(RequireOwnership = false)] private void StateChangeHelperServerRpc(State state) { //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)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1912448489u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<State>(ref state, default(ForEnums)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1912448489u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost) || previousState == state) { return; } SetWallkingAnimationPerSate(state); previousState = state; StateChangeHelperClientRpc(state); switch (state) { case State.Roaming: base.movingTowardsTargetPlayer = false; roamingStartTime = Time.time; break; case State.SpecialAttack: CheckIfSpecialAttackCanHitPlayerServerRpc(); break; case State.Idling: if (state == State.Roaming) { if (state == State.ChasingTarget) { base.movingTowardsTargetPlayer = true; } break; } goto default; default: inRandomIdleAnimation = false; isDoneIdling = true; break; } } [ClientRpc] private void StateChangeHelperClientRpc(State state) { //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)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(133714100u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<State>(ref state, default(ForEnums)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 133714100u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if (state != State.Idling) { ((MonoBehaviour)this).StopCoroutine(PlayStretchIdle()); ((MonoBehaviour)this).StopCoroutine(PlayTailShowIdle()); ((MonoBehaviour)this).StopCoroutine(PlayScratchIdle()); } else if (state == State.Idling) { isDoneIdling = false; } } } private void SetWallkingAnimationPerSate(State state) { switch (state) { case State.Roaming: base.agent.speed = 3f; SetWalkingAnimtion(base.agent.speed); break; case State.Stunned: base.agent.speed = 0f; SetWalkingAnimtion(base.agent.speed); break; case State.SpecialAttack: base.agent.speed = 0f; SetWalkingAnimtion(base.agent.speed); break; case State.ChasingTarget: base.agent.speed = 6f; SetWalkingAnimtion(base.agent.speed); break; case State.AttackEnemy: base.agent.speed = 3f; SetWalkingAnimtion(base.agent.speed); break; case State.RunningAway: base.agent.speed = 6f; SetWalkingAnimtion(base.agent.speed); break; case State.Idling: base.agent.speed = 0f; SetWalkingAnimtion(base.agent.speed); break; } } [ServerRpc(RequireOwnership = false)] private void SetWalkingAnimtionServerRpc(float agentSpeed) { //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)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2941480139u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref agentSpeed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2941480139u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetWalkingAnimtion(agentSpeed); } } } [ClientRpc] private void SetWalkingAnimtionClientRpc(float agentSpeed) { //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)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2393270272u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref agentSpeed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2393270272u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { SetWalkingAnimtion(agentSpeed); } } } private void SetWalkingAnimtion(float agentSpeed) { if (agentSpeed == 0f && base.currentBehaviourStateIndex == 2) { DoAnimationClientRpc("stopRun"); } else if (agentSpeed == 0f) { DoAnimationClientRpc("stopWalk"); } else if (agentSpeed > 0f && agentSpeed <= 3f) { DoAnimationClientRpc("startWalk"); } else if (agentSpeed > 3f) { DoAnimationClientRpc("startRun"); } } private void AssignConfigVariables() { irritationMaxLevel = SyncedInstance<PluginConfig>.Instance.MaxIrritationLevel.Value; irritationDecrementinterval = SyncedInstance<PluginConfig>.Instance.IntervalIrrtationDecrement.Value; irritationIncrementInterval = SyncedInstance<PluginConfig>.Instance.IntervalIrrtationIncrement.Value; irritationIncrementAmount = SyncedInstance<PluginConfig>.Instance.IncreaseAmountIrritation.Value; irritationDecrementAmount = SyncedInstance<PluginConfig>.Instance.DecreaseAmountIrritation.Value; } [ClientRpc] private void KillPlayersByTailClientRpc() { //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(2166756640u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2166756640u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost) || tailHitPlayerIds.Count <= 0) { return; } foreach (int tailHitPlayerId in tailHitPlayerIds) { ((MonoBehaviour)this).StartCoroutine(KillPlayer(tailHitPlayerId, (CauseOfDeath)14)); } tailHitPlayerIds.Clear(); } private IEnumerator KillPlayer(int playerId, CauseOfDeath causeOfDeath) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB killPlayer = StartOfRound.Instance.allPlayerScripts[playerId]; if ((Object)(object)killPlayer == (Object)null || killPlayer.isPlayerDead || base.isEnemyDead) { yield break; } if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)killPlayer) { killPlayer.KillPlayer(Vector3.zero, true, causeOfDeath, 0, 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) { killPlayer.inAnimationWithEnemy = null; yield break; } if ((int)killPlayer.deadBody.causeOfDeath == 14) { PinBodyToSpikeServerRpc(playerId); } 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); } } } [ServerRpc(RequireOwnership = false)] private void PinBodyToSpikeServerRpc(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) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(363024002u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 363024002u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { PinBodyToSpike(playerId); AttachBodyToSpikeClientRpc(playerId); AddToSpikedBodiesClientRpc(playerId); } } } private void PinBodyToSpike(int playerId) { AttachBodyToSpike(playerId); AddToSpikedBodies(playerId); } [ClientRpc] private void AttachBodyToSpikeClientRpc(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) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1415424589u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1415424589u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { AttachBodyToSpike(playerId); } } } [ClientRpc] private void AddToSpikedBodiesClientRpc(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) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(218561017u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 218561017u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { AddToSpikedBodies(playerId); } } } private void AttachBodyToSpike(int playerId) { int num = enemyRandom.Next(1, 5); DeadBodyInfo deadBody = StartOfRound.Instance.allPlayerScripts[playerId].deadBody; Transform attachedTo = (Transform)(num switch { 1 => tailSpike1, 2 => tailSpike2, 3 => tailSpike3, 4 => tailSpike4, _ => tailSpike1, }); if ((Object)(object)deadBody != (Object)null) { deadBody.attachedTo = attachedTo; deadBody.attachedLimb = deadBody.bodyParts[5]; deadBody.matchPositionExactly = true; deadBody.MakeCorpseBloody(); } } private void AddToSpikedBodies(int playerId) { DeadBodyInfo deadBody = StartOfRound.Instance.allPlayerScripts[playerId].deadBody; if ((Object)(object)deadBody != (Object)null) { spikedBodies.Add(deadBody); spikedBodies.Contains(deadBody); } } private void DamageEntity(EnemyAI entity) { entity.HitEnemy(5, (PlayerControllerB)null, true, -1); } private void PlayAudioClip(AudioClip audioClip) { DoAnimationClientRpc("roar"); base.creatureVoice.PlayOneShot(audioClip); WalkieTalkie.TransmitOneShotAudio(base.creatureVoice, audioClip, 1f); } private void PlayAudioSFX(AudioClip audioClip) { base.creatureSFX.PlayOneShot(audioClip); } private void PlayTailSFX(AudioClip audioClip) { tailSFX.PlayOneShot(audioClip); } protected override void __initializeVariables() { ((EnemyAI)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_JPOGStegosaurusAI() { //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 //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Expected O, but got Unknown //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Expected O, but got Unknown //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Expected O, but got Unknown //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Expected O, but got Unknown //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Expected O, but got Unknown //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Expected O, but got Unknown //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Expected O, but got Unknown //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Expected O, but got Unknown //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Expected O, but got Unknown //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0345: Expected O, but got Unknown //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Expected O, but got Unknown //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Expected O, but got Unknown //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Expected O, but got Unknown //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(3641107333u, new RpcReceiveHandler(__rpc_handler_3641107333)); NetworkManager.__rpc_func_table.Add(680955357u, new RpcReceiveHandler(__rpc_handler_680955357)); NetworkManager.__rpc_func_table.Add(2887578632u, new RpcReceiveHandler(__rpc_handler_2887578632)); NetworkManager.__rpc_func_table.Add(2766208683u, new RpcReceiveHandler(__rpc_handler_2766208683)); NetworkManager.__rpc_func_table.Add(2890294529u, new RpcReceiveHandler(__rpc_handler_2890294529)); NetworkManager.__rpc_func_table.Add(2733064149u, new RpcReceiveHandler(__rpc_handler_2733064149)); NetworkManager.__rpc_func_table.Add(30543906u, new RpcReceiveHandler(__rpc_handler_30543906)); NetworkManager.__rpc_func_table.Add(2295700574u, new RpcReceiveHandler(__rpc_handler_2295700574)); NetworkManager.__rpc_func_table.Add(1440074249u, new RpcReceiveHandler(__rpc_handler_1440074249)); NetworkManager.__rpc_func_table.Add(2863341794u, new RpcReceiveHandler(__rpc_handler_2863341794)); NetworkManager.__rpc_func_table.Add(3034550381u, new RpcReceiveHandler(__rpc_handler_3034550381)); NetworkManager.__rpc_func_table.Add(251069385u, new RpcReceiveHandler(__rpc_handler_251069385)); NetworkManager.__rpc_func_table.Add(964536497u, new RpcReceiveHandler(__rpc_handler_964536497)); NetworkManager.__rpc_func_table.Add(726981742u, new RpcReceiveHandler(__rpc_handler_726981742)); NetworkManager.__rpc_func_table.Add(2127433461u, new RpcReceiveHandler(__rpc_handler_2127433461)); NetworkManager.__rpc_func_table.Add(2525905385u, new RpcReceiveHandler(__rpc_handler_2525905385)); NetworkManager.__rpc_func_table.Add(1998934567u, new RpcReceiveHandler(__rpc_handler_1998934567)); NetworkManager.__rpc_func_table.Add(2825601160u, new RpcReceiveHandler(__rpc_handler_2825601160)); NetworkManager.__rpc_func_table.Add(3564157189u, new RpcReceiveHandler(__rpc_handler_3564157189)); NetworkManager.__rpc_func_table.Add(1744835590u, new RpcReceiveHandler(__rpc_handler_1744835590)); NetworkManager.__rpc_func_table.Add(585527103u, new RpcReceiveHandler(__rpc_handler_585527103)); NetworkManager.__rpc_func_table.Add(2485712900u, new RpcReceiveHandler(__rpc_handler_2485712900)); NetworkManager.__rpc_func_table.Add(224280285u, new RpcReceiveHandler(__rpc_handler_224280285)); NetworkManager.__rpc_func_table.Add(2611162217u, new RpcReceiveHandler(__rpc_handler_2611162217)); NetworkManager.__rpc_func_table.Add(1125079064u, new RpcReceiveHandler(__rpc_handler_1125079064)); NetworkManager.__rpc_func_table.Add(2213681325u, new RpcReceiveHandler(__rpc_handler_2213681325)); NetworkManager.__rpc_func_table.Add(2437434051u, new RpcReceiveHandler(__rpc_handler_2437434051)); NetworkManager.__rpc_func_table.Add(1912448489u, new RpcReceiveHandler(__rpc_handler_1912448489)); NetworkManager.__rpc_func_table.Add(133714100u, new RpcReceiveHandler(__rpc_handler_133714100)); NetworkManager.__rpc_func_table.Add(2941480139u, new RpcReceiveHandler(__rpc_handler_2941480139)); NetworkManager.__rpc_func_table.Add(2393270272u, new RpcReceiveHandler(__rpc_handler_2393270272)); NetworkManager.__rpc_func_table.Add(2166756640u, new RpcReceiveHandler(__rpc_handler_2166756640)); NetworkManager.__rpc_func_table.Add(363024002u, new RpcReceiveHandler(__rpc_handler_363024002)); NetworkManager.__rpc_func_table.Add(1415424589u, new RpcReceiveHandler(__rpc_handler_1415424589)); NetworkManager.__rpc_func_table.Add(218561017u, new RpcReceiveHandler(__rpc_handler_218561017)); } private static void __rpc_handler_3641107333(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; ((JPOGStegosaurusAI)(object)target).PlayStunnedAnimationServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_680955357(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 invali