using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using BlindPups.NetcodePatcher;
using GameNetcodeStuff;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.Animations.Rigging;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("BlindPups")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("BlindPups")]
[assembly: AssemblyTitle("BlindPups")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: NetcodePatchedAssembly]
internal class <Module>
{
static <Module>()
{
}
}
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
}
namespace BlindPups
{
[BepInPlugin("JacobG5.BlindPups", "BlindPups", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
private const string modGUID = "JacobG5.BlindPups";
private const string modName = "BlindPups";
private const string modVersion = "1.0.0";
private readonly Harmony harmony = new Harmony("JacobG5.BlindPups");
public static Plugin Instance;
internal ManualLogSource mls;
private void Awake()
{
if ((Object)(object)Instance == (Object)null)
{
Instance = this;
}
mls = Logger.CreateLogSource("JacobG5.BlindPups");
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
foreach (Type type in types)
{
try
{
MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
MethodInfo[] array = methods;
foreach (MethodInfo methodInfo in array)
{
object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
if (customAttributes.Length != 0)
{
methodInfo.Invoke(null, null);
}
}
}
catch
{
mls.LogInfo((object)"Skipping Netcode Class");
}
}
mls.LogInfo((object)"Netcode Successfully Patched!");
}
}
}
namespace BlindPups.Components
{
public class BlindPupAI : EnemyAI, INoiseListener, IVisibleThreat
{
[Header("Blind Pup")]
public int playerDamage = 50;
public int enemyDamage = 2;
public float hearingThreshold = 18f;
[Header("Vanilla Mouth Dog")]
public float noiseApproximation = 14f;
public int suspicionLevel;
private Vector3 previousPosition;
public DampedTransform neckDampedTransform;
private float AITimer;
private bool hasEnteredChaseModeFully;
private bool startedChaseModeCoroutine;
public AudioClip screamSFX;
public AudioClip breathingSFX;
public AudioClip killPlayerSFX;
private float hearNoiseCooldown;
private bool inLunge;
private float lungeCooldown;
private bool inKillAnimation;
public Transform mouthGrip;
public bool endingLunge;
private Ray ray;
private RaycastHit rayHit;
private Vector3 lastHeardNoisePosition;
private Vector3 noisePositionGuess;
private float lastHeardNoiseDistanceWhenHeard;
private bool heardOtherHowl;
private DeadBodyInfo? carryingBody;
private Coroutine killPlayerCoroutine;
public AISearchRoutine roamPlanet;
private Collider debugCollider;
private float timeSinceHittingOtherEnemy;
private float coweringMeter;
private bool coweringOnFloor;
private bool coweringOnFloorDebounce;
ThreatType IVisibleThreat.type => (ThreatType)3;
int IVisibleThreat.SendSpecialBehaviour(int id)
{
return 0;
}
int IVisibleThreat.GetThreatLevel(Vector3 seenByPosition)
{
int num = ((base.enemyHP >= 2) ? 5 : 3);
if (base.creatureAnimator.GetBool("StartedChase"))
{
num += 3;
}
return num;
}
int IVisibleThreat.GetInterestLevel()
{
return 0;
}
Transform IVisibleThreat.GetThreatLookTransform()
{
return base.eye;
}
Transform IVisibleThreat.GetThreatTransform()
{
return ((Component)this).transform;
}
Vector3 IVisibleThreat.GetThreatVelocity()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
if (((NetworkBehaviour)this).IsOwner)
{
return base.agent.velocity;
}
return Vector3.zero;
}
float IVisibleThreat.GetVisibility()
{
if (base.isEnemyDead)
{
return 0f;
}
if (base.creatureAnimator.GetBool("StartedChase"))
{
return 1f;
}
return 0.75f;
}
public override void DoAIInterval()
{
((EnemyAI)this).DoAIInterval();
_ = StartOfRound.Instance.livingPlayers;
}
public override void Start()
{
((EnemyAI)this).Start();
base.useSecondaryAudiosOnAnimatedObjects = true;
if (Random.Range(0, 10) < 2)
{
base.creatureVoice.pitch = Random.Range(0.6f, 1.3f);
}
else
{
base.creatureVoice.pitch = Random.Range(0.9f, 1.1f);
}
}
public override void Update()
{
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0209: Unknown result type (might be due to invalid IL or missing references)
//IL_020e: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_0235: Unknown result type (might be due to invalid IL or missing references)
//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
//IL_0266: Unknown result type (might be due to invalid IL or missing references)
//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0604: Unknown result type (might be due to invalid IL or missing references)
//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
//IL_06e6: Unknown result type (might be due to invalid IL or missing references)
//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).Update();
if (base.isEnemyDead)
{
base.creatureAnimator.SetLayerWeight(1, 0f);
}
else
{
if (!base.ventAnimationFinished)
{
return;
}
if (base.stunNormalizedTimer > 0f && !base.isEnemyDead)
{
if ((Object)(object)base.stunnedByPlayer != (Object)null && base.currentBehaviourStateIndex != 2 && ((NetworkBehaviour)this).IsOwner)
{
EnrageDogOnLocalClient(((Component)base.stunnedByPlayer).transform.position, Vector3.Distance(((Component)this).transform.position, ((Component)base.stunnedByPlayer).transform.position));
}
base.creatureAnimator.SetLayerWeight(1, 1f);
}
else
{
base.creatureAnimator.SetLayerWeight(1, 0f);
}
base.hitsPhysicsObjects = base.currentBehaviourStateIndex >= 2;
if (!coweringOnFloor)
{
if (!coweringOnFloorDebounce)
{
coweringOnFloorDebounce = true;
base.creatureAnimator.SetBool("Cower", false);
}
if (coweringMeter >= 0f)
{
coweringMeter -= Time.deltaTime;
}
}
else
{
if (coweringOnFloorDebounce)
{
coweringOnFloorDebounce = false;
base.creatureAnimator.SetBool("Cower", true);
base.creatureAnimator.SetTrigger("StartCowering");
}
if (coweringMeter < 0.7f)
{
coweringMeter += Time.deltaTime;
}
}
hearNoiseCooldown -= Time.deltaTime;
timeSinceHittingOtherEnemy += Time.deltaTime;
Animator creatureAnimator = base.creatureAnimator;
Vector3 val = Vector3.ClampMagnitude(((Component)this).transform.position - previousPosition, 1f);
creatureAnimator.SetFloat("speedMultiplier", ((Vector3)(ref val)).sqrMagnitude / (Time.deltaTime / 4f));
previousPosition = ((Component)this).transform.position;
if (base.currentBehaviourStateIndex == 2 || base.currentBehaviourStateIndex == 3)
{
if (GameNetworkManager.Instance.localPlayerController.HasLineOfSightToPosition(((Component)this).transform.position, 50f, 25, 10f))
{
GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.4f, 0.5f);
}
}
else if (GameNetworkManager.Instance.localPlayerController.HasLineOfSightToPosition(((Component)this).transform.position, 50f, 30, 5f))
{
GameNetworkManager.Instance.localPlayerController.IncreaseFearLevelOverTime(0.25f, 0.3f);
}
switch (base.currentBehaviourStateIndex)
{
case 0:
((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = 1f;
base.creatureAnimator.SetInteger("BehaviourState", 0);
if (((NetworkBehaviour)this).IsOwner)
{
base.agent.speed = 3.5f;
if (base.stunNormalizedTimer > 0f || coweringOnFloor)
{
base.agent.speed = 0f;
}
if (((NetworkBehaviour)this).IsOwner && !roamPlanet.inProgress)
{
((EnemyAI)this).StartSearch(((Component)this).transform.position, roamPlanet);
}
}
break;
case 1:
if (hasEnteredChaseModeFully)
{
hasEnteredChaseModeFully = false;
base.creatureVoice.Stop();
startedChaseModeCoroutine = false;
base.creatureAnimator.SetBool("StartedChase", false);
}
((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = Mathf.Lerp(((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight, 1f, 8f * Time.deltaTime);
base.creatureAnimator.SetInteger("BehaviourState", 1);
if (!((NetworkBehaviour)this).IsOwner)
{
break;
}
if (((NetworkBehaviour)this).IsOwner && roamPlanet.inProgress)
{
((EnemyAI)this).StopSearch(roamPlanet, true);
}
base.agent.speed = 4.5f;
if (base.stunNormalizedTimer > 0f || coweringOnFloor)
{
base.agent.speed = 0f;
}
AITimer -= Time.deltaTime;
if (AITimer <= 0f)
{
AITimer = 4f;
suspicionLevel--;
if (suspicionLevel <= 1)
{
((EnemyAI)this).SwitchToBehaviourState(0);
}
}
break;
case 2:
if (!hasEnteredChaseModeFully)
{
if (!startedChaseModeCoroutine)
{
startedChaseModeCoroutine = true;
((MonoBehaviour)this).StartCoroutine(EnterChaseMode());
}
break;
}
((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight = Mathf.Lerp(((RigConstraint<DampedTransformJob, DampedTransformData, DampedTransformJobBinder<DampedTransformData>>)(object)neckDampedTransform).weight, 0.2f, 8f * Time.deltaTime);
base.creatureAnimator.SetInteger("BehaviourState", 2);
if (!((NetworkBehaviour)this).IsOwner)
{
break;
}
if (((NetworkBehaviour)this).IsOwner && roamPlanet.inProgress)
{
((EnemyAI)this).StopSearch(roamPlanet, true);
}
if (!inLunge)
{
lungeCooldown -= Time.deltaTime;
if (Vector3.Distance(((Component)this).transform.position, noisePositionGuess) < 4f && lungeCooldown <= 0f)
{
inLunge = true;
EnterLunge();
break;
}
}
base.agent.speed = Mathf.Clamp(base.agent.speed + Time.deltaTime, 13f, 18f);
if (base.stunNormalizedTimer > 0f || coweringOnFloor)
{
base.agent.speed = 0f;
}
AITimer -= Time.deltaTime;
if (AITimer <= 0f)
{
AITimer = 3f;
suspicionLevel--;
if (Vector3.Distance(((Component)this).transform.position, base.agent.destination) < 3f)
{
SearchForPreviouslyHeardSound();
}
if (suspicionLevel <= 8)
{
((EnemyAI)this).SwitchToBehaviourState(1);
}
}
break;
case 3:
if (((NetworkBehaviour)this).IsOwner)
{
NavMeshAgent agent = base.agent;
agent.speed -= Time.deltaTime * 5f;
if (!endingLunge && base.agent.speed < 1.5f && !inKillAnimation)
{
endingLunge = true;
lungeCooldown = 0.25f;
EndLungeServerRpc();
}
}
break;
}
}
}
private void SearchForPreviouslyHeardSound()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
int num = 0;
Vector3 val = ((Component)this).transform.position;
while (num < 5 && Vector3.Distance(val, ((Component)this).transform.position) < 4f)
{
num++;
val = RoundManager.Instance.GetRandomNavMeshPositionInRadius(lastHeardNoisePosition, lastHeardNoiseDistanceWhenHeard / noiseApproximation, default(NavMeshHit));
}
((EnemyAI)this).SetDestinationToPosition(val, false);
noisePositionGuess = val;
}
private IEnumerator EnterChaseMode()
{
if (((NetworkBehaviour)this).IsOwner)
{
base.agent.speed = 0.05f;
}
DropCarriedBody();
base.creatureVoice.PlayOneShot(screamSFX);
if (!base.isEnemyDead)
{
base.creatureAnimator.SetTrigger("ChaseHowl");
}
if (Vector3.Distance(((Component)this).transform.position, ((Component)GameNetworkManager.Instance.localPlayerController).transform.position) < 16f)
{
HUDManager.Instance.ShakeCamera((ScreenShakeType)2);
GameNetworkManager.Instance.localPlayerController.JumpToFearLevel(0.5f, true);
}
yield return (object)new WaitForSeconds(0.5f);
if (!heardOtherHowl)
{
CallAllDogsWithHowl();
}
heardOtherHowl = false;
yield return (object)new WaitForSeconds(0.2f);
base.creatureVoice.clip = breathingSFX;
base.creatureVoice.Play();
base.creatureAnimator.SetBool("StartedChase", true);
hasEnteredChaseModeFully = true;
base.creatureVoice.PlayOneShot(breathingSFX);
}
private void CallAllDogsWithHowl()
{
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
MouthDogAI[] array = Object.FindObjectsOfType<MouthDogAI>();
for (int i = 0; i < array.Length; i++)
{
if (!((Object)(object)array[i] == (Object)(object)this))
{
array[i].ReactToOtherDogHowl(((Component)this).transform.position);
}
}
}
public void ReactToOtherDogHowl(Vector3 howlPosition)
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
heardOtherHowl = true;
lastHeardNoiseDistanceWhenHeard = Vector3.Distance(((Component)this).transform.position, howlPosition);
noisePositionGuess = RoundManager.Instance.GetRandomNavMeshPositionInRadius(howlPosition, lastHeardNoiseDistanceWhenHeard / noiseApproximation, default(NavMeshHit));
((EnemyAI)this).SetDestinationToPosition(noisePositionGuess, false);
if (base.currentBehaviourStateIndex < 2)
{
((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2);
}
suspicionLevel = 8;
lastHeardNoisePosition = howlPosition;
Debug.Log((object)$"Setting lastHeardNoisePosition to {howlPosition}");
}
public override void DetectNoise(Vector3 noisePosition, float noiseLoudness, int timesNoisePlayedInOneSpot = 0, int noiseID = 0)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_0162: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).DetectNoise(noisePosition, noiseLoudness, timesNoisePlayedInOneSpot, noiseID);
if (base.stunNormalizedTimer > 0f || noiseID == 7 || noiseID == 546 || inKillAnimation || hearNoiseCooldown >= 0f || timesNoisePlayedInOneSpot > 15)
{
return;
}
hearNoiseCooldown = 0.03f;
float num = Vector3.Distance(((Component)this).transform.position, noisePosition);
Debug.Log((object)$"dog '{((Object)((Component)this).gameObject).name}': Heard noise! Distance: {num} meters");
float num2 = hearingThreshold * noiseLoudness;
if (Physics.Linecast(((Component)this).transform.position, noisePosition, 256))
{
noiseLoudness /= 2f;
num2 /= 2f;
}
if (noiseLoudness < 0.25f)
{
return;
}
if (base.currentBehaviourStateIndex < 2 && num < num2)
{
suspicionLevel = 9;
}
else
{
suspicionLevel++;
}
bool fullyEnrage = false;
if (suspicionLevel >= 9)
{
if (base.currentBehaviourStateIndex < 2)
{
fullyEnrage = true;
}
}
else if (suspicionLevel >= 5 && base.currentBehaviourStateIndex == 0)
{
fullyEnrage = false;
}
AITimer = 3f;
EnrageDogOnLocalClient(noisePosition, num, approximatePosition: true, fullyEnrage);
}
private void EnrageDogOnLocalClient(Vector3 targetPosition, float distanceToNoise, bool approximatePosition = true, bool fullyEnrage = false)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_0115: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
Debug.Log((object)$"Mouth dog targetPos 1: {targetPosition}; distanceToNoise: {distanceToNoise}");
if (approximatePosition)
{
targetPosition = RoundManager.Instance.GetRandomNavMeshPositionInRadius(targetPosition, distanceToNoise / noiseApproximation, default(NavMeshHit));
}
noisePositionGuess = targetPosition;
Debug.Log((object)$"Mouth dog targetPos 2: {targetPosition}");
if (fullyEnrage)
{
if (base.currentBehaviourStateIndex < 2)
{
((EnemyAI)this).SwitchToBehaviourState(2);
hearNoiseCooldown = 1f;
suspicionLevel = 12;
}
suspicionLevel = Mathf.Clamp(suspicionLevel, 0, 11);
}
else if (base.currentBehaviourStateIndex == 0)
{
((EnemyAI)this).SwitchToBehaviourState(1);
}
if (!((NetworkBehaviour)this).IsOwner)
{
((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId);
}
if (!inLunge)
{
((EnemyAI)this).SetDestinationToPosition(noisePositionGuess, false);
}
lastHeardNoiseDistanceWhenHeard = distanceToNoise;
lastHeardNoisePosition = targetPosition;
Debug.Log((object)$"Dog lastheardnoisePosition: {lastHeardNoisePosition}");
}
private void EnterLunge()
{
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
if (!((NetworkBehaviour)this).IsOwner)
{
((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId);
}
((EnemyAI)this).SwitchToBehaviourState(3);
endingLunge = false;
ray = new Ray(((Component)this).transform.position + Vector3.up, ((Component)this).transform.forward);
Vector3 val = ((!Physics.Raycast(ray, ref rayHit, 17f, StartOfRound.Instance.collidersAndRoomMask)) ? ((Ray)(ref ray)).GetPoint(17f) : ((RaycastHit)(ref rayHit)).point);
val = RoundManager.Instance.GetNavMeshPosition(val, default(NavMeshHit), 5f, -1);
((EnemyAI)this).SetDestinationToPosition(val, false);
base.agent.speed = 13f;
}
[ServerRpc(RequireOwnership = false)]
public void EndLungeServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3106330922u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3106330922u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
EndLungeClientRpc();
}
}
}
[ClientRpc]
public void EndLungeClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3443765605u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3443765605u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2);
if (!base.isEnemyDead)
{
base.creatureAnimator.SetTrigger("EndLungeNoKill");
}
inLunge = false;
Debug.Log((object)"Ending lunge");
}
}
private void ChaseLocalPlayer()
{
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).SwitchToBehaviourState(2);
((EnemyAI)this).ChangeOwnershipOfEnemy(NetworkManager.Singleton.LocalClientId);
((EnemyAI)this).SetDestinationToPosition(((Component)GameNetworkManager.Instance.localPlayerController).transform.position, false);
}
public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1)
{
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID);
base.enemyHP -= force;
if (((NetworkBehaviour)this).IsOwner)
{
if (base.enemyHP <= 0)
{
((EnemyAI)this).KillEnemyOnOwnerClient(false);
return;
}
if (inKillAnimation)
{
StopKillAnimationServerRpc();
}
}
if ((Object)(object)playerWhoHit != (Object)null && base.currentBehaviourStateIndex != 2 && ((NetworkBehaviour)this).IsOwner)
{
EnrageDogOnLocalClient(((Component)playerWhoHit).transform.position, Vector3.Distance(((Component)this).transform.position, ((Component)playerWhoHit).transform.position));
}
}
public override void OnCollideWithEnemy(Collider other, EnemyAI? collidedEnemy = null)
{
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).OnCollideWithEnemy(other, collidedEnemy);
if ((Object)(object)collidedEnemy != (Object)null && (Object)(object)collidedEnemy.enemyType != (Object)(object)base.enemyType && timeSinceHittingOtherEnemy >= 1f)
{
if (base.currentBehaviourStateIndex == 2 && !inLunge)
{
((Component)this).transform.LookAt(((Component)other).transform.position);
((Component)this).transform.localEulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f);
inLunge = true;
EnterLunge();
}
timeSinceHittingOtherEnemy = 0f;
collidedEnemy.HitEnemy(enemyDamage, (PlayerControllerB)null, true, -1);
}
}
public override void OnCollideWithPlayer(Collider other)
{
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
//IL_020b: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).OnCollideWithPlayer(other);
PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, inKillAnimation, false);
if (!((Object)(object)val != (Object)null))
{
return;
}
VehicleController val2 = Object.FindObjectOfType<VehicleController>();
if ((Object)(object)val2 != (Object)null && (Object)(object)val.physicsParent != (Object)null && (Object)(object)val.physicsParent == (Object)(object)((Component)val2).transform && !val2.backDoorOpen)
{
return;
}
Vector3 val3 = Vector3.Normalize((((Component)this).transform.position + Vector3.up - ((Component)val.gameplayCamera).transform.position) * 100f);
RaycastHit val4 = default(RaycastHit);
if (Physics.Linecast(((Component)this).transform.position + Vector3.up + val3 * 0.5f, ((Component)val.gameplayCamera).transform.position, ref val4, StartOfRound.Instance.collidersAndRoomMask, (QueryTriggerInteraction)1))
{
if (!((Object)(object)((RaycastHit)(ref val4)).collider == (Object)(object)debugCollider))
{
debugCollider = ((RaycastHit)(ref val4)).collider;
}
}
else if (!val.inVehicleAnimation || !(Vector3.Distance(((Component)this).transform.position, ((Component)val).transform.position) > 3f))
{
if (base.currentBehaviourStateIndex == 3)
{
val.inAnimationWithEnemy = (EnemyAI)(object)this;
KillPlayerServerRpc((int)val.playerClientId);
}
else if (base.currentBehaviourStateIndex == 0 || base.currentBehaviourStateIndex == 1)
{
ChaseLocalPlayer();
}
else if (base.currentBehaviourStateIndex == 2 && !inLunge)
{
((Component)this).transform.LookAt(((Component)other).transform.position);
((Component)this).transform.localEulerAngles = new Vector3(0f, ((Component)this).transform.eulerAngles.y, 0f);
inLunge = true;
EnterLunge();
}
}
}
[ServerRpc(RequireOwnership = false)]
public void KillPlayerServerRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4001558559u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, playerId);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4001558559u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
if (!inKillAnimation)
{
inKillAnimation = true;
KillPlayerClientRpc(playerId);
}
else
{
CancelKillAnimationWithPlayerClientRpc(playerId);
}
}
}
[ClientRpc]
public void CancelKillAnimationWithPlayerClientRpc(int playerObjectId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1417954382u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, playerObjectId);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1417954382u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
StartOfRound.Instance.allPlayerScripts[playerObjectId].inAnimationWithEnemy = null;
}
}
}
[ClientRpc]
public void KillPlayerClientRpc(int playerId)
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager == null || !networkManager.IsListening)
{
return;
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(233721520u, val, (RpcDelivery)0);
BytePacker.WriteValueBitPacked(val2, playerId);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 233721520u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
Debug.Log((object)"Kill player rpc");
if (killPlayerCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(killPlayerCoroutine);
}
killPlayerCoroutine = ((MonoBehaviour)this).StartCoroutine(KillPlayer(playerId));
}
}
private IEnumerator KillPlayer(int playerId)
{
if (((NetworkBehaviour)this).IsOwner)
{
base.agent.speed = Mathf.Clamp(base.agent.speed, 2f, 0f);
}
base.creatureVoice.pitch = Random.Range(0.96f, 1.04f);
base.creatureVoice.PlayOneShot(killPlayerSFX, 1f);
PlayerControllerB killPlayer = StartOfRound.Instance.allPlayerScripts[playerId];
if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)killPlayer)
{
killPlayer.DamagePlayer(playerDamage, true, true, (CauseOfDeath)6, 0, false, default(Vector3));
}
float startTime = Time.timeSinceLevelLoad;
yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)killPlayer.deadBody != (Object)null || Time.timeSinceLevelLoad - startTime > 2f));
if ((Object)(object)killPlayer.deadBody == (Object)null)
{
Debug.Log((object)"Giant dog: Player body was not spawned or found within 2 seconds.");
killPlayer.inAnimationWithEnemy = null;
inKillAnimation = false;
yield break;
}
TakeBodyInMouth(killPlayer.deadBody);
startTime = Time.timeSinceLevelLoad;
Quaternion rotateTo = Quaternion.Euler(new Vector3(0f, RoundManager.Instance.YRotationThatFacesTheFarthestFromPosition(((Component)this).transform.position + Vector3.up * 0.6f, 25f, 6), 0f));
Quaternion rotateFrom = ((Component)this).transform.rotation;
while (Time.timeSinceLevelLoad - startTime < 2f)
{
yield return null;
if (((NetworkBehaviour)this).IsOwner)
{
((Component)this).transform.rotation = Quaternion.RotateTowards(rotateFrom, rotateTo, 60f * Time.deltaTime);
}
}
yield return (object)new WaitForSeconds(3.01f);
DropCarriedBody();
suspicionLevel = 2;
((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2);
endingLunge = true;
inKillAnimation = false;
}
private void StopKillAnimation()
{
if (killPlayerCoroutine != null)
{
((MonoBehaviour)this).StopCoroutine(killPlayerCoroutine);
}
base.creatureVoice.Stop();
DropCarriedBody();
suspicionLevel = 2;
((EnemyAI)this).SwitchToBehaviourStateOnLocalClient(2);
endingLunge = true;
inKillAnimation = false;
}
[ServerRpc(RequireOwnership = false)]
public void StopKillAnimationServerRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
{
ServerRpcParams val = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3999301457u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3999301457u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
StopKillAnimationClientRpc();
}
}
}
[ClientRpc]
public void StopKillAnimationClientRpc()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Invalid comparison between Unknown and I4
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
{
ClientRpcParams val = default(ClientRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(776545170u, val, (RpcDelivery)0);
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 776545170u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
StopKillAnimation();
}
}
}
private void TakeBodyInMouth(DeadBodyInfo body)
{
carryingBody = body;
carryingBody.attachedTo = mouthGrip;
carryingBody.attachedLimb = body.bodyParts[5];
carryingBody.matchPositionExactly = true;
}
private void DropCarriedBody()
{
if (!((Object)(object)carryingBody == (Object)null))
{
carryingBody.speedMultiplier = 12f;
carryingBody.attachedTo = null;
carryingBody.attachedLimb = null;
carryingBody.matchPositionExactly = false;
carryingBody = null;
}
}
public override void KillEnemy(bool destroy = false)
{
StopKillAnimation();
base.creatureVoice.Stop();
base.creatureSFX.Stop();
((EnemyAI)this).KillEnemy(destroy);
}
public override void ReceiveLoudNoiseBlast(Vector3 position, float angle)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).ReceiveLoudNoiseBlast(position, angle);
if (angle < 30f)
{
coweringOnFloor = true;
}
}
public override void EnableEnemyMesh(bool enable, bool overrideDoNotSet = false)
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).EnableEnemyMesh(enable, false);
ParticleSystem[] componentsInChildren = ((Component)this).gameObject.GetComponentsInChildren<ParticleSystem>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
MainModule main = componentsInChildren[i].main;
((MainModule)(ref main)).playOnAwake = ((Behaviour)this).enabled;
}
}
public override void OnDrawGizmos()
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
((EnemyAI)this).OnDrawGizmos();
if (base.debugEnemyAI)
{
Gizmos.DrawCube(noisePositionGuess, Vector3.one);
Gizmos.DrawLine(noisePositionGuess, ((Component)this).transform.position + Vector3.up);
}
}
protected override void __initializeVariables()
{
((EnemyAI)this).__initializeVariables();
}
[RuntimeInitializeOnLoadMethod]
internal static void InitializeRPCS_BlindPupAI()
{
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Expected O, but got Unknown
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Expected O, but got Unknown
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Expected O, but got Unknown
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Expected O, but got Unknown
NetworkManager.__rpc_func_table.Add(3106330922u, new RpcReceiveHandler(__rpc_handler_3106330922));
NetworkManager.__rpc_func_table.Add(3443765605u, new RpcReceiveHandler(__rpc_handler_3443765605));
NetworkManager.__rpc_func_table.Add(4001558559u, new RpcReceiveHandler(__rpc_handler_4001558559));
NetworkManager.__rpc_func_table.Add(1417954382u, new RpcReceiveHandler(__rpc_handler_1417954382));
NetworkManager.__rpc_func_table.Add(233721520u, new RpcReceiveHandler(__rpc_handler_233721520));
NetworkManager.__rpc_func_table.Add(3999301457u, new RpcReceiveHandler(__rpc_handler_3999301457));
NetworkManager.__rpc_func_table.Add(776545170u, new RpcReceiveHandler(__rpc_handler_776545170));
}
private static void __rpc_handler_3106330922(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((BlindPupAI)(object)target).EndLungeServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3443765605(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)2;
((BlindPupAI)(object)target).EndLungeClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_4001558559(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int playerId = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref playerId);
target.__rpc_exec_stage = (__RpcExecStage)1;
((BlindPupAI)(object)target).KillPlayerServerRpc(playerId);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1417954382(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int playerObjectId = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref playerObjectId);
target.__rpc_exec_stage = (__RpcExecStage)2;
((BlindPupAI)(object)target).CancelKillAnimationWithPlayerClientRpc(playerObjectId);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_233721520(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
int playerId = default(int);
ByteUnpacker.ReadValueBitPacked(reader, ref playerId);
target.__rpc_exec_stage = (__RpcExecStage)2;
((BlindPupAI)(object)target).KillPlayerClientRpc(playerId);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3999301457(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)1;
((BlindPupAI)(object)target).StopKillAnimationServerRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_776545170(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
target.__rpc_exec_stage = (__RpcExecStage)2;
((BlindPupAI)(object)target).StopKillAnimationClientRpc();
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
protected internal override string __getTypeName()
{
return "BlindPupAI";
}
}
}
namespace BlindPups.NetcodePatcher
{
[AttributeUsage(AttributeTargets.Module)]
internal class NetcodePatchedAssemblyAttribute : Attribute
{
}
}