Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of ShockwaveDroneEnemy v0.7.5
DroneEnemy.dll
Decompiled 6 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Dawn; using DawnHelpers; using DroneEnemy.NetcodePatcher; using Dusk; using Dusk.Weights; using GameNetcodeStuff; using Microsoft.CodeAnalysis; using SolidLib; using SolidLib.Registry; using SolidLib.Utils; using SolidLib.Utils.AssetLoading; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("com.github.teamxiaolan.dawnlib")] [assembly: IgnoresAccessChecksTo("com.github.teamxiaolan.dawnlib.dusk")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("DroneEnemy")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyDescription("Drone Enemy for Lethal Company.")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("DroneEnemy")] [assembly: AssemblyTitle("DroneEnemy")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace DroneEnemy { public abstract class BaseDroneAI : ExtendedEnemyAI { public Material[] antennaMats; public Light antennaLight; public virtual int materialIndex => 2; public override void Start() { base.Start(); ((MonoBehaviour)this).StartCoroutine(AntennaCoroutine()); } public IEnumerator AntennaCoroutine() { while (true) { ((Renderer)((EnemyAI)this).skinnedMeshRenderers[0]).materials[materialIndex] = antennaMats[1]; ((Behaviour)antennaLight).enabled = true; PlayCreatureSFX("DroneBeep", 1f, 1f, 25f, oneShot: true); yield return (object)new WaitForSeconds(0.3f); ((Renderer)((EnemyAI)this).skinnedMeshRenderers[0]).materials[materialIndex] = antennaMats[0]; ((Behaviour)antennaLight).enabled = false; yield return (object)new WaitForSeconds(3f); } } protected override void __initializeVariables() { base.__initializeVariables(); } protected override void __initializeRpcs() { base.__initializeRpcs(); } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "BaseDroneAI"; } } public class CleanerDroneAI : BaseDroneAI { private enum State { Idle, Sweeping, Bumping } private static readonly int HitEnemyTrigger = Animator.StringToHash("hitEnemyTrigger"); private static readonly int Dead = Animator.StringToHash("dead"); private static readonly int Malfunctioning = Animator.StringToHash("malfunctioning"); [Header("Drone Parameters")] public AISearchRoutine scoutingSearchRoutine; public BoxCollider enemyCollider; private float timeSincePrevMalfunction; private int randomMalfunctionTime; private bool isDeadAnimationDone; private bool stunnedAnimation; private bool _isMalfunctioning; private bool isFlying; private Vector3 _lastTrailPosition; private List<GameObject> trailObjects = new List<GameObject>(); public List<PlayerControllerB> playersToShock = new List<PlayerControllerB>(); private GameObject _cachedTrailObject; [SerializeField] private BoxCollider trailBoundsChecker; private Coroutine _flyingCoroutine; private Coroutine shockCoroutine; public override int materialIndex => 1; public override void Start() { base.Start(); timeSincePrevMalfunction = 0f; randomMalfunctionTime = enemyRandom.Next(70, 135); ((Collider)enemyCollider).isTrigger = !PluginConfig.hasCollision.Value; isDeadAnimationDone = false; ((EnemyAI)this).currentBehaviourStateIndex = 1; _cachedTrailObject = Registries.GameObjectRegistry.Get("WaterTrailPrefab"); } public override void Update() { //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: 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_00cf: 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_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).Update(); if (!((EnemyAI)this).isEnemyDead && ((NetworkBehaviour)this).IsServer) { if (((EnemyAI)this).stunNormalizedTimer <= 0f) { timeSincePrevMalfunction += Time.deltaTime; } if (timeSincePrevMalfunction > (float)randomMalfunctionTime) { Debug.Log((object)"Reached Time"); randomMalfunctionTime = enemyRandom.Next(70, 135); timeSincePrevMalfunction = 0f; TriggerMalfunctionServerRpc(); } float num = Vector3.Distance(((Component)this).transform.position, _lastTrailPosition); if (num > 1f && !isFlying) { _lastTrailPosition = ((Component)this).transform.position; Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y + 0.005f, ((Component)this).transform.position.z); Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(((Component)this).transform.rotation.x, Random.Range(0f, 360f), ((Component)this).transform.rotation.z); GameObject val3 = Object.Instantiate<GameObject>(_cachedTrailObject, val, Quaternion.Euler(val2)); val3.GetComponent<WaterTrailInstance>().Initialize(this); trailObjects.Add(val3); SpawnTrailClientRpc(val2); } } } [ClientRpc] public void SpawnTrailClientRpc(Vector3 trailRotation) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: 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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2132331674u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref trailRotation); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2132331674u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; Vector3 val3 = default(Vector3); ((Vector3)(ref val3))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y + 0.005f, ((Component)this).transform.position.z); GameObject val4 = Object.Instantiate<GameObject>(_cachedTrailObject, val3, Quaternion.Euler(trailRotation)); val4.GetComponent<WaterTrailInstance>().Initialize(this); trailObjects.Add(val4); } } } public override void DoAIInterval() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).DoAIInterval(); if (((EnemyAI)this).isEnemyDead || StartOfRound.Instance.allPlayersDead) { return; } if (!scoutingSearchRoutine.inProgress) { Debug.Log((object)"Roam"); ((EnemyAI)this).StartSearch(((Component)this).transform.position, scoutingSearchRoutine); } switch (((EnemyAI)this).currentBehaviourStateIndex) { case 0: ((EnemyAI)this).agent.speed = PluginConfig.idleSpeed.Value; break; case 1: if (((EnemyAI)this).agent.isOnOffMeshLink) { Plugin.Logger.LogInfo((object)"Drone On NavmeshLink b"); if (_flyingCoroutine == null) { _flyingCoroutine = ((MonoBehaviour)this).StartCoroutine(FlyOverNavmeshLink()); } } ((EnemyAI)this).agent.speed = PluginConfig.moveSpeed.Value; break; default: Debug.Log((object)"This Behavior State doesn't exist!"); break; case 2: break; } } private IEnumerator FlyOverNavmeshLink() { isFlying = true; Plugin.Logger.LogInfo((object)"SweeperDrone started flying over navmeshlink."); ((EnemyAI)this).creatureAnimator.SetBool("flying", true); yield return (object)new WaitForSeconds(2f); OffMeshLinkData currentOffMeshLinkData = ((EnemyAI)this).agent.currentOffMeshLinkData; Vector3 endPos = ((OffMeshLinkData)(ref currentOffMeshLinkData)).endPos + Vector3.up * ((EnemyAI)this).agent.baseOffset; ((EnemyAI)this).agent.isStopped = true; while (Vector3.Distance(((Component)((EnemyAI)this).agent).transform.position, endPos) > 0.1f) { ((Component)((EnemyAI)this).agent).transform.position = Vector3.MoveTowards(((Component)((EnemyAI)this).agent).transform.position, endPos, ((EnemyAI)this).agent.speed * Time.deltaTime); yield return null; } ((EnemyAI)this).creatureAnimator.SetBool("flying", false); yield return (object)new WaitForSeconds(3f); Plugin.Logger.LogInfo((object)"SweeperDrone finished flying over navmeshlink."); ((EnemyAI)this).agent.isStopped = false; ((EnemyAI)this).agent.CompleteOffMeshLink(); _flyingCoroutine = null; isFlying = false; } [ServerRpc(RequireOwnership = false)] private void TriggerMalfunctionServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2116075250u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2116075250u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; MalfunctionOnAllClientsClientRpc(); } } } [ClientRpc] private void MalfunctionOnAllClientsClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3425315148u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3425315148u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((MonoBehaviour)this).StartCoroutine(Malfunction()); } } } private IEnumerator Malfunction() { if (!((EnemyAI)this).isEnemyDead) { ((EnemyAI)this).agent.speed = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(0); _isMalfunctioning = true; ((EnemyAI)this).creatureAnimator.SetBool(Malfunctioning, true); PlayCreatureSFX("CDMalfunction", 1f, 1f, 25f, oneShot: true); WalkieTalkie.TransmitOneShotAudio(((EnemyAI)this).creatureSFX, Registries.SoundRegistry.Get("CDMalfunction"), 1f); if (shockCoroutine == null) { shockCoroutine = ((MonoBehaviour)this).StartCoroutine(ShockPlayersInWater()); } yield return (object)new WaitForSeconds(18f); _isMalfunctioning = false; ((EnemyAI)this).creatureAnimator.SetBool(Malfunctioning, false); ((EnemyAI)this).SwitchToBehaviourClientRpc(1); } } private IEnumerator ShockPlayersInWater() { while (_isMalfunctioning) { foreach (PlayerControllerB item in new List<PlayerControllerB>(playersToShock)) { if (item.isMovementHindered == 0) { ApplyShockEffect(item); } item.DamagePlayer(2, true, true, (CauseOfDeath)11, 0, false, default(Vector3)); } yield return (object)new WaitForSeconds(0.1f); } shockCoroutine = null; } public void ApplyShockEffect(PlayerControllerB player) { player.isMovementHindered++; player.hinderedMultiplier *= 2f; } public void RemoveShockEffect(PlayerControllerB player) { player.isMovementHindered--; player.hinderedMultiplier *= 0.4f; } public override void OnCollideWithPlayer(Collider other) { ((EnemyAI)this).OnCollideWithPlayer(other); } public override void HitEnemy(int force = 1, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, playHitSFX, hitID); if (!((EnemyAI)this).isEnemyDead) { ((EnemyAI)this).creatureAnimator.SetTrigger(HitEnemyTrigger); if ((Object)(object)playerWhoHit != (Object)null) { ((EnemyAI)this).enemyHP = ((EnemyAI)this).enemyHP - force; } if (((EnemyAI)this).enemyHP <= 0 && !((EnemyAI)this).isEnemyDead && ((NetworkBehaviour)this).IsOwner) { ((EnemyAI)this).KillEnemyOnOwnerClient(false); } } } public override void KillEnemy(bool destroy = false) { ((EnemyAI)this).KillEnemy(destroy); ((EnemyAI)this).creatureAnimator.SetBool(Dead, true); } [ClientRpc] public void DoAnimationFloatClientRpc(string animationName, float value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2381764976u, val, (RpcDelivery)0); bool flag = animationName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(animationName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2381764976u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((EnemyAI)this).creatureAnimator.SetFloat(animationName, value); } } protected override void __initializeVariables() { base.__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(2132331674u, new RpcReceiveHandler(__rpc_handler_2132331674), "SpawnTrailClientRpc"); ((NetworkBehaviour)this).__registerRpc(2116075250u, new RpcReceiveHandler(__rpc_handler_2116075250), "TriggerMalfunctionServerRpc"); ((NetworkBehaviour)this).__registerRpc(3425315148u, new RpcReceiveHandler(__rpc_handler_3425315148), "MalfunctionOnAllClientsClientRpc"); ((NetworkBehaviour)this).__registerRpc(2381764976u, new RpcReceiveHandler(__rpc_handler_2381764976), "DoAnimationFloatClientRpc"); base.__initializeRpcs(); } private static void __rpc_handler_2132331674(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0036: 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_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 trailRotation = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref trailRotation); target.__rpc_exec_stage = (__RpcExecStage)1; ((CleanerDroneAI)(object)target).SpawnTrailClientRpc(trailRotation); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2116075250(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((CleanerDroneAI)(object)target).TriggerMalfunctionServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3425315148(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((CleanerDroneAI)(object)target).MalfunctionOnAllClientsClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2381764976(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_0067: 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_009a: 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); } float value = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref value, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((CleanerDroneAI)(object)target).DoAnimationFloatClientRpc(animationName, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "CleanerDroneAI"; } } public class DroneEnemyAI : BaseDroneAI { private enum State { IdleRoaming, Scanning } private static readonly int TriggerSphereAnim = Animator.StringToHash("TriggerScan"); [Header("Drone Parameters")] public AISearchRoutine scoutingSearchRoutine; [Space(10f)] public Animator ScanSphereAnimator; public GameObject scanParticleObject; public Transform scanArea; public AudioSource mineAudio; public List<ParticleSystem> swParticles; public BoxCollider enemyCollider; private float timeSincePrevScan; private int randomScanInterval; private bool isDeadAnimationDone; private bool stunnedAnimation; private List<PlayerControllerB> playersToSlow = new List<PlayerControllerB>(); private Coroutine explodeCoroutine; public override void Start() { base.Start(); timeSincePrevScan = 0f; ((Collider)enemyCollider).isTrigger = !PluginConfig.hasCollision.Value; randomScanInterval = PluginConfig.minAttackTime.Value; ((EnemyAI)this).enemyHP = enemyRandom.Next(2, 8); isDeadAnimationDone = false; ((EnemyAI)this).currentBehaviourStateIndex = 0; } public override void Update() { ((EnemyAI)this).Update(); if (!((EnemyAI)this).isEnemyDead && ((NetworkBehaviour)this).IsServer && ((EnemyAI)this).stunNormalizedTimer <= 0f) { timeSincePrevScan += Time.deltaTime; } } public override void DoAIInterval() { ((EnemyAI)this).DoAIInterval(); if (!((EnemyAI)this).isEnemyDead && !StartOfRound.Instance.allPlayersDead) { ScanningUpdate(ref scoutingSearchRoutine); switch (((EnemyAI)this).currentBehaviourStateIndex) { case 0: ((EnemyAI)this).agent.speed = PluginConfig.moveSpeed.Value; break; case 1: ((EnemyAI)this).agent.speed = PluginConfig.idleSpeed.Value; break; default: Debug.Log((object)"This Behavior State doesn't exist!"); break; } } } private void ScanningUpdate(ref AISearchRoutine routine) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) if (((NetworkBehaviour)this).IsServer && timeSincePrevScan > (float)randomScanInterval) { randomScanInterval = enemyRandom.Next(PluginConfig.minAttackTime.Value, PluginConfig.maxAttackTime.Value); timeSincePrevScan = 0f; ((EnemyAI)this).SwitchToBehaviourClientRpc(1); TriggerScanOnClientsServerRpc(); } if (!routine.inProgress) { Debug.Log((object)"Roam"); ((EnemyAI)this).StartSearch(((Component)this).transform.position, routine); } } [ClientRpc] private void UpdateScanNodeClientRpc(NetworkObjectReference objRef, int value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2549252628u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref objRef, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2549252628u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val3 = default(NetworkObject); if (((NetworkObjectReference)(ref objRef)).TryGet(ref val3, (NetworkManager)null)) { ScanNodeProperties componentInChildren = ((Component)val3).gameObject.GetComponentInChildren<ScanNodeProperties>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.scrapValue = value; componentInChildren.subText = $"Value: ${value}"; } } } [ServerRpc(RequireOwnership = false)] private void TriggerScanOnClientsServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(555519031u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 555519031u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ScanOnAllClientsClientRpc(); } } } [ClientRpc] private void ScanOnAllClientsClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4128408083u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4128408083u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ((MonoBehaviour)this).StartCoroutine(Scan()); } } } [ClientRpc] public void DoDroneSphereAnimationClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1917224352u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1917224352u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ScanSphereAnimator.SetTrigger(TriggerSphereAnim); } } } private IEnumerator Scan() { if (((EnemyAI)this).isEnemyDead) { yield break; } for (int num = playersToSlow.Count - 1; num >= 0; num--) { PlayerControllerB val = playersToSlow[num]; val.isMovementHindered--; val.hinderedMultiplier *= 0.4f; playersToSlow.Remove(val); } PlayCreatureSFX("ScanBegin", 1f, 1f, 25f, oneShot: true); WalkieTalkie.TransmitOneShotAudio(((EnemyAI)this).creatureSFX, Registries.SoundRegistry.Get("ScanBegin"), 1f); yield return (object)new WaitForSeconds(3f); DoAnimationTriggerClientRpc("scan"); yield return (object)new WaitForSeconds(0.5f); DoDroneSphereAnimationClientRpc(); yield return (object)new WaitForSeconds(0.15f); scanParticleObject.SetActive(true); foreach (ParticleSystem swParticle in swParticles) { swParticle.Play(); } PlayCreatureSFX("ScanEnd", 1f, 1f, 25f, oneShot: true); WalkieTalkie.TransmitOneShotAudio(((EnemyAI)this).creatureSFX, Registries.SoundRegistry.Get("ScanEnd"), 1f); if (PluginConfig.screenShake.Value) { float num2 = Vector3.Distance(((Component)GameNetworkManager.Instance.localPlayerController).transform.position, ((Component)this).transform.position); if (num2 < 14f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)3); } else if (num2 < 24f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } } int num3 = 1; int num4 = 8; int num5 = 256; int num6 = num3 | num4 | num5; Collider[] array = Physics.OverlapBox(scanArea.position, scanArea.localScale, Quaternion.identity, num4); if (array.Length != 0) { Collider[] array2 = array; RaycastHit val3 = default(RaycastHit); foreach (Collider val2 in array2) { Vector3 position = ((Component)this).transform.position; Bounds bounds = val2.bounds; if (Physics.Linecast(position, ((Bounds)(ref bounds)).center, ref val3, num6) && (Object)(object)((RaycastHit)(ref val3)).collider != (Object)(object)val2 && !PluginConfig.hitThroughWalls.Value) { continue; } PlayerControllerB val4 = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(val2, false, false); if ((Object)(object)val4 != (Object)null) { val4.DamagePlayer(PluginConfig.scanDamage.Value, true, true, (CauseOfDeath)11, 0, false, default(Vector3)); if (val4.isPlayerDead && (Object)(object)val4 == (Object)(object)GameNetworkManager.Instance.localPlayerController) { DuskAchievementExtensions.TryTriggerAchievement(DuskModContent.Achievements, MyModKeys.ShockinglyBadAchievement); } val4.isMovementHindered++; val4.hinderedMultiplier *= 2f; playersToSlow.Add(val4); } } yield return (object)new WaitForSeconds((float)enemyRandom.Next(1, 5)); for (int num7 = playersToSlow.Count - 1; num7 >= 0; num7--) { PlayerControllerB val5 = playersToSlow[num7]; val5.isMovementHindered--; val5.hinderedMultiplier *= 0.4f; playersToSlow.Remove(val5); } } yield return (object)new WaitForSeconds(2f); ((EnemyAI)this).SwitchToBehaviourClientRpc(0); } public override void HitEnemy(int force = 1, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { if (((EnemyAI)this).isEnemyDead) { return; } ((EnemyAI)this).creatureAnimator.SetTrigger("HitEnemy"); if (((EnemyAI)this).enemyHP > 1) { ((EnemyAI)this).HitEnemy(force, playerWhoHit, true, hitID); } else { ((EnemyAI)this).HitEnemy(force, playerWhoHit, false, hitID); } ((EnemyAI)this).enemyHP = ((EnemyAI)this).enemyHP - force; if (((EnemyAI)this).enemyHP > 0 || !((NetworkBehaviour)this).IsOwner) { return; } ((MonoBehaviour)this).StopCoroutine(Scan()); List<PlayerControllerB> list = playersToSlow; foreach (PlayerControllerB item in list) { item.isMovementHindered--; item.hinderedMultiplier *= 0.4f; playersToSlow.Remove(item); } ((MonoBehaviour)this).StartCoroutine(KillDroneDelay()); } public IEnumerator KillDroneDelay() { mineAudio.PlayOneShot(Registries.SoundRegistry.Get("MineTrigger"), 1f); WalkieTalkie.TransmitOneShotAudio(mineAudio, Registries.SoundRegistry.Get("MineTrigger"), 1f); yield return (object)new WaitForSeconds(PluginConfig.explosionSpeed.Value); if (((NetworkBehaviour)this).IsOwner && !((EnemyAI)this).isEnemyDead) { ((EnemyAI)this).KillEnemyOnOwnerClient(false); } yield return (object)new WaitUntil((Func<bool>)(() => ((EnemyAI)this).isEnemyDead)); DestroyDroneServerRpc(); } public override void KillEnemy(bool destroy = false) { //IL_0086: 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_0095: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) ((EnemyAI)this).KillEnemy(destroy); if (((NetworkBehaviour)this).IsHost) { int num = enemyRandom.Next(1, 100); if (num <= PluginConfig.scrapChance.Value || PluginConfig.scrapChance.Value == 100) { Plugin.Logger.LogInfo((object)("Scrap Chance on random was " + num + "of Config value " + PluginConfig.scrapChance.Value)); Plugin.Logger.LogInfo((object)"Spawning Drone Scrap "); Vector3 val = ((Component)this).transform.position + Vector3.up * 0.6f; val += new Vector3(Random.Range(-0.8f, 0.8f), 0f, Random.Range(-0.8f, 0.8f)); SolidLibUtils.Instance.SpawnItem(((object)MyModKeys.ShockWaveDroneScrap).ToString(), val, (Action<GameObject>)delegate { }); } } } [ServerRpc(RequireOwnership = false)] public void DestroyDroneServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3970229352u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3970229352u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (((NetworkBehaviour)this).IsServer) { SetOffMineAnimation(); } DestroyDroneClientRpc(); } } [ClientRpc] public void DestroyDroneClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1405841301u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1405841301u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; if (!((NetworkBehaviour)this).IsServer) { SetOffMineAnimation(); } } } public override void OnDestroy() { ((EnemyAI)this).OnDestroy(); List<PlayerControllerB> list = playersToSlow; foreach (PlayerControllerB item in list) { item.isMovementHindered--; item.hinderedMultiplier *= 0.4f; playersToSlow.Remove(item); } } public void SetOffMineAnimation() { if (explodeCoroutine == null) { Plugin.Logger.LogInfo((object)"Start Explosion Coroutine"); explodeCoroutine = ((MonoBehaviour)this).StartCoroutine(detonateMineDelayed()); } else { Plugin.Logger.LogInfo((object)"Explosion already started"); } } private IEnumerator detonateMineDelayed() { Detonate(); yield return (object)new WaitForSeconds(0.2f); if (((NetworkBehaviour)this).IsServer) { Object.Destroy((Object)(object)((Component)this).gameObject); } } public void Detonate() { //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_0020: Unknown result type (might be due to invalid IL or missing references) Plugin.Logger.LogInfo((object)"Detonating"); CreateExplosion(((Component)this).transform.position + Vector3.up, spawnExplosionEffect: true, PluginConfig.deathExplosionDamage.Value, 5.7f, 6.4f, 6, (CauseOfDeath)3); } public void CreateExplosion(Vector3 explosionPosition, bool spawnExplosionEffect = false, int damage = 20, float minDamageRange = 0f, float maxDamageRange = 1f, int enemyHitForce = 6, CauseOfDeath causeOfDeath = 3, PlayerControllerB attacker = null) { //IL_0005: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)$"Spawning explosion at pos: {explosionPosition}"); Transform val = null; if ((Object)(object)RoundManager.Instance != (Object)null && (Object)(object)RoundManager.Instance.mapPropsContainer != (Object)null && (Object)(object)RoundManager.Instance.mapPropsContainer.transform != (Object)null) { val = RoundManager.Instance.mapPropsContainer.transform; } if (spawnExplosionEffect) { Object.Instantiate<GameObject>(StartOfRound.Instance.explosionPrefab, explosionPosition, Quaternion.Euler(-90f, 0f, 0f), val).SetActive(true); } float num = Vector3.Distance(((Component)GameNetworkManager.Instance.localPlayerController).transform.position, explosionPosition); if (num < 14f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)1); } else if (num < 25f) { HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } Collider[] array = Physics.OverlapSphere(explosionPosition, maxDamageRange, LayerMask.GetMask(new string[5] { "Enemies", "Player", "MapHazard", "Colliders", "Rooms" }), (QueryTriggerInteraction)2); Dictionary<PlayerControllerB, int> dictionary = new Dictionary<PlayerControllerB, int>(); Dictionary<EnemyAICollisionDetect, int> dictionary2 = new Dictionary<EnemyAICollisionDetect, int>(); List<Landmine> list = new List<Landmine>(); Collider[] array2 = array; RaycastHit val3 = default(RaycastHit); PlayerControllerB key = default(PlayerControllerB); EnemyAICollisionDetect key2 = default(EnemyAICollisionDetect); foreach (Collider val2 in array2) { if (((Component)val2).GetComponent<IHittable>() == null) { continue; } float num2 = Vector3.Distance(explosionPosition, ((Component)val2).transform.position); if (num2 > 4f && Physics.Linecast(explosionPosition, ((Component)val2).transform.position + Vector3.up * 0.3f, ref val3, 256, (QueryTriggerInteraction)1)) { continue; } if (((Component)val2).gameObject.layer == 3 && ((Component)val2).TryGetComponent<PlayerControllerB>(ref key) && !dictionary.ContainsKey(key)) { dictionary.Add(key, (int)((float)damage * (1f - Mathf.Clamp01((num2 - minDamageRange) / (maxDamageRange - minDamageRange))))); } else if (((Component)val2).gameObject.layer == 19 && ((Component)val2).TryGetComponent<EnemyAICollisionDetect>(ref key2) && !dictionary2.ContainsKey(key2)) { dictionary2.Add(key2, enemyHitForce); } else if (((Component)val2).gameObject.layer == 21) { Landmine componentInChildren = ((Component)val2).gameObject.GetComponentInChildren<Landmine>(); if ((Object)(object)componentInChildren != (Object)null && num2 < 6f && !list.Contains(componentInChildren)) { list.Add(componentInChildren); } } } foreach (PlayerControllerB key3 in dictionary.Keys) { key3.DamagePlayer(dictionary[key3], true, false, (CauseOfDeath)13, 6, false, key3.velocityLastFrame); if (key3.isPlayerDead && (Object)(object)key3 == (Object)(object)GameNetworkManager.Instance.localPlayerController) { DuskAchievementExtensions.TryTriggerAchievement(DuskModContent.Achievements, MyModKeys.ShockinglyBadAchievement); } } foreach (EnemyAICollisionDetect key4 in dictionary2.Keys) { key4.mainScript.HitEnemyOnLocalClient(dictionary2[key4], default(Vector3), attacker, false, -1); } foreach (Landmine item in list) { ((MonoBehaviour)item).StartCoroutine(item.TriggerOtherMineDelayed(item)); } for (int j = 0; j < array.Length; j++) { Rigidbody component = ((Component)array[j]).GetComponent<Rigidbody>(); if ((Object)(object)component != (Object)null) { component.AddExplosionForce(70f, explosionPosition, 10f); } } } protected override void __initializeVariables() { base.__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(2549252628u, new RpcReceiveHandler(__rpc_handler_2549252628), "UpdateScanNodeClientRpc"); ((NetworkBehaviour)this).__registerRpc(555519031u, new RpcReceiveHandler(__rpc_handler_555519031), "TriggerScanOnClientsServerRpc"); ((NetworkBehaviour)this).__registerRpc(4128408083u, new RpcReceiveHandler(__rpc_handler_4128408083), "ScanOnAllClientsClientRpc"); ((NetworkBehaviour)this).__registerRpc(1917224352u, new RpcReceiveHandler(__rpc_handler_1917224352), "DoDroneSphereAnimationClientRpc"); ((NetworkBehaviour)this).__registerRpc(3970229352u, new RpcReceiveHandler(__rpc_handler_3970229352), "DestroyDroneServerRpc"); ((NetworkBehaviour)this).__registerRpc(1405841301u, new RpcReceiveHandler(__rpc_handler_1405841301), "DestroyDroneClientRpc"); base.__initializeRpcs(); } private static void __rpc_handler_2549252628(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: 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_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference objRef = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref objRef, default(ForNetworkSerializable)); int value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).UpdateScanNodeClientRpc(objRef, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_555519031(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).TriggerScanOnClientsServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4128408083(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).ScanOnAllClientsClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1917224352(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).DoDroneSphereAnimationClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3970229352(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).DestroyDroneServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1405841301(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((DroneEnemyAI)(object)target).DestroyDroneClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "DroneEnemyAI"; } } public static class DuskModBypass { public static DuskMod CreateBareMod(BaseUnityPlugin plugin) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown DuskMod val = (DuskMod)FormatterServices.GetUninitializedObject(typeof(DuskMod)); Type type = ((object)val).GetType(); type.GetField("_basePath", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, Path.GetDirectoryName(((object)plugin).GetType().Assembly.Location)); type.GetField("<ConfigManager>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, (object?)new ConfigManager(plugin.Config)); BepInPlugin value = (BepInPlugin)((object)plugin).GetType().GetCustomAttribute(typeof(BepInPlugin)); type.GetField("<Plugin>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, value); type.GetField("<Assembly>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, ((object)plugin).GetType().Assembly); type.GetField("<Logger>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, Logger.CreateLogSource(plugin.Info.Metadata.GUID)); type.GetField("<Content>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(val, ScriptableObject.CreateInstance<ContentContainer>()); FieldInfo field = type.GetField("_allMods", BindingFlags.Static | BindingFlags.NonPublic); List<DuskMod> list = (List<DuskMod>)field.GetValue(null); list.Add(val); return val; } } public class ExtendedEnemyAI : EnemyAI { protected Random enemyRandom; [SerializeField] private AudioSource movementSource; public override void Start() { ((EnemyAI)this).Start(); enemyRandom = new Random(StartOfRound.Instance.randomMapSeed + base.thisEnemyIndex); } public void LogIfDebugBuild(string text) { Assembly callingAssembly = Assembly.GetCallingAssembly(); if (callingAssembly.GetCustomAttributes(inherit: false).OfType<DebuggableAttribute>().Any((DebuggableAttribute da) => da.IsJITTrackingEnabled)) { SolidLib.Log.LogInfo((object)text); } } public virtual void AnimationEventC() { } public virtual void AnimationEventD() { } public virtual void AnimationEventE() { } public virtual void AnimationEventStringA(string value) { } public virtual void AnimationEventStringB(string value) { } public virtual void AnimationEventStringC(string value) { } public virtual void AnimationEventFloatA(float value) { } public virtual void AnimationEventFloatB(float value) { } public virtual void AnimationEventFloatC(float value) { } public virtual void AnimationEventBoolA(bool value) { } public virtual void AnimationEventBoolB(bool value) { } public virtual void AnimationEventBoolC(bool value) { } [ClientRpc] public void DoAnimFloatClientRpc(string parameter, float value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2388512463u, val, (RpcDelivery)0); bool flag = parameter != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(parameter, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2388512463u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; LogIfDebugBuild($"Set AnimFloat: {parameter} To {value}"); base.creatureAnimator.SetFloat(parameter, value); } } [ClientRpc] public void DoAnimIntegerClientRpc(string parameter, int value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: 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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2657563125u, val, (RpcDelivery)0); bool flag = parameter != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(parameter, false); } BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2657563125u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; LogIfDebugBuild($"Set AnimInteger: {parameter} To {value}"); base.creatureAnimator.SetInteger(parameter, value); } } [ClientRpc] public void DoAnimBoolClientRpc(string parameter, bool value) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1512945790u, val, (RpcDelivery)0); bool flag = parameter != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(parameter, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref value, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1512945790u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; LogIfDebugBuild($"Set AnimBool: {parameter} To {value}"); base.creatureAnimator.SetBool(parameter, value); } } [ClientRpc] public void DoAnimationTriggerClientRpc(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_00ff: 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 != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2288742606u, 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, 2288742606u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; LogIfDebugBuild("AnimTrigger: " + animationName); base.creatureAnimator.SetTrigger(animationName); } } [ServerRpc(RequireOwnership = false)] public void PlayCreatureSFXServerRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: 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(3264900342u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref oneShot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref loop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3264900342u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayCreatureSFXClientRpc(clipName, volume, pitch, maxDistance, oneShot, loop); } } [ClientRpc] public void PlayCreatureSFXClientRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1316102658u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref oneShot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref loop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1316102658u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayCreatureSFX(clipName, volume, pitch, maxDistance, oneShot, loop); } } public void PlayCreatureSFX(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { base.creatureSFX.loop = loop; base.creatureSFX.maxDistance = maxDistance; base.creatureSFX.pitch = pitch; if (oneShot) { base.creatureSFX.PlayOneShot(GetAudioClipFromNameRegistrar(clipName), volume); } else { base.creatureSFX.Play((double)volume); } } [ServerRpc(RequireOwnership = false)] public void PlayCreatureVoiceServerRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: 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(2067794608u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref oneShot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref loop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2067794608u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayCreatureVoiceClientRpc(clipName, volume, pitch, maxDistance, oneShot, loop); } } [ClientRpc] public void PlayCreatureVoiceClientRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(997213586u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref oneShot, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref loop, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 997213586u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayCreatureVoice(clipName, volume, pitch, maxDistance, oneShot, loop); } } public void PlayCreatureVoice(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f, bool oneShot = false, bool loop = false) { base.creatureVoice.loop = loop; base.creatureVoice.maxDistance = maxDistance; base.creatureVoice.pitch = pitch; if (oneShot) { base.creatureVoice.PlayOneShot(GetAudioClipFromNameRegistrar(clipName), volume); } else { base.creatureVoice.Play((double)volume); } } [ServerRpc(RequireOwnership = false)] public void PlayMovementAudioServerRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0125: 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_0150: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: 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) 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(1412959632u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1412959632u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayMovementAudioClientRpc(clipName, volume, pitch, maxDistance); } } [ClientRpc] public void PlayMovementAudioClientRpc(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0125: 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_0150: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: 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) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1810794435u, val, (RpcDelivery)0); bool flag = clipName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(clipName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref maxDistance, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1810794435u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; PlayMovementAudio(clipName, volume, pitch, maxDistance); } } public void PlayMovementAudio(string clipName, float volume = 1f, float pitch = 1f, float maxDistance = 25f) { movementSource.maxDistance = maxDistance; movementSource.pitch = pitch; movementSource.PlayOneShot(GetAudioClipFromNameRegistrar(clipName), volume); } private AudioClip GetAudioClipFromNameRegistrar(string clipName) { AudioClip result = default(AudioClip); if (!Registries.SoundRegistry.TryGetValue(clipName, ref result)) { SolidLib.Log.LogWarning((object)("[SoundManager] Failed to get " + clipName + " from SoundRegistry, Are you sure it exists?")); return null; } return result; } protected override void __initializeVariables() { ((EnemyAI)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(2388512463u, new RpcReceiveHandler(__rpc_handler_2388512463), "DoAnimFloatClientRpc"); ((NetworkBehaviour)this).__registerRpc(2657563125u, new RpcReceiveHandler(__rpc_handler_2657563125), "DoAnimIntegerClientRpc"); ((NetworkBehaviour)this).__registerRpc(1512945790u, new RpcReceiveHandler(__rpc_handler_1512945790), "DoAnimBoolClientRpc"); ((NetworkBehaviour)this).__registerRpc(2288742606u, new RpcReceiveHandler(__rpc_handler_2288742606), "DoAnimationTriggerClientRpc"); ((NetworkBehaviour)this).__registerRpc(3264900342u, new RpcReceiveHandler(__rpc_handler_3264900342), "PlayCreatureSFXServerRpc"); ((NetworkBehaviour)this).__registerRpc(1316102658u, new RpcReceiveHandler(__rpc_handler_1316102658), "PlayCreatureSFXClientRpc"); ((NetworkBehaviour)this).__registerRpc(2067794608u, new RpcReceiveHandler(__rpc_handler_2067794608), "PlayCreatureVoiceServerRpc"); ((NetworkBehaviour)this).__registerRpc(997213586u, new RpcReceiveHandler(__rpc_handler_997213586), "PlayCreatureVoiceClientRpc"); ((NetworkBehaviour)this).__registerRpc(1412959632u, new RpcReceiveHandler(__rpc_handler_1412959632), "PlayMovementAudioServerRpc"); ((NetworkBehaviour)this).__registerRpc(1810794435u, new RpcReceiveHandler(__rpc_handler_1810794435), "PlayMovementAudioClientRpc"); ((EnemyAI)this).__initializeRpcs(); } private static void __rpc_handler_2388512463(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_0067: 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_009a: 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 parameter = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref parameter, false); } float value = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref value, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((ExtendedEnemyAI)(object)target).DoAnimFloatClientRpc(parameter, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2657563125(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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string parameter = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref parameter, false); } int value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((ExtendedEnemyAI)(object)target).DoAnimIntegerClientRpc(parameter, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1512945790(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_0067: 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_009a: 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 parameter = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref parameter, false); } bool value = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref value, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((ExtendedEnemyAI)(object)target).DoAnimBoolClientRpc(parameter, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2288742606(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)1; ((ExtendedEnemyAI)(object)target).DoAnimationTriggerClientRpc(animationName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3264900342(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_0067: 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_0082: 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_009d: 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_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_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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) //IL_0116: 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 clipName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref clipName, false); } float volume = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref volume, default(ForPrimitives)); float pitch = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives)); float maxDistance = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref maxDistance, default(ForPrimitives)); bool oneShot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref oneShot, default(ForPrimitives)); bool loop = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref loop, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((ExtendedEnemyAI)(object)target).PlayCreatureSFXServerRpc(clipName, volume, pitch, maxDistance, oneShot, loop); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1316102658(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_0067: 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_0082: 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_009d: 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_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_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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) //IL_0116: 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 clipName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref clipName, false); } float volume = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref volume, default(ForPrimitives)); float pitch = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives)); float maxDistance = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref maxDistance, default(ForPrimitives)); bool oneShot = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref oneShot, default(ForPrimitives)); bool loop = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref loop, default(Fo