Decompiled source of ShibaBatInu v0.0.5

ReavsStuff.ShibaEnemy.dll

Decompiled 2 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using GameNetcodeStuff;
using LethalConfig;
using LethalConfig.ConfigItems;
using LethalConfig.ConfigItems.Options;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using ReavsStuff.ShibaEnemy.NetcodePatcher;
using ShibaEnemy.Configuration;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.VFX;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("ReavsStuff.ShibaEnemy")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("0.0.5.0")]
[assembly: AssemblyInformationalVersion("0.0.5")]
[assembly: AssemblyProduct("ShibaEnemy")]
[assembly: AssemblyTitle("ReavsStuff.ShibaEnemy")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.5.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 ShibaEnemy
{
	[BepInPlugin("ReavsStuff.ShibaEnemy", "ShibaEnemy", "0.0.5")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		internal static ManualLogSource Logger;

		public static AssetBundle? ModAssets;

		internal static PluginConfig BoundConfig { get; private set; }

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			BoundConfig = new PluginConfig(((BaseUnityPlugin)this).Config);
			InitializeNetworkBehaviours();
			string path = "ShibaBatInu";
			ModAssets = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), path));
			if ((Object)(object)ModAssets == (Object)null)
			{
				Logger.LogError((object)"Failed to load custom assets.");
				return;
			}
			EnemyType val = ModAssets.LoadAsset<EnemyType>("ShibaEnemy");
			TerminalNode val2 = ModAssets.LoadAsset<TerminalNode>("ShibaEnemyTN");
			TerminalKeyword val3 = ModAssets.LoadAsset<TerminalKeyword>("ShibaEnemyTK");
			NetworkPrefabs.RegisterNetworkPrefab(val.enemyPrefab);
			Enemies.RegisterEnemy(val, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val2, val3);
			Logger.LogInfo((object)"Plugin ReavsStuff.ShibaEnemy is loaded!");
		}

		private static void InitializeNetworkBehaviours()
		{
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
		}
	}
	public class ShibaEnemyAI : ShibaEnemyCalAI
	{
		public enum State
		{
			RoamSearch,
			Chasing,
			Attacking,
			AttackingSpecial,
			PostSpecial,
			Death
		}

		[CompilerGenerated]
		private static class <>O
		{
			public static RpcReceiveHandler <0>____rpc_handler_284621842;

			public static RpcReceiveHandler <1>____rpc_handler_2853215975;

			public static RpcReceiveHandler <2>____rpc_handler_284621850;

			public static RpcReceiveHandler <3>____rpc_handler_2853215980;
		}

		private bool chasingPlayer;

		private Vector3 targetPoint = Vector3.zero;

		private float attackFuncTimer;

		private Vector3 lastPositionOfSeenPlayer;

		private AISearchRoutine searchForPlayer;

		private bool lostPlayerInChase;

		private float lostPlayerInChaseTimer;

		private float timeSinceHittingLocalPlayer;

		private bool attackAudioClipTrue;

		[Header("Audio Stuff")]
		public AudioSource audioSource;

		public AudioClip AudioClipRoaming;

		public AudioClip AudioClipChasing;

		public AudioClip AudioClipAttacking;

		public AudioClip AudioClipSpecialAttacking;

		private bool fadeOutSpecialSFX = false;

		private bool disableFootstepSFX = false;

		public float currentPitchTime = 0f;

		public Transform turnCompass = null;

		public Transform attackArea = null;

		public Transform specialAttackArea = null;

		private int observedState = -1;

		public bool canAttack = false;

		public bool attackingDone = true;

		public bool attackTriggerBool = false;

		private bool attackingPlayer;

		private float shibaVolume;

		private float shibaRoamSpeed;

		private float shibaChaseSpeed;

		private int shibaDamage;

		private int shibaHealth;

		private float currentClipLength;

		private float maxClipLength;

		private int specialAttackChanceValue;

		private bool setSpecialAttackChance;

		private bool SpecialAttackEngaged = false;

		public int specialAttackChance = 5;

		private bool specialPostDone = false;

		private int specialAttackCurrentHits;

		private int specialAttackMaxHits = 16;

		public VisualEffect visualEffect;

		private static VFXExposedProperty specialVFXBeginTrigger;

		private static VFXExposedProperty specialVFXEndTrigger;

		private static readonly string specialVFXBeginTriggerName = "StartSpecial";

		private static readonly string specialVFXEndTriggerName = "StopSpecial";

		public void SetConfigValues()
		{
			shibaVolume = PluginConfig.ShibaVolumeAdjustment.Value;
			shibaRoamSpeed = PluginConfig.ShibaRoamSpeed.Value;
			shibaChaseSpeed = PluginConfig.ShibaChaseSpeed.Value;
			shibaDamage = PluginConfig.ShibaDamage.Value;
			shibaHealth = PluginConfig.ShibaHealth.Value;
			specialAttackChance = PluginConfig.ShibaSpecialAttackChance.Value;
		}

		public override void Start()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Expected O, but got Unknown
			base.Start();
			SetConfigValues();
			((EnemyAI)this).enemyHP = shibaHealth;
			audioSource = ((Component)this).GetComponent<AudioSource>();
			NavMeshAgent agent = ((EnemyAI)this).agent;
			timeSinceHittingLocalPlayer = 0f;
			((EnemyAI)this).agent.acceleration = 300f;
			((EnemyAI)this).agent.angularSpeed = 180f;
			((EnemyAI)this).openDoorSpeedMultiplier = 50f;
			specialVFXBeginTrigger.name = specialVFXBeginTriggerName;
			specialVFXEndTrigger.name = specialVFXEndTriggerName;
			searchForPlayer = new AISearchRoutine();
			if (audioSource.isPlaying)
			{
				maxClipLength = audioSource.clip.length;
			}
			ControlShibaFunctionsServerRpc(shibaRoamSpeed, 0, startSearching: true, chasing: false);
		}

		public void StartAnimVFX()
		{
			visualEffect.SendEvent(specialVFXBeginTrigger.name);
		}

		public void EndAnimVFX()
		{
			visualEffect.SendEvent(specialVFXBeginTrigger.name);
		}

		public void ObserveState()
		{
			if (observedState != ((EnemyAI)this).currentBehaviourStateIndex)
			{
				switch (((EnemyAI)this).currentBehaviourStateIndex)
				{
				case 0:
					disableFootstepSFX = false;
					attackFuncTimer = 0f;
					setSpecialAttackChance = false;
					audioSource.Stop();
					audioSource.clip = AudioClipRoaming;
					audioSource.loop = true;
					audioSource.volume = shibaVolume;
					audioSource.Play();
					break;
				case 1:
					disableFootstepSFX = false;
					attackFuncTimer = 0f;
					audioSource.Stop();
					audioSource.clip = AudioClipChasing;
					audioSource.loop = true;
					audioSource.volume = shibaVolume;
					audioSource.Play();
					attackingPlayer = false;
					break;
				case 2:
					disableFootstepSFX = false;
					attackAudioClipTrue = true;
					audioSource.Stop();
					attackFuncTimer = 0f;
					setSpecialAttackChance = false;
					break;
				case 3:
					disableFootstepSFX = true;
					attackAudioClipTrue = true;
					fadeOutSpecialSFX = false;
					attackFuncTimer = 0f;
					audioSource.Stop();
					audioSource.pitch = Random.Range(0.9f, 1.1f);
					audioSource.loop = false;
					((EnemyAI)this).creatureSFX.Stop();
					((EnemyAI)this).creatureSFX.volume = shibaVolume;
					((EnemyAI)this).creatureSFX.clip = AudioClipSpecialAttacking;
					break;
				case 4:
					disableFootstepSFX = true;
					fadeOutSpecialSFX = true;
					audioSource.Stop();
					attackFuncTimer = 0f;
					setSpecialAttackChance = false;
					break;
				}
				observedState = ((EnemyAI)this).currentBehaviourStateIndex;
			}
		}

		public override void DoAIInterval()
		{
			((EnemyAI)this).DoAIInterval();
			if (!((EnemyAI)this).isEnemyDead && !StartOfRound.Instance.allPlayersDead && ((NetworkBehaviour)this).IsHost)
			{
				switch (((EnemyAI)this).currentBehaviourStateIndex)
				{
				case 0:
					DoRoamSearch();
					break;
				case 1:
					DoChasingPlayer();
					break;
				case 2:
					DoAttackPlayer(special: false);
					break;
				case 3:
					DoAttackPlayer(special: true);
					break;
				case 4:
					DoPostSpecial();
					break;
				}
			}
		}

		public void DoRoamSearch()
		{
			if (!chasingPlayer && !FoundTargetablePlayer())
			{
			}
		}

		public void DoChasingPlayer()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: 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_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			if (!attackingPlayer && (Object)(object)((EnemyAI)this).targetPlayer != (Object)null && !SpecialAttackEngaged)
			{
				if (!setSpecialAttackChance & (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 6f))
				{
					setSpecialAttackChance = true;
					specialAttackChanceValue = Random.Range(1, 100);
					if (specialAttackChanceValue <= specialAttackChance)
					{
						SpecialAttackEngaged = true;
						attackingPlayer = true;
						ControlShibaFunctionsServerRpc(12f, 3, startSearching: false, chasing: true);
						return;
					}
				}
				else if (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 3f)
				{
					attackingPlayer = true;
					ControlShibaFunctionsServerRpc(8f, 2, startSearching: false, chasing: true);
				}
			}
			if (lostPlayerInChase)
			{
				setSpecialAttackChance = false;
				if (!searchForPlayer.inProgress)
				{
					DoPathToDestination(lastPositionOfSeenPlayer);
					((EnemyAI)this).StartSearch(lastPositionOfSeenPlayer, searchForPlayer);
				}
				if (FindNewTargetablePlayer())
				{
					lostPlayerInChase = false;
					lostPlayerInChaseTimer = 0f;
					return;
				}
				lostPlayerInChaseTimer += ((EnemyAI)this).AIIntervalTime;
				if (lostPlayerInChaseTimer >= 10f)
				{
					ControlShibaFunctionsServerRpc(shibaRoamSpeed, 0, startSearching: true, chasing: false);
					SetTargetServerRpc(-1);
				}
				return;
			}
			if (searchForPlayer.inProgress && !lostPlayerInChase)
			{
				((EnemyAI)this).StopSearch(searchForPlayer, true);
			}
			if (FoundCloserTargetablePlayer(2.5f) && (Object)(object)((EnemyAI)this).targetPlayer != (Object)null)
			{
				lostPlayerInChaseTimer = 0f;
				return;
			}
			if (NoPlayerVisible())
			{
				lostPlayerInChaseTimer += ((EnemyAI)this).AIIntervalTime;
				if (lostPlayerInChaseTimer > 2.5f)
				{
					lostPlayerInChase = true;
				}
			}
			if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && !lostPlayerInChase)
			{
				DoPathToDestination(((Component)((EnemyAI)this).targetPlayer).transform.position);
				lastPositionOfSeenPlayer = ((Component)((EnemyAI)this).targetPlayer).transform.position;
			}
		}

		public void DoAttackPlayer(bool special)
		{
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			if (special)
			{
				if (attackFuncTimer >= 8f || specialAttackCurrentHits >= specialAttackMaxHits)
				{
					attackFuncTimer = 0f;
					SpecialAttackEngaged = false;
					attackingPlayer = false;
					specialAttackCurrentHits = 0;
					ControlShibaFunctionsServerRpc(0f, 4, startSearching: false, chasing: false);
				}
				if (attackTriggerBool)
				{
					AttackProcSpecialClientRpc();
				}
				if (!FoundCloserTargetablePlayer(0.5f))
				{
					DoPathToDestination(((Component)((EnemyAI)this).targetPlayer).transform.position);
					attackFuncTimer += ((EnemyAI)this).AIIntervalTime;
				}
				return;
			}
			if (attackingDone)
			{
				if (attackFuncTimer >= 0.5f)
				{
					attackFuncTimer = 0f;
					ControlShibaFunctionsServerRpc(shibaRoamSpeed, 0, startSearching: true, chasing: false);
				}
				attackFuncTimer += ((EnemyAI)this).AIIntervalTime;
			}
			else if (!attackingDone)
			{
				DoPathToDestination(((Component)((EnemyAI)this).targetPlayer).transform.position);
			}
			if (attackTriggerBool)
			{
				AttackProcClientRpc();
				attackTriggerBool = false;
				ChangeSpeedExtraFuncServerRpc(0f);
			}
		}

		public void DoPostSpecial()
		{
			if (attackFuncTimer >= 3f)
			{
				attackFuncTimer = 0f;
				specialPostDone = true;
				ControlShibaFunctionsServerRpc(shibaRoamSpeed, 0, startSearching: true, chasing: false);
			}
			attackFuncTimer += ((EnemyAI)this).AIIntervalTime;
		}

		private bool FoundTargetablePlayer()
		{
			PlayerControllerB val = ((EnemyAI)this).CheckLineOfSightForClosestPlayer(90f, 40, 10, 5f);
			if ((Object)(object)val != (Object)null)
			{
				SetTargetServerRpc((int)val.actualClientId);
				ControlShibaFunctionsServerRpc(shibaChaseSpeed, 1, startSearching: false, chasing: true);
				return true;
			}
			return false;
		}

		private bool FoundCloserTargetablePlayer(float differenceDistance)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)((EnemyAI)this).targetPlayer == (Object)null)
			{
				return false;
			}
			PlayerControllerB val = ((EnemyAI)this).CheckLineOfSightForClosestPlayer(90f, 40, 10, 5f);
			if ((Object)(object)val != (Object)null && (Object)(object)val != (Object)(object)((EnemyAI)this).targetPlayer && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) - differenceDistance > Vector3.Distance(((Component)this).transform.position, ((Component)val).transform.position))
			{
				SetTargetServerRpc((int)val.actualClientId);
				return true;
			}
			return false;
		}

		private bool NoPlayerVisible()
		{
			PlayerControllerB closestPlayer = ((EnemyAI)this).GetClosestPlayer(true, false, false);
			if ((Object)(object)closestPlayer == (Object)null)
			{
				return true;
			}
			return false;
		}

		private bool FindNewTargetablePlayer()
		{
			PlayerControllerB val = ((EnemyAI)this).CheckLineOfSightForClosestPlayer(60f, 40, 10, 5f);
			if ((Object)(object)val != (Object)null)
			{
				SetTargetServerRpc((int)val.actualClientId);
				return true;
			}
			return false;
		}

		public override void Update()
		{
			//IL_0083: 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_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			((EnemyAI)this).Update();
			if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead)
			{
				return;
			}
			currentClipLength += Time.deltaTime;
			ClipPitch();
			ObserveState();
			if (timeSinceHittingLocalPlayer > 0f)
			{
				attackAudioClipTrue = true;
				timeSinceHittingLocalPlayer -= Time.deltaTime;
			}
			if (GameNetworkManager.Instance.localPlayerController.HasLineOfSightToPosition(((Component)this).transform.position + Vector3.up * 0.25f, 50f, 25, 5f))
			{
				if (((EnemyAI)this).currentBehaviourStateIndex == 1 || ((EnemyAI)this).currentBehaviourStateIndex == 2 || ((EnemyAI)this).currentBehaviourStateIndex == 3)
				{
					GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(1f, 1f);
				}
				else if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null)
				{
					GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.8f, 0.25f);
				}
				else
				{
					GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.8f, 0f);
				}
			}
			if (!((Object)(object)((EnemyAI)this).targetPlayer == (Object)null) && attackingPlayer && !attackingDone && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 4f && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 1f)
			{
				turnCompass.LookAt(((Component)((EnemyAI)this).targetPlayer.gameplayCamera).transform.position);
				((Component)this).transform.rotation = Quaternion.Lerp(((Component)this).transform.rotation, Quaternion.Euler(new Vector3(0f, turnCompass.eulerAngles.y, 0f)), 12f * Time.deltaTime);
			}
		}

		public void ClipPitch()
		{
			if (currentClipLength >= maxClipLength && audioSource.isPlaying)
			{
				switch (((EnemyAI)this).currentBehaviourStateIndex)
				{
				case 0:
					audioSource.pitch = Random.Range(0.85f, 1.15f);
					break;
				case 1:
					audioSource.pitch = Random.Range(0.8f, 1.3f);
					break;
				case 2:
					audioSource.pitch = Random.Range(0.9f, 1.1f);
					break;
				case 3:
					audioSource.pitch = Random.Range(0.85f, 1.2f);
					break;
				case 4:
					audioSource.pitch = Random.Range(0.95f, 1.4f);
					break;
				}
				maxClipLength = audioSource.clip.length;
				currentClipLength = 0f;
			}
			if (fadeOutSpecialSFX)
			{
				((EnemyAI)this).creatureSFX.volume = Mathf.Lerp(((EnemyAI)this).creatureSFX.volume, 0f, 2f);
			}
		}

		public override void FinishedCurrentSearchRoutine()
		{
			((EnemyAI)this).FinishedCurrentSearchRoutine();
		}

		public void AttackTriggerFunction()
		{
			attackTriggerBool = true;
		}

		public void AttackDoneAnimation()
		{
			attackingDone = true;
		}

		[ClientRpc]
		public void AttackProcSpecialClientRpc()
		{
			//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_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: 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(4184175889u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4184175889u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost) || timeSinceHittingLocalPlayer > 0f)
			{
				return;
			}
			int num = 8;
			Collider[] array = Physics.OverlapBox(specialAttackArea.position, specialAttackArea.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)
				{
					val4.DamagePlayer(shibaDamage, false, true, (CauseOfDeath)1, 0, false, default(Vector3));
					if (attackAudioClipTrue)
					{
						audioSource.PlayOneShot(AudioClipAttacking, shibaVolume);
						attackAudioClipTrue = false;
					}
					NavMeshAgent agent = ((EnemyAI)this).agent;
					float speed = (agent.speed -= 0.1f);
					ChangeSpeedClientRpc(speed);
					specialAttackCurrentHits++;
					timeSinceHittingLocalPlayer += 0.2f;
				}
			}
		}

		[ClientRpc]
		public void AttackProcClientRpc()
		{
			//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_00c4: 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)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: 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(160190100u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 160190100u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			int num = 8;
			Collider[] array = Physics.OverlapBox(attackArea.position, attackArea.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)
				{
					val4.DamagePlayer(shibaDamage, false, true, (CauseOfDeath)1, 0, false, default(Vector3));
					if (attackAudioClipTrue)
					{
						audioSource.PlayOneShot(AudioClipAttacking, shibaVolume);
						attackAudioClipTrue = false;
					}
				}
			}
		}

		public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1)
		{
			if (!((EnemyAI)this).isEnemyDead && !SpecialAttackEngaged)
			{
				((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID);
				((EnemyAI)this).enemyHP = ((EnemyAI)this).enemyHP - force;
				if (((EnemyAI)this).enemyHP <= 0 && !((EnemyAI)this).isEnemyDead && ((NetworkBehaviour)this).IsOwner)
				{
					((EnemyAI)this).KillEnemyOnOwnerClient(false);
				}
			}
		}

		public override void KillEnemy(bool destroy = false)
		{
			((EnemyAI)this).KillEnemy(destroy);
			ControlShibaFunctionsServerRpc(0f, 5, startSearching: false, chasing: false);
			if (((NetworkBehaviour)this).IsServer)
			{
				((EnemyAI)this).creatureAnimator.SetTrigger("KillEnemy");
			}
		}

		public void Footsteps()
		{
			if (!disableFootstepSFX)
			{
				((EnemyAI)this).creatureSFX.pitch = Random.Range(0.85f, 1.15f);
				((EnemyAI)this).creatureSFX.PlayOneShot(((EnemyAI)this).enemyType.audioClips[0]);
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void PlaySoundClipServerRpc(int soundID)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Invalid comparison between Unknown and I4
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Invalid comparison between Unknown and I4
			//IL_010e: 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_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: 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(173392051u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, soundID);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 173392051u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 != (Object)null && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager2.IsClient || networkManager2.IsHost))
				{
					ServerRpcParams val3 = default(ServerRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendServerRpc(678215662u, val3, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val4, soundID);
					((NetworkBehaviour)this).__endSendServerRpc(ref val4, 678215662u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					PlaySoundClipClientRpc(soundID);
				}
			}
		}

		[ClientRpc]
		public void PlaySoundClipClientRpc(int soundID)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Invalid comparison between Unknown and I4
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Invalid comparison between Unknown and I4
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: 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(1564503536u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, soundID);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1564503536u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if (!((Object)(object)networkManager2 == (Object)null) && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					ClientRpcParams val3 = default(ClientRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(571235812u, val3, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val4, soundID);
					((NetworkBehaviour)this).__endSendClientRpc(ref val4, 571235812u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 || (networkManager2.IsClient && networkManager2.IsHost))
				{
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		private void ChangeSpeedExtraFuncServerRpc(float speed)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Invalid comparison between Unknown and I4
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Invalid comparison between Unknown and I4
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: 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(892309434u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 892309434u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 != (Object)null && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager2.IsClient || networkManager2.IsHost))
				{
					ServerRpcParams val3 = default(ServerRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendServerRpc(284621850u, val3, (RpcDelivery)0);
					((FastBufferWriter)(ref val4)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendServerRpc(ref val4, 284621850u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					ChangeSpeedExtraFuncClientRpc(speed);
				}
			}
		}

		[ClientRpc]
		private void ChangeSpeedExtraFuncClientRpc(float speed)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Invalid comparison between Unknown and I4
			//IL_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Invalid comparison between Unknown and I4
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: 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(2539961601u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2539961601u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if (!((Object)(object)networkManager2 == (Object)null) && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					ClientRpcParams val3 = default(ClientRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(2853215980u, val3, (RpcDelivery)0);
					((FastBufferWriter)(ref val4)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendClientRpc(ref val4, 2853215980u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager2.IsClient || networkManager2.IsHost))
				{
					ChangeSpeedOnLocalClient(speed);
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		private void ControlShibaFunctionsServerRpc(float speed, int state, bool startSearching, bool chasing)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: 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_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Invalid comparison between Unknown and I4
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Invalid comparison between Unknown and I4
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c1: 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(1540196027u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				BytePacker.WriteValueBitPacked(val2, state);
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref startSearching, default(ForPrimitives));
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref chasing, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1540196027u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 != (Object)null && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager2.IsClient || networkManager2.IsHost))
				{
					ServerRpcParams val3 = default(ServerRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendServerRpc(284621842u, val3, (RpcDelivery)0);
					((FastBufferWriter)(ref val4)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
					BytePacker.WriteValueBitPacked(val4, state);
					((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref startSearching, default(ForPrimitives));
					((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref chasing, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendServerRpc(ref val4, 284621842u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					ControlShibaFunctionsClientRpc(speed, state, startSearching, chasing);
				}
			}
		}

		[ClientRpc]
		public void ControlShibaFunctionsClientRpc(float speed, int state, bool startSearching, bool chasing)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: 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_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Invalid comparison between Unknown and I4
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Invalid comparison between Unknown and I4
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f5: 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(2352127646u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				BytePacker.WriteValueBitPacked(val2, state);
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref startSearching, default(ForPrimitives));
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref chasing, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2352127646u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 == (Object)null || !networkManager2.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
			{
				ClientRpcParams val3 = default(ClientRpcParams);
				FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(2853215975u, val3, (RpcDelivery)0);
				((FastBufferWriter)(ref val4)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				BytePacker.WriteValueBitPacked(val4, state);
				((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref startSearching, default(ForPrimitives));
				((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref chasing, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val4, 2853215975u, val3, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager2.IsClient && !networkManager2.IsHost))
			{
				return;
			}
			chasingPlayer = chasing;
			ChangeSpeedOnLocalClient(speed);
			switch (state)
			{
			case 0:
				TriggerAnimationOnLocalClient("RoamSearch");
				break;
			case 1:
				attackFuncTimer = 0f;
				attackingDone = false;
				TriggerAnimationOnLocalClient("Chasing");
				break;
			case 2:
				attackFuncTimer = 0f;
				attackingDone = false;
				specialPostDone = false;
				TriggerAnimationOnLocalClient("Attacking");
				break;
			case 3:
				attackFuncTimer = 0f;
				attackingDone = false;
				specialPostDone = false;
				TriggerAnimationOnLocalClient("AttackingSpecial");
				break;
			case 4:
				attackFuncTimer = 0f;
				attackingDone = true;
				TriggerAnimationOnLocalClient("PostSpecial");
				break;
			}
			((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(state);
			if (((NetworkBehaviour)this).IsHost)
			{
				if (startSearching)
				{
					((EnemyAI)this).StartSearch(((Component)this).transform.position, searchForPlayer);
				}
				else
				{
					((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true);
				}
			}
		}

		private bool DoPathToDestination(Vector3 destination)
		{
			//IL_00f2: 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)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: 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_010a: Unknown result type (might be due to invalid IL or missing references)
			if (!((Behaviour)((EnemyAI)this).agent).enabled)
			{
				Vector3 val = targetPoint;
				float num = 6f;
				float num2 = 10f;
				float num3 = Vector3.Distance(((Component)this).transform.position, val);
				float num4 = Mathf.Clamp01(Vector3.Distance(((Component)this).transform.position, val) / num3);
				Vector3 position = Vector3.MoveTowards(((Component)this).transform.position, val, Time.deltaTime * num);
				position.y += Mathf.Sin(num4 * MathF.PI) * num2;
				((Component)this).transform.position = position;
				((Component)this).transform.rotation = Quaternion.LookRotation(val - ((Component)this).transform.position);
				if (Vector3.Distance(((Component)this).transform.position, val) <= 1f)
				{
					((Behaviour)((EnemyAI)this).agent).enabled = true;
				}
				return true;
			}
			if (DetermineIfNeedToDisableAgent(destination))
			{
				return true;
			}
			((EnemyAI)this).agent.SetDestination(destination);
			return false;
		}

		private bool DetermineIfNeedToDisableAgent(Vector3 destination)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Invalid comparison between Unknown and I4
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: 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_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: 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_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			NavMeshPath val = new NavMeshPath();
			if ((!((EnemyAI)this).agent.CalculatePath(destination, val) || (int)val.status == 1) && Vector3.Distance(((Component)this).transform.position, destination) > 7f)
			{
				((EnemyAI)this).agent.SetDestination(((EnemyAI)this).agent.pathEndPosition);
				if (Vector3.Distance(((Component)((EnemyAI)this).agent).transform.position, ((EnemyAI)this).agent.pathEndPosition) <= 2f)
				{
					((EnemyAI)this).agent.SetDestination(destination);
					NavMeshHit val2 = default(NavMeshHit);
					if ((!((EnemyAI)this).agent.CalculatePath(destination, val) || (int)val.status != 0) && NavMesh.SamplePosition(destination, ref val2, 5f, -1))
					{
						Vector3 position = ((NavMeshHit)(ref val2)).position;
						targetPoint = position;
						((Behaviour)((EnemyAI)this).agent).enabled = false;
					}
				}
				return true;
			}
			return false;
		}

		protected override void __initializeVariables()
		{
			base.__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ShibaEnemyAI()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected O, but got Unknown
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Expected O, but got Unknown
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Expected O, but got Unknown
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table = NetworkManager.__rpc_func_table;
			object obj = <>O.<0>____rpc_handler_284621842;
			if (obj == null)
			{
				RpcReceiveHandler val = __rpc_handler_284621842;
				<>O.<0>____rpc_handler_284621842 = val;
				obj = (object)val;
			}
			_rpc_func_table.Add(284621842u, (RpcReceiveHandler)obj);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table2 = NetworkManager.__rpc_func_table;
			object obj2 = <>O.<1>____rpc_handler_2853215975;
			if (obj2 == null)
			{
				RpcReceiveHandler val2 = __rpc_handler_2853215975;
				<>O.<1>____rpc_handler_2853215975 = val2;
				obj2 = (object)val2;
			}
			_rpc_func_table2.Add(2853215975u, (RpcReceiveHandler)obj2);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table3 = NetworkManager.__rpc_func_table;
			object obj3 = <>O.<2>____rpc_handler_284621850;
			if (obj3 == null)
			{
				RpcReceiveHandler val3 = __rpc_handler_284621850;
				<>O.<2>____rpc_handler_284621850 = val3;
				obj3 = (object)val3;
			}
			_rpc_func_table3.Add(284621850u, (RpcReceiveHandler)obj3);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table4 = NetworkManager.__rpc_func_table;
			object obj4 = <>O.<3>____rpc_handler_2853215980;
			if (obj4 == null)
			{
				RpcReceiveHandler val4 = __rpc_handler_2853215980;
				<>O.<3>____rpc_handler_2853215980 = val4;
				obj4 = (object)val4;
			}
			_rpc_func_table4.Add(2853215980u, (RpcReceiveHandler)obj4);
		}

		private static void __rpc_handler_284621842(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: 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_0097: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				float speed = 0f;
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				int state = 0;
				ByteUnpacker.ReadValueBitPacked(reader, ref state);
				bool startSearching = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref startSearching, default(ForPrimitives));
				bool chasing = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref chasing, default(ForPrimitives));
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyAI)(object)target).ControlShibaFunctionsServerRpc(speed, state, startSearching, chasing);
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2853215975(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: 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_0097: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				float speed = 0f;
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				int state = 0;
				ByteUnpacker.ReadValueBitPacked(reader, ref state);
				bool startSearching = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref startSearching, default(ForPrimitives));
				bool chasing = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref chasing, default(ForPrimitives));
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).ControlShibaFunctionsClientRpc(speed, state, startSearching, chasing);
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_284621850(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				float speed = 0f;
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				((ShibaEnemyAI)(object)target).ChangeSpeedExtraFuncServerRpc(speed);
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2853215980(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				float speed = 0f;
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).ChangeSpeedExtraFuncClientRpc(speed);
				((NetworkBehaviour)(ShibaEnemyAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		[MethodImpl(MethodImplOptions.NoInlining)]
		protected override string __getTypeName()
		{
			return "ShibaEnemyAI";
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ShibaEnemyAI()
		{
			//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
			NetworkManager.__rpc_func_table.Add(4184175889u, new RpcReceiveHandler(__rpc_handler_4184175889));
			NetworkManager.__rpc_func_table.Add(160190100u, new RpcReceiveHandler(__rpc_handler_160190100));
			NetworkManager.__rpc_func_table.Add(173392051u, new RpcReceiveHandler(__rpc_handler_173392051));
			NetworkManager.__rpc_func_table.Add(1564503536u, new RpcReceiveHandler(__rpc_handler_1564503536));
			NetworkManager.__rpc_func_table.Add(892309434u, new RpcReceiveHandler(__rpc_handler_892309434));
			NetworkManager.__rpc_func_table.Add(2539961601u, new RpcReceiveHandler(__rpc_handler_2539961601));
			NetworkManager.__rpc_func_table.Add(1540196027u, new RpcReceiveHandler(__rpc_handler_1540196027));
			NetworkManager.__rpc_func_table.Add(2352127646u, new RpcReceiveHandler(__rpc_handler_2352127646));
		}

		private static void __rpc_handler_4184175889(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).AttackProcSpecialClientRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_160190100(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).AttackProcClientRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_173392051(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				int soundID = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref soundID);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyAI)(object)target).PlaySoundClipServerRpc(soundID);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1564503536(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				int soundID = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref soundID);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).PlaySoundClipClientRpc(soundID);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_892309434(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float speed = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyAI)(object)target).ChangeSpeedExtraFuncServerRpc(speed);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2539961601(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float speed = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).ChangeSpeedExtraFuncClientRpc(speed);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1540196027(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float speed = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				int state = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref state);
				bool startSearching = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref startSearching, default(ForPrimitives));
				bool chasing = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref chasing, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyAI)(object)target).ControlShibaFunctionsServerRpc(speed, state, startSearching, chasing);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2352127646(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float speed = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				int state = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref state);
				bool startSearching = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref startSearching, default(ForPrimitives));
				bool chasing = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref chasing, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyAI)(object)target).ControlShibaFunctionsClientRpc(speed, state, startSearching, chasing);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "ShibaEnemyAI";
		}
	}
	public abstract class ShibaEnemyCalAI : EnemyAI
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static RpcReceiveHandler <0>____rpc_handler_2521786243;

			public static RpcReceiveHandler <1>____rpc_handler_2423578521;

			public static RpcReceiveHandler <2>____rpc_handler_1874357812;

			public static RpcReceiveHandler <3>____rpc_handler_2476125478;

			public static RpcReceiveHandler <4>____rpc_handler_2481235754;
		}

		public override void Start()
		{
			((EnemyAI)this).Start();
		}

		[Conditional("DEBUG")]
		public void LogIfDebugBuild(string text)
		{
			Plugin.Logger.LogInfo((object)text);
		}

		[ServerRpc(RequireOwnership = false)]
		public void TriggerAnimationServerRpc(string animName)
		{
			//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)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Invalid comparison between Unknown and I4
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Invalid comparison between Unknown and I4
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: 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(1777763494u, val, (RpcDelivery)0);
				bool flag = animName != null;
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
				if (flag)
				{
					((FastBufferWriter)(ref val2)).WriteValueSafe(animName, false);
				}
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1777763494u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 == (Object)null || !networkManager2.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager2.IsClient || networkManager2.IsHost))
			{
				ServerRpcParams val3 = default(ServerRpcParams);
				FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendServerRpc(2521786243u, val3, (RpcDelivery)0);
				bool flag2 = animName != null;
				((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref flag2, default(ForPrimitives));
				if (flag2)
				{
					((FastBufferWriter)(ref val4)).WriteValueSafe(animName, false);
				}
				((NetworkBehaviour)this).__endSendServerRpc(ref val4, 2521786243u, val3, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager2.IsServer || networkManager2.IsHost))
			{
				TriggerAnimationClientRpc(animName);
			}
		}

		[ClientRpc]
		public void TriggerAnimationClientRpc(string animName)
		{
			//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)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Invalid comparison between Unknown and I4
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Invalid comparison between Unknown and I4
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: 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(3815645233u, val, (RpcDelivery)0);
				bool flag = animName != null;
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
				if (flag)
				{
					((FastBufferWriter)(ref val2)).WriteValueSafe(animName, false);
				}
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3815645233u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 == (Object)null || !networkManager2.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
			{
				ClientRpcParams val3 = default(ClientRpcParams);
				FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(2423578521u, val3, (RpcDelivery)0);
				bool flag2 = animName != null;
				((FastBufferWriter)(ref val4)).WriteValueSafe<bool>(ref flag2, default(ForPrimitives));
				if (flag2)
				{
					((FastBufferWriter)(ref val4)).WriteValueSafe(animName, false);
				}
				((NetworkBehaviour)this).__endSendClientRpc(ref val4, 2423578521u, val3, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager2.IsClient || networkManager2.IsHost))
			{
				TriggerAnimationOnLocalClient(animName);
			}
		}

		public void TriggerAnimationOnLocalClient(string animName)
		{
			base.creatureAnimator.SetTrigger(animName);
		}

		[ClientRpc]
		public void ChangeSpeedClientRpc(float speed)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Invalid comparison between Unknown and I4
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Invalid comparison between Unknown and I4
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: 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(976488133u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 976488133u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 != (Object)null && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
				{
					ClientRpcParams val3 = default(ClientRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(1874357812u, val3, (RpcDelivery)0);
					((FastBufferWriter)(ref val4)).WriteValueSafe<float>(ref speed, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendClientRpc(ref val4, 1874357812u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (((NetworkBehaviour)this).NetworkManager.IsClient || ((NetworkBehaviour)this).NetworkManager.IsHost))
				{
					ChangeSpeedOnLocalClient(speed);
				}
			}
		}

		public void ChangeSpeedOnLocalClient(float speed)
		{
			base.agent.speed = speed;
		}

		[ServerRpc(RequireOwnership = false)]
		public void SetTargetServerRpc(int playerID)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Invalid comparison between Unknown and I4
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Invalid comparison between Unknown and I4
			//IL_010e: 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_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: 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(1379961413u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1379961413u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 != (Object)null && networkManager2.IsListening)
			{
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager2.IsClient || networkManager2.IsHost))
				{
					ServerRpcParams val3 = default(ServerRpcParams);
					FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendServerRpc(2476125478u, val3, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val4, playerID);
					((NetworkBehaviour)this).__endSendServerRpc(ref val4, 2476125478u, val3, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (((NetworkBehaviour)this).NetworkManager.IsServer || ((NetworkBehaviour)this).NetworkManager.IsHost))
				{
					SetTargetClientRpc(playerID);
				}
			}
		}

		[ClientRpc]
		public void SetTargetClientRpc(int playerID)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Invalid comparison between Unknown and I4
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Invalid comparison between Unknown and I4
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: 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(2705910750u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2705910750u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager;
			if ((Object)(object)networkManager2 == (Object)null || !networkManager2.IsListening)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager2.IsServer || networkManager2.IsHost))
			{
				ClientRpcParams val3 = default(ClientRpcParams);
				FastBufferWriter val4 = ((NetworkBehaviour)this).__beginSendClientRpc(2481235754u, val3, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val4, playerID);
				((NetworkBehaviour)this).__endSendClientRpc(ref val4, 2481235754u, val3, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (((NetworkBehaviour)this).NetworkManager.IsClient || ((NetworkBehaviour)this).NetworkManager.IsHost))
			{
				if (playerID == -1)
				{
					base.targetPlayer = null;
				}
				else if (!((Object)(object)StartOfRound.Instance.allPlayerScripts[playerID] == (Object)null))
				{
					base.targetPlayer = StartOfRound.Instance.allPlayerScripts[playerID];
				}
			}
		}

		protected override void __initializeVariables()
		{
			((EnemyAI)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ShibaEnemyNetworkAI()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected O, but got Unknown
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Expected O, but got Unknown
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Expected O, but got Unknown
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Expected O, but got Unknown
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table = NetworkManager.__rpc_func_table;
			object obj = <>O.<0>____rpc_handler_2521786243;
			if (obj == null)
			{
				RpcReceiveHandler val = __rpc_handler_2521786243;
				<>O.<0>____rpc_handler_2521786243 = val;
				obj = (object)val;
			}
			_rpc_func_table.Add(2521786243u, (RpcReceiveHandler)obj);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table2 = NetworkManager.__rpc_func_table;
			object obj2 = <>O.<1>____rpc_handler_2423578521;
			if (obj2 == null)
			{
				RpcReceiveHandler val2 = __rpc_handler_2423578521;
				<>O.<1>____rpc_handler_2423578521 = val2;
				obj2 = (object)val2;
			}
			_rpc_func_table2.Add(2423578521u, (RpcReceiveHandler)obj2);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table3 = NetworkManager.__rpc_func_table;
			object obj3 = <>O.<2>____rpc_handler_1874357812;
			if (obj3 == null)
			{
				RpcReceiveHandler val3 = __rpc_handler_1874357812;
				<>O.<2>____rpc_handler_1874357812 = val3;
				obj3 = (object)val3;
			}
			_rpc_func_table3.Add(1874357812u, (RpcReceiveHandler)obj3);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table4 = NetworkManager.__rpc_func_table;
			object obj4 = <>O.<3>____rpc_handler_2476125478;
			if (obj4 == null)
			{
				RpcReceiveHandler val4 = __rpc_handler_2476125478;
				<>O.<3>____rpc_handler_2476125478 = val4;
				obj4 = (object)val4;
			}
			_rpc_func_table4.Add(2476125478u, (RpcReceiveHandler)obj4);
			Dictionary<uint, RpcReceiveHandler> _rpc_func_table5 = NetworkManager.__rpc_func_table;
			object obj5 = <>O.<4>____rpc_handler_2481235754;
			if (obj5 == null)
			{
				RpcReceiveHandler val5 = __rpc_handler_2481235754;
				<>O.<4>____rpc_handler_2481235754 = val5;
				obj5 = (object)val5;
			}
			_rpc_func_table5.Add(2481235754u, (RpcReceiveHandler)obj5);
		}

		private static void __rpc_handler_2521786243(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				bool flag = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
				string animName = null;
				if (flag)
				{
					((FastBufferReader)(ref reader)).ReadValueSafe(ref animName, false);
				}
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyCalAI)(object)target).TriggerAnimationServerRpc(animName);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2423578521(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				bool flag = false;
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
				string animName = null;
				if (flag)
				{
					((FastBufferReader)(ref reader)).ReadValueSafe(ref animName, false);
				}
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyCalAI)(object)target).TriggerAnimationClientRpc(animName);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1874357812(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				float speed = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref speed, default(ForPrimitives));
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyCalAI)(object)target).ChangeSpeedClientRpc(speed);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2476125478(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				int targetServerRpc = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref targetServerRpc);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)1;
				((ShibaEnemyCalAI)(object)target).SetTargetServerRpc(targetServerRpc);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2481235754(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if ((Object)(object)networkManager != (Object)null && networkManager.IsListening)
			{
				int targetClientRpc = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref targetClientRpc);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)2;
				((ShibaEnemyCalAI)(object)target).SetTargetClientRpc(targetClientRpc);
				((NetworkBehaviour)(ShibaEnemyCalAI)(object)target).__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		[MethodImpl(MethodImplOptions.NoInlining)]
		protected override string __getTypeName()
		{
			return "ShibaEnemyCalAI";
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ShibaEnemyCalAI()
		{
			//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
			NetworkManager.__rpc_func_table.Add(1777763494u, new RpcReceiveHandler(__rpc_handler_1777763494));
			NetworkManager.__rpc_func_table.Add(3815645233u, new RpcReceiveHandler(__rpc_handler_3815645233));
			NetworkManager.__rpc_func_table.Add(976488133u, new RpcReceiveHandler(__rpc_handler_976488133));
			NetworkManager.__rpc_func_table.Add(1379961413u, new RpcReceiveHandler(__rpc_handler_1379961413));
			NetworkManager.__rpc_func_table.Add(2705910750u, new RpcReceiveHandler(__rpc_handler_2705910750));
		}

		private static void __rpc_handler_1777763494(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				bool flag = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<b