Decompiled source of LethalLibido v0.1.1
Boogie.LethalLibido.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.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 Boogie.LethalLibido.NetcodePatcher; using GameNetcodeStuff; using LethalLib.Modules; using LethalLibido.Configuration; using LethalLibido.src; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Boogie.LethalLibido")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.1.1.0")] [assembly: AssemblyInformationalVersion("0.1.1")] [assembly: AssemblyProduct("LethalLibido")] [assembly: AssemblyTitle("Boogie.LethalLibido")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.1.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 LethalLibido { internal class ArmosAI : BoogieEnemy { private enum State { Spawning, FloatIdle, SlamDown, SlamDownLanded, Attacking, GivingUp, GroundIdle, Dying, Dead, Smacked } public AudioClip thumpSFX; public AudioSource thumpSFXSource; public AudioSource thumpDeepSFXSource; public AudioSource voiceSFXSource; public AudioSource bossDiesSFXSource; public AudioSource hitSFX; private Vector3 StalkPos; private float hopAnimationSpeed = 1f; protected bool slamHurts; public override void Start() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) base.Start(); timeSpentChasingPlayer = 0f; ((EnemyAI)this).creatureAnimator.SetTrigger("Spawn"); ((EnemyAI)this).currentBehaviourStateIndex = 0; int num = randomInt(1, 3); ((Component)this).transform.localScale = new Vector3((float)num, (float)num, (float)num); ((EnemyAI)this).enemyHP = num; ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void Update() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_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_00ab: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex == 4) { timeSpentChasingPlayer += Time.deltaTime; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (currentBehaviourStateIndex == 4 || currentBehaviourStateIndex == 2)) { 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)), 4f * Time.deltaTime); } } public override void DoAIInterval() { //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = 3f; break; case 4: if (timeSpentChasingPlayer > 5f) { if (((EnemyAI)this).agent.speed > 0.75f) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed -= 0.1f; } if (((EnemyAI)this).agent.speed < 0.75f) { NavMeshAgent agent2 = ((EnemyAI)this).agent; agent2.speed += 0.1f; } if (hopAnimationSpeed > 0.75f) { hopAnimationSpeed -= 0.01f; } } else { if (((EnemyAI)this).agent.speed < 9f) { NavMeshAgent agent3 = ((EnemyAI)this).agent; agent3.speed += 0.5f; } if (hopAnimationSpeed < 2f) { hopAnimationSpeed += 0.01f; } } ((EnemyAI)this).creatureAnimator.SetFloat("AnimationSpeed", hopAnimationSpeed); if (timeSpentChasingPlayer > 10f && (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || (((EnemyAI)this).agent.speed < 1f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)))) { doReset(); } else { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; } } public void SlamDownCompleted() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); } public void SlamDownBigSlam() { thumpDeepSFXSource.Play(); thumpPlayers(20, 1f); fearAllPlayersInRadius(20f, 1f, shakeCamera: true, ((EnemyAI)this).targetPlayer); ((EnemyAI)this).SwitchToBehaviourClientRpc(3); } private IEnumerator ActivateSlamDown() { for (int i = 0; i <= 6; i++) { if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 5f) { break; } yield return (object)new WaitForSeconds(0.5f); } DoAnimationClientRpc("SlamDown"); if (!backgroundMusicSFXSource.isPlaying) { backgroundMusicSFXSource.Play(); } } public void ActivateCrushBox() { slamHurts = true; } public void DeactivateCrushBox() { slamHurts = false; } public void Thump() { if (Random.Range(0f, 2f) > 1f) { thumpSFXSource.Play(); } else { thumpDeepSFXSource.Play(); } thumpPlayers(10, 0.2f); } public void FinishedResetting() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); timeSpentChasingPlayer = 0f; } public IEnumerator recoil(Vector3 goal) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SetDestinationToPosition(goal, false); yield return (object)new WaitForSeconds(3f); TargetClosestPlayerInAnyCase(); DoAnimationClientRpc("BeginJumpAttack"); ((EnemyAI)this).SwitchToBehaviourClientRpc(4); yield return null; } public override void OnDeath() { ((EnemyAI)this).SwitchToBehaviourClientRpc(8); DoAnimationClientRpc("Die"); } public override void OnSmack() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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) ((EnemyAI)this).SwitchToBehaviourClientRpc(9); DoAnimationClientRpc("Smacked"); ((MonoBehaviour)this).StartCoroutine(recoil(((Component)this).transform.position - ((Component)this).transform.forward * 0.99f)); } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { if (((EnemyAI)this).currentBehaviourStateIndex != 1) { base.HitEnemy(force, playerWhoHit, playHitSFX, hitID); } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { //IL_0077: 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) if ((slamHurts || (((EnemyAI)this).currentBehaviourStateIndex != 1 && ((EnemyAI)this).currentBehaviourStateIndex != 4)) && (Object)(object)playerControllerB != (Object)null) { timeSinceHittingLocalPlayer = 0f; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 0: case 1: ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; doActivateSlamDownServerRpc((int)playerControllerB.playerClientId); break; case 4: playerControllerB.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); timeSpentChasingPlayer = 0f; doThrowPlayerServerRpc((int)playerControllerB.playerClientId); ((EnemyAI)this).agent.speed = 0f; break; } } } [ServerRpc(RequireOwnership = false)] public void doThrowPlayerServerRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: 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_00e8: 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(688523974u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 688523974u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doThrowPlayerClientRpc(playerId, position, enemyYRot); } } } [ClientRpc] public void doThrowPlayerClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_008b: 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_00ef: 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(1245783948u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref enemyPosition); BytePacker.WriteValueBitPacked(val2, enemyYRot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1245783948u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { doThrowPlayer(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } } public void doThrowPlayer(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)this).StartCoroutine(throwPlayer(playerControllerB, 3f, ((Component)this).transform.forward)); } [ServerRpc(RequireOwnership = false)] public void doActivateSlamDownServerRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: 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_00e8: 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(3359212858u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3359212858u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doActivateSlamDownClientRpc(playerId, position, enemyYRot); } } } [ClientRpc] public void doActivateSlamDownClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_008b: 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_00fd: 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(3307650135u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref enemyPosition); BytePacker.WriteValueBitPacked(val2, enemyYRot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3307650135u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { doActivateSlamDown(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } } public void doActivateSlamDown(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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_0069: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).targetPlayer = playerControllerB; turnCompass.LookAt(((Component)((EnemyAI)this).targetPlayer.gameplayCamera).transform.position); ((Component)this).transform.rotation = Quaternion.Euler(new Vector3(0f, turnCompass.eulerAngles.y, 0f)); ((EnemyAI)this).SwitchToBehaviourClientRpc(2); ((MonoBehaviour)this).StartCoroutine(ActivateSlamDown()); } public void doReset() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; timeSpentChasingPlayer = 0f; DoAnimationClientRpc("Reset"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); stopBackgroundMusicServerRpc(); } protected override void __initializeVariables() { base.__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_ArmosAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(688523974u, new RpcReceiveHandler(__rpc_handler_688523974)); NetworkManager.__rpc_func_table.Add(1245783948u, new RpcReceiveHandler(__rpc_handler_1245783948)); NetworkManager.__rpc_func_table.Add(3359212858u, new RpcReceiveHandler(__rpc_handler_3359212858)); NetworkManager.__rpc_func_table.Add(3307650135u, new RpcReceiveHandler(__rpc_handler_3307650135)); } private static void __rpc_handler_688523974(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; ((ArmosAI)(object)target).doThrowPlayerServerRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1245783948(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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); Vector3 enemyPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref enemyPosition); int enemyYRot = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref enemyYRot); target.__rpc_exec_stage = (__RpcExecStage)2; ((ArmosAI)(object)target).doThrowPlayerClientRpc(playerId, enemyPosition, enemyYRot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3359212858(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; ((ArmosAI)(object)target).doActivateSlamDownServerRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3307650135(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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); Vector3 enemyPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref enemyPosition); int enemyYRot = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref enemyYRot); target.__rpc_exec_stage = (__RpcExecStage)2; ((ArmosAI)(object)target).doActivateSlamDownClientRpc(playerId, enemyPosition, enemyYRot); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "ArmosAI"; } } internal class ExampleEnemyAI : EnemyAI { private enum State { SearchingForPlayer, StickingInFrontOfPlayer, HeadSwingAttackInProgress } public Transform turnCompass; public Transform attackArea; public GameObject overridePhysicsParentAnimationMesh; private float timeSinceHittingLocalPlayer; private float timeSinceNewRandPos; private Vector3 positionRandomness; private Vector3 StalkPos; private Random enemyRandom; private bool isDeadAnimationDone; [Conditional("DEBUG")] private void LogIfDebugBuild(string text) { Plugin.Logger.LogInfo((object)text); } public override void Start() { //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_0077: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Start(); timeSinceHittingLocalPlayer = 0f; base.creatureAnimator.SetTrigger("startWalk"); timeSinceNewRandPos = 0f; positionRandomness = new Vector3(0f, 0f, 0f); enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex); isDeadAnimationDone = false; base.currentBehaviourStateIndex = 0; ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void Update() { //IL_007f: 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_00a5: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Update(); if (base.isEnemyDead) { if (!isDeadAnimationDone) { isDeadAnimationDone = true; base.creatureVoice.Stop(); base.creatureVoice.PlayOneShot(base.dieSFX); } return; } timeSinceNewRandPos += Time.deltaTime; int currentBehaviourStateIndex = base.currentBehaviourStateIndex; if ((Object)(object)base.targetPlayer != (Object)null && (currentBehaviourStateIndex == 1 || currentBehaviourStateIndex == 2)) { turnCompass.LookAt(((Component)base.targetPlayer.gameplayCamera).transform.position); ((Component)this).transform.rotation = Quaternion.Lerp(((Component)this).transform.rotation, Quaternion.Euler(new Vector3(0f, turnCompass.eulerAngles.y, 0f)), 4f * Time.deltaTime); } if (base.stunNormalizedTimer > 0f) { base.agent.speed = 0f; } } public override void DoAIInterval() { //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).DoAIInterval(); if (base.isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (base.currentBehaviourStateIndex) { case 0: base.agent.speed = 3f; if (FoundClosestPlayerInRange(25f, 3f)) { ((EnemyAI)this).StopSearch(base.currentSearch, true); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } break; case 1: base.agent.speed = 5f; if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)base.targetPlayer).transform.position, 45f, 60, -1f, (Transform)null))) { ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } else { StickingInFrontOfPlayer(); } break; case 2: break; } } private bool FoundClosestPlayerInRange(float range, float senseRange) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 70f); if ((Object)(object)base.targetPlayer == (Object)null) { ((EnemyAI)this).TargetClosestPlayer(1.5f, false, 70f); range = senseRange; } if ((Object)(object)base.targetPlayer != (Object)null) { return Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) < range; } return false; } private bool TargetClosestPlayerInAnyCase() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) base.mostOptimalDistance = 2000f; base.targetPlayer = null; for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < base.mostOptimalDistance) { base.mostOptimalDistance = base.tempDist; base.targetPlayer = StartOfRound.Instance.allPlayerScripts[i]; } } if ((Object)(object)base.targetPlayer == (Object)null) { return false; } return true; } private void StickingInFrontOfPlayer() { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)base.targetPlayer == (Object)null) && ((NetworkBehaviour)this).IsOwner && timeSinceNewRandPos > 0.7f) { timeSinceNewRandPos = 0f; if (enemyRandom.Next(0, 5) == 0) { ((MonoBehaviour)this).StartCoroutine(SwingAttack()); } else { positionRandomness = new Vector3((float)enemyRandom.Next(-2, 2), 0f, (float)enemyRandom.Next(-2, 2)); StalkPos = ((Component)base.targetPlayer).transform.position - Vector3.Scale(new Vector3(-5f, 0f, -5f), ((Component)base.targetPlayer).transform.forward) + positionRandomness; } ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); } } private IEnumerator SwingAttack() { ((EnemyAI)this).SwitchToBehaviourClientRpc(2); StalkPos = ((Component)base.targetPlayer).transform.position; ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); yield return (object)new WaitForSeconds(0.5f); if (!base.isEnemyDead) { DoAnimationClientRpc("swingAttack"); yield return (object)new WaitForSeconds(0.35f); SwingAttackHitClientRpc(); if (base.currentBehaviourStateIndex == 2) { ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } } } public override void OnCollideWithPlayer(Collider other) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) if (!(timeSinceHittingLocalPlayer < 1f)) { PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val != (Object)null) { timeSinceHittingLocalPlayer = 0f; val.DamagePlayer(20, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); base.inSpecialAnimationWithPlayer = val; base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = true; base.inSpecialAnimationWithPlayer.inAnimationWithEnemy = (EnemyAI)(object)this; base.inSpecialAnimationWithPlayer.overridePhysicsParent = overridePhysicsParentAnimationMesh.transform; } } } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); if (!base.isEnemyDead) { base.enemyHP -= force; if (((NetworkBehaviour)this).IsOwner && base.enemyHP <= 0 && !base.isEnemyDead) { ((MonoBehaviour)this).StopCoroutine(SwingAttack()); ((MonoBehaviour)this).StopCoroutine(base.searchCoroutine); ((EnemyAI)this).KillEnemyOnOwnerClient(false); } } } [ClientRpc] public void DoAnimationClientRpc(string animationName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2774027140u, val, (RpcDelivery)0); bool flag = animationName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(animationName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2774027140u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { base.creatureAnimator.SetTrigger(animationName); } } [ClientRpc] public void SwingAttackHitClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2467256112u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2467256112u, 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) { timeSinceHittingLocalPlayer = 0f; val4.DamagePlayer(40, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); } } } public void testy() { } protected override void __initializeVariables() { ((EnemyAI)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_ExampleEnemyAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2774027140u, new RpcReceiveHandler(__rpc_handler_2774027140)); NetworkManager.__rpc_func_table.Add(2467256112u, new RpcReceiveHandler(__rpc_handler_2467256112)); } private static void __rpc_handler_2774027140(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string animationName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref animationName, false); } target.__rpc_exec_stage = (__RpcExecStage)2; ((ExampleEnemyAI)(object)target).DoAnimationClientRpc(animationName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2467256112(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; ((ExampleEnemyAI)(object)target).SwingAttackHitClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "ExampleEnemyAI"; } } [BepInPlugin("Boogie.LethalLibido", "LethalLibido", "0.1.1")] [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 = "modassets"; 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>("Armos"); TerminalNode val2 = ModAssets.LoadAsset<TerminalNode>("ArmosTN"); TerminalKeyword val3 = ModAssets.LoadAsset<TerminalKeyword>("ArmosTK"); NetworkPrefabs.RegisterNetworkPrefab(val.enemyPrefab); Enemies.RegisterEnemy(val, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val2, val3); EnemyType val4 = ModAssets.LoadAsset<EnemyType>("Marie"); TerminalNode val5 = ModAssets.LoadAsset<TerminalNode>("MarieTN"); TerminalKeyword val6 = ModAssets.LoadAsset<TerminalKeyword>("MarieTK"); NetworkPrefabs.RegisterNetworkPrefab(val4.enemyPrefab); Enemies.RegisterEnemy(val4, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val5, val6); EnemyType val7 = ModAssets.LoadAsset<EnemyType>("Amy"); TerminalNode val8 = ModAssets.LoadAsset<TerminalNode>("AmyTN"); TerminalKeyword val9 = ModAssets.LoadAsset<TerminalKeyword>("AmyTK"); NetworkPrefabs.RegisterNetworkPrefab(val7.enemyPrefab); Enemies.RegisterEnemy(val7, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val8, val9); EnemyType val10 = ModAssets.LoadAsset<EnemyType>("Rouge"); TerminalNode val11 = ModAssets.LoadAsset<TerminalNode>("RougeTN"); TerminalKeyword val12 = ModAssets.LoadAsset<TerminalKeyword>("RougeTK"); NetworkPrefabs.RegisterNetworkPrefab(val10.enemyPrefab); Enemies.RegisterEnemy(val10, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val11, val12); EnemyType val13 = ModAssets.LoadAsset<EnemyType>("Midna"); TerminalNode val14 = ModAssets.LoadAsset<TerminalNode>("MidnaTN"); TerminalKeyword val15 = ModAssets.LoadAsset<TerminalKeyword>("MidnaTK"); NetworkPrefabs.RegisterNetworkPrefab(val13.enemyPrefab); Enemies.RegisterEnemy(val13, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val14, val15); EnemyType val16 = ModAssets.LoadAsset<EnemyType>("Betilla"); TerminalNode val17 = ModAssets.LoadAsset<TerminalNode>("BetillaTN"); TerminalKeyword val18 = ModAssets.LoadAsset<TerminalKeyword>("BetillaTK"); NetworkPrefabs.RegisterNetworkPrefab(val16.enemyPrefab); Enemies.RegisterEnemy(val16, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val17, val18); Logger.LogInfo((object)"Plugin Boogie.LethalLibido 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 static class PluginInfo { public const string PLUGIN_GUID = "Boogie.LethalLibido"; public const string PLUGIN_NAME = "LethalLibido"; public const string PLUGIN_VERSION = "0.1.1"; } } namespace LethalLibido.Configuration { public class PluginConfig { public ConfigEntry<int> SpawnWeight; public PluginConfig(ConfigFile cfg) { SpawnWeight = cfg.Bind<int>("General", "Spawn weight", 20, "The spawn chance weight for LethalLibido, relative to other existing enemies.\nGoes up from 0, lower is more rare, 100 and up is very common."); ClearUnusedEntries(cfg); } private void ClearUnusedEntries(ConfigFile cfg) { PropertyInfo property = ((object)cfg).GetType().GetProperty("OrphanedEntries", BindingFlags.Instance | BindingFlags.NonPublic); Dictionary<ConfigDefinition, string> dictionary = (Dictionary<ConfigDefinition, string>)property.GetValue(cfg, null); dictionary.Clear(); cfg.Save(); } } } namespace LethalLibido.src { public class AmyAI : BoogieEnemy { private enum State { Spawning, RunningAround, SearchingForPlayer, PlayerSpotted, ChasingPlayer, AttackingPlayer, RecoilingFromPlayerAttack, Dying, Dead } public AudioClip HammerSFX; public bool SearchingForPlayer_standingStill = true; private float timeWalkingOrStandingStill; private float timeRunningAround; private new float wanderSpeed = 12f; private new float runSpeed = 60f; private new int attackDamage = 5; public Vector3? attackTargetPosition; public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; ((MonoBehaviour)this).StartCoroutine(doSpawn()); } public override void Update() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; Vector3 velocity; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: { timeRunningAround += Time.deltaTime; Animator creatureAnimator2 = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator2.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed * 2f); break; } case 4: { timeRunningAround += Time.deltaTime; timeSpentChasingPlayer += Time.deltaTime; Animator creatureAnimator = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed * 2f); break; } } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 3 || ((EnemyAI)this).currentBehaviourStateIndex == 4)) { 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)), 1f * Time.deltaTime); } } public override void DoAIInterval() { //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = wanderSpeed; if (randomInt(0, 10) == 1) { playRandomVoicefromArray(RandomVoicelineSFX, randomizePitch: false); } if (timeRunningAround > 10f && FoundClosestPlayerInRange(detectionRange, detectionRange)) { ((MonoBehaviour)this).StartCoroutine(playerSpotted()); } break; case 4: if (((EnemyAI)this).agent.speed < runSpeed) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 1f; } if (randomInt(0, 20) == 1) { playRandomVoicefromArray(RandomVoicelineSFX, randomizePitch: false); } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || timeRunningAround > 20f) { ((MonoBehaviour)this).StartCoroutine(doRunAround()); } else if (TargetClosestPlayerInAnyCase() && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 7f) { ((MonoBehaviour)this).StartCoroutine(doSlamAttack()); } else { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; case 5: if (!attackTargetPosition.HasValue) { attackTargetPosition = ((Component)((EnemyAI)this).targetPlayer).transform.position; ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); } ((EnemyAI)this).SetDestinationToPosition(attackTargetPosition.Value, false); break; case 0: case 2: case 3: break; } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex != 2) { _ = 4; } } private IEnumerator doSpawn() { yield return (object)new WaitForSeconds(2f); ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = wanderSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(3); yield return (object)new WaitForSeconds(1f); ((MonoBehaviour)this).StartCoroutine(doRunAround()); yield return null; } private IEnumerator doRunAround() { timeRunningAround = 0f; ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).agent.speed = wanderSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(1); DoAnimationClientRpc("Run"); ((EnemyAI)this).agent.angularSpeed = 300f; ((EnemyAI)this).agent.acceleration = 10f; yield return null; } private IEnumerator playerSpotted() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = runSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("Run"); timeRunningAround = 0f; timeSpentChasingPlayer = 0f; yield return null; } private IEnumerator doSlamAttack() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(5); if (randomInt(0, 5) == 1) { playRandomVoicefromArray(RandomSpecialWanderVoicelineSFX, randomizePitch: false); } DoAnimationClientRpc("Slam"); yield return (object)new WaitForSeconds(2f); ((MonoBehaviour)this).StartCoroutine(doRunAround()); yield return null; } private IEnumerator doHitRecoil() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(6); DoAnimationClientRpc("Smacked"); yield return (object)new WaitForSeconds(4f); if (!((EnemyAI)this).isEnemyDead) { ((MonoBehaviour)this).StartCoroutine(doRunAround()); } yield return null; } [ClientRpc] public void slamPlayersClientRpc() { //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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0192: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024d: 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(510532860u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 510532860u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } playSfxRandomizedPitch(HammerSFX); ((EnemyAI)this).agent.speed = 0f; 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.isPlayerDead) { timeSinceHittingLocalPlayer = 0f; int num2 = attackDamage; Vector3 val5 = default(Vector3); val4.DamagePlayer(num2, true, true, (CauseOfDeath)0, 0, false, val5); val5 = new Vector3(0f, 0.5f, 0f); Vector3 normalized = ((Vector3)(ref val5)).normalized; val5 = ((Component)val4).transform.position - ((Component)attackArea).transform.position; Vector3 normalized2 = ((Vector3)(ref val5)).normalized; float num3 = 2f * (1f - Vector3.Distance(((Component)val4).transform.position, ((Component)attackArea).transform.position) / 10f); num3 = (1f + Math.Abs(num3 / 10f)) / 4f; if ((Object)(object)GameNetworkManager.Instance.localPlayerController.thisController == (Object)(object)val3) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } float force = num3; val5 = normalized + normalized2; ((MonoBehaviour)this).StartCoroutine(throwPlayer(val4, force, ((Vector3)(ref val5)).normalized / 5f)); } } } public void footStep() { playSfxRandomizedPitch(FootstepSFX); } public void spotPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("DashAtPlayer"); } public void spawnAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(2); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void slamAttackFinished() { attackTargetPosition = null; ((EnemyAI)this).SwitchToBehaviourClientRpc(2); DoAnimationClientRpc("ToIdleWalk"); SearchingForPlayer_standingStill = false; } public override void OnDeath() { ((EnemyAI)this).SwitchToBehaviourClientRpc(8); DoAnimationClientRpc("Die"); } public override void OnSmack() { ((MonoBehaviour)this).StartCoroutine(doHitRecoil()); } protected override void __initializeVariables() { base.__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_AmyAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(510532860u, new RpcReceiveHandler(__rpc_handler_510532860)); } private static void __rpc_handler_510532860(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; ((AmyAI)(object)target).slamPlayersClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "AmyAI"; } } internal class BetillaAI : BoogieEnemy { private enum State { Spawning, SearchingForPlayer, PlayerSpotted, FollowingPlayer, SittingOnPlayer, WavingAtPlayer, KickingLegs, AccidentallyKillingPlayer, TeleportingPlayer, Reset, Dying, Dead } private bool playerAttached; private int vectTest; private Quaternion quatBeforeTakingControl; public PlayerControllerB clingingToPlayer; public float clingToPlayerTimer; public float timeSinceTeleportingPlayerTimer; public float timeSinceEmoting; public float timeSinceSittingOnPlayer; public int clingPosition; private bool backOnGround; public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; } public override void Update() { //IL_0141: 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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; timeSinceTeleportingPlayerTimer += Time.deltaTime; timeSinceEmoting += Time.deltaTime; timeSinceSittingOnPlayer += Time.deltaTime; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 4: if (!(timeSinceEmoting > 10f)) { break; } switch (randomInt(1, 5)) { case 1: ((MonoBehaviour)this).StartCoroutine(doWaveAtPlayer()); break; case 2: ((MonoBehaviour)this).StartCoroutine(doTapAtPlayer()); break; case 3: if (randomInt(1, 50) == 1) { doKillPlayerServerRpc((int)clingingToPlayer.playerClientId); } break; } timeSinceEmoting = 0f; break; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 4: case 5: SetClingingAnimationPosition(); break; case 11: if (!backOnGround) { returnToGround(); backOnGround = true; } break; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 2 || ((EnemyAI)this).currentBehaviourStateIndex == 3)) { 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)), 2f * Time.deltaTime); } if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null && ((EnemyAI)this).currentBehaviourStateIndex == 7) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.position = overridePhysicsParentAnimationMesh2.transform.position; Transform transform = ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform; transform.position -= ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.up * 0.4f; ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh2.transform.rotation; } } public override void DoAIInterval() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: 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_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); _ = (Object)(object)clingingToPlayer != (Object)null; if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = 3f; if (FoundClosestPlayerInRange(25f, 3f, noAttachments: true)) { ((MonoBehaviour)this).StartCoroutine(playerSpotted()); } break; case 3: if (((EnemyAI)this).agent.speed < 5f) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 0.5f; } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || (((EnemyAI)this).agent.speed < 1f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && ((EnemyAI)this).targetPlayer.enemiesOnPerson > 0)) { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); startWandering(); } else if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null) { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; case 7: if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh.transform.rotation; } break; } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { if ((Object)(object)clingingToPlayer == (Object)null && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null && timeSinceSittingOnPlayer > 5f && playerControllerB.enemiesOnPerson == 0) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex == 1 || currentBehaviourStateIndex == 3) { ((EnemyAI)this).agent.speed = 0f; float num = Random.Range(30f, 60f); SetClingToPlayerServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } } else if ((Object)(object)clingingToPlayer == (Object)null && timeSinceSittingOnPlayer > 5f) { startWandering(); } } [ServerRpc(RequireOwnership = false)] public void SetClingToPlayerServerRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2200911559u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2200911559u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ClingToPlayerClientRpc(playerId, 0, 40f); } } } private void SetClingToPlayer(PlayerControllerB playerToCling, int setClingPosition, float clingTime) { //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) clingPosition = setClingPosition; clingingToPlayer = playerToCling; ((EnemyAI)this).inSpecialAnimation = true; playerToCling.enemiesOnPerson++; playerToCling.carryWeight += 0.03f; if ((Object)(object)playerToCling == (Object)(object)GameNetworkManager.Instance.localPlayerController) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); SoundManager.Instance.misc2DAudio.volume = 1f; SoundManager.Instance.misc2DAudio.pitch = Random.Range(0.9f, 1.1f); } clingToPlayerTimer = clingTime; DoAnimationClientRpc("SitOnPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(4); SetClingingAnimationPosition(); scaleBeforeTakingControl = ((Component)playerToCling).transform.localScale; } [ClientRpc] public void ClingToPlayerClientRpc(int playerId, int setClingPosition, float clingTime) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: 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(2323776583u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); BytePacker.WriteValueBitPacked(val2, setClingPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref clingTime, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2323776583u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB playerToCling = StartOfRound.Instance.allPlayerScripts[playerId]; SetClingToPlayer(playerToCling, setClingPosition, clingTime); } } } private void SetClingingAnimationPosition() { //IL_00a9: 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_0042: 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_005e: 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_008d: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)clingingToPlayer == (Object)null)) { if ((Object)(object)clingingToPlayer == (Object)(object)GameNetworkManager.Instance.localPlayerController) { enableSkinnedMeshRenderers(); ((Component)this).transform.position = ((Component)clingingToPlayer.gameplayCamera).transform.position; Transform transform = ((Component)this).transform; transform.position -= ((Component)this).transform.up * 0.4f; ((Component)this).transform.rotation = ((Component)clingingToPlayer.gameplayCamera).transform.rotation; } else { ((Component)this).transform.position = clingingToPlayer.upperSpine.position; ((Component)this).transform.rotation = clingingToPlayer.upperSpine.rotation; } } } public void TeleportPlayer() { if ((Object)(object)clingingToPlayer == (Object)(object)GameNetworkManager.Instance.localPlayerController) { TeleportPlayerServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } } [ServerRpc(RequireOwnership = false)] public void TeleportPlayerServerRpc(int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3676459550u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3676459550u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { TeleportPlayerClientRpc(playerId); } } } [ClientRpc] public void TeleportPlayerClientRpc(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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: 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) 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(2400028570u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2400028570u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && RoundManager.Instance.insideAINodes.Length != 0) { PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerId]; Vector3 position = RoundManager.Instance.insideAINodes[enemyRandom.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position; position = RoundManager.Instance.GetRandomNavMeshPositionInBoxPredictable(position, 10f, default(NavMeshHit), enemyRandom, -1); val3.isInsideFactory = !val3.isInsideFactory; val3.isInElevator = false; val3.isInHangarShipRoom = false; val3.TeleportPlayer(position, true, 0f, false, true); } } } public IEnumerator doTeleportPlayer(PlayerControllerB player) { if (RoundManager.Instance.insideAINodes.Length == 0) { yield return null; } Vector3 position = RoundManager.Instance.insideAINodes[enemyRandom.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position; position = RoundManager.Instance.GetRandomNavMeshPositionInBoxPredictable(position, 10f, default(NavMeshHit), enemyRandom, -1); player.isInsideFactory = !player.isInsideFactory; player.isInElevator = false; player.isInHangarShipRoom = false; player.TeleportPlayer(position, true, 0f, false, true); yield return null; } [ServerRpc(RequireOwnership = false)] public void doKillPlayerServerRpc(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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010f: 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(1843638552u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1843638552u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { NetworkManager networkManager2 = ((NetworkBehaviour)this).NetworkManager; if (!((Object)(object)networkManager2 == (Object)null) && networkManager2.IsListening && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doKillPlayer2ClientRpc(playerId, position, enemyYRot); } } } [ClientRpc] public void doKillPlayer2ClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_008b: 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_00fd: 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(3515784946u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref enemyPosition); BytePacker.WriteValueBitPacked(val2, enemyYRot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3515784946u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { doKillPlayer(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } } public void doKillPlayer(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0048: 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) PlayerControllerB val = clingingToPlayer; scaleBeforeTakingControl = ((Component)val).transform.localScale; shrinkPlayerClientRpc(); ((EnemyAI)this).SwitchToBehaviourClientRpc(7); AttachPlayerToKillAnimation(val); Transform transform = ((Component)this).transform; transform.position -= ((Component)this).transform.forward * 0.12f; DoAnimationClientRpc("CrushPlayer"); } public IEnumerator doWaveAtPlayer() { DoAnimationClientRpc("SitWave"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); yield return null; } public IEnumerator doTapAtPlayer() { DoAnimationClientRpc("SitTap"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); yield return null; } private IEnumerator playerSpotted() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(2); yield return (object)new WaitForSeconds(1f); DoAnimationClientRpc("SeePlayer"); yield return null; } public void spotPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(3); } public void spawnAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void startWandering() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) DoAnimationClientRpc("Idle"); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void waveAtPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("SitOnPlayer"); } public void crushPlayerAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); DoAnimationClientRpc("Idle"); ReleasePlayerFromKillAnimation(); } [ClientRpc] private void shrinkPlayerClientRpc() { //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_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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: 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(791656125u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 791656125u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { scaleBeforeTakingControl = ((Component)clingingToPlayer).transform.localScale; ((Component)clingingToPlayer).transform.localScale = scaleBeforeTakingControl / 8f; } } } [ServerRpc(RequireOwnership = false)] private void releaseClingingPlayerServerRpc() { //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(937964260u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 937964260u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { releaseClingingPlayerClientRpc(); ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } } } [ClientRpc] private void releaseClingingPlayerClientRpc() { //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(3603971808u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3603971808u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if ((Object)(object)clingingToPlayer != (Object)null) { PlayerControllerB obj = clingingToPlayer; obj.enemiesOnPerson--; clingingToPlayer = null; ((EnemyAI)this).inSpecialAnimation = false; } timeSinceSittingOnPlayer = 0f; returnToGround(); } } [ClientRpc] private void unShrinkPlayerClientRpc() { //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_00d5: 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(3684929883u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3684929883u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && (Object)(object)clingingToPlayer != (Object)null) { ((Component)clingingToPlayer).transform.localScale = scaleBeforeTakingControl; } } } public void executePlayer() { //IL_0012: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).inSpecialAnimationWithPlayer.DamagePlayer(1000, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); ((EnemyAI)this).inSpecialAnimationWithPlayer.KillPlayer(Vector3.zero, true, (CauseOfDeath)8, 0, default(Vector3)); if (!((EnemyAI)this).inSpecialAnimationWithPlayer.isPlayerDead) { unShrinkPlayerClientRpc(); releaseClingingPlayerClientRpc(); ReleasePlayerFromKillAnimation(); ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } } public void returnToGround() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0057: 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_0064: 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) //IL_0045: 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_0078: Unknown result type (might be due to invalid IL or missing references) Ray val = default(Ray); ((Ray)(ref val))..ctor(((Component)this).transform.position, Vector3.down); _ = ((Component)this).transform.position; Vector3 position = ((Component)this).transform.position; RaycastHit val2 = default(RaycastHit); Vector3 position2 = ((!Physics.Raycast(val, ref val2, 40f, 256)) ? RoundManager.Instance.GetNavMeshPosition(((Component)this).transform.position, default(NavMeshHit), 5f, -1) : ((RaycastHit)(ref val2)).point); ((Component)this).transform.position = position2; } public override void OnDeath() { unShrinkPlayerClientRpc(); releaseClingingPlayerServerRpc(); } public override void OnSmack() { unShrinkPlayerClientRpc(); releaseClingingPlayerServerRpc(); } protected override void __initializeVariables() { base.__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_BetillaAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2200911559u, new RpcReceiveHandler(__rpc_handler_2200911559)); NetworkManager.__rpc_func_table.Add(2323776583u, new RpcReceiveHandler(__rpc_handler_2323776583)); NetworkManager.__rpc_func_table.Add(3676459550u, new RpcReceiveHandler(__rpc_handler_3676459550)); NetworkManager.__rpc_func_table.Add(2400028570u, new RpcReceiveHandler(__rpc_handler_2400028570)); NetworkManager.__rpc_func_table.Add(1843638552u, new RpcReceiveHandler(__rpc_handler_1843638552)); NetworkManager.__rpc_func_table.Add(3515784946u, new RpcReceiveHandler(__rpc_handler_3515784946)); NetworkManager.__rpc_func_table.Add(791656125u, new RpcReceiveHandler(__rpc_handler_791656125)); NetworkManager.__rpc_func_table.Add(937964260u, new RpcReceiveHandler(__rpc_handler_937964260)); NetworkManager.__rpc_func_table.Add(3603971808u, new RpcReceiveHandler(__rpc_handler_3603971808)); NetworkManager.__rpc_func_table.Add(3684929883u, new RpcReceiveHandler(__rpc_handler_3684929883)); } private static void __rpc_handler_2200911559(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 clingToPlayerServerRpc = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref clingToPlayerServerRpc); target.__rpc_exec_stage = (__RpcExecStage)1; ((BetillaAI)(object)target).SetClingToPlayerServerRpc(clingToPlayerServerRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2323776583(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0080: 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); int setClingPosition = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref setClingPosition); float clingTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref clingTime, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((BetillaAI)(object)target).ClingToPlayerClientRpc(playerId, setClingPosition, clingTime); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3676459550(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; ((BetillaAI)(object)target).TeleportPlayerServerRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2400028570(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; ((BetillaAI)(object)target).TeleportPlayerClientRpc(playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1843638552(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown re
Boogie.LethalLibido_original.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.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 LethalLib.Modules; using LethalLibido.Configuration; using LethalLibido.src; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Boogie.LethalLibido")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.1.1.0")] [assembly: AssemblyInformationalVersion("0.1.1")] [assembly: AssemblyProduct("LethalLibido")] [assembly: AssemblyTitle("Boogie.LethalLibido")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] 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 LethalLibido { internal class ArmosAI : BoogieEnemy { private enum State { Spawning, FloatIdle, SlamDown, SlamDownLanded, Attacking, GivingUp, GroundIdle, Dying, Dead, Smacked } public AudioClip thumpSFX; public AudioSource thumpSFXSource; public AudioSource thumpDeepSFXSource; public AudioSource voiceSFXSource; public AudioSource bossDiesSFXSource; public AudioSource hitSFX; private Vector3 StalkPos; private float hopAnimationSpeed = 1f; protected bool slamHurts; public override void Start() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) base.Start(); timeSpentChasingPlayer = 0f; ((EnemyAI)this).creatureAnimator.SetTrigger("Spawn"); ((EnemyAI)this).currentBehaviourStateIndex = 0; int num = randomInt(1, 3); ((Component)this).transform.localScale = new Vector3((float)num, (float)num, (float)num); ((EnemyAI)this).enemyHP = num; ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void Update() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_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_00ab: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex == 4) { timeSpentChasingPlayer += Time.deltaTime; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (currentBehaviourStateIndex == 4 || currentBehaviourStateIndex == 2)) { 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)), 4f * Time.deltaTime); } } public override void DoAIInterval() { //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = 3f; break; case 4: if (timeSpentChasingPlayer > 5f) { if (((EnemyAI)this).agent.speed > 0.75f) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed -= 0.1f; } if (((EnemyAI)this).agent.speed < 0.75f) { NavMeshAgent agent2 = ((EnemyAI)this).agent; agent2.speed += 0.1f; } if (hopAnimationSpeed > 0.75f) { hopAnimationSpeed -= 0.01f; } } else { if (((EnemyAI)this).agent.speed < 9f) { NavMeshAgent agent3 = ((EnemyAI)this).agent; agent3.speed += 0.5f; } if (hopAnimationSpeed < 2f) { hopAnimationSpeed += 0.01f; } } ((EnemyAI)this).creatureAnimator.SetFloat("AnimationSpeed", hopAnimationSpeed); if (timeSpentChasingPlayer > 10f && (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || (((EnemyAI)this).agent.speed < 1f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)))) { doReset(); } else { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; } } public void SlamDownCompleted() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); } public void SlamDownBigSlam() { thumpDeepSFXSource.Play(); thumpPlayers(20, 1f); fearAllPlayersInRadius(20f, 1f, shakeCamera: true, ((EnemyAI)this).targetPlayer); ((EnemyAI)this).SwitchToBehaviourClientRpc(3); } private IEnumerator ActivateSlamDown() { for (int i = 0; i <= 6; i++) { if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 5f) { break; } yield return (object)new WaitForSeconds(0.5f); } DoAnimationClientRpc("SlamDown"); if (!backgroundMusicSFXSource.isPlaying) { backgroundMusicSFXSource.Play(); } } public void ActivateCrushBox() { slamHurts = true; } public void DeactivateCrushBox() { slamHurts = false; } public void Thump() { if (Random.Range(0f, 2f) > 1f) { thumpSFXSource.Play(); } else { thumpDeepSFXSource.Play(); } thumpPlayers(10, 0.2f); } public void FinishedResetting() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); timeSpentChasingPlayer = 0f; } public IEnumerator recoil(Vector3 goal) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SetDestinationToPosition(goal, false); yield return (object)new WaitForSeconds(3f); TargetClosestPlayerInAnyCase(); DoAnimationClientRpc("BeginJumpAttack"); ((EnemyAI)this).SwitchToBehaviourClientRpc(4); yield return null; } public override void OnDeath() { ((EnemyAI)this).SwitchToBehaviourClientRpc(8); DoAnimationClientRpc("Die"); } public override void OnSmack() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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) ((EnemyAI)this).SwitchToBehaviourClientRpc(9); DoAnimationClientRpc("Smacked"); ((MonoBehaviour)this).StartCoroutine(recoil(((Component)this).transform.position - ((Component)this).transform.forward * 0.99f)); } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { if (((EnemyAI)this).currentBehaviourStateIndex != 1) { base.HitEnemy(force, playerWhoHit, playHitSFX, hitID); } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { //IL_0077: 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) if ((slamHurts || (((EnemyAI)this).currentBehaviourStateIndex != 1 && ((EnemyAI)this).currentBehaviourStateIndex != 4)) && (Object)(object)playerControllerB != (Object)null) { timeSinceHittingLocalPlayer = 0f; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 0: case 1: ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; doActivateSlamDownServerRpc((int)playerControllerB.playerClientId); break; case 4: playerControllerB.DamagePlayer(10, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); timeSpentChasingPlayer = 0f; doThrowPlayerServerRpc((int)playerControllerB.playerClientId); ((EnemyAI)this).agent.speed = 0f; break; } } } [ServerRpc(RequireOwnership = false)] public void doThrowPlayerServerRpc(int playerId) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: 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_0020: Unknown result type (might be due to invalid IL or missing references) Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doThrowPlayerClientRpc(playerId, position, enemyYRot); } [ClientRpc] public void doThrowPlayerClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) doThrowPlayer(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } public void doThrowPlayer(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)this).StartCoroutine(throwPlayer(playerControllerB, 3f, ((Component)this).transform.forward)); } [ServerRpc(RequireOwnership = false)] public void doActivateSlamDownServerRpc(int playerId) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: 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_0020: Unknown result type (might be due to invalid IL or missing references) Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doActivateSlamDownClientRpc(playerId, position, enemyYRot); } [ClientRpc] public void doActivateSlamDownClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { doActivateSlamDown(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } public void doActivateSlamDown(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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_0069: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).targetPlayer = playerControllerB; turnCompass.LookAt(((Component)((EnemyAI)this).targetPlayer.gameplayCamera).transform.position); ((Component)this).transform.rotation = Quaternion.Euler(new Vector3(0f, turnCompass.eulerAngles.y, 0f)); ((EnemyAI)this).SwitchToBehaviourClientRpc(2); ((MonoBehaviour)this).StartCoroutine(ActivateSlamDown()); } public void doReset() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; timeSpentChasingPlayer = 0f; DoAnimationClientRpc("Reset"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); stopBackgroundMusicServerRpc(); } } internal class ExampleEnemyAI : EnemyAI { private enum State { SearchingForPlayer, StickingInFrontOfPlayer, HeadSwingAttackInProgress } public Transform turnCompass; public Transform attackArea; public GameObject overridePhysicsParentAnimationMesh; private float timeSinceHittingLocalPlayer; private float timeSinceNewRandPos; private Vector3 positionRandomness; private Vector3 StalkPos; private Random enemyRandom; private bool isDeadAnimationDone; [Conditional("DEBUG")] private void LogIfDebugBuild(string text) { Plugin.Logger.LogInfo((object)text); } public override void Start() { //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_0077: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Start(); timeSinceHittingLocalPlayer = 0f; base.creatureAnimator.SetTrigger("startWalk"); timeSinceNewRandPos = 0f; positionRandomness = new Vector3(0f, 0f, 0f); enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex); isDeadAnimationDone = false; base.currentBehaviourStateIndex = 0; ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void Update() { //IL_007f: 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_00a5: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Update(); if (base.isEnemyDead) { if (!isDeadAnimationDone) { isDeadAnimationDone = true; base.creatureVoice.Stop(); base.creatureVoice.PlayOneShot(base.dieSFX); } return; } timeSinceNewRandPos += Time.deltaTime; int currentBehaviourStateIndex = base.currentBehaviourStateIndex; if ((Object)(object)base.targetPlayer != (Object)null && (currentBehaviourStateIndex == 1 || currentBehaviourStateIndex == 2)) { turnCompass.LookAt(((Component)base.targetPlayer.gameplayCamera).transform.position); ((Component)this).transform.rotation = Quaternion.Lerp(((Component)this).transform.rotation, Quaternion.Euler(new Vector3(0f, turnCompass.eulerAngles.y, 0f)), 4f * Time.deltaTime); } if (base.stunNormalizedTimer > 0f) { base.agent.speed = 0f; } } public override void DoAIInterval() { //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).DoAIInterval(); if (base.isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (base.currentBehaviourStateIndex) { case 0: base.agent.speed = 3f; if (FoundClosestPlayerInRange(25f, 3f)) { ((EnemyAI)this).StopSearch(base.currentSearch, true); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } break; case 1: base.agent.speed = 5f; if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)base.targetPlayer).transform.position, 45f, 60, -1f, (Transform)null))) { ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } else { StickingInFrontOfPlayer(); } break; case 2: break; } } private bool FoundClosestPlayerInRange(float range, float senseRange) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 70f); if ((Object)(object)base.targetPlayer == (Object)null) { ((EnemyAI)this).TargetClosestPlayer(1.5f, false, 70f); range = senseRange; } if ((Object)(object)base.targetPlayer != (Object)null) { return Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) < range; } return false; } private bool TargetClosestPlayerInAnyCase() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) base.mostOptimalDistance = 2000f; base.targetPlayer = null; for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < base.mostOptimalDistance) { base.mostOptimalDistance = base.tempDist; base.targetPlayer = StartOfRound.Instance.allPlayerScripts[i]; } } if ((Object)(object)base.targetPlayer == (Object)null) { return false; } return true; } private void StickingInFrontOfPlayer() { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)base.targetPlayer == (Object)null) && ((NetworkBehaviour)this).IsOwner && timeSinceNewRandPos > 0.7f) { timeSinceNewRandPos = 0f; if (enemyRandom.Next(0, 5) == 0) { ((MonoBehaviour)this).StartCoroutine(SwingAttack()); } else { positionRandomness = new Vector3((float)enemyRandom.Next(-2, 2), 0f, (float)enemyRandom.Next(-2, 2)); StalkPos = ((Component)base.targetPlayer).transform.position - Vector3.Scale(new Vector3(-5f, 0f, -5f), ((Component)base.targetPlayer).transform.forward) + positionRandomness; } ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); } } private IEnumerator SwingAttack() { ((EnemyAI)this).SwitchToBehaviourClientRpc(2); StalkPos = ((Component)base.targetPlayer).transform.position; ((EnemyAI)this).SetDestinationToPosition(StalkPos, false); yield return (object)new WaitForSeconds(0.5f); if (!base.isEnemyDead) { DoAnimationClientRpc("swingAttack"); yield return (object)new WaitForSeconds(0.35f); SwingAttackHitClientRpc(); if (base.currentBehaviourStateIndex == 2) { ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } } } public override void OnCollideWithPlayer(Collider other) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) if (!(timeSinceHittingLocalPlayer < 1f)) { PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val != (Object)null) { timeSinceHittingLocalPlayer = 0f; val.DamagePlayer(20, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); base.inSpecialAnimationWithPlayer = val; base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = true; base.inSpecialAnimationWithPlayer.inAnimationWithEnemy = (EnemyAI)(object)this; base.inSpecialAnimationWithPlayer.overridePhysicsParent = overridePhysicsParentAnimationMesh.transform; } } } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); if (!base.isEnemyDead) { base.enemyHP -= force; if (((NetworkBehaviour)this).IsOwner && base.enemyHP <= 0 && !base.isEnemyDead) { ((MonoBehaviour)this).StopCoroutine(SwingAttack()); ((MonoBehaviour)this).StopCoroutine(base.searchCoroutine); ((EnemyAI)this).KillEnemyOnOwnerClient(false); } } } [ClientRpc] public void DoAnimationClientRpc(string animationName) { base.creatureAnimator.SetTrigger(animationName); } [ClientRpc] public void SwingAttackHitClientRpc() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) int num = 8; Collider[] array = Physics.OverlapBox(attackArea.position, attackArea.localScale, Quaternion.identity, num); if (array.Length == 0) { return; } Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null) { timeSinceHittingLocalPlayer = 0f; val2.DamagePlayer(40, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); } } } public void testy() { } } [BepInPlugin("Boogie.LethalLibido", "LethalLibido", "0.1.1")] [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 = "modassets"; 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>("Armos"); TerminalNode val2 = ModAssets.LoadAsset<TerminalNode>("ArmosTN"); TerminalKeyword val3 = ModAssets.LoadAsset<TerminalKeyword>("ArmosTK"); NetworkPrefabs.RegisterNetworkPrefab(val.enemyPrefab); Enemies.RegisterEnemy(val, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val2, val3); EnemyType val4 = ModAssets.LoadAsset<EnemyType>("Marie"); TerminalNode val5 = ModAssets.LoadAsset<TerminalNode>("MarieTN"); TerminalKeyword val6 = ModAssets.LoadAsset<TerminalKeyword>("MarieTK"); NetworkPrefabs.RegisterNetworkPrefab(val4.enemyPrefab); Enemies.RegisterEnemy(val4, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val5, val6); EnemyType val7 = ModAssets.LoadAsset<EnemyType>("Amy"); TerminalNode val8 = ModAssets.LoadAsset<TerminalNode>("AmyTN"); TerminalKeyword val9 = ModAssets.LoadAsset<TerminalKeyword>("AmyTK"); NetworkPrefabs.RegisterNetworkPrefab(val7.enemyPrefab); Enemies.RegisterEnemy(val7, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val8, val9); EnemyType val10 = ModAssets.LoadAsset<EnemyType>("Rouge"); TerminalNode val11 = ModAssets.LoadAsset<TerminalNode>("RougeTN"); TerminalKeyword val12 = ModAssets.LoadAsset<TerminalKeyword>("RougeTK"); NetworkPrefabs.RegisterNetworkPrefab(val10.enemyPrefab); Enemies.RegisterEnemy(val10, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val11, val12); EnemyType val13 = ModAssets.LoadAsset<EnemyType>("Midna"); TerminalNode val14 = ModAssets.LoadAsset<TerminalNode>("MidnaTN"); TerminalKeyword val15 = ModAssets.LoadAsset<TerminalKeyword>("MidnaTK"); NetworkPrefabs.RegisterNetworkPrefab(val13.enemyPrefab); Enemies.RegisterEnemy(val13, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val14, val15); EnemyType val16 = ModAssets.LoadAsset<EnemyType>("Betilla"); TerminalNode val17 = ModAssets.LoadAsset<TerminalNode>("BetillaTN"); TerminalKeyword val18 = ModAssets.LoadAsset<TerminalKeyword>("BetillaTK"); NetworkPrefabs.RegisterNetworkPrefab(val16.enemyPrefab); Enemies.RegisterEnemy(val16, BoundConfig.SpawnWeight.Value, (LevelTypes)(-1), val17, val18); Logger.LogInfo((object)"Plugin Boogie.LethalLibido 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 static class PluginInfo { public const string PLUGIN_GUID = "Boogie.LethalLibido"; public const string PLUGIN_NAME = "LethalLibido"; public const string PLUGIN_VERSION = "0.1.1"; } } namespace LethalLibido.Configuration { public class PluginConfig { public ConfigEntry<int> SpawnWeight; public PluginConfig(ConfigFile cfg) { SpawnWeight = cfg.Bind<int>("General", "Spawn weight", 20, "The spawn chance weight for LethalLibido, relative to other existing enemies.\nGoes up from 0, lower is more rare, 100 and up is very common."); ClearUnusedEntries(cfg); } private void ClearUnusedEntries(ConfigFile cfg) { PropertyInfo property = ((object)cfg).GetType().GetProperty("OrphanedEntries", BindingFlags.Instance | BindingFlags.NonPublic); Dictionary<ConfigDefinition, string> dictionary = (Dictionary<ConfigDefinition, string>)property.GetValue(cfg, null); dictionary.Clear(); cfg.Save(); } } } namespace LethalLibido.src { public class AmyAI : BoogieEnemy { private enum State { Spawning, RunningAround, SearchingForPlayer, PlayerSpotted, ChasingPlayer, AttackingPlayer, RecoilingFromPlayerAttack, Dying, Dead } public AudioClip HammerSFX; public bool SearchingForPlayer_standingStill = true; private float timeWalkingOrStandingStill; private float timeRunningAround; private new float wanderSpeed = 12f; private new float runSpeed = 60f; private new int attackDamage = 5; public Vector3? attackTargetPosition; public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; ((MonoBehaviour)this).StartCoroutine(doSpawn()); } public override void Update() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; Vector3 velocity; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: { timeRunningAround += Time.deltaTime; Animator creatureAnimator2 = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator2.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed * 2f); break; } case 4: { timeRunningAround += Time.deltaTime; timeSpentChasingPlayer += Time.deltaTime; Animator creatureAnimator = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed * 2f); break; } } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 3 || ((EnemyAI)this).currentBehaviourStateIndex == 4)) { 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)), 1f * Time.deltaTime); } } public override void DoAIInterval() { //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = wanderSpeed; if (randomInt(0, 10) == 1) { playRandomVoicefromArray(RandomVoicelineSFX, randomizePitch: false); } if (timeRunningAround > 10f && FoundClosestPlayerInRange(detectionRange, detectionRange)) { ((MonoBehaviour)this).StartCoroutine(playerSpotted()); } break; case 4: if (((EnemyAI)this).agent.speed < runSpeed) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 1f; } if (randomInt(0, 20) == 1) { playRandomVoicefromArray(RandomVoicelineSFX, randomizePitch: false); } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || timeRunningAround > 20f) { ((MonoBehaviour)this).StartCoroutine(doRunAround()); } else if (TargetClosestPlayerInAnyCase() && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 7f) { ((MonoBehaviour)this).StartCoroutine(doSlamAttack()); } else { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; case 5: if (!attackTargetPosition.HasValue) { attackTargetPosition = ((Component)((EnemyAI)this).targetPlayer).transform.position; ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); } ((EnemyAI)this).SetDestinationToPosition(attackTargetPosition.Value, false); break; case 0: case 2: case 3: break; } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex != 2) { _ = 4; } } private IEnumerator doSpawn() { yield return (object)new WaitForSeconds(2f); ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = wanderSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(3); yield return (object)new WaitForSeconds(1f); ((MonoBehaviour)this).StartCoroutine(doRunAround()); yield return null; } private IEnumerator doRunAround() { timeRunningAround = 0f; ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); ((EnemyAI)this).agent.speed = wanderSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(1); DoAnimationClientRpc("Run"); ((EnemyAI)this).agent.angularSpeed = 300f; ((EnemyAI)this).agent.acceleration = 10f; yield return null; } private IEnumerator playerSpotted() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = runSpeed; ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("Run"); timeRunningAround = 0f; timeSpentChasingPlayer = 0f; yield return null; } private IEnumerator doSlamAttack() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(5); if (randomInt(0, 5) == 1) { playRandomVoicefromArray(RandomSpecialWanderVoicelineSFX, randomizePitch: false); } DoAnimationClientRpc("Slam"); yield return (object)new WaitForSeconds(2f); ((MonoBehaviour)this).StartCoroutine(doRunAround()); yield return null; } private IEnumerator doHitRecoil() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(6); DoAnimationClientRpc("Smacked"); yield return (object)new WaitForSeconds(4f); if (!((EnemyAI)this).isEnemyDead) { ((MonoBehaviour)this).StartCoroutine(doRunAround()); } yield return null; } [ClientRpc] public void slamPlayersClientRpc() { //IL_0024: 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_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017d: 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_0184: 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_0192: Unknown result type (might be due to invalid IL or missing references) playSfxRandomizedPitch(HammerSFX); ((EnemyAI)this).agent.speed = 0f; int num = 8; Collider[] array = Physics.OverlapBox(attackArea.position, attackArea.localScale, Quaternion.identity, num); if (array.Length == 0) { return; } Collider[] array2 = array; foreach (Collider val in array2) { PlayerControllerB val2 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val, false, false); if ((Object)(object)val2 != (Object)null && !val2.isPlayerDead) { timeSinceHittingLocalPlayer = 0f; int num2 = attackDamage; Vector3 val3 = default(Vector3); val2.DamagePlayer(num2, true, true, (CauseOfDeath)0, 0, false, val3); val3 = new Vector3(0f, 0.5f, 0f); Vector3 normalized = ((Vector3)(ref val3)).normalized; val3 = ((Component)val2).transform.position - ((Component)attackArea).transform.position; Vector3 normalized2 = ((Vector3)(ref val3)).normalized; float num3 = 2f * (1f - Vector3.Distance(((Component)val2).transform.position, ((Component)attackArea).transform.position) / 10f); num3 = (1f + Math.Abs(num3 / 10f)) / 4f; if ((Object)(object)GameNetworkManager.Instance.localPlayerController.thisController == (Object)(object)val) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } float force = num3; val3 = normalized + normalized2; ((MonoBehaviour)this).StartCoroutine(throwPlayer(val2, force, ((Vector3)(ref val3)).normalized / 5f)); } } } public void footStep() { playSfxRandomizedPitch(FootstepSFX); } public void spotPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("DashAtPlayer"); } public void spawnAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(2); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void slamAttackFinished() { attackTargetPosition = null; ((EnemyAI)this).SwitchToBehaviourClientRpc(2); DoAnimationClientRpc("ToIdleWalk"); SearchingForPlayer_standingStill = false; } public override void OnDeath() { ((EnemyAI)this).SwitchToBehaviourClientRpc(8); DoAnimationClientRpc("Die"); } public override void OnSmack() { ((MonoBehaviour)this).StartCoroutine(doHitRecoil()); } } internal class BetillaAI : BoogieEnemy { private enum State { Spawning, SearchingForPlayer, PlayerSpotted, FollowingPlayer, SittingOnPlayer, WavingAtPlayer, KickingLegs, AccidentallyKillingPlayer, TeleportingPlayer, Reset, Dying, Dead } private bool playerAttached; private int vectTest; private Quaternion quatBeforeTakingControl; public PlayerControllerB clingingToPlayer; public float clingToPlayerTimer; public float timeSinceTeleportingPlayerTimer; public float timeSinceEmoting; public float timeSinceSittingOnPlayer; public int clingPosition; private bool backOnGround; public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; } public override void Update() { //IL_0141: 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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; timeSinceTeleportingPlayerTimer += Time.deltaTime; timeSinceEmoting += Time.deltaTime; timeSinceSittingOnPlayer += Time.deltaTime; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 4: if (!(timeSinceEmoting > 10f)) { break; } switch (randomInt(1, 5)) { case 1: ((MonoBehaviour)this).StartCoroutine(doWaveAtPlayer()); break; case 2: ((MonoBehaviour)this).StartCoroutine(doTapAtPlayer()); break; case 3: if (randomInt(1, 50) == 1) { doKillPlayerServerRpc((int)clingingToPlayer.playerClientId); } break; } timeSinceEmoting = 0f; break; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 4: case 5: SetClingingAnimationPosition(); break; case 11: if (!backOnGround) { returnToGround(); backOnGround = true; } break; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 2 || ((EnemyAI)this).currentBehaviourStateIndex == 3)) { 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)), 2f * Time.deltaTime); } if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null && ((EnemyAI)this).currentBehaviourStateIndex == 7) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.position = overridePhysicsParentAnimationMesh2.transform.position; Transform transform = ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform; transform.position -= ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.up * 0.4f; ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh2.transform.rotation; } } public override void DoAIInterval() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: 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_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); _ = (Object)(object)clingingToPlayer != (Object)null; if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = 3f; if (FoundClosestPlayerInRange(25f, 3f, noAttachments: true)) { ((MonoBehaviour)this).StartCoroutine(playerSpotted()); } break; case 3: if (((EnemyAI)this).agent.speed < 5f) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 0.5f; } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || (((EnemyAI)this).agent.speed < 1f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && ((EnemyAI)this).targetPlayer.enemiesOnPerson > 0)) { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); startWandering(); } else if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null) { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; case 7: if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh.transform.rotation; } break; } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { if ((Object)(object)clingingToPlayer == (Object)null && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null && timeSinceSittingOnPlayer > 5f && playerControllerB.enemiesOnPerson == 0) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex == 1 || currentBehaviourStateIndex == 3) { ((EnemyAI)this).agent.speed = 0f; float num = Random.Range(30f, 60f); SetClingToPlayerServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } } else if ((Object)(object)clingingToPlayer == (Object)null && timeSinceSittingOnPlayer > 5f) { startWandering(); } } [ServerRpc(RequireOwnership = false)] public void SetClingToPlayerServerRpc(int playerId) { ClingToPlayerClientRpc(playerId, 0, 40f); } private void SetClingToPlayer(PlayerControllerB playerToCling, int setClingPosition, float clingTime) { //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) clingPosition = setClingPosition; clingingToPlayer = playerToCling; ((EnemyAI)this).inSpecialAnimation = true; playerToCling.enemiesOnPerson++; playerToCling.carryWeight += 0.03f; if ((Object)(object)playerToCling == (Object)(object)GameNetworkManager.Instance.localPlayerController) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); SoundManager.Instance.misc2DAudio.volume = 1f; SoundManager.Instance.misc2DAudio.pitch = Random.Range(0.9f, 1.1f); } clingToPlayerTimer = clingTime; DoAnimationClientRpc("SitOnPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(4); SetClingingAnimationPosition(); scaleBeforeTakingControl = ((Component)playerToCling).transform.localScale; } [ClientRpc] public void ClingToPlayerClientRpc(int playerId, int setClingPosition, float clingTime) { PlayerControllerB playerToCling = StartOfRound.Instance.allPlayerScripts[playerId]; SetClingToPlayer(playerToCling, setClingPosition, clingTime); } private void SetClingingAnimationPosition() { //IL_00a9: 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_0042: 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_005e: 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_008d: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)clingingToPlayer == (Object)null)) { if ((Object)(object)clingingToPlayer == (Object)(object)GameNetworkManager.Instance.localPlayerController) { enableSkinnedMeshRenderers(); ((Component)this).transform.position = ((Component)clingingToPlayer.gameplayCamera).transform.position; Transform transform = ((Component)this).transform; transform.position -= ((Component)this).transform.up * 0.4f; ((Component)this).transform.rotation = ((Component)clingingToPlayer.gameplayCamera).transform.rotation; } else { ((Component)this).transform.position = clingingToPlayer.upperSpine.position; ((Component)this).transform.rotation = clingingToPlayer.upperSpine.rotation; } } } public void TeleportPlayer() { if ((Object)(object)clingingToPlayer == (Object)(object)GameNetworkManager.Instance.localPlayerController) { TeleportPlayerServerRpc((int)GameNetworkManager.Instance.localPlayerController.playerClientId); } } [ServerRpc(RequireOwnership = false)] public void TeleportPlayerServerRpc(int playerId) { TeleportPlayerClientRpc(playerId); } [ClientRpc] public void TeleportPlayerClientRpc(int playerId) { //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_004e: 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_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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) if (RoundManager.Instance.insideAINodes.Length != 0) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[playerId]; Vector3 position = RoundManager.Instance.insideAINodes[enemyRandom.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position; position = RoundManager.Instance.GetRandomNavMeshPositionInBoxPredictable(position, 10f, default(NavMeshHit), enemyRandom, -1); val.isInsideFactory = !val.isInsideFactory; val.isInElevator = false; val.isInHangarShipRoom = false; val.TeleportPlayer(position, true, 0f, false, true); } } public IEnumerator doTeleportPlayer(PlayerControllerB player) { if (RoundManager.Instance.insideAINodes.Length == 0) { yield return null; } Vector3 position = RoundManager.Instance.insideAINodes[enemyRandom.Next(0, RoundManager.Instance.insideAINodes.Length)].transform.position; position = RoundManager.Instance.GetRandomNavMeshPositionInBoxPredictable(position, 10f, default(NavMeshHit), enemyRandom, -1); player.isInsideFactory = !player.isInsideFactory; player.isInElevator = false; player.isInHangarShipRoom = false; player.TeleportPlayer(position, true, 0f, false, true); yield return null; } [ServerRpc(RequireOwnership = false)] public void doKillPlayerServerRpc(int playerId) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0047: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (!((Object)(object)networkManager == (Object)null) && networkManager.IsListening && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doKillPlayer2ClientRpc(playerId, position, enemyYRot); } } [ClientRpc] public void doKillPlayer2ClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { doKillPlayer(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } public void doKillPlayer(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0048: 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) PlayerControllerB val = clingingToPlayer; scaleBeforeTakingControl = ((Component)val).transform.localScale; shrinkPlayerClientRpc(); ((EnemyAI)this).SwitchToBehaviourClientRpc(7); AttachPlayerToKillAnimation(val); Transform transform = ((Component)this).transform; transform.position -= ((Component)this).transform.forward * 0.12f; DoAnimationClientRpc("CrushPlayer"); } public IEnumerator doWaveAtPlayer() { DoAnimationClientRpc("SitWave"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); yield return null; } public IEnumerator doTapAtPlayer() { DoAnimationClientRpc("SitTap"); ((EnemyAI)this).SwitchToBehaviourClientRpc(5); yield return null; } private IEnumerator playerSpotted() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(2); yield return (object)new WaitForSeconds(1f); DoAnimationClientRpc("SeePlayer"); yield return null; } public void spotPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(3); } public void spawnAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void startWandering() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) DoAnimationClientRpc("Idle"); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public void waveAtPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(4); DoAnimationClientRpc("SitOnPlayer"); } public void crushPlayerAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); DoAnimationClientRpc("Idle"); ReleasePlayerFromKillAnimation(); } [ClientRpc] private void shrinkPlayerClientRpc() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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) //IL_002c: Unknown result type (might be due to invalid IL or missing references) scaleBeforeTakingControl = ((Component)clingingToPlayer).transform.localScale; ((Component)clingingToPlayer).transform.localScale = scaleBeforeTakingControl / 8f; } [ServerRpc(RequireOwnership = false)] private void releaseClingingPlayerServerRpc() { releaseClingingPlayerClientRpc(); ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } [ClientRpc] private void releaseClingingPlayerClientRpc() { if ((Object)(object)clingingToPlayer != (Object)null) { PlayerControllerB obj = clingingToPlayer; obj.enemiesOnPerson--; clingingToPlayer = null; ((EnemyAI)this).inSpecialAnimation = false; } timeSinceSittingOnPlayer = 0f; returnToGround(); } [ClientRpc] private void unShrinkPlayerClientRpc() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)clingingToPlayer != (Object)null) { ((Component)clingingToPlayer).transform.localScale = scaleBeforeTakingControl; } } public void executePlayer() { //IL_0012: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).inSpecialAnimationWithPlayer.DamagePlayer(1000, true, true, (CauseOfDeath)0, 0, false, default(Vector3)); ((EnemyAI)this).inSpecialAnimationWithPlayer.KillPlayer(Vector3.zero, true, (CauseOfDeath)8, 0, default(Vector3)); if (!((EnemyAI)this).inSpecialAnimationWithPlayer.isPlayerDead) { unShrinkPlayerClientRpc(); releaseClingingPlayerClientRpc(); ReleasePlayerFromKillAnimation(); ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } } public void returnToGround() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0057: 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_0064: 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) //IL_0045: 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_0078: Unknown result type (might be due to invalid IL or missing references) Ray val = default(Ray); ((Ray)(ref val))..ctor(((Component)this).transform.position, Vector3.down); _ = ((Component)this).transform.position; Vector3 position = ((Component)this).transform.position; RaycastHit val2 = default(RaycastHit); Vector3 position2 = ((!Physics.Raycast(val, ref val2, 40f, 256)) ? RoundManager.Instance.GetNavMeshPosition(((Component)this).transform.position, default(NavMeshHit), 5f, -1) : ((RaycastHit)(ref val2)).point); ((Component)this).transform.position = position2; } public override void OnDeath() { unShrinkPlayerClientRpc(); releaseClingingPlayerServerRpc(); } public override void OnSmack() { unShrinkPlayerClientRpc(); releaseClingingPlayerServerRpc(); } } public abstract class BoogieEnemy : EnemyAI, INoiseListener { public Transform turnCompass; public Animator enemyAnimator; public GameObject overridePhysicsParentAnimationMesh; public GameObject overridePhysicsParentAnimationMesh2; public GameObject overridePhysicsParentAnimationMesh3; public GameObject[] updateWhenOffscreenMeshes; public Collider toggleCollider; public AudioClip RoarSFX; public AudioClip KillSceneBeginSFX; public AudioClip FootstepSFX; public AudioClip[] RandomVoicelineSFX; public AudioClip[] RandomSpecialWanderVoicelineSFX; public AudioSource backgroundMusicSFXSource; protected float timeSinceHittingLocalPlayer; protected float timeSinceNewRandPos; protected float timeSpentChasingPlayer; protected float timeSinceAttacking; protected bool isDeadAnimationDone; protected Vector3 positionRandomness; private Quaternion rotationBeforeTakingControl; private Vector3 positionBeforeTakingControl; protected Vector3 scaleBeforeTakingControl; protected Random enemyRandom; public float wanderSpeed = 15f; public float runSpeed = 25f; public float detectionRange = 20f; public int attackDamage = 1; private string enemyName = ""; public Transform attackArea; public Transform collider; protected float originalVoicePitch; private float originalSFXPitch; [Conditional("DEBUG")] protected void LogIfDebugBuild(string text) { Plugin.Logger.LogInfo((object)text); } public override void Start() { //IL_002c: 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) ((EnemyAI)this).Start(); timeSinceHittingLocalPlayer = 0f; timeSinceNewRandPos = 0f; positionRandomness = new Vector3(0f, 0f, 0f); enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex); isDeadAnimationDone = false; originalVoicePitch = base.creatureVoice.pitch; originalSFXPitch = base.creatureSFX.pitch; } public override void Update() { ((EnemyAI)this).Update(); timeSinceNewRandPos += Time.deltaTime; timeSinceHittingLocalPlayer += Time.deltaTime; if (base.isEnemyDead && (Object)(object)backgroundMusicSFXSource != (Object)null && backgroundMusicSFXSource.isPlaying) { backgroundMusicSFXSource.Stop(); } } public override void DoAIInterval() { ((EnemyAI)this).DoAIInterval(); if (!base.isEnemyDead) { _ = StartOfRound.Instance.allPlayersDead; } } protected bool FoundClosestPlayerInRange(float range, float senseRange, bool noAttachments = false) { //IL_0077: 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) if (noAttachments) { TargetClosestPlayerAndHasZeroEnemiesAttached(1.5f, requireLineOfSight: true); } else { ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 70f); } if ((Object)(object)base.targetPlayer == (Object)null) { if (noAttachments) { TargetClosestPlayerAndHasZeroEnemiesAttached(); } else { ((EnemyAI)this).TargetClosestPlayer(1.5f, false, 70f); } range = senseRange; } if ((Object)(object)base.targetPlayer != (Object)null) { return Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) < range; } return false; } public bool TargetClosestPlayerAndHasZeroEnemiesAttached(float bufferDistance = 1.5f, bool requireLineOfSight = false, float viewWidth = 70f) { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) base.mostOptimalDistance = 2000f; PlayerControllerB targetPlayer = base.targetPlayer; base.targetPlayer = null; for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { if (StartOfRound.Instance.allPlayerScripts[i].enemiesOnPerson == 0 && ((EnemyAI)this).PlayerIsTargetable(StartOfRound.Instance.allPlayerScripts[i], false, false) && !((EnemyAI)this).PathIsIntersectedByLineOfSight(((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position, false, false, false) && (!requireLineOfSight || ((EnemyAI)this).CheckLineOfSightForPosition(((Component)StartOfRound.Instance.allPlayerScripts[i].gameplayCamera).transform.position, viewWidth, 40, -1f, (Transform)null))) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < base.mostOptimalDistance) { base.mostOptimalDistance = base.tempDist; base.targetPlayer = StartOfRound.Instance.allPlayerScripts[i]; } } } if ((Object)(object)base.targetPlayer != (Object)null && bufferDistance > 0f && (Object)(object)targetPlayer != (Object)null && Mathf.Abs(base.mostOptimalDistance - Vector3.Distance(((Component)this).transform.position, ((Component)targetPlayer).transform.position)) < bufferDistance) { base.targetPlayer = targetPlayer; } return (Object)(object)base.targetPlayer != (Object)null; } protected bool FoundClosestPlayerInRangeAndLineOfSight(float range) { //IL_0026: 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) ((EnemyAI)this).TargetClosestPlayer(1.5f, true, 70f); if ((Object)(object)base.targetPlayer != (Object)null) { return Vector3.Distance(((Component)this).transform.position, ((Component)base.targetPlayer).transform.position) < range; } return false; } protected bool IsTargetLineOfSight(PlayerControllerB player, float viewWidth = 40f, int range = 40) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) return ((EnemyAI)this).CheckLineOfSightForPosition(((Component)player.gameplayCamera).transform.position, viewWidth, range, -1f, (Transform)null); } protected bool IsTargetVisible(Camera c, GameObject go) { //IL_000d: 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_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_0024: Unknown result type (might be due to invalid IL or missing references) Plane[] array = GeometryUtility.CalculateFrustumPlanes(c); Vector3 position = go.transform.position; Plane[] array2 = array; for (int i = 0; i < array2.Length; i++) { Plane val = array2[i]; if (((Plane)(ref val)).GetDistanceToPoint(position) < 0f) { return false; } } return true; } protected bool IsTransformVisible(Camera c, Transform go) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) Plane[] array = GeometryUtility.CalculateFrustumPlanes(c); Vector3 position = go.position; Plane[] array2 = array; for (int i = 0; i < array2.Length; i++) { Plane val = array2[i]; if (((Plane)(ref val)).GetDistanceToPoint(position) < 0f) { return false; } } return true; } protected bool TargetClosestPlayerInAnyCase() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) base.mostOptimalDistance = 2000f; base.targetPlayer = null; for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < base.mostOptimalDistance) { base.mostOptimalDistance = base.tempDist; base.targetPlayer = StartOfRound.Instance.allPlayerScripts[i]; } } if ((Object)(object)base.targetPlayer == (Object)null) { return false; } return true; } public override void HitEnemy(int force = 1, PlayerControllerB? playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); if (base.isEnemyDead) { return; } base.enemyHP -= force; if (!((NetworkBehaviour)this).IsOwner) { return; } if (base.enemyHP <= 0 && !base.isEnemyDead) { if (base.searchCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(base.searchCoroutine); } ((EnemyAI)this).KillEnemyOnOwnerClient(false); stopBackgroundMusicClientRpc(); OnDeath(); } else if (base.enemyHP > 0) { OnSmack(); } } public abstract void OnDeath(); public abstract void OnSmack(); public override void OnCollideWithPlayer(Collider other) { ((EnemyAI)this).OnCollideWithPlayer(other); if (!(timeSinceHittingLocalPlayer < 1f)) { PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val != (Object)null) { CollidedWithPlayer(other, val); } } } public abstract void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB); [ClientRpc] public void DoAnimationClientRpc(string animationName) { base.creatureAnimator.SetTrigger(animationName); } public void toggleSkinnedMeshRenderers() { if (updateWhenOffscreenMeshes != null) { GameObject[] array = updateWhenOffscreenMeshes; foreach (GameObject val in array) { SkinnedMeshRenderer component = val.GetComponent<SkinnedMeshRenderer>(); component.updateWhenOffscreen = true; } } } public void enableSkinnedMeshRenderers() { if (updateWhenOffscreenMeshes == null) { return; } GameObject[] array = updateWhenOffscreenMeshes; foreach (GameObject val in array) { SkinnedMeshRenderer component = val.GetComponent<SkinnedMeshRenderer>(); if ((Object)(object)component != (Object)null) { component.updateWhenOffscreen = true; } } } public void disableSkinnedMeshRenderers() { GameObject[] array = updateWhenOffscreenMeshes; foreach (GameObject val in array) { SkinnedMeshRenderer component = val.GetComponent<SkinnedMeshRenderer>(); if ((Object)(object)component != (Object)null) { component.updateWhenOffscreen = false; } } } public void AttachPlayerToKillAnimation(PlayerControllerB playerControllerB) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0080: 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_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) base.inSpecialAnimationWithPlayer = playerControllerB; base.inSpecialAnimation = true; base.inSpecialAnimationWithPlayer.isInElevator = false; base.inSpecialAnimationWithPlayer.isInHangarShipRoom = false; base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = true; base.inSpecialAnimationWithPlayer.inAnimationWithEnemy = (EnemyAI)(object)this; base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = true; ((Component)base.inSpecialAnimationWithPlayer).transform.position = overridePhysicsParentAnimationMesh.transform.position; ((Component)base.inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh.transform.rotation; rotationBeforeTakingControl = ((Component)base.inSpecialAnimationWithPlayer).transform.rotation; positionBeforeTakingControl = ((Component)base.inSpecialAnimationWithPlayer).transform.position; } public void ReleasePlayerFromKillAnimation() { //IL_004a: 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) if ((Object)(object)base.inSpecialAnimationWithPlayer != (Object)null) { base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = false; base.inSpecialAnimationWithPlayer.inAnimationWithEnemy = null; base.inSpecialAnimationWithPlayer.snapToServerPosition = false; base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = false; ((Component)base.inSpecialAnimationWithPlayer).transform.rotation = rotationBeforeTakingControl; ((Component)base.inSpecialAnimationWithPlayer).transform.position = positionBeforeTakingControl; base.inSpecialAnimationWithPlayer.overridePhysicsParent = null; base.inSpecialAnimationWithPlayer = null; } base.inSpecialAnimation = false; } public int randomInt(int min, int max) { return enemyRandom.Next(min, max + 1); } public IEnumerator killCurrentTargetPlayer() { if ((Object)(object)base.inSpecialAnimationWithPlayer.inAnimationWithEnemy == (Object)(object)this && !base.inSpecialAnimationWithPlayer.isPlayerDead) { base.inSpecialAnimationWithPlayer.KillPlayer(Vector3.zero, false, (CauseOfDeath)8, 0, default(Vector3)); base.inSpecialAnimationWithPlayer.inSpecialInteractAnimation = false; base.inSpecialAnimationWithPlayer.inAnimationWithEnemy = null; base.inSpecialAnimationWithPlayer = null; yield return (object)new WaitForSeconds(3f); } yield return null; } public override void DetectNoise(Vector3 noisePosition, float noiseLoudness, int timesPlayedInOneSpot = 0, int noiseID = 0) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).DetectNoise(noisePosition, noiseLoudness, timesPlayedInOneSpot, noiseID); } protected void thumpPlayers(int radius, float strength) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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_00cb: Unknown result type (might be due to invalid IL or missing references) List<PlayerControllerB> list = new List<PlayerControllerB>(); for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < (float)radius) { list.Add(StartOfRound.Instance.allPlayerScripts[i]); } } foreach (PlayerControllerB item in list) { if ((!((Object)(object)base.inSpecialAnimationWithPlayer != (Object)null) || !((Object)(object)base.inSpecialAnimationWithPlayer == (Object)(object)item)) && !item.isPlayerDead && !item.isInElevator && !item.isInHangarShipRoom && !(item.fallValue > 0f)) { float num = Vector3.Distance(((Component)this).transform.position, ((Component)item).transform.position); float strengthPercentage = ((float)radius - base.tempDist) / (float)radius; if (strength < 0f) { strength = 0f; } ((MonoBehaviour)this).StartCoroutine(thumpPlayerRoutine(item, strength, strengthPercentage)); } } } private IEnumerator thumpPlayerRoutine(PlayerControllerB player, float thumpStrength, float strengthPercentage) { Vector3 throwDirection = default(Vector3); ((Vector3)(ref throwDirection))..ctor(0f, thumpStrength * strengthPercentage, 0f); if ((Object)(object)GameNetworkManager.Instance.localPlayerController.thisController == (Object)(object)player) { if (strengthPercentage > 0.9f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } else if (strengthPercentage > 0.7f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } else if (strengthPercentage > 0.5f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } else if (strengthPercentage > 0.2f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } else { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } } ((MonoBehaviour)this).StartCoroutine(throwPlayer(player, 1f, throwDirection)); yield return (object)new WaitForSeconds(1f); } public IEnumerator throwPlayer(PlayerControllerB player, float force, Vector3 throwDirection) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) float smoothTime = 0.5f; Vector3 val = ((Component)player.thisController).transform.position + throwDirection; Vector3 val2 = val - ((Component)player.thisController).transform.position; Vector3 direction = ((Vector3)(ref val2)).normalized; float distance = Vector3.Distance(((Component)player.thisController).transform.position, val); for (float currentTime = 0f; currentTime < smoothTime; currentTime += Time.fixedDeltaTime) { float num = distance * Mathf.Min(currentTime, smoothTime) / smoothTime; player.thisController.Move(direction * num); yield return null; } } public IEnumerator throwPlayer2(PlayerControllerB player, Vector3 push) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) float num = 0.08f; float smoothTime = ((Vector3)(ref push)).magnitude / num; Vector3 val = ((Component)player).transform.position + push; _ = val - ((Component)player).transform.position; Vector3 direction = ((Vector3)(ref push)).normalized; float distance = Vector3.Distance(((Component)player).transform.position, val); for (float currentTime = 0f; currentTime < smoothTime; currentTime += Time.fixedDeltaTime) { float num2 = distance * Mathf.Min(currentTime, smoothTime) / smoothTime; player.thisController.Move(direction * num2); yield return null; } } public void playVoiceRandomizedPitch(AudioClip clip) { int[] array = new int[5] { 0, 2, 4, 7, 9 }; float num = originalVoicePitch; for (int i = 0; i < array[randomInt(0, array.Length - 1)]; i++) { num *= 1.059463f; } base.creatureVoice.pitch = num; base.creatureVoice.PlayOneShot(clip); } public void playSfxRandomizedPitch(AudioClip clip) { int[] array = new int[5] { 0, 2, 4, 7, 9 }; float num = originalSFXPitch; for (int i = 0; i < array[randomInt(0, array.Length - 1)]; i++) { num *= 1.059463f; } base.creatureSFX.pitch = num; base.creatureSFX.PlayOneShot(clip); } public void playRandomVoiceSFX() { if (RandomVoicelineSFX != null && RandomVoicelineSFX.Length != 0) { playVoiceRandomizedPitch(RandomVoicelineSFX[randomInt(0, RandomVoicelineSFX.Length - 1)]); } } public void playRandomSfxfromArray(AudioClip[] arr, bool randomizePitch = true) { if (!base.creatureSFX.isPlaying && arr != null && arr.Length != 0) { if (randomizePitch) { playSfxRandomizedPitch(arr[randomInt(0, arr.Length - 1)]); return; } base.creatureSFX.pitch = originalSFXPitch; base.creatureSFX.PlayOneShot(arr[randomInt(0, arr.Length - 1)]); } } public void playRandomVoicefromArray(AudioClip[] arr, bool randomizePitch = true) { if (!base.creatureVoice.isPlaying && arr != null && arr.Length != 0) { if (randomizePitch) { playVoiceRandomizedPitch(arr[randomInt(0, arr.Length - 1)]); return; } base.creatureVoice.pitch = originalSFXPitch; base.creatureVoice.PlayOneShot(arr[randomInt(0, arr.Length - 1)]); } } [ServerRpc(RequireOwnership = false)] public void stopBackgroundMusicServerRpc() { stopBackgroundMusicClientRpc(); } [ClientRpc] public void stopBackgroundMusicClientRpc() { if ((Object)(object)backgroundMusicSFXSource != (Object)null) { backgroundMusicSFXSource.Stop(); } } public void fearAllPlayersInRadius(float radius, float fearLevel, bool shakeCamera = false, PlayerControllerB targetPlayer = null) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) List<PlayerControllerB> list = new List<PlayerControllerB>(); for (int i = 0; i < StartOfRound.Instance.connectedPlayersAmount + 1; i++) { base.tempDist = Vector3.Distance(((Component)this).transform.position, ((Component)StartOfRound.Instance.allPlayerScripts[i]).transform.position); if (base.tempDist < radius || ((Object)(object)targetPlayer != (Object)null && (Object)(object)targetPlayer == (Object)(object)StartOfRound.Instance.allPlayerScripts[i])) { list.Add(StartOfRound.Instance.allPlayerScripts[i]); } } foreach (PlayerControllerB item in list) { if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)item) { item.JumpToFearLevel(fearLevel, true); if (shakeCamera) { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); HUDManager.Instance.ShakeCamera((ScreenShakeType)1); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } } } } } public class GenericBase : BoogieEnemy { private enum State { Spawning, SearchingForPlayer, PlayerSpotted, ChasingPlayer, AttackingPlayer, RecoilingFromPlayerAttack, Dying, Dead } public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; } public override void Update() { //IL_005c: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) base.Update(); timeSinceNewRandPos += Time.deltaTime; if (((EnemyAI)this).currentBehaviourStateIndex != 0) { _ = 2; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 2 || ((EnemyAI)this).currentBehaviourStateIndex == 3)) { 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)), 4f * Time.deltaTime); } } public override void DoAIInterval() { //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_00c6: 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_00fd: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 1: ((EnemyAI)this).agent.speed = 3f; if (FoundClosestPlayerInRange(25f, 3f)) { ((MonoBehaviour)this).StartCoroutine(playerSpotted()); } break; case 3: if (((EnemyAI)this).agent.speed < 5f) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 0.5f; } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > 20f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null)) || (((EnemyAI)this).agent.speed < 1f && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null))) { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; timeSpentChasingPlayer = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } else { ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); } break; } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex != 1) { _ = 3; } } private IEnumerator playerSpotted() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(2); yield return (object)new WaitForSeconds(1f); DoAnimationClientRpc("SeePlayer"); yield return null; } public void spotPlayerAnimationFinished() { ((EnemyAI)this).SwitchToBehaviourClientRpc(3); } public void spawnAnimationFinished() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).SwitchToBehaviourClientRpc(1); ((EnemyAI)this).StartSearch(((Component)this).transform.position, (AISearchRoutine)null); } public override void OnDeath() { } public override void OnSmack() { } } internal class GiantessAI { private enum State { Spawning, WaitingForTarget, Activating, Chasing, Attacking, SittingOnPlayer, SteppingOnPlayer, EatingPlayer, Reset, Dying, Dead } } public class GiantessRougeAI : BoogieEnemy { private enum State { Spawning, Roaring, Walking, Standing, SpottedPlayer, ChasingPlayer, Attacking, SittingOnPlayer, SteppingOnPlayer, EatingPlayer, Resetting, Dying, Dead, Wandering, Stunned } public AudioClip GulpSFX; public AudioClip CrushSFX; public AudioClip BellyPatSFX; private float timeWalkingOrStandingStill; private float timeSinceKillingSomeone; public bool isStandingAnim; public override void Start() { base.Start(); ((EnemyAI)this).currentBehaviourStateIndex = 0; ((Renderer)overridePhysicsParentAnimationMesh2.GetComponent<MeshRenderer>()).enabled = false; } private bool isWalking() { return !isStandingAnim; } private bool isStanding() { return isStandingAnim; } public override void Update() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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_00b2: 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_00ff: 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_0125: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: 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) base.Update(); timeSinceNewRandPos += Time.deltaTime; if (timeSinceKillingSomeone < 15f) { timeSinceKillingSomeone += Time.deltaTime; } int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if (currentBehaviourStateIndex != 0) { _ = currentBehaviourStateIndex - 4; _ = 1; } if ((Object)(object)((EnemyAI)this).targetPlayer != (Object)null && (((EnemyAI)this).currentBehaviourStateIndex == 4 || ((EnemyAI)this).currentBehaviourStateIndex == 5)) { 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)), 4f * Time.deltaTime); } if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null && ((EnemyAI)this).currentBehaviourStateIndex == 9) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.position = overridePhysicsParentAnimationMesh2.transform.position; Transform transform = ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform; transform.position -= ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.up * 2.5f; } if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null && ((EnemyAI)this).currentBehaviourStateIndex == 8) { ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.position = overridePhysicsParentAnimationMesh2.transform.position; Transform transform2 = ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform; transform2.position -= ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.up * 2.5f; ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.rotation = overridePhysicsParentAnimationMesh2.transform.rotation; ((Component)((EnemyAI)this).inSpecialAnimationWithPlayer).transform.Rotate(0f, 0f, 180f); } } public override void DoAIInterval() { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) base.DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } Vector3 velocity; switch (((EnemyAI)this).currentBehaviourStateIndex) { case 14: if (!Object.op_Implicit((Object)(object)((EnemyAI)this).stunnedByPlayer)) { ((MonoBehaviour)this).StartCoroutine(doStartWandering()); } break; case 13: { Animator creatureAnimator2 = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator2.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed); if (FoundClosestPlayerInRange(detectionRange, detectionRange)) { ((MonoBehaviour)this).StartCoroutine(doSpotPlayer()); break; } if (isStandingAnim && ((EnemyAI)this).agent.speed > 0f) { DoAnimationClientRpc("Walk"); isStandingAnim = false; timeWalkingOrStandingStill = 0f; } if (!isStandingAnim && ((EnemyAI)this).agent.speed < 1f) { DoAnimationClientRpc("Stand"); isStandingAnim = true; timeWalkingOrStandingStill = 0f; } if (isStanding() && timeWalkingOrStandingStill > 2f) { ((EnemyAI)this).agent.speed = wanderSpeed; timeWalkingOrStandingStill = 0f; } else if (isWalking() && timeWalkingOrStandingStill > 8f) { ((EnemyAI)this).agent.speed = 0f; timeWalkingOrStandingStill = 0f; } break; } case 5: { Animator creatureAnimator = ((EnemyAI)this).creatureAnimator; velocity = ((EnemyAI)this).agent.velocity; creatureAnimator.SetFloat("RunSpeedMultiplier", ((((Vector3)(ref velocity)).magnitude < 0.3f) ? 0.3f : ((EnemyAI)this).agent.speed) / ((EnemyAI)this).agent.speed); if (((EnemyAI)this).agent.speed < runSpeed) { NavMeshAgent agent = ((EnemyAI)this).agent; agent.speed += 0.1f; } if (!TargetClosestPlayerInAnyCase() || (Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) > detectionRange && !((EnemyAI)this).CheckLineOfSightForPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, 45f, 60, -1f, (Transform)null))) { ((MonoBehaviour)this).StartCoroutine(doStartWandering()); break; } if (TargetClosestPlayerInAnyCase() && Vector3.Distance(((Component)this).transform.position, ((Component)((EnemyAI)this).targetPlayer).transform.position) < 15f) { ((EnemyAI)this).targetPlayer.JumpToFearLevel(0.4f, true); } ((EnemyAI)this).SetDestinationToPosition(((Component)((EnemyAI)this).targetPlayer).transform.position, false); break; } } } public override void CollidedWithPlayer(Collider collider, PlayerControllerB playerControllerB) { VehicleController val = Object.FindObjectOfType<VehicleController>(); if ((!((Object)(object)val != (Object)null) || !((Object)(object)playerControllerB.physicsParent != (Object)null) || !((Object)(object)playerControllerB.physicsParent == (Object)(object)((Component)val).transform) || val.backDoorOpen) && (Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null && !playerControllerB.isInHangarShipRoom && timeSinceKillingSomeone > 10f) { int currentBehaviourStateIndex = ((EnemyAI)this).currentBehaviourStateIndex; if ((uint)currentBehaviourStateIndex <= 3u || currentBehaviourStateIndex == 5 || currentBehaviourStateIndex == 13) { toggleCollider = collider; ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).targetPlayer = null; doKillPlayerServerRpc((int)playerControllerB.playerClientId); } } } public IEnumerator doChasePlayer() { ((EnemyAI)this).SwitchToBehaviourClientRpc(5); ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); DoAnimationClientRpc("ChasePlayer"); yield return (object)new WaitForSeconds(1f); ((EnemyAI)this).agent.speed = wanderSpeed; yield return null; } [ClientRpc] public void doKillPlayerClientRpc() { PlayerControllerB inSpecialAnimationWithPlayer = ((EnemyAI)this).inSpecialAnimationWithPlayer; if (!inSpecialAnimationWithPlayer.isInHangarShipRoom && !inSpecialAnimationWithPlayer.isPlayerDead) { if (randomInt(1, 2) == 1) { DoAnimationClientRpc("StompPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(8); } else { DoAnimationClientRpc("EatPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(9); } enableSkinnedMeshRenderers(); AttachPlayerToKillAnimation(inSpecialAnimationWithPlayer); } else { ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } } [ServerRpc(RequireOwnership = false)] public void doKillPlayerServerRpc(int playerId) { //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_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { Vector3 position = ((Component)this).transform.position; int enemyYRot = (int)((Component)this).transform.eulerAngles.y; doKillPlayer2ClientRpc(playerId, position, enemyYRot); } } [ClientRpc] public void doKillPlayer2ClientRpc(int playerId, Vector3 enemyPosition, int enemyYRot) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer == (Object)null) { doKillPlayer(StartOfRound.Instance.allPlayerScripts[playerId], enemyPosition, enemyYRot); } } public void doKillPlayer(PlayerControllerB playerControllerB, Vector3 enemyPosition, int enemyYRot) { ((EnemyAI)this).inSpecialAnimationWithPlayer = playerControllerB; if (!playerControllerB.isInHangarShipRoom && !playerControllerB.isPlayerDead) { ((EnemyAI)this).agent.speed = 0f; if (randomInt(1, 2) == 1) { DoAnimationClientRpc("StompPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(8); } else { DoAnimationClientRpc("EatPlayer"); ((EnemyAI)this).SwitchToBehaviourClientRpc(9); } enableSkinnedMeshRenderers(); AttachPlayerToKillAnimation(playerControllerB); } else { ((EnemyAI)this).inSpecialAnimationWithPlayer = null; } } [ClientRpc] public void stopKillPlayerClientRpc() { if ((Object)(object)((EnemyAI)this).inSpecialAnimationWithPlayer != (Object)null) { ReleasePlayerFromKillAnimation(); } } public IEnumerator doSpotPlayer() { ((EnemyAI)this).StopSearch(((EnemyAI)this).currentSearch, true); ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(4); yield return (object)new WaitForSeconds(1f); DoAnimationClientRpc("SeePlayer"); yield return null; } public IEnumerator doStartWandering()
Unity.Netcode.Runtime.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; using AOT; using Microsoft.CodeAnalysis; using Unity.Burst; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; using Unity.Jobs; using Unity.Multiplayer.Tools; using Unity.Multiplayer.Tools.MetricTypes; using Unity.Multiplayer.Tools.NetStats; using Unity.Netcode; using Unity.Netcode.Transports.UTP; using Unity.Networking.Transport; using Unity.Networking.Transport.Error; using Unity.Networking.Transport.Relay; using Unity.Networking.Transport.Utilities; using Unity.Profiling; using UnityEngine; using UnityEngine.LowLevel; using UnityEngine.PlayerLoop; using UnityEngine.SceneManagement; using UnityEngine.Serialization; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("Unity.Netcode.Components")] [assembly: InternalsVisibleTo("Unity.Multiplayer.Tools.Adapters.Ngo1WithUtp2")] [assembly: AssemblyRequiresTypeRegistration] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class IsUnmanagedAttribute : Attribute { } } [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[11161] { 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 102, 105, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 115, 116, 97, 110, 116, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 115, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 67, 108, 105, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 92, 80, 101, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 67, 111, 109, 112, 111, 110, 101, 110, 116, 70, 97, 99, 116, 111, 114, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 85, 112, 100, 97, 116, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 46, 99, 115, 0, 0, 0, 9, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 114, 101, 92, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 73, 110, 118, 97, 108, 105, 100, 80, 97, 114, 101, 110, 116, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 78, 111, 116, 76, 105, 115, 116, 101, 110, 105, 110, 103, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 78, 111, 116, 83, 101, 114, 118, 101, 114, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 83, 112, 97, 119, 110, 83, 116, 97, 116, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 92, 86, 105, 115, 105, 98, 105, 108, 105, 116, 121, 67, 104, 97, 110, 103, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 72, 97, 115, 104, 105, 110, 103, 92, 88, 88, 72, 97, 115, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 76, 111, 103, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 76, 111, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 67, 117, 115, 116, 111, 109, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 68, 101, 102, 97, 117, 108, 116, 77, 101, 115, 115, 97, 103, 101, 83, 101, 110, 100, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 68, 101, 102, 101, 114, 114, 101, 100, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 68, 105, 115, 99, 111, 110, 110, 101, 99, 116, 82, 101, 97, 115, 111, 110, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 68, 101, 102, 101, 114, 114, 101, 100, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 76, 80, 80, 77, 101, 115, 115, 97, 103, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 78, 101, 116, 119, 111, 114, 107, 72, 111, 111, 107, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 83, 101, 110, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 67, 104, 97, 110, 103, 101, 79, 119, 110, 101, 114, 115, 104, 105, 112, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 65, 112, 112, 114, 111, 118, 101, 100, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 82, 101, 113, 117, 101, 115, 116, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 67, 114, 101, 97, 116, 101, 79, 98, 106, 101, 99, 116, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 68, 101, 115, 116, 114, 111, 121, 79, 98, 106, 101, 99, 116, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 77, 101, 115, 115, 97, 103, 101, 77, 101, 116, 97, 100, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 78, 97, 109, 101, 100, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 68, 101, 108, 116, 97, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 80, 97, 114, 101, 110, 116, 83, 121, 110, 99, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 82, 112, 99, 77, 101, 115, 115, 97, 103, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 83, 101, 114, 118, 101, 114, 76, 111, 103, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 84, 105, 109, 101, 83, 121, 110, 99, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 77, 101, 115, 115, 97, 103, 101, 115, 92, 85, 110, 110, 97, 109, 101, 100, 77, 101, 115, 115, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 66, 97, 116, 99, 104, 72, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 116, 101, 120, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 72, 111, 111, 107, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 72, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 7, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 82, 112, 99, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 46, 99, 115, 0, 0, 0, 7, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 115, 115, 97, 103, 105, 110, 103, 92, 82, 112, 99, 80, 97, 114, 97, 109, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 77, 101, 116, 114, 105, 99, 72, 111, 111, 107, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 101, 116, 114, 105, 99, 115, 92, 78, 117, 108, 108, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 92, 78, 101, 116, 119, 111, 114, 107, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 18, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 92, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 80, 114, 111, 102, 105, 108, 105, 110, 103, 92, 80, 114, 111, 102, 105, 108, 105, 110, 103, 72, 111, 111, 107, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 92, 68, 101, 102, 97, 117, 108, 116, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 72, 97, 110, 100, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 92, 73, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 72, 97, 110, 100, 108, 101, 114, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 92, 78, 101, 116, 119, 111, 114, 107, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 92, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 92, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 80, 114, 111, 103, 114, 101, 115, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 65, 114, 105, 116, 104, 109, 101, 116, 105, 99, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 105, 116, 67, 111, 117, 110, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 105, 116, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 105, 116, 87, 114, 105, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 87, 114, 105, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 121, 116, 101, 80, 97, 99, 107, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 121, 116, 101, 85, 110, 112, 97, 99, 107, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 66, 121, 116, 101, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 70, 97, 115, 116, 66, 117, 102, 102, 101, 114, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 8, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 70, 97, 115, 116, 66, 117, 102, 102, 101, 114, 87, 114, 105, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 70, 111, 114, 99, 101, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 101, 66, 121, 77, 101, 109, 99, 112, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 73, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 73, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 101, 66, 121, 77, 101, 109, 99, 112, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 73, 82, 101, 97, 100, 101, 114, 87, 114, 105, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 77, 101, 109, 111, 114, 121, 83, 116, 114, 117, 99, 116, 117, 114, 101, 115, 92, 66, 121, 116, 101, 66, 111, 111, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 77, 101, 109, 111, 114, 121, 83, 116, 114, 117, 99, 116, 117, 114, 101, 115, 92, 85, 73, 110, 116, 70, 108, 111, 97, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 82, 101, 102, 101, 114, 101, 110, 99, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 92, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 82, 101, 102, 101, 114, 101, 110, 99, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 112, 97, 119, 110, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 72, 97, 110, 100, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 112, 97, 119, 110, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 83, 112, 97, 119, 110, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 112, 97, 119, 110, 105, 110, 103, 92, 82, 101, 108, 101, 97, 115, 101, 100, 78, 101, 116, 119, 111, 114, 107, 73, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 105, 109, 105, 110, 103, 92, 73, 82, 101, 97, 108, 84, 105, 109, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 105, 109, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 84, 105, 99, 107, 83, 121, 115, 116, 101, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 105, 109, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 84, 105, 109, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 105, 109, 105, 110, 103, 92, 78, 101, 116, 119, 111, 114, 107, 84, 105, 109, 101, 83, 121, 115, 116, 101, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 105, 109, 105, 110, 103, 92, 82, 101, 97, 108, 84, 105, 109, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 78, 101, 116, 119, 111, 114, 107, 84, 114, 97, 110, 115, 112, 111, 114, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 66, 97, 116, 99, 104, 101, 100, 82, 101, 99, 101, 105, 118, 101, 81, 117, 101, 117, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 66, 97, 116, 99, 104, 101, 100, 83, 101, 110, 100, 81, 117, 101, 117, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 67, 111, 110, 116, 101, 120, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 80, 105, 112, 101, 108, 105, 110, 101, 83, 116, 97, 103, 101, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 83, 101, 99, 114, 101, 116, 115, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 46, 99, 115, 0, 0, 0, 8, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 110, 101, 116, 99, 111, 100, 101, 46, 103, 97, 109, 101, 111, 98, 106, 101, 99, 116, 115, 64, 49, 46, 54, 46, 48, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 92, 85, 84, 80, 92, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 46, 99, 115 }; result.TypesData = new byte[7299] { 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 115, 116, 97, 110, 116, 115, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 115, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 115, 76, 105, 115, 116, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 108, 105, 101, 110, 116, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 80, 101, 110, 100, 105, 110, 103, 67, 108, 105, 101, 110, 116, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 111, 109, 112, 111, 110, 101, 110, 116, 70, 97, 99, 116, 111, 114, 121, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 85, 112, 100, 97, 116, 101, 114, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 55, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 124, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 65, 112, 112, 114, 111, 118, 97, 108, 82, 101, 115, 112, 111, 110, 115, 101, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 124, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 65, 112, 112, 114, 111, 118, 97, 108, 82, 101, 113, 117, 101, 115, 116, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 124, 83, 99, 101, 110, 101, 79, 98, 106, 101, 99, 116, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 43, 124, 84, 114, 97, 110, 115, 102, 111, 114, 109, 68, 97, 116, 97, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 83, 121, 115, 116, 101, 109, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 0, 0, 0, 0, 53, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 69, 97, 114, 108, 121, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 70, 105, 120, 101, 100, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 48, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 52, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 76, 97, 116, 101, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 53, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 85, 112, 100, 97, 116, 101, 76, 111, 111, 112, 124, 78, 101, 116, 119, 111, 114, 107, 80, 111, 115, 116, 76, 97, 116, 101, 85, 112, 100, 97, 116, 101, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 110, 118, 97, 108, 105, 100, 80, 97, 114, 101, 110, 116, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 111, 116, 76, 105, 115, 116, 101, 110, 105, 110, 103, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 111, 116, 83, 101, 114, 118, 101, 114, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 112, 97, 119, 110, 83, 116, 97, 116, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 110, 118, 97, 108, 105, 100, 67, 104, 97, 110, 110, 101, 108, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 86, 105, 115, 105, 98, 105, 108, 105, 116, 121, 67, 104, 97, 110, 103, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 20, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 88, 88, 72, 97, 115, 104, 0, 0, 0, 0, 24, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 76, 111, 103, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 117, 115, 116, 111, 109, 77, 101, 115, 115, 97, 103, 105, 110, 103, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 68, 101, 102, 97, 117, 108, 116, 77, 101, 115, 115, 97, 103, 101, 83, 101, 110, 100, 101, 114, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 68, 101, 102, 101, 114, 114, 101, 100, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 48, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 68, 101, 102, 101, 114, 114, 101, 100, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 84, 114, 105, 103, 103, 101, 114, 68, 97, 116, 97, 0, 0, 0, 0, 48, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 68, 101, 102, 101, 114, 114, 101, 100, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 84, 114, 105, 103, 103, 101, 114, 73, 110, 102, 111, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 68, 105, 115, 99, 111, 110, 110, 101, 99, 116, 82, 101, 97, 115, 111, 110, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 44, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 68, 101, 102, 101, 114, 114, 101, 100, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 76, 80, 80, 77, 101, 115, 115, 97, 103, 101, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 72, 111, 111, 107, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 83, 101, 110, 100, 101, 114, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 104, 97, 110, 103, 101, 79, 119, 110, 101, 114, 115, 104, 105, 112, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 65, 112, 112, 114, 111, 118, 101, 100, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 82, 101, 113, 117, 101, 115, 116, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 114, 101, 97, 116, 101, 79, 98, 106, 101, 99, 116, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 68, 101, 115, 116, 114, 111, 121, 79, 98, 106, 101, 99, 116, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 77, 101, 115, 115, 97, 103, 101, 86, 101, 114, 115, 105, 111, 110, 68, 97, 116, 97, 0, 0, 0, 0, 26, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 97, 109, 101, 100, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 41, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 68, 101, 108, 116, 97, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 80, 97, 114, 101, 110, 116, 83, 121, 110, 99, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 82, 112, 99, 77, 101, 115, 115, 97, 103, 101, 72, 101, 108, 112, 101, 114, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 82, 112, 99, 77, 101, 116, 97, 100, 97, 116, 97, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 82, 112, 99, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 108, 105, 101, 110, 116, 82, 112, 99, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 76, 111, 103, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 84, 105, 109, 101, 83, 121, 110, 99, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 110, 110, 97, 109, 101, 100, 77, 101, 115, 115, 97, 103, 101, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 66, 97, 116, 99, 104, 72, 101, 97, 100, 101, 114, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 67, 111, 110, 116, 101, 120, 116, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 97, 110, 97, 103, 101, 114, 72, 111, 111, 107, 115, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 72, 101, 97, 100, 101, 114, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 72, 97, 110, 100, 108, 101, 114, 78, 111, 116, 82, 101, 103, 105, 115, 116, 101, 114, 101, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 46, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 110, 118, 97, 108, 105, 100, 77, 101, 115, 115, 97, 103, 101, 83, 116, 114, 117, 99, 116, 117, 114, 101, 69, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 52, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 82, 101, 99, 101, 105, 118, 101, 81, 117, 101, 117, 101, 73, 116, 101, 109, 0, 0, 0, 0, 49, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 83, 101, 110, 100, 81, 117, 101, 117, 101, 73, 116, 101, 109, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 77, 101, 115, 115, 97, 103, 101, 87, 105, 116, 104, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 77, 101, 115, 115, 97, 103, 101, 77, 97, 110, 97, 103, 101, 114, 124, 80, 111, 105, 110, 116, 101, 114, 76, 105, 115, 116, 87, 114, 97, 112, 112, 101, 114, 0, 0, 0, 0, 26, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 82, 112, 99, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 82, 112, 99, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 108, 105, 101, 110, 116, 82, 112, 99, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 82, 112, 99, 83, 101, 110, 100, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 82, 112, 99, 82, 101, 99, 101, 105, 118, 101, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 101, 114, 118, 101, 114, 82, 112, 99, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 108, 105, 101, 110, 116, 82, 112, 99, 83, 101, 110, 100, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 108, 105, 101, 110, 116, 82, 112, 99, 82, 101, 99, 101, 105, 118, 101, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 67, 108, 105, 101, 110, 116, 82, 112, 99, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 95, 95, 82, 112, 99, 80, 97, 114, 97, 109, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 77, 101, 116, 114, 105, 99, 72, 111, 111, 107, 115, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 99, 111, 100, 101, 79, 98, 115, 101, 114, 118, 101, 114, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 117, 108, 108, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 76, 105, 115, 116, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 76, 105, 115, 116, 69, 118, 101, 110, 116, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 66, 97, 115, 101, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 104, 111, 114, 116, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 115, 104, 111, 114, 116, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 110, 116, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 105, 110, 116, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 76, 111, 110, 103, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 108, 111, 110, 103, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 110, 109, 97, 110, 97, 103, 101, 100, 84, 121, 112, 101, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 110, 109, 97, 110, 97, 103, 101, 100, 65, 114, 114, 97, 121, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 105, 120, 101, 100, 83, 116, 114, 105, 110, 103, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 105, 120, 101, 100, 83, 116, 114, 105, 110, 103, 65, 114, 114, 97, 121, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 52, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 110, 109, 97, 110, 97, 103, 101, 100, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 57, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 110, 109, 97, 110, 97, 103, 101, 100, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 65, 114, 114, 97, 121, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 77, 97, 110, 97, 103, 101, 100, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 46, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 115, 101, 114, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 97, 108, 108, 98, 97, 99, 107, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 47, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 84, 121, 112, 101, 115, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 86, 97, 114, 105, 97, 98, 108, 101, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 80, 114, 111, 102, 105, 108, 105, 110, 103, 72, 111, 111, 107, 115, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 68, 101, 102, 97, 117, 108, 116, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 51, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 68, 101, 102, 97, 117, 108, 116, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 72, 97, 110, 100, 108, 101, 114, 124, 83, 99, 101, 110, 101, 69, 110, 116, 114, 121, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 24, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 57, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 124, 83, 99, 101, 110, 101, 85, 110, 108, 111, 97, 100, 69, 118, 101, 110, 116, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 59, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 78, 101, 116, 119, 111, 114, 107, 83, 99, 101, 110, 101, 77, 97, 110, 97, 103, 101, 114, 124, 68, 101, 102, 101, 114, 114, 101, 100, 79, 98, 106, 101, 99, 116, 115, 77, 111, 118, 101, 100, 69, 118, 101, 110, 116, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 68, 97, 116, 97, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 83, 99, 101, 110, 101, 69, 118, 101, 110, 116, 80, 114, 111, 103, 114, 101, 115, 115, 0, 0, 0, 0, 24, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 65, 114, 105, 116, 104, 109, 101, 116, 105, 99, 0, 0, 0, 0, 24, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 105, 116, 67, 111, 117, 110, 116, 101, 114, 0, 0, 0, 0, 23, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 105, 116, 82, 101, 97, 100, 101, 114, 0, 0, 0, 0, 23, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 105, 116, 87, 114, 105, 116, 101, 114, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 82, 101, 97, 100, 101, 114, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 117, 102, 102, 101, 114, 83, 101, 114, 105, 97, 108, 105, 122, 101, 114, 87, 114, 105, 116, 101, 114, 0, 0, 0, 0, 24, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 121, 116, 101, 80, 97, 99, 107, 101, 114, 0, 0, 0, 0, 26, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 121, 116, 101, 85, 110, 112, 97, 99, 107, 101, 114, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 121, 116, 101, 85, 116, 105, 108, 105, 116, 121, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 97, 115, 116, 66, 117, 102, 102, 101, 114, 82, 101, 97, 100, 101, 114, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 82, 101, 97, 100, 101, 114, 72, 97, 110, 100, 108, 101, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 97, 115, 116, 66, 117, 102, 102, 101, 114, 87, 114, 105, 116, 101, 114, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 87, 114, 105, 116, 101, 114, 72, 97, 110, 100, 108, 101, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 0, 0, 0, 0, 23, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 69, 110, 117, 109, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 83, 116, 114, 117, 99, 116, 115, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 70, 105, 120, 101, 100, 83, 116, 114, 105, 110, 103, 115, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 124, 70, 111, 114, 71, 101, 110, 101, 114, 105, 99, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 70, 111, 114, 99, 101, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 101, 66, 121, 77, 101, 109, 99, 112, 121, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 83, 101, 114, 105, 97, 108, 105, 122, 101, 66, 121, 77, 101, 109, 99, 112, 121, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 82, 101, 97, 100, 101, 114, 87, 114, 105, 116, 101, 114, 0, 0, 0, 0, 22, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 66, 121, 116, 101, 66, 111, 111, 108, 0, 0, 0, 0, 23, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 85, 73, 110, 116, 70, 108, 111, 97, 116, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 66, 101, 104, 97, 118, 105, 111, 117, 114, 82, 101, 102, 101, 114, 101, 110, 99, 101, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 79, 98, 106, 101, 99, 116, 82, 101, 102, 101, 114, 101, 110, 99, 101, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 73, 110, 115, 116, 97, 110, 99, 101, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 80, 114, 101, 102, 97, 98, 72, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 83, 112, 97, 119, 110, 77, 97, 110, 97, 103, 101, 114, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 82, 101, 108, 101, 97, 115, 101, 100, 78, 101, 116, 119, 111, 114, 107, 73, 100, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 73, 82, 101, 97, 108, 84, 105, 109, 101, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 84, 105, 99, 107, 83, 121, 115, 116, 101, 109, 0, 0, 0, 0, 25, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 84, 105, 109, 101, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 84, 105, 109, 101, 83, 121, 115, 116, 101, 109, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 82, 101, 97, 108, 84, 105, 109, 101, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 124, 78, 101, 116, 119, 111, 114, 107, 84, 114, 97, 110, 115, 112, 111, 114, 116, 0, 0, 0, 0, 48, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 66, 97, 116, 99, 104, 101, 100, 82, 101, 99, 101, 105, 118, 101, 81, 117, 101, 117, 101, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 66, 97, 116, 99, 104, 101, 100, 83, 101, 110, 100, 81, 117, 101, 117, 101, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 67, 111, 110, 116, 101, 120, 116, 0, 0, 0, 0, 56, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 78, 101, 116, 119, 111, 114, 107, 77, 101, 116, 114, 105, 99, 115, 80, 105, 112, 101, 108, 105, 110, 101, 83, 116, 97, 103, 101, 0, 0, 0, 0, 48, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 83, 101, 99, 114, 101, 116, 115, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 0, 0, 0, 0, 62, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 83, 101, 99, 114, 101, 116, 115, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 124, 83, 101, 114, 118, 101, 114, 83, 101, 99, 114, 101, 116, 115, 0, 0, 0, 0, 62, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 83, 101, 99, 114, 101, 116, 115, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 124, 67, 108, 105, 101, 110, 116, 83, 101, 99, 114, 101, 116, 115, 0, 0, 0, 0, 60, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 73, 78, 101, 116, 119, 111, 114, 107, 83, 116, 114, 101, 97, 109, 68, 114, 105, 118, 101, 114, 67, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 69, 114, 114, 111, 114, 85, 116, 105, 108, 105, 116, 105, 101, 115, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 124, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 0, 0, 0, 0, 65, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 124, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 65, 100, 100, 114, 101, 115, 115, 68, 97, 116, 97, 0, 0, 0, 0, 63, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 124, 83, 105, 109, 117, 108, 97, 116, 111, 114, 80, 97, 114, 97, 109, 101, 116, 101, 114, 115, 0, 0, 0, 0, 59, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 124, 80, 97, 99, 107, 101, 116, 76, 111, 115, 115, 67, 97, 99, 104, 101, 0, 0, 0, 0, 66, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 124, 83, 101, 110, 100, 66, 97, 116, 99, 104, 101, 100, 77, 101, 115, 115, 97, 103, 101, 115, 74, 111, 98, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 78, 101, 116, 99, 111, 100, 101, 46, 84, 114, 97, 110, 115, 112, 111, 114, 116, 115, 46, 85, 84, 80, 46, 85, 110, 105, 116, 121, 84, 114, 97, 110, 115, 112, 111, 114, 116, 124, 83, 101, 110, 100, 84, 97, 114, 103, 101, 116 }; result.TotalFiles = 104; result.TotalTypes = 177; result.IsEditorOnly = false; return result; } } namespace Unity.Netcode { public enum HashSize : byte { VarIntFourBytes, VarIntEightBytes } [Serializable] public class NetworkConfig { [Tooltip("Use this to make two builds incompatible with each other")] public ushort ProtocolVersion; [Tooltip("The NetworkTransport to use")] public NetworkTransport NetworkTransport; [Tooltip("When set, NetworkManager will automatically create and spawn the assigned player prefab. This can be overridden by adding it to the NetworkPrefabs list and selecting override.")] public GameObject PlayerPrefab; [SerializeField] public NetworkPrefabs Prefabs = new NetworkPrefabs(); [Tooltip("The tickrate. This value controls how often netcode runs user code and sends out data. The value is in 'ticks per seconds' which means a value of 50 will result in 50 ticks being executed per second or a fixed delta time of 0.02.")] public uint TickRate = 30u; [Tooltip("The amount of seconds for the server to wait for the connection approval handshake to complete before the client is disconnected")] public int ClientConnectionBufferTimeout = 10; [Tooltip("Whether or not to force clients to be approved before they connect")] public bool ConnectionApproval; [Tooltip("The connection data sent along with connection requests")] public byte[] ConnectionData = new byte[0]; [Tooltip("Enable this to re-sync the NetworkTime after the initial sync")] public bool EnableTimeResync; [Tooltip("The amount of seconds between re-syncs of NetworkTime, if enabled")] public int TimeResyncInterval = 30; [Tooltip("Ensures that NetworkVariables can be read even if a client accidental writes where its not allowed to. This will cost some CPU time and bandwidth")] public bool EnsureNetworkVariableLengthSafety; [Tooltip("Enables scene management. This will allow network scene switches and automatic scene difference corrections upon connect.\nSoftSynced scene objects wont work with this disabled. That means that disabling SceneManagement also enables PrefabSync.")] public bool EnableSceneManagement = true; [Tooltip("Whether or not the netcode should check for differences in the prefab lists at connection")] public bool ForceSamePrefabs = true; [Tooltip("If true, NetworkIds will be reused after the NetworkIdRecycleDelay")] public bool RecycleNetworkIds = true; [Tooltip("The amount of seconds a NetworkId has to unused in order for it to be reused")] public float NetworkIdRecycleDelay = 120f; [Tooltip("The maximum amount of bytes to use for RPC messages.")] public HashSize RpcHashSize; [Tooltip("The amount of seconds to wait for all clients to load or unload a requested scene (only when EnableSceneManagement is enabled)")] public int LoadSceneTimeOut = 120; [Tooltip("The amount of time a message should be buffered if the asset or object needed to process it doesn't exist yet. If the asset is not added/object is not spawned within this time, it will be dropped")] public float SpawnTimeout = 1f; public bool EnableNetworkLogs = true; public const int RttAverageSamples = 5; public const int RttWindowSize = 64; private ulong? m_ConfigHash; [NonSerialized] private bool m_DidWarnOldPrefabList; [FormerlySerializedAs("NetworkPrefabs")] [SerializeField] internal List<NetworkPrefab> OldPrefabList; public string ToBase64() { FastBufferWriter fastBufferWriter = new FastBufferWriter(1024, (Allocator)2); using (fastBufferWriter) { fastBufferWriter.WriteValueSafe(in ProtocolVersion, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in TickRate, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in ClientConnectionBufferTimeout, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in ConnectionApproval, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in LoadSceneTimeOut, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnableTimeResync, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnsureNetworkVariableLengthSafety, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in RpcHashSize, default(FastBufferWriter.ForEnums)); fastBufferWriter.WriteValueSafe(in ForceSamePrefabs, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnableSceneManagement, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in RecycleNetworkIds, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in NetworkIdRecycleDelay, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnableNetworkLogs, default(FastBufferWriter.ForPrimitives)); return Convert.ToBase64String(fastBufferWriter.ToArray()); } } public void FromBase64(string base64) { byte[] buffer = Convert.FromBase64String(base64); using FastBufferReader fastBufferReader = new FastBufferReader(buffer, (Allocator)2); using (fastBufferReader) { fastBufferReader.ReadValueSafe(out ProtocolVersion, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out TickRate, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out ClientConnectionBufferTimeout, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out ConnectionApproval, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out LoadSceneTimeOut, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out EnableTimeResync, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out EnsureNetworkVariableLengthSafety, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out RpcHashSize, default(FastBufferWriter.ForEnums)); fastBufferReader.ReadValueSafe(out ForceSamePrefabs, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out EnableSceneManagement, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out RecycleNetworkIds, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out NetworkIdRecycleDelay, default(FastBufferWriter.ForPrimitives)); fastBufferReader.ReadValueSafe(out EnableNetworkLogs, default(FastBufferWriter.ForPrimitives)); } } internal void ClearConfigHash() { m_ConfigHash = null; } public ulong GetConfig(bool cache = true) { if (m_ConfigHash.HasValue && cache) { return m_ConfigHash.Value; } FastBufferWriter fastBufferWriter = new FastBufferWriter(1024, (Allocator)2, int.MaxValue); using (fastBufferWriter) { fastBufferWriter.WriteValueSafe(in ProtocolVersion, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe("15.0.0"); if (ForceSamePrefabs) { foreach (KeyValuePair<uint, NetworkPrefab> item in Prefabs.NetworkPrefabOverrideLinks.OrderBy((KeyValuePair<uint, NetworkPrefab> x) => x.Key)) { uint value = item.Key; fastBufferWriter.WriteValueSafe(in value, default(FastBufferWriter.ForPrimitives)); } } fastBufferWriter.WriteValueSafe(in TickRate, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in ConnectionApproval, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in ForceSamePrefabs, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnableSceneManagement, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in EnsureNetworkVariableLengthSafety, default(FastBufferWriter.ForPrimitives)); fastBufferWriter.WriteValueSafe(in RpcHashSize, default(FastBufferWriter.ForEnums)); if (cache) { m_ConfigHash = fastBufferWriter.ToArray().Hash64(); return m_ConfigHash.Value; } return fastBufferWriter.ToArray().Hash64(); } } public bool CompareConfig(ulong hash) { return hash == GetConfig(); } internal void InitializePrefabs() { if (HasOldPrefabList()) { MigrateOldNetworkPrefabsToNetworkPrefabsList(); } Prefabs.Initialize(); } private void WarnOldPrefabList() { if (!m_DidWarnOldPrefabList) { Debug.LogWarning((object)"Using Legacy Network Prefab List. Consider Migrating."); m_DidWarnOldPrefabList = true; } } internal bool HasOldPrefabList() { List<NetworkPrefab> oldPrefabList = OldPrefabList; if (oldPrefabList == null) { return false; } return oldPrefabList.Count > 0; } internal NetworkPrefabsList MigrateOldNetworkPrefabsToNetworkPrefabsList() { if (OldPrefabList == null || OldPrefabList.Count == 0) { return null; } if (Prefabs == null) { throw new Exception("Prefabs field is null."); } Prefabs.NetworkPrefabsLists.Add(ScriptableObject.CreateInstance<NetworkPrefabsList>()); List<NetworkPrefab> oldPrefabList = OldPrefabList; if (oldPrefabList != null && oldPrefabList.Count > 0) { foreach (NetworkPrefab oldPrefab in OldPrefabList) { Prefabs.NetworkPrefabsLists[Prefabs.NetworkPrefabsLists.Count - 1].Add(oldPrefab); } } OldPrefabList = null; return Prefabs.NetworkPrefabsLists[Prefabs.NetworkPrefabsLists.Count - 1]; } } internal static class NetworkConstants { internal const string PROTOCOL_VERSION = "15.0.0"; } public enum NetworkPrefabOverride { None, Prefab, Hash } [Serializable] public class NetworkPrefab { public NetworkPrefabOverride Override; public GameObject Prefab; public GameObject SourcePrefabToOverride; public uint SourceHashToOverride; public GameObject OverridingTargetPrefab; public uint SourcePrefabGlobalObjectIdHash { get { switch (Override) { case NetworkPrefabOverride.None: { NetworkObject networkObject2 = default(NetworkObject); if ((Object)(object)Prefab != (Object)null && Prefab.TryGetComponent<NetworkObject>(ref networkObject2)) { return networkObject2.GlobalObjectIdHash; } throw new InvalidOperationException("Prefab field is not set or is not a NetworkObject"); } case NetworkPrefabOverride.Prefab: { NetworkObject networkObject = default(NetworkObject); if ((Object)(object)SourcePrefabToOverride != (Object)null && SourcePrefabToOverride.TryGetComponent<NetworkObject>(ref networkObject)) { return networkObject.GlobalObjectIdHash; } throw new InvalidOperationException("Source Prefab field is not set or is not a NetworkObject"); } case NetworkPrefabOverride.Hash: return SourceHashToOverride; default: throw new ArgumentOutOfRangeException(); } } } public uint TargetPrefabGlobalObjectIdHash { get { switch (Override) { case NetworkPrefabOverride.None: return 0u; case NetworkPrefabOverride.Prefab: case NetworkPrefabOverride.Hash: { NetworkObject networkObject = default(NetworkObject); if ((Object)(object)OverridingTargetPrefab != (Object)null && OverridingTargetPr