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 TooManyExplosions v1.1.0
plugins/TooManyExplosions/TooManyExplosions.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using Microsoft.CodeAnalysis; using TMPro; using TooManyExplosions.Helpers; using TooManyExplosions.Managers; using TooManyExplosions.MonoBehaviours; using TooManyExplosions.MonoBehaviours.Extensions; using TooManyExplosions.NetcodePatcher; using TooManyExplosions.Patchers; using TooManyExplosions.Patchers.Enemies; using TooManyExplosions.Patchers.Objects; using Unity.Netcode; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("TooManyExplosions")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("TooManyExplosions")] [assembly: AssemblyTitle("TooManyExplosions")] [assembly: AssemblyVersion("1.0.0.0")] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<bool>(); NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<bool>(); NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<Vector3>(); NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<Vector3>(); NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<float>(); NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<float>(); } } 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 TooManyExplosions { [BepInPlugin("lc.zapajax.TooManyExplosions", "Too Many Explosions", "1.0.3")] public class Plugin : BaseUnityPlugin { private const string GUID = "lc.zapajax.TooManyExplosions"; private const string NAME = "Too Many Explosions"; private const string VERSION = "1.0.3"; private readonly Harmony harmony = new Harmony("lc.zapajax.TooManyExplosions"); public static Plugin Instance; private void Awake() { Instance = this; LogHandler.Init("lc.zapajax.TooManyExplosions"); Content.AssemblySetup(); ConfigSettings.BindConfigSettings(); Content.InitializeObjects(); LogHandler.Log("Explosives are primed."); _Patcher.ApplyPatches(harmony); LogHandler.Log("Fire in the hole!"); } } } namespace TooManyExplosions.Patchers { [HarmonyPatch(typeof(GameNetworkManager))] internal class GameNetworkManagerPatcher { [HarmonyPatch("Start")] [HarmonyPostfix] private static void AddToPrefabs(GameNetworkManager __instance) { ((Component)__instance).GetComponent<NetworkManager>().AddNetworkPrefab(Content.tmeNetcodeObject); } } [HarmonyPatch(typeof(NetworkObject))] internal class NetworkObjectPatcher { [HarmonyPatch("Awake")] [HarmonyPrefix] public static void appendScriptToNetworkObject(NetworkObject __instance) { //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Expected O, but got Unknown //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Expected O, but got Unknown if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("NetworkObject.Awake: " + ((Object)((Component)__instance).gameObject).name); } if (!(((Object)((Component)__instance).gameObject).name == "Landmine(Clone)")) { return; } LandmineExtension le = ((Component)((Component)__instance).transform.GetChild(0)).gameObject.AddComponent<LandmineExtension>(); if (NetConfigVariables.canDisarmLandmineNet.Value) { InteractTrigger val = ((Component)__instance).gameObject.AddComponent<InteractTrigger>(); val.hoverTip = "Deactivate Landmine : [E]"; val.interactable = true; val.holdInteraction = true; val.oneHandedItemAllowed = true; val.timeToHold = NetConfigVariables.disarmTimerLengthNet.Value; val.timeToHoldSpeedMultiplier = 1f; val.animationWaitTime = NetConfigVariables.disarmTimerLengthNet.Value; val.triggerOnce = true; val.onInteractEarly = new InteractEvent(); UnityAction<PlayerControllerB> val2 = delegate { }; ((UnityEvent<PlayerControllerB>)(object)val.onInteractEarly).AddListener(val2); val.onStopInteract = new InteractEvent(); UnityAction<PlayerControllerB> val3 = delegate { }; ((UnityEvent<PlayerControllerB>)(object)val.onStopInteract).AddListener(val3); val.holdingInteractEvent = new InteractEventFloat(); UnityAction<float> val4 = delegate { }; ((UnityEvent<float>)(object)val.holdingInteractEvent).AddListener(val4); val.onCancelAnimation = new InteractEvent(); UnityAction<PlayerControllerB> val5 = delegate { }; ((UnityEvent<PlayerControllerB>)(object)val.onStopInteract).AddListener(val5); val.onInteract = new InteractEvent(); UnityAction<PlayerControllerB> val6 = delegate { le.destroyLandmineServerRpc(); }; ((UnityEvent<PlayerControllerB>)(object)val.onInteract).AddListener(val6); } } } [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBPatcher { [HarmonyPatch("Start")] [HarmonyPrefix] public static void preStart(PlayerControllerB __instance) { PlayerControllerBExtension playerControllerBExtension = ((Component)__instance).gameObject.AddComponent<PlayerControllerBExtension>(); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ADDING PlayerExtension"); } } [HarmonyPatch("SetHoverTipAndCurrentInteractTrigger")] [HarmonyPostfix] public static void includeLandmine(PlayerControllerB __instance) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) if (__instance.isGrabbingObjectAnimation) { return; } Ray val = default(Ray); ((Ray)(ref val))..ctor(((Component)__instance.gameplayCamera).transform.position, ((Component)__instance.gameplayCamera).transform.forward); RaycastHit[] array = Physics.RaycastAll(val, __instance.grabDistance, 2097152); RaycastHit val2 = default(RaycastHit); bool flag = false; if (array.Length != 0) { RaycastHit[] array2 = array; for (int i = 0; i < array2.Length; i++) { RaycastHit val3 = array2[i]; GameObject gameObject = ((Component)((RaycastHit)(ref val3)).collider).gameObject; if ((Object)(object)gameObject == (Object)null) { continue; } GameObject gameObject2 = ((Component)gameObject.transform.parent).gameObject; if (!((Object)(object)gameObject2 == (Object)null) && !(((Object)gameObject2).name != "Landmine(Clone)")) { Landmine componentInChildren = gameObject2.GetComponentInChildren<Landmine>(); if (!componentInChildren.hasExploded && NetConfigVariables.canDisarmLandmineNet.Value) { flag = true; val2 = val3; break; } } } } if (!flag) { return; } InteractTrigger component = ((Component)((RaycastHit)(ref val2)).transform.parent).gameObject.GetComponent<InteractTrigger>(); if ((Object)(object)component != (Object)(object)__instance.previousHoveringOverTrigger && (Object)(object)__instance.previousHoveringOverTrigger != (Object)null) { __instance.previousHoveringOverTrigger.isBeingHeldByPlayer = false; } if ((Object)(object)component == (Object)null) { return; } __instance.hoveringOverTrigger = component; if (__instance.isHoldingInteract) { if (__instance.twoHanded) { ((TMP_Text)__instance.cursorTip).text = "[Hands Full]"; } else if (!string.IsNullOrEmpty(component.holdTip)) { ((TMP_Text)__instance.cursorTip).text = component.holdTip; } } else { ((Behaviour)__instance.cursorIcon).enabled = true; __instance.cursorIcon.sprite = __instance.grabItemIcon; if (!((Object)(object)__instance.cursorTip == (Object)null) && ((TMP_Text)__instance.cursorTip).text != null && !((Object)(object)component == (Object)null) && component.hoverTip != null) { ((TMP_Text)__instance.cursorTip).text = component.hoverTip; } } } [HarmonyPatch("KillPlayer")] [HarmonyPostfix] public static void onPlayerDeathExplosiveEvent(PlayerControllerB __instance) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)__instance).IsOwner || !__instance.isPlayerDead || !__instance.AllowPlayerDeath() || !NetConfigVariables.playerExplodesOnDeathNet.Value) { return; } PlayerControllerBExtension component = ((Component)((Component)__instance).transform).gameObject.GetComponent<PlayerControllerBExtension>(); if (!((Object)(object)component == (Object)null) && !component.triggeredAfterDeathExplosiveEvent) { component.triggeredAfterDeathExplosiveEvent = true; if (TMEUtils.doesEventTrigger(NetConfigVariables.chanceForPlayerToExplodeOnDeathNet.Value)) { NetcodeManager.Instance.spawnExplosionServerRpc(((Component)__instance).transform.position, spawnExplosionEffect: true, 1f, 5f); } } } [HarmonyPatch("BeginGrabObject")] [HarmonyPostfix] public static void handleDestroyedLM(PlayerControllerB __instance, GrabbableObject ___currentlyGrabbingObject) { if ((Object)(object)___currentlyGrabbingObject == (Object)null) { __instance.isGrabbingObjectAnimation = false; } } [HarmonyPatch("Update")] [HarmonyPostfix] public static void updatePatcher(PlayerControllerB __instance) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: 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) PlayerControllerBExtension component = ((Component)__instance).gameObject.GetComponent<PlayerControllerBExtension>(); if ((Object)(object)component == (Object)null) { return; } component.worldVelocity = (((Component)__instance).transform.position - component.prevPos) / Time.deltaTime; component.prevPos = ((Component)__instance).transform.position; if (!NetConfigVariables.playerExplodesOnLandNet.Value || __instance.thisController.isGrounded == component.prevGroundedState) { return; } component.prevGroundedState = __instance.thisController.isGrounded; if (TMEUtils.shipState != "LANDED") { return; } if (__instance.thisController.isGrounded) { if (!(component.startedFallingHeight - ((Component)__instance).transform.position.y < NetConfigVariables.distanceToCauseExplosionNet.Value) && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForPlayerToExplodeOnLandNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Player landed causing explosive event."); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } else { component.startedFallingHeight = ((Component)__instance).transform.position.y; } } } [HarmonyPatch(typeof(StartOfRound))] internal class StartOfRoundPatcher { [HarmonyPatch("Start")] [HarmonyPrefix] private static void spawnNetManagers(StartOfRound __instance) { if (((NetworkBehaviour)__instance).IsHost) { GameObject val = Object.Instantiate<GameObject>(Content.tmeNetcodeObject); val.GetComponent<NetworkObject>().Spawn(false); } } [HarmonyPatch("Start")] [HarmonyPostfix] private static void getMonsters(StartOfRound __instance) { TMEUtils.landmineRef = TMEUtils.findMapItem("Landmine"); } [HarmonyPatch("Update")] [HarmonyPrefix] public static void updateShipState(StartOfRound __instance) { TMEUtils.shipState = TMEUtils.determineShipState(__instance); } [HarmonyPatch("ShipLeave")] [HarmonyPostfix] public static void replaceLandminesOnShipLeave() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown Scene sceneByName = SceneManager.GetSceneByName("SampleSceneRelay"); Scene val = sceneByName; GameObject[] rootGameObjects = ((Scene)(ref val)).GetRootGameObjects(); for (int i = 0; i < rootGameObjects.Length; i++) { if (!(((Object)rootGameObjects[i]).name == "Landmine(Clone)")) { continue; } if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Found a Landmine"); } Landmine componentInChildren = rootGameObjects[i].GetComponentInChildren<Landmine>(); if (!((Object)componentInChildren != (Object)null) || componentInChildren.hasExploded) { continue; } if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Found a Landmine 2"); } LandmineExtension componentInChildren2 = rootGameObjects[i].GetComponentInChildren<LandmineExtension>(); if ((Object)componentInChildren2 != (Object)null) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Found a Landmine 3"); } componentInChildren2.destroyLandmineServerRpc(); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Switching A Landmine"); } } } } } internal class _Patcher { public static void ApplyPatches(Harmony harmony) { harmony.PatchAll(typeof(Plugin)); harmony.PatchAll(typeof(GameNetworkManagerPatcher)); harmony.PatchAll(typeof(NetworkObjectPatcher)); harmony.PatchAll(typeof(PlayerControllerBPatcher)); harmony.PatchAll(typeof(StartOfRoundPatcher)); _EnemyAIPatcher.ApplyObjectPatches(harmony); _ObjectPatcher.ApplyObjectPatches(harmony); } } } namespace TooManyExplosions.Patchers.Objects { [HarmonyPatch(typeof(GiftBoxItem))] internal class GiftBoxItemPatcher { [HarmonyPatch("ItemActivate")] [HarmonyPrefix] public static bool explodeOnUse(GiftBoxItem __instance, ref bool ___hasUsedGift) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)((GrabbableObject)__instance).playerHeldBy == (Object)null) && !___hasUsedGift) { if (!((NetworkBehaviour)__instance).IsOwner) { return true; } if (!NetConfigVariables.explosionOnItemUseNet.Value) { return true; } if (TMEUtils.doesEventTrigger(NetConfigVariables.chanceForExplosionOnItemUseNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Item use caused explosive event."); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } return true; } } [HarmonyPatch(typeof(Landmine))] internal class LandminePatcher : NetworkBehaviour { [HarmonyPatch("SetOffMineAnimation")] [HarmonyPostfix] public static void disableCollider(Landmine __instance) { GameObject gameObject = ((Component)((Component)__instance).transform.parent).gameObject; SphereCollider componentInChildren = gameObject.GetComponentInChildren<SphereCollider>(); ((Collider)componentInChildren).enabled = false; } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected internal override string __getTypeName() { return "LandminePatcher"; } } [HarmonyPatch(typeof(NoisemakerProp))] internal class NoisemakerPropPatcher { [HarmonyPatch("ItemActivate")] [HarmonyPrefix] public static bool explodeOnUse(NoisemakerProp __instance, object[] __args) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkBehaviour)__instance).IsOwner) { return true; } if (!((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)null)) { if (!NetConfigVariables.explosionOnItemUseNet.Value) { return true; } if (TMEUtils.doesEventTrigger(NetConfigVariables.chanceForExplosionOnItemUseNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Item use caused explosive event."); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } return true; } } internal class _ObjectPatcher { public static void ApplyObjectPatches(Harmony harmony) { harmony.PatchAll(typeof(LandminePatcher)); harmony.PatchAll(typeof(GiftBoxItemPatcher)); harmony.PatchAll(typeof(NoisemakerPropPatcher)); } } } namespace TooManyExplosions.Patchers.Enemies { [HarmonyPatch(typeof(BaboonBirdAI))] internal class BaboonBirdAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(BaboonBirdAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f); } } } [HarmonyPatch(typeof(ButlerEnemyAI))] internal class ButlerEnemyAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(ButlerEnemyAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 3f); } } } [HarmonyPatch(typeof(CentipedeAI))] internal class CentipedeAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(CentipedeAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } } [HarmonyPatch(typeof(CrawlerAI))] internal class CrawlerAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(CrawlerAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 3f); } } } [HarmonyPatch(typeof(DoublewingAI))] internal class DoublewingAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(DoublewingAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } } [HarmonyPatch(typeof(FlowermanAI))] internal class FlowermanAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(FlowermanAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f); } } } [HarmonyPatch(typeof(FlowerSnakeEnemy))] internal class FlowerSnakeEnemyPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(FlowerSnakeEnemy __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 1f, 25); } } } [HarmonyPatch(typeof(ForestGiantAI))] internal class ForestGiantAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(ForestGiantAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 1f, 5f); } } } [HarmonyPatch(typeof(HoarderBugAI))] internal class HoarderBugAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(HoarderBugAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 1f, 25); } } } [HarmonyPatch(typeof(MaskedPlayerEnemy))] internal class MaskedPlayerEnemyPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(MaskedPlayerEnemy __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f, 25); } } } [HarmonyPatch(typeof(MouthDogAI))] internal class MouthDogAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(MouthDogAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 3f); } } } [HarmonyPatch(typeof(NutcrackerEnemyAI))] internal class NutcrackerEnemyAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(NutcrackerEnemyAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 2.5f); } } } [HarmonyPatch(typeof(PufferAI))] internal class PufferAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(PufferAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 3f); } } } [HarmonyPatch(typeof(SandSpiderAI))] internal class SandSpiderAIPatcher { [HarmonyPatch("KillEnemy")] [HarmonyPostfix] public static void explosiveEventOnKillEnemy(SandSpiderAI __instance) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (GameNetworkManager.Instance.isHostingGame && NetConfigVariables.enemyExplodesOnDeathNet.Value && TMEUtils.doesEventTrigger(NetConfigVariables.chanceForEnemyToExplodeOnDeathNet.Value)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Enemy Death caused explosive event"); } TMEUtils.spawnExplosion(((Component)__instance).transform.position, spawnExplosionEffect: true, 0f, 3f); } } } internal class _EnemyAIPatcher { public static void ApplyObjectPatches(Harmony harmony) { harmony.PatchAll(typeof(BaboonBirdAIPatcher)); harmony.PatchAll(typeof(ButlerEnemyAIPatcher)); harmony.PatchAll(typeof(CentipedeAIPatcher)); harmony.PatchAll(typeof(CrawlerAIPatcher)); harmony.PatchAll(typeof(DoublewingAIPatcher)); harmony.PatchAll(typeof(FlowermanAIPatcher)); harmony.PatchAll(typeof(FlowerSnakeEnemyPatcher)); harmony.PatchAll(typeof(ForestGiantAIPatcher)); harmony.PatchAll(typeof(HoarderBugAIPatcher)); harmony.PatchAll(typeof(MaskedPlayerEnemyPatcher)); harmony.PatchAll(typeof(MouthDogAIPatcher)); harmony.PatchAll(typeof(NutcrackerEnemyAIPatcher)); harmony.PatchAll(typeof(PufferAIPatcher)); harmony.PatchAll(typeof(SandSpiderAIPatcher)); } } } namespace TooManyExplosions.MonoBehaviours { [RequireComponent(typeof(Rigidbody))] public class GrabbableRigidbody : PhysicsProp { internal Rigidbody rb; public PlayerControllerB playerLastHeldBy; public bool overrideLCPhysics = false; protected NetworkVariable<bool> overrideLCPhysicsNet = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); protected NetworkVariable<bool> isKinematicNet = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); public float gravity = NetConfigVariables.gravityNet.Value; public int velocityIsZeroCounter = 0; public int velocityCounterBuffer = 10; public Vector3 prevPos = Vector3.zero; public float velocityCounterTolerance = 1000f; public override void Start() { rb = ((Component)this).GetComponent<Rigidbody>(); rb.useGravity = false; ((GrabbableObject)this).itemProperties.itemSpawnsOnGround = false; ((GrabbableObject)this).Start(); EnablePhysics(enable: true); if (overrideLCPhysics) { rb.isKinematic = true; } rb.collisionDetectionMode = (CollisionDetectionMode)2; } public void EnablePhysics(bool enable) { for (int i = 0; i < ((GrabbableObject)this).propColliders.Length; i++) { if (!((Object)(object)((GrabbableObject)this).propColliders[i] == (Object)null) && !((Component)((GrabbableObject)this).propColliders[i]).gameObject.CompareTag("InteractTrigger") && !((Component)((GrabbableObject)this).propColliders[i]).gameObject.CompareTag("DoNotSet")) { ((GrabbableObject)this).propColliders[i].enabled = enable; } } rb.isKinematic = !enable; } public bool isMoving() { if (velocityIsZeroCounter > velocityCounterBuffer) { return false; } return true; } public void determineRelativeVelocity() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) bool flag = Mathf.Round(((Component)this).transform.position.x * velocityCounterTolerance) / velocityCounterTolerance == Mathf.Round(prevPos.x * velocityCounterTolerance) / velocityCounterTolerance; bool flag2 = Mathf.Round(((Component)this).transform.position.y * velocityCounterTolerance) / velocityCounterTolerance == Mathf.Round(prevPos.y * velocityCounterTolerance) / velocityCounterTolerance; bool flag3 = Mathf.Round(((Component)this).transform.position.z * velocityCounterTolerance) / velocityCounterTolerance == Mathf.Round(prevPos.z * velocityCounterTolerance) / velocityCounterTolerance; if (flag && flag2 && flag3 && velocityIsZeroCounter <= velocityCounterBuffer) { velocityIsZeroCounter++; } else { velocityIsZeroCounter = 0; } } public override void Update() { determineRelativeVelocity(); if (!((NetworkBehaviour)this).IsHost && overrideLCPhysics != overrideLCPhysicsNet.Value) { overrideLCPhysics = overrideLCPhysicsNet.Value; } else if (((NetworkBehaviour)this).IsHost && overrideLCPhysics != overrideLCPhysicsNet.Value) { overrideLCPhysicsNet.Value = overrideLCPhysics; } if (!((NetworkBehaviour)this).IsHost && rb.isKinematic != isKinematicNet.Value) { rb.isKinematic = isKinematicNet.Value; } else if (((NetworkBehaviour)this).IsHost && rb.isKinematic != isKinematicNet.Value) { isKinematicNet.Value = rb.isKinematic; } bool isHeld = ((GrabbableObject)this).isHeld; ((GrabbableObject)this).fallTime = 1f; ((GrabbableObject)this).reachedFloorTarget = true; ((GrabbableObject)this).isHeld = true; ((GrabbableObject)this).Update(); ((GrabbableObject)this).isHeld = isHeld; } public void FixedUpdate() { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (overrideLCPhysics) { if (!rb.isKinematic && !((GrabbableObject)this).isHeld) { rb.useGravity = false; rb.AddForce(Vector3.down * gravity, (ForceMode)5); } else { rb.AddForce(Vector3.zero, (ForceMode)2); } } if (overrideLCPhysics && rb.isKinematic) { rb.isKinematic = false; } if (!overrideLCPhysics && !rb.isKinematic) { rb.isKinematic = true; } } public override void LateUpdate() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_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_00b6: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)((GrabbableObject)this).parentObject != (Object)null && ((GrabbableObject)this).isHeld) { ((Component)this).transform.rotation = ((GrabbableObject)this).parentObject.rotation; ((Component)this).transform.Rotate(((GrabbableObject)this).itemProperties.rotationOffset); ((Component)this).transform.position = ((GrabbableObject)this).parentObject.position; Vector3 positionOffset = ((GrabbableObject)this).itemProperties.positionOffset; positionOffset = ((GrabbableObject)this).parentObject.rotation * positionOffset; Transform transform = ((Component)this).transform; transform.position += positionOffset; } if ((Object)(object)((GrabbableObject)this).radarIcon != (Object)null) { ((GrabbableObject)this).radarIcon.position = ((Component)this).transform.position; } prevPos = ((Component)this).transform.position; } public override void FallWithCurve() { } public void FallToGround(bool randomizePosition = false) { } public override void EquipItem() { ((PhysicsProp)this).EquipItem(); playerLastHeldBy = ((GrabbableObject)this).playerHeldBy; ((Component)this).transform.SetParent((Transform)null, true); } protected override void __initializeVariables() { if (overrideLCPhysicsNet == null) { throw new Exception("GrabbableRigidbody.overrideLCPhysicsNet cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)overrideLCPhysicsNet).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)overrideLCPhysicsNet, "overrideLCPhysicsNet"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)overrideLCPhysicsNet); if (isKinematicNet == null) { throw new Exception("GrabbableRigidbody.isKinematicNet cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)isKinematicNet).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)isKinematicNet, "isKinematicNet"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)isKinematicNet); ((PhysicsProp)this).__initializeVariables(); } protected internal override string __getTypeName() { return "GrabbableRigidbody"; } } [ExecuteAlways] internal class ThrowableLandmine : GrabbableRigidbody { private new PlayerControllerB playerLastHeldBy; public bool isThrown = false; public float throwForce = NetConfigVariables.throwForceNet.Value; public Vector3 raisedAngle = new Vector3(0f, 0.15f, 0f); public bool isHoldingButton; public bool readyingItem = false; private Coroutine readyItemCoroutine; public bool allowConversion = false; private NetworkVariable<bool> allowConversionNet = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); public bool hasSpawnedMine = false; private float t = 0f; public bool updatedPos = false; private NetworkVariable<Vector3> throwDirNet = new NetworkVariable<Vector3>(Vector3.zero, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)1); public BoxCollider collider; public override void Start() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) base.Start(); if (((NetworkBehaviour)this).IsHost) { rb.isKinematic = isKinematicNet.Value; rb.velocity = Vector3.zero; t = 0f; if (!overrideLCPhysics) { overrideLCPhysics = true; } if (TMEUtils.shipState == "LEAVING" || StartOfRound.Instance.shipIsLeaving) { overrideLCPhysics = false; } } } public override void ItemActivate(bool used, bool buttonDown = true) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.ItemActivate"); } playerLastHeldBy = ((GrabbableObject)this).playerHeldBy; isThrown = true; allowConversion = true; isHoldingButton = buttonDown; if (!readyingItem && buttonDown && ((NetworkBehaviour)this).IsOwner) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Activating Item"); } if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Kinematic: " + isKinematicNet.Value); } readyingItem = true; if (readyItemCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(readyItemCoroutine); } readyItemCoroutine = ((MonoBehaviour)this).StartCoroutine(readyActivatedItem()); } } private IEnumerator readyActivatedItem() { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.readyAimArm"); } ((GrabbableObject)this).playerHeldBy.activatingItem = true; yield return (object)new WaitForSeconds(0.35f); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.readyAimArm.t1"); } yield return (object)new WaitUntil((Func<bool>)(() => !isHoldingButton || !((GrabbableObject)this).isHeld)); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.readyAimArm.t2"); } ThrowObject(!((GrabbableObject)this).isHeld); readyingItem = false; readyItemCoroutine = null; if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.readyAimArm.End"); } } public void ThrowObject(bool cancel = false) { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.ThrowObject"); } if ((Object)(object)playerLastHeldBy == (Object)null) { return; } playerLastHeldBy.activatingItem = false; if (!cancel) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowableLandmine.ThrowObject.t1"); } ((Component)this).transform.localScale = new Vector3(1f, 1f, 1f); ((GrabbableObject)this).grabbable = false; ((GrabbableObject)this).playerHeldBy.DiscardHeldObject(false, (NetworkObject)null, default(Vector3), true); Vector3 forward = ((Component)playerLastHeldBy.gameplayCamera).transform.forward; forward += raisedAngle; PlayerControllerBExtension component = ((Component)playerLastHeldBy).gameObject.GetComponent<PlayerControllerBExtension>(); if (!((Object)(object)component == (Object)null)) { Vector3 throwVel = forward * throwForce + component.worldVelocity; ThrowObjectServerRpc(throwVel, ((Component)this).transform.position, Quaternion.identity); } } } public override void EquipItem() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) isThrown = false; updatedPos = false; base.EquipItem(); if (!overrideLCPhysics) { overrideLCPhysics = true; } ((Component)this).transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); playerLastHeldBy = ((GrabbableObject)this).playerHeldBy; hasSpawnedMine = false; allowConversion = false; if ((Object)(object)rb != (Object)null && overrideLCPhysics) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Found Rigidbody"); } rb.isKinematic = false; rb.velocity = Vector3.zero; } t = 0f; } [ServerRpc(RequireOwnership = false)] public void ThrowObjectServerRpc(Vector3 throwVel, Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: 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) 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(2942029642u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref throwVel); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2942029642u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("Throwing on server"); } ThrowObjectClientRpc(throwVel, pos, rot); } } [ClientRpc] public void ThrowObjectClientRpc(Vector3 throwVel, Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1032247209u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref throwVel); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1032247209u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("ThrowDir: " + ((object)(Vector3)(ref throwVel)).ToString()); } ((Component)this).transform.position = pos; ((Component)this).transform.rotation = rot; ((Component)this).transform.localScale = new Vector3(1f, 1f, 1f); ((GrabbableObject)this).grabbable = false; t = 0f; allowConversion = true; if (ConfigSettings.enableDebugging.Value) { LogHandler.Log($"Throwing dart with velocity: {throwVel} - Pos: {pos}"); } rb.AddForce(throwVel, (ForceMode)1); } } public override void DiscardItem() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).playerHeldBy.activatingItem = false; Vector3 val = ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.forward; val.y = 0f; val = ((Vector3)(ref val)).normalized; Vector3 position = ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.position; ((GrabbableObject)this).DiscardItem(); allowConversion = false; Transform transform = ((Component)this).transform; transform.position += val; ((Component)this).transform.rotation = Quaternion.identity; t = 0f; } [ServerRpc(RequireOwnership = false)] public void activateServerRpc(bool enabled) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2666571464u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref enabled, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2666571464u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { activateClientRpc(enabled); } } } [ClientRpc] public void activateClientRpc(bool enabled) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1573592809u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref enabled, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1573592809u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { allowConversion = enabled; } } } [ServerRpc] public void repositionServerRpc(Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Invalid comparison between Unknown and I4 //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: 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_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(542901878u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 542901878u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((Component)this).transform.position = pos; ((Component)this).transform.rotation = rot; } } [ServerRpc] public void updateGrabbableServerRpc(bool grabbableFlag) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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_00dd: 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_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2497715406u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref grabbableFlag, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2497715406u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { updateGrabbableClientRpc(grabbableFlag); } } [ClientRpc] public void updateGrabbableClientRpc(bool grabbableFlag) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1886816061u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref grabbableFlag, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1886816061u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ((GrabbableObject)this).grabbable = grabbableFlag; } } } [ServerRpc] public void forciblyUpdateTransformServerRpc(Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Invalid comparison between Unknown and I4 //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: 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_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2271369316u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2271369316u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { forciblyUpdateTransformClientRpc(pos, rot); } } [ClientRpc] public void forciblyUpdateTransformClientRpc(Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_0096: 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_00e9: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(279720723u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 279720723u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ((Component)this).transform.position = pos; ((Component)this).transform.rotation = rot; } } } [ServerRpc(RequireOwnership = false)] public void replaceThrowableLandmineToLandmineServerRpc(Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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(2012805193u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2012805193u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("TL => L Server"); } replaceThrowableLandmineToLandmineClientRpc(pos, rot); } } [ClientRpc] public void replaceThrowableLandmineToLandmineClientRpc(Vector3 pos, Quaternion rot) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_0096: 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_011c: Expected O, but got Unknown //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(384742661u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref rot); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 384742661u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("TL => L Client"); } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; FieldInfo fieldInfo = AccessTools.Field(typeof(PlayerControllerB), "currentlyGrabbingObject"); GrabbableObject val3 = (GrabbableObject)fieldInfo.GetValue(localPlayerController); if ((Object)(object)val3 != (Object)null && ((Object)val3).name == "ThrowableLandmine(Clone)" && ((Object)val3).GetInstanceID() == ((Object)this).GetInstanceID()) { localPlayerController.isGrabbingObjectAnimation = false; } if (GameNetworkManager.Instance.isHostingGame) { GameObject landmineRef = TMEUtils.landmineRef; if (!((Object)(object)landmineRef == (Object)null)) { GameObject val4 = Object.Instantiate<GameObject>(landmineRef, pos, rot); val4.GetComponent<NetworkObject>().Spawn(true); LandmineExtension componentInChildren = val4.GetComponentInChildren<LandmineExtension>(); componentInChildren.AssignCodeServerRpc(); hasSpawnedMine = true; Object.Destroy((Object)(object)((Component)((Component)this).transform).gameObject); } } } public override void Update() { //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).grabbable = true; if (t < 1f) { t += Time.deltaTime; } if (((GrabbableObject)this).isHeld) { if (!overrideLCPhysics) { overrideLCPhysics = true; } } else if (t > 0.1f && !isMoving()) { if (((NetworkBehaviour)this).IsOwner && !((GrabbableObject)this).isHeld && !updatedPos) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("IsOwner: " + ((NetworkBehaviour)this).IsOwner); } updatedPos = true; forciblyUpdateTransformServerRpc(((Component)this).transform.position, ((Component)this).transform.rotation); } if (((NetworkBehaviour)this).IsOwner && isThrown && (Object)(object)playerLastHeldBy != (Object)null && playerLastHeldBy.actualClientId == GameNetworkManager.Instance.localPlayerController.actualClientId && allowConversion) { if (TMEUtils.shipState == "LANDED") { if (!hasSpawnedMine) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("create thing"); } if (ConfigSettings.enableDebugging.Value) { Vector3 position = ((Component)this).transform.position; string? text = ((object)(Vector3)(ref position)).ToString(); Quaternion rotation = ((Component)this).transform.rotation; LogHandler.Log(text + " - " + ((object)(Quaternion)(ref rotation)).ToString()); } replaceThrowableLandmineToLandmineServerRpc(((Component)this).transform.position, ((Component)this).transform.rotation); } } else { allowConversion = false; isThrown = false; } } if (((NetworkBehaviour)this).IsHost && overrideLCPhysics) { overrideLCPhysics = false; } } base.Update(); } protected override void __initializeVariables() { if (allowConversionNet == null) { throw new Exception("ThrowableLandmine.allowConversionNet cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)allowConversionNet).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)allowConversionNet, "allowConversionNet"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)allowConversionNet); if (throwDirNet == null) { throw new Exception("ThrowableLandmine.throwDirNet cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)throwDirNet).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)throwDirNet, "throwDirNet"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)throwDirNet); base.__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_ThrowableLandmine() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2942029642u, new RpcReceiveHandler(__rpc_handler_2942029642)); NetworkManager.__rpc_func_table.Add(1032247209u, new RpcReceiveHandler(__rpc_handler_1032247209)); NetworkManager.__rpc_func_table.Add(2666571464u, new RpcReceiveHandler(__rpc_handler_2666571464)); NetworkManager.__rpc_func_table.Add(1573592809u, new RpcReceiveHandler(__rpc_handler_1573592809)); NetworkManager.__rpc_func_table.Add(542901878u, new RpcReceiveHandler(__rpc_handler_542901878)); NetworkManager.__rpc_func_table.Add(2497715406u, new RpcReceiveHandler(__rpc_handler_2497715406)); NetworkManager.__rpc_func_table.Add(1886816061u, new RpcReceiveHandler(__rpc_handler_1886816061)); NetworkManager.__rpc_func_table.Add(2271369316u, new RpcReceiveHandler(__rpc_handler_2271369316)); NetworkManager.__rpc_func_table.Add(279720723u, new RpcReceiveHandler(__rpc_handler_279720723)); NetworkManager.__rpc_func_table.Add(2012805193u, new RpcReceiveHandler(__rpc_handler_2012805193)); NetworkManager.__rpc_func_table.Add(384742661u, new RpcReceiveHandler(__rpc_handler_384742661)); } private static void __rpc_handler_2942029642(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0050: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 throwVel = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref throwVel); Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).ThrowObjectServerRpc(throwVel, pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1032247209(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0050: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 throwVel = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref throwVel); Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)2; ((ThrowableLandmine)(object)target).ThrowObjectClientRpc(throwVel, pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2666571464(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool enabled = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref enabled, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).activateServerRpc(enabled); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1573592809(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool enabled = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref enabled, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((ThrowableLandmine)(object)target).activateClientRpc(enabled); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_542901878(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).repositionServerRpc(pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2497715406(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { bool grabbableFlag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref grabbableFlag, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).updateGrabbableServerRpc(grabbableFlag); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1886816061(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool grabbableFlag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref grabbableFlag, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((ThrowableLandmine)(object)target).updateGrabbableClientRpc(grabbableFlag); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2271369316(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).forciblyUpdateTransformServerRpc(pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_279720723(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)2; ((ThrowableLandmine)(object)target).forciblyUpdateTransformClientRpc(pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2012805193(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)1; ((ThrowableLandmine)(object)target).replaceThrowableLandmineToLandmineServerRpc(pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_384742661(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 pos = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref pos); Quaternion rot = default(Quaternion); ((FastBufferReader)(ref reader)).ReadValueSafe(ref rot); target.__rpc_exec_stage = (__RpcExecStage)2; ((ThrowableLandmine)(object)target).replaceThrowableLandmineToLandmineClientRpc(pos, rot); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "ThrowableLandmine"; } } } namespace TooManyExplosions.MonoBehaviours.Extensions { internal class LandmineExtension : NetworkBehaviour { [ServerRpc(RequireOwnership = false)] public void destroyLandmineServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2954119581u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2954119581u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost)) { return; } Landmine component = ((Component)this).gameObject.GetComponent<Landmine>(); if ((Object)(object)component == (Object)null) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("LANDMINE DOES NOT EXIST"); } return; } if ((Object)(object)((NetworkBehaviour)this).NetworkObject == (Object)null) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("NetworkObject DOES NOT EXIST"); } return; } if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("LE: Destroying Landmine : SERVER"); } destroyLandmineClientRpc(); } [ClientRpc] public void destroyLandmineClientRpc() { //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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2688244454u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2688244454u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("LE: Destroying Landmine : CLIENT"); } Landmine component = ((Component)this).gameObject.GetComponent<Landmine>(); FieldInfo fieldInfo = AccessTools.Field(typeof(Landmine), "mineActivated"); fieldInfo.SetValue(component, false); if (GameNetworkManager.Instance.isHostingGame) { Vector3 position = ((Component)this).transform.parent.position; Quaternion rotation = ((Component)this).transform.parent.rotation; ((NetworkBehaviour)this).NetworkObject.Despawn(true); position.y += 0.25f; NetcodeManager.Instance.spawnLandminePropServerRpc(position, rotation); } } } [ServerRpc] public void AssignCodeServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2096302549u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2096302549u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { int idx = TMEUtils.rand.Next(RoundManager.Instance.possibleCodesForBigDoors.Length); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("TAO: " + idx + " - " + RoundManager.Instance.possibleCodesForBigDoors.Length); } AssignCodeClientRpc(idx); } } [ClientRpc] public void AssignCodeClientRpc(int idx) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1445944106u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, idx); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1445944106u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { TerminalAccessibleObject componentInParent = ((Component)this).gameObject.GetComponentInParent<TerminalAccessibleObject>(); if (ConfigSettings.enableDebugging.Value) { LogHandler.Log("SETTING TAO"); } componentInParent.SetCodeTo(idx); } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_LandmineExtension() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2954119581u, new RpcReceiveHandler(__rpc_handler_2954119581)); NetworkManager.__rpc_func_table.Add(2688244454u, new RpcReceiveHandler(__rpc_handler_2688244454)); NetworkManager.__rpc_func_table.Add(2096302549u, new RpcReceiveHandler(__rpc_handler_2096302549)); NetworkManager.__rpc_func_table.Add(1445944106u, new RpcReceiveHandler(__rpc_handler_1445944106)); } private static void __rpc_handler_2954119581(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; ((LandmineExtension)(object)target).destroyLandmineServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2688244454(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((LandmineExtension)(object)target).destroyLandmineClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2096302549(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { target.__rpc_exec_stage = (__RpcExecStage)1; ((LandmineExtension)(object)target).AssignCodeServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1445944106(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int idx = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref idx); target.__rpc_exec_stage = (__RpcExecStage)2; ((LandmineExtension)(object)target).AssignCodeClientRpc(idx); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "LandmineExtension"; } } internal class PlayerControllerBExtension : NetworkBehaviour { public bool triggeredAfterDeathExplosiveEvent = false; public bool prevGroundedState = true; public float startedFallingHeight = 0f; public Vector3 prevPos = default(Vector3); public Vector3 worldVelocity = default(Vector3); protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVaria