Decompiled source of AddonFusion v1.1.0
AddonFusion.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AddonFusion.AddonValues; using AddonFusion.Behaviours; using AddonFusion.NetcodePatcher; using AddonFusion.Patches; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using Microsoft.CodeAnalysis; using Unity.Netcode; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("AddonFusion")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("AddonFusion")] [assembly: AssemblyTitle("AddonFusion")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { } } namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace AddonFusion { internal class Addon : MonoBehaviour { public bool hasAddon; public string addonName; public string toolTip; public bool isFlashing; public float maxSpotAngle; public void SetSpecificFields() { GrabbableObject component = ((Component)this).GetComponent<GrabbableObject>(); FlashlightItem val = (FlashlightItem)(object)((component is FlashlightItem) ? component : null); if (val != null) { isFlashing = false; maxSpotAngle = val.flashlightBulb.spotAngle; } } public void RemoveAddon() { GrabbableObject componentInParent = ((Component)this).GetComponentInParent<GrabbableObject>(); if ((Object)(object)componentInParent != (Object)null) { ScanNodeProperties componentInChildren = ((Component)componentInParent).gameObject.GetComponentInChildren<ScanNodeProperties>(); if ((Object)(object)componentInChildren != (Object)null) { string text = "\nAddon: " + addonName; if (componentInChildren.subText.Contains(text)) { componentInChildren.subText = componentInChildren.subText.Remove(componentInChildren.subText.IndexOf(text), text.Length); } else { text = "Addon: " + addonName; if (componentInChildren.subText.Contains(text)) { componentInChildren.subText = componentInChildren.subText.Remove(componentInChildren.subText.IndexOf(text), text.Length); } } } } hasAddon = false; addonName = null; toolTip = null; } } internal class AddonFusionNetworkManager : NetworkBehaviour { public static AddonFusionNetworkManager Instance; public void Awake() { Instance = this; } [ServerRpc(RequireOwnership = false)] public void DestroyObjectServerRpc(NetworkObjectReference obj) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2337963438u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2337963438u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { DestroyObjectClientRpc(obj); } } } [ClientRpc] private void DestroyObjectClientRpc(NetworkObjectReference obj) { //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)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2490752138u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2490752138u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkObjectReference)(ref obj)).TryGet(ref val3, (NetworkManager)null)) { DestroyObject(((Component)val3).gameObject.GetComponentInChildren<GrabbableObject>()); } } } [ServerRpc(RequireOwnership = false)] public void ItemExplodeServerRpc(NetworkObjectReference obj, Vector3 position) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2685597582u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2685597582u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ItemExplodeClientRpc(obj, position); } } } [ClientRpc] private void ItemExplodeClientRpc(NetworkObjectReference obj, Vector3 position) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3002418346u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3002418346u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkObjectReference)(ref obj)).TryGet(ref val3, (NetworkManager)null)) { DestroyObject(((Component)val3).gameObject.GetComponentInChildren<GrabbableObject>()); Landmine.SpawnExplosion(position, true, 5.7f, 6f, 50, 0f, (GameObject)null, false); } } } public void DestroyObject(GrabbableObject grabbableObject) { if ((Object)(object)grabbableObject != (Object)null) { FlashlightItem val = (FlashlightItem)(object)((grabbableObject is FlashlightItem) ? grabbableObject : null); if (val != null && ((GrabbableObject)val).isBeingUsed) { ((GrabbableObject)val).isBeingUsed = false; val.usingPlayerHelmetLight = false; ((Behaviour)val.flashlightBulbGlow).enabled = false; val.SwitchFlashlight(false); } grabbableObject.DestroyObjectInHand(grabbableObject.playerHeldBy); } } [ServerRpc(RequireOwnership = false)] public void BlindPlayerServerRpc(int playerId, float flashFilter) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2906441364u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref flashFilter, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2906441364u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { BlindPlayerClientRpc(playerId, flashFilter); } } } [ClientRpc] public void BlindPlayerClientRpc(int playerId, float flashFilter) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3745919737u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref flashFilter, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3745919737u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && (Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)StartOfRound.Instance.allPlayerObjects[playerId].GetComponent<PlayerControllerB>() && HUDManager.Instance.flashFilter < flashFilter) { HUDManager.Instance.flashFilter = flashFilter; } } } [ServerRpc(RequireOwnership = false)] public void SetPlayerParryingServerRpc(int playerId, bool enable) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4220854600u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref enable, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4220854600u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetPlayerParryingClientRpc(playerId, enable); } } } [ClientRpc] private void SetPlayerParryingClientRpc(int playerId, bool enable) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) 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(2902647558u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref enable, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2902647558u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB component = StartOfRound.Instance.allPlayerObjects[playerId].GetComponent<PlayerControllerB>(); PlayerAFBehaviour component2 = ((Component)component).GetComponent<PlayerAFBehaviour>(); if ((Object)(object)component != (Object)null && (Object)(object)component2 != (Object)null) { component2.isParrying = enable; } } } [ServerRpc(RequireOwnership = false)] public void ParryPlayerServerRpc(int playerId, int playerWhoHitId) { //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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1232241059u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); BytePacker.WriteValueBitPacked(val2, playerWhoHitId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1232241059u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ParryPlayerClientRpc(playerId, playerWhoHitId); } } } [ClientRpc] public void ParryPlayerClientRpc(int playerId, int playerWhoHitId) { //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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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(2412820656u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); BytePacker.WriteValueBitPacked(val2, playerWhoHitId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2412820656u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB component = StartOfRound.Instance.allPlayerObjects[playerWhoHitId].GetComponent<PlayerControllerB>(); if ((Object)(object)component != (Object)(object)GameNetworkManager.Instance.localPlayerController) { PlayerControllerB player = StartOfRound.Instance.allPlayerObjects[playerId].GetComponent<PlayerControllerB>(); PlayerControllerBPatch.AddParriedPlayer(player, component); PlayerControllerBPatch.ParryEntity(ref player, isEnemy: false); } } } [ServerRpc(RequireOwnership = false)] public void StunPlayerServerRpc(int playerId, float stunTime, bool isItemDropped, bool isPlayerImmobilized) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4057804157u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref stunTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isItemDropped, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isPlayerImmobilized, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4057804157u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost) && (isItemDropped || isPlayerImmobilized)) { StunPlayerClientRpc(playerId, stunTime, isItemDropped, isPlayerImmobilized); } } } [ClientRpc] public void StunPlayerClientRpc(int playerId, float stunTime, bool isItemDropped, bool isPlayerImmobilized) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018a: 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(4460014u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerId); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref stunTime, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isItemDropped, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isPlayerImmobilized, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4460014u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } PlayerControllerB component = StartOfRound.Instance.allPlayerObjects[playerId].GetComponent<PlayerControllerB>(); if (isItemDropped && (Object)(object)component.currentlyHeldObjectServer != (Object)null) { GrabbableObject currentlyHeldObjectServer = component.currentlyHeldObjectServer; Shovel val3 = (Shovel)(object)((currentlyHeldObjectServer is Shovel) ? currentlyHeldObjectServer : null); if (val3 != null) { val3.reelingUp = false; if (val3.reelingUpCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(val3.reelingUpCoroutine); val3.reelingUpCoroutine = null; } if ((Object)(object)component == (Object)(object)GameNetworkManager.Instance.localPlayerController) { component.DiscardHeldObject(false, (NetworkObject)null, default(Vector3), true); } } } if (isPlayerImmobilized) { ((MonoBehaviour)this).StartCoroutine(StunPlayer(component, stunTime)); } } private IEnumerator StunPlayer(PlayerControllerB player, float stunTime) { GameObject stunEffect = Object.Instantiate<GameObject>(AddonFusion.stunParticle, ((Component)player.gameplayCamera).transform.position + Vector3.up * 0.1f + ((Component)player.gameplayCamera).transform.right * -0.3f, ((Component)player).transform.rotation); stunEffect.transform.SetParent(((Component)player).transform); if ((Object)(object)player == (Object)(object)GameNetworkManager.Instance.localPlayerController) { AFUtilities.EnablePlayerActions(enable: false); player.disableLookInput = true; player.inSpecialInteractAnimation = true; player.snapToServerPosition = true; } yield return (object)new WaitForSeconds(stunTime); if ((Object)(object)player == (Object)(object)GameNetworkManager.Instance.localPlayerController) { AFUtilities.EnablePlayerActions(enable: true); player.disableLookInput = false; player.inSpecialInteractAnimation = false; player.snapToServerPosition = false; } Object.Destroy((Object)(object)stunEffect); } [ServerRpc(RequireOwnership = false)] public void StunEnemyServerRpc(NetworkObjectReference enemyObject, float stunTime, int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: 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_00ff: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3066553978u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref enemyObject, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref stunTime, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3066553978u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { StunEnemyClientRpc(enemyObject, stunTime, playerId); } } } [ClientRpc] public void StunEnemyClientRpc(NetworkObjectReference enemyObject, float stunTime, int playerId) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: 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) 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(199093389u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref enemyObject, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref stunTime, default(ForPrimitives)); BytePacker.WriteValueBitPacked(val2, playerId); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 199093389u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkObjectReference)(ref enemyObject)).TryGet(ref val3, (NetworkManager)null)) { EnemyAI componentInChildren = ((Component)val3).gameObject.GetComponentInChildren<EnemyAI>(); if (componentInChildren != null) { componentInChildren.SetEnemyStunned(true, stunTime, StartOfRound.Instance.allPlayerObjects[playerId].GetComponent<PlayerControllerB>()); } } } [ServerRpc(RequireOwnership = false)] public void RemoveSprayPaintDecalServerRpc(NetworkObjectReference obj, Vector3 position) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3892143410u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3892143410u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { RemoveSprayPaintDecalClientRpc(obj, position); } } } [ClientRpc] private void RemoveSprayPaintDecalClientRpc(NetworkObjectReference obj, Vector3 position) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: 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(265515377u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 265515377u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost) || !((NetworkObjectReference)(ref obj)).TryGet(ref val3, (NetworkManager)null)) { return; } SprayPaintItem componentInChildren = ((Component)val3).gameObject.GetComponentInChildren<SprayPaintItem>(); if (!((Object)(object)componentInChildren != (Object)null)) { return; } foreach (GameObject sprayPaintDecal in SprayPaintItem.sprayPaintDecals) { if (sprayPaintDecal.transform.position == position) { sprayPaintDecal.SetActive(false); } } } [ServerRpc(RequireOwnership = false)] public void SetAddonServerRpc(NetworkObjectReference obj, string addonName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1706949683u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); bool flag = addonName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(addonName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1706949683u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetAddonClientRpc(obj, addonName); } } [ClientRpc] public void SetAddonClientRpc(NetworkObjectReference obj, string addonName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3910001185u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); bool flag = addonName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(addonName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3910001185u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkObjectReference)(ref obj)).TryGet(ref val3, (NetworkManager)null)) { SetAddon(((Component)val3).gameObject.GetComponentInChildren<GrabbableObject>(), addonName); } } public void SetAddon(GrabbableObject grabbableObject, string addonName) { if ((Object)(object)grabbableObject != (Object)null) { Addon addon = ((Component)grabbableObject).gameObject.GetComponent<Addon>() ?? ((Component)grabbableObject).gameObject.AddComponent<Addon>(); addon.hasAddon = true; addon.addonName = addonName; } } [ServerRpc(RequireOwnership = false)] public void SetEphemeralServerRpc(NetworkObjectReference obj, int maxUse) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3454392667u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, maxUse); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3454392667u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetEphemeralClientRpc(obj, maxUse); } } } [ClientRpc] public void SetEphemeralClientRpc(NetworkObjectReference obj, int maxUse) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(680614074u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, maxUse); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 680614074u, val, (RpcDelivery)0); } NetworkObject val3 = default(NetworkObject); if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkObjectReference)(ref obj)).TryGet(ref val3, (NetworkManager)null)) { SetEphemeralItem(((Component)val3).gameObject.GetComponentInChildren<GrabbableObject>(), maxUse); } } } public void SetEphemeralItem(GrabbableObject grabbableObject, int maxUse) { //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Expected O, but got Unknown //IL_00f5: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)grabbableObject != (Object)null)) { return; } grabbableObject.itemProperties.isScrap = false; grabbableObject.scrapValue = 0; EphemeralItem ephemeralItem = ((Component)grabbableObject).gameObject.GetComponent<EphemeralItem>() ?? ((Component)grabbableObject).gameObject.AddComponent<EphemeralItem>(); ephemeralItem.isEphemeral = true; FlashlightItem val = (FlashlightItem)(object)((grabbableObject is FlashlightItem) ? grabbableObject : null); if (val != null) { ((GrabbableObject)val).insertedBattery.charge = (float)maxUse / 100f; } else { SprayPaintItem val2 = (SprayPaintItem)(object)((grabbableObject is SprayPaintItem) ? grabbableObject : null); if (val2 != null) { val2.sprayCanTank = (float)maxUse / 100f; } else { TetraChemicalItem val3 = (TetraChemicalItem)(object)((grabbableObject is TetraChemicalItem) ? grabbableObject : null); if (val3 != null) { val3.fuel = (float)maxUse / 100f; } else { ephemeralItem.maxUse = maxUse; } } } if ((Object)(object)((Component)grabbableObject).gameObject.GetComponentInChildren<ScanNodeProperties>() == (Object)null) { GameObject val4 = new GameObject("ScanNode", new Type[2] { typeof(ScanNodeProperties), typeof(BoxCollider) }); val4.layer = LayerMask.NameToLayer("ScanNode"); val4.transform.localScale = Vector3.one * 1f; val4.transform.parent = ((Component)grabbableObject).gameObject.transform; val4.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity); ScanNodeProperties component = val4.GetComponent<ScanNodeProperties>(); component.scrapValue = 0; component.creatureScanID = -1; component.nodeType = 0; component.minRange = 1; component.maxRange = 13; component.requiresLineOfSight = true; component.headerText = "Ephemeral " + grabbableObject.itemProperties.itemName; } else { ScanNodeProperties componentInChildren = ((Component)grabbableObject).gameObject.GetComponentInChildren<ScanNodeProperties>(); componentInChildren.scrapValue = 0; componentInChildren.creatureScanID = -1; componentInChildren.nodeType = 0; componentInChildren.headerText = "Ephemeral " + grabbableObject.itemProperties.itemName; componentInChildren.subText = null; } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_AddonFusionNetworkManager() { //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 //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Expected O, but got Unknown //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2337963438u, new RpcReceiveHandler(__rpc_handler_2337963438)); NetworkManager.__rpc_func_table.Add(2490752138u, new RpcReceiveHandler(__rpc_handler_2490752138)); NetworkManager.__rpc_func_table.Add(2685597582u, new RpcReceiveHandler(__rpc_handler_2685597582)); NetworkManager.__rpc_func_table.Add(3002418346u, new RpcReceiveHandler(__rpc_handler_3002418346)); NetworkManager.__rpc_func_table.Add(2906441364u, new RpcReceiveHandler(__rpc_handler_2906441364)); NetworkManager.__rpc_func_table.Add(3745919737u, new RpcReceiveHandler(__rpc_handler_3745919737)); NetworkManager.__rpc_func_table.Add(4220854600u, new RpcReceiveHandler(__rpc_handler_4220854600)); NetworkManager.__rpc_func_table.Add(2902647558u, new RpcReceiveHandler(__rpc_handler_2902647558)); NetworkManager.__rpc_func_table.Add(1232241059u, new RpcReceiveHandler(__rpc_handler_1232241059)); NetworkManager.__rpc_func_table.Add(2412820656u, new RpcReceiveHandler(__rpc_handler_2412820656)); NetworkManager.__rpc_func_table.Add(4057804157u, new RpcReceiveHandler(__rpc_handler_4057804157)); NetworkManager.__rpc_func_table.Add(4460014u, new RpcReceiveHandler(__rpc_handler_4460014)); NetworkManager.__rpc_func_table.Add(3066553978u, new RpcReceiveHandler(__rpc_handler_3066553978)); NetworkManager.__rpc_func_table.Add(199093389u, new RpcReceiveHandler(__rpc_handler_199093389)); NetworkManager.__rpc_func_table.Add(3892143410u, new RpcReceiveHandler(__rpc_handler_3892143410)); NetworkManager.__rpc_func_table.Add(265515377u, new RpcReceiveHandler(__rpc_handler_265515377)); NetworkManager.__rpc_func_table.Add(1706949683u, new RpcReceiveHandler(__rpc_handler_1706949683)); NetworkManager.__rpc_func_table.Add(3910001185u, new RpcReceiveHandler(__rpc_handler_3910001185)); NetworkManager.__rpc_func_table.Add(3454392667u, new RpcReceiveHandler(__rpc_handler_3454392667)); NetworkManager.__rpc_func_table.Add(680614074u, new RpcReceiveHandler(__rpc_handler_680614074)); } private static void __rpc_handler_2337963438(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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).DestroyObjectServerRpc(obj); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2490752138(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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).DestroyObjectClientRpc(obj); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2685597582(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); Vector3 position = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref position); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).ItemExplodeServerRpc(obj, position); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3002418346(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); Vector3 position = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref position); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).ItemExplodeClientRpc(obj, position); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2906441364(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); float flashFilter = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref flashFilter, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).BlindPlayerServerRpc(playerId, flashFilter); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3745919737(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); float flashFilter = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref flashFilter, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).BlindPlayerClientRpc(playerId, flashFilter); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4220854600(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); bool enable = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref enable, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).SetPlayerParryingServerRpc(playerId, enable); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2902647558(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); bool enable = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref enable, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).SetPlayerParryingClientRpc(playerId, enable); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1232241059(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); int playerWhoHitId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerWhoHitId); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).ParryPlayerServerRpc(playerId, playerWhoHitId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2412820656(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); int playerWhoHitId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerWhoHitId); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).ParryPlayerClientRpc(playerId, playerWhoHitId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4057804157(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); float stunTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref stunTime, default(ForPrimitives)); bool isItemDropped = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isItemDropped, default(ForPrimitives)); bool isPlayerImmobilized = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isPlayerImmobilized, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).StunPlayerServerRpc(playerId, stunTime, isItemDropped, isPlayerImmobilized); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4460014(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); float stunTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref stunTime, default(ForPrimitives)); bool isItemDropped = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isItemDropped, default(ForPrimitives)); bool isPlayerImmobilized = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isPlayerImmobilized, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).StunPlayerClientRpc(playerId, stunTime, isItemDropped, isPlayerImmobilized); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3066553978(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference enemyObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref enemyObject, default(ForNetworkSerializable)); float stunTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref stunTime, default(ForPrimitives)); int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).StunEnemyServerRpc(enemyObject, stunTime, playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_199093389(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference enemyObject = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref enemyObject, default(ForNetworkSerializable)); float stunTime = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref stunTime, default(ForPrimitives)); int playerId = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref playerId); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).StunEnemyClientRpc(enemyObject, stunTime, playerId); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3892143410(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); Vector3 position = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref position); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).RemoveSprayPaintDecalServerRpc(obj, position); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_265515377(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); Vector3 position = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref position); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).RemoveSprayPaintDecalClientRpc(obj, position); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1706949683(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string addonName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref addonName, false); } target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).SetAddonServerRpc(obj, addonName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3910001185(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string addonName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref addonName, false); } target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).SetAddonClientRpc(obj, addonName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3454392667(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); int maxUse = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref maxUse); target.__rpc_exec_stage = (__RpcExecStage)1; ((AddonFusionNetworkManager)(object)target).SetEphemeralServerRpc(obj, maxUse); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_680614074(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference obj = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref obj, default(ForNetworkSerializable)); int maxUse = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref maxUse); target.__rpc_exec_stage = (__RpcExecStage)2; ((AddonFusionNetworkManager)(object)target).SetEphemeralClientRpc(obj, maxUse); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "AddonFusionNetworkManager"; } } internal class AFUtilities { public static Addon GetAddonInstalled(Component component, string addonName) { Addon component2 = component.gameObject.GetComponent<Addon>(); if ((Object)(object)component2 != (Object)null && component2.hasAddon && !string.IsNullOrEmpty(component2.addonName) && component2.addonName.Equals(addonName)) { return component2; } return null; } public static Addon GetAddonInstalled(Component component) { Addon component2 = component.gameObject.GetComponent<Addon>(); if ((Object)(object)component2 != (Object)null && component2.hasAddon) { return component2; } return null; } public static EphemeralItem GetEphemeralItem(Component component) { EphemeralItem component2 = component.gameObject.GetComponent<EphemeralItem>(); if ((Object)(object)component2 != (Object)null && component2.isEphemeral) { return component2; } return null; } public static void EnablePlayerActions(bool enable) { string[] array = new string[11] { "Move", "Jump", "Crouch", "Interact", "ItemSecondaryUse", "ItemTertiaryUse", "ActivateItem", "SwitchItem", "InspectItem", "Emote1", "Emote2" }; string[] array2 = array; foreach (string text in array2) { if (enable) { IngamePlayerSettings.Instance.playerInput.actions.FindAction(text, false).Enable(); } else { IngamePlayerSettings.Instance.playerInput.actions.FindAction(text, false).Disable(); } } } } internal class ConfigManager { public static ConfigEntry<bool> isEphemeralEnabled; public static ConfigEntry<bool> isEphemeralDestroyEnabled; public static ConfigEntry<int> minEphemeralItem; public static ConfigEntry<int> maxEphemeralItem; public static ConfigEntry<bool> isCapsuleEnabled; public static ConfigEntry<bool> isCapsuleSpawnable; public static ConfigEntry<int> capsuleRarity; public static ConfigEntry<bool> isCapsulePurchasable; public static ConfigEntry<int> capsulePrice; public static ConfigEntry<bool> isCapsuleCharge; public static ConfigEntry<string> capsuleItemValues; public static ConfigEntry<int> maxCapsule; public static ConfigEntry<bool> isSaltTankEnabled; public static ConfigEntry<bool> isSaltTankSpawnable; public static ConfigEntry<int> saltTankRarity; public static ConfigEntry<bool> isSaltTankPurchasable; public static ConfigEntry<int> saltTankPrice; public static ConfigEntry<string> saltTankEntityValues; public static ConfigEntry<int> saltTankSpawnPerItem; public static ConfigEntry<bool> isCordEnabled; public static ConfigEntry<bool> isCordSpawnable; public static ConfigEntry<int> cordRarity; public static ConfigEntry<bool> isCordPurchasable; public static ConfigEntry<int> cordPrice; public static ConfigEntry<float> cordWindowDuration; public static ConfigEntry<float> cordSpamCooldown; public static ConfigEntry<bool> canCordStunDropItem; public static ConfigEntry<bool> canCordStunImmobilize; public static ConfigEntry<string> cordEntityValues; public static ConfigEntry<string> cordExclusions; public static ConfigEntry<int> cordSpawnPerItem; public static ConfigEntry<bool> isLensEnabled; public static ConfigEntry<bool> isLensSpawnable; public static ConfigEntry<int> lensRarity; public static ConfigEntry<bool> isLensPurchasable; public static ConfigEntry<int> lensPrice; public static ConfigEntry<string> lensEntityValues; public static ConfigEntry<string> lensExclusions; public static ConfigEntry<int> lensSpawnPerItem; public static ConfigEntry<bool> isSharpenerEnabled; public static ConfigEntry<bool> isSharpenerSpawnable; public static ConfigEntry<int> sharpenerRarity; public static ConfigEntry<bool> isSharpenerPurchasable; public static ConfigEntry<int> sharpenerPrice; public static ConfigEntry<string> sharpenerEntityValues; public static ConfigEntry<int> sharpenerSpawnPerItem; public static ConfigEntry<bool> isSenzuEnabled; public static ConfigEntry<bool> isSenzuSpawnable; public static ConfigEntry<int> senzuRarity; public static ConfigEntry<bool> isSenzuPurchasable; public static ConfigEntry<int> senzuPrice; public static ConfigEntry<float> senzuReviveDuration; public static ConfigEntry<float> senzuHealthRegenDuration; public static ConfigEntry<float> senzuStaminaRegenDuration; public static ConfigEntry<int> senzuSpawnPerItem; public static ConfigEntry<bool> isPyrethrinTankEnabled; public static ConfigEntry<bool> isPyrethrinTankSpawnable; public static ConfigEntry<int> pyrethrinTankRarity; public static ConfigEntry<bool> isPyrethrinTankPurchasable; public static ConfigEntry<int> pyrethrinTankPrice; public static ConfigEntry<string> pyrethrinTankEntityValues; public static ConfigEntry<int> pyrethrinTankSpawnPerItem; public static ConfigEntry<bool> isRepairModuleEnabled; public static ConfigEntry<bool> isRepairModuleSpawnable; public static ConfigEntry<int> repairModuleRarity; public static ConfigEntry<bool> isRepairModulePurchasable; public static ConfigEntry<int> repairModulePrice; public static ConfigEntry<int> repairModuleDuration; public static ConfigEntry<int> repairModuleProfit; public static ConfigEntry<int> repairModuleSpawnPerItem; public static ConfigEntry<bool> isEphemeralFlashEnabled; public static ConfigEntry<int> ephemeralFlashRarity; public static ConfigEntry<int> ephemeralFlashAddonRarity; public static ConfigEntry<int> ephemeralFlashMinUse; public static ConfigEntry<int> ephemeralFlashMaxUse; public static ConfigEntry<bool> isEphemeralShovelEnabled; public static ConfigEntry<int> ephemeralShovelRarity; public static ConfigEntry<int> ephemeralShovelAddonRarity; public static ConfigEntry<int> ephemeralShovelMinUse; public static ConfigEntry<int> ephemeralShovelMaxUse; public static ConfigEntry<bool> isEphemeralSprayPaintEnabled; public static ConfigEntry<int> ephemeralSprayPaintRarity; public static ConfigEntry<int> ephemeralSprayPaintAddonRarity; public static ConfigEntry<int> ephemeralSprayPaintMinUse; public static ConfigEntry<int> ephemeralSprayPaintMaxUse; public static ConfigEntry<bool> isEphemeralKnifeEnabled; public static ConfigEntry<int> ephemeralKnifeRarity; public static ConfigEntry<int> ephemeralKnifeAddonRarity; public static ConfigEntry<int> ephemeralKnifeMinUse; public static ConfigEntry<int> ephemeralKnifeMaxUse; public static ConfigEntry<bool> isEphemeralWeedKillerEnabled; public static ConfigEntry<int> ephemeralWeedKillerRarity; public static ConfigEntry<int> ephemeralWeedKillerAddonRarity; public static ConfigEntry<int> ephemeralWeedKillerMinUse; public static ConfigEntry<int> ephemeralWeedKillerMaxUse; public static ConfigEntry<bool> isEphemeralTZPEnabled; public static ConfigEntry<int> ephemeralTZPRarity; public static ConfigEntry<int> ephemeralTZPAddonRarity; public static ConfigEntry<int> ephemeralTZPMinUse; public static ConfigEntry<int> ephemeralTZPMaxUse; internal static void Load() { isEphemeralEnabled = AddonFusion.configFile.Bind<bool>("_Global_", "Enable ephemeral items", true, "Is the ephemeral items enabled?"); isEphemeralDestroyEnabled = AddonFusion.configFile.Bind<bool>("_Global_", "Enable ephemeral destruction", true, "Are ephemeral items destroyed when the ship takes off?"); minEphemeralItem = AddonFusion.configFile.Bind<int>("_Global_", "Min ephemeral item", 4, "Minimum number of ephemeral items that will spawn in the dungeon."); maxEphemeralItem = AddonFusion.configFile.Bind<int>("_Global_", "Max ephemeral item", 8, "Maximum number of ephemeral items that will spawn in the dungeon."); isCapsuleEnabled = AddonFusion.configFile.Bind<bool>("Capsule Hoi-Poi", "Enable", true, "Is the capsule Hoi-Poi enabled?"); isCapsuleSpawnable = AddonFusion.configFile.Bind<bool>("Capsule Hoi-Poi", "Spawnable", false, "Is the capsule Hoi-Poi spawnable?"); capsuleRarity = AddonFusion.configFile.Bind<int>("Capsule Hoi-Poi", "Rarity", 5, "Capsule Hoi-Poi spawn rarity"); isCapsulePurchasable = AddonFusion.configFile.Bind<bool>("Capsule Hoi-Poi", "Purchasable", true, "Is the capsule Hoi-Poi purchasable?"); capsulePrice = AddonFusion.configFile.Bind<int>("Capsule Hoi-Poi", "Price", 30, "Capsule Hoi-Poi price"); isCapsuleCharge = AddonFusion.configFile.Bind<bool>("Capsule Hoi-Poi", "Charge", true, "Can the capsule Hoi-Poi charge items?"); capsuleItemValues = AddonFusion.configFile.Bind<string>("Capsule Hoi-Poi", "Values", "default:600", "Values per item, the format is ItemName:ChargeDuration.\nChargeDuration: Time required to charge the item from empty to full capacity when it's in the capsule, in seconds."); maxCapsule = AddonFusion.configFile.Bind<int>("Capsule Hoi-Poi", "Max spawn", 2, "Max capsules to spawn"); isSaltTankEnabled = AddonFusion.configFile.Bind<bool>("Salt Tank", "Enable", true, "Is the salt tank enabled?"); isSaltTankSpawnable = AddonFusion.configFile.Bind<bool>("Salt Tank", "Spawnable", true, "Is the salt tank spawnable?"); saltTankRarity = AddonFusion.configFile.Bind<int>("Salt Tank", "Rarity", 5, "Salt tank spawn rarity"); isSaltTankPurchasable = AddonFusion.configFile.Bind<bool>("Salt Tank", "Purchasable", false, "Is the salt tank purchasable?"); saltTankPrice = AddonFusion.configFile.Bind<int>("Salt Tank", "Price", 30, "Salt tank price"); saltTankEntityValues = AddonFusion.configFile.Bind<string>("Salt Tank", "Values", "default:20:10", "Values per entity, the format is EntityName:BaseChance:AdditionalChance.\nBaseChance: Base chance for the entity to stop chasing when hit by a salted graffiti.\nAdditionalChance: Additional chance for the entity to stop chasing when hit by a salted graffiti."); saltTankSpawnPerItem = AddonFusion.configFile.Bind<int>("Salt Tank", "Spawn addon per item", 1, "If this option is enabled, it limits the number of spawnable addons based on the associated item + configured value.\nIf there is :\n- 1 spray paint without an addon -> 1 salt tank + 1 (default value) can spawn\n- 2 sprays -> 2 salt tank + 1 (default value) can spawn\n- 0 sprays -> 1 (default value) salt tank can spawn"); isCordEnabled = AddonFusion.configFile.Bind<bool>("Protective Cord", "Enable", true, "Is the protective cord enabled?"); isCordSpawnable = AddonFusion.configFile.Bind<bool>("Protective Cord", "Spawnable", true, "Is the protective cord spawnable?"); cordRarity = AddonFusion.configFile.Bind<int>("Protective Cord", "Rarity", 100, "Protective cord spawn rarity"); isCordPurchasable = AddonFusion.configFile.Bind<bool>("Protective Cord", "Purchasable", false, "Is the protective cord purchasable?"); cordPrice = AddonFusion.configFile.Bind<int>("Protective Cord", "Price", 30, "Protective cord price"); cordWindowDuration = AddonFusion.configFile.Bind<float>("Protective Cord", "Window duration", 0.35f, "Parrying window duration"); cordSpamCooldown = AddonFusion.configFile.Bind<float>("Protective Cord", "Spam cooldown", 1f, "Cooldown duration per use"); canCordStunDropItem = AddonFusion.configFile.Bind<bool>("Protective Cord", "Player item drop", true, "Does the stun cause the player to drop their weapon?"); canCordStunImmobilize = AddonFusion.configFile.Bind<bool>("Protective Cord", "Player immobilization", true, "Does the stun immobilize the player?"); cordEntityValues = AddonFusion.configFile.Bind<string>("Protective Cord", "Values", "default:10:1.5:5:100:10,Player:5:4:0:0:0,Flowerman:10:5:5:100:10,MouthDog:10:2.5:5:100:10", "Values per entity, the format is EntityName:CooldownDuration:StunDuration:SpeedBoostDuration:SpeedMultiplier:StaminaRegen.\nSpeedMultiplier: Speed multiplier percentage.\nStaminaRegen: Stamina regen percentage."); cordExclusions = AddonFusion.configFile.Bind<string>("Protective Cord", "Exclusion list", "Flowerman,MouthDog,ForestGiant", "List of creatures that will not be affected by the stun."); cordSpawnPerItem = AddonFusion.configFile.Bind<int>("Protective Cord", "Spawn addon per item", 1, "If this option is enabled, it limits the number of spawnable addons based on the associated item + configured value.\nIf there is :\n- 1 shovel without an addon -> 1 protective cord + 1 (default value) can spawn\n- 2 shovels -> 2 protective cord + 1 (default value) can spawn\n- 0 shovels -> 1 (default value) protective cord can spawn"); isLensEnabled = AddonFusion.configFile.Bind<bool>("Flashlight Lens", "Enable", true, "Is the flashlight lens enabled?"); isLensSpawnable = AddonFusion.configFile.Bind<bool>("Flashlight Lens", "Spawnable", true, "Is the flashlight lens spawnable?"); lensRarity = AddonFusion.configFile.Bind<int>("Flashlight Lens", "Rarity", 100, "Flashlight lens spawn rarity"); isLensPurchasable = AddonFusion.configFile.Bind<bool>("Flashlight Lens", "Purchasable", false, "Is the flashlight lens purchasable?"); lensPrice = AddonFusion.configFile.Bind<int>("Flashlight Lens", "Price", 30, "Flashlight lens price"); lensEntityValues = AddonFusion.configFile.Bind<string>("Flashlight Lens", "Values", "default:2:3:15:120:10:10:0,Player:2:0:10:60:10:0:0,ForestGiant:2:4:30:120:20:20:0", "Values per entity, the format is EntityName:FlashDuration:StunDuration:LightAngle:EntityAngle:EntityDistance:ImmunityDuration:BatteryConsumption.\nFlashDuration: Time required to blind an enemy.\nLightAngle: Angle of the light in relation to the enemy's eyes - increasing this value makes aiming easier.\nEntityAngle: Angle of the enemy in relation to the flashlight - increasing this value makes blinding from an angle easier."); lensExclusions = AddonFusion.configFile.Bind<string>("Flashlight Lens", "Exclusion list", "MouthDog", "List of creatures that will not be affected by the stun."); lensSpawnPerItem = AddonFusion.configFile.Bind<int>("Flashlight Lens", "Spawn addon per item", 1, "If this option is enabled, it limits the number of spawnable addons based on the associated item + configured value.\nIf there is :\n- 1 flashlight without an addon -> 1 flashlight lens + 1 (default value) can spawn\n- 2 flashlights -> 2 flashlight lens + 1 (default value) can spawn\n- 0 flashlights -> 1 (default value) flashlight lens can spawn"); isSharpenerEnabled = AddonFusion.configFile.Bind<bool>("Blade Sharpener", "Enable", true, "Is the blade sharpener enabled?"); isSharpenerSpawnable = AddonFusion.configFile.Bind<bool>("Blade Sharpener", "Spawnable", true, "Is the blade sharpener spawnable?"); sharpenerRarity = AddonFusion.configFile.Bind<int>("Blade Sharpener", "Rarity", 5, "Blade sharpener spawn rarity"); isSharpenerPurchasable = AddonFusion.configFile.Bind<bool>("Blade Sharpener", "Purchasable", false, "Is the blade sharpener purchasable?"); sharpenerPrice = AddonFusion.configFile.Bind<int>("Blade Sharpener", "Price", 30, "Blade sharpener price"); sharpenerEntityValues = AddonFusion.configFile.Bind<string>("Blade Sharpener", "Values", "default:15:10", "Values per entity, the format is EntityName:CriticalSuccessChance:CriticalFailChance.\nCriticalSuccessChance: Chance for the player to score a critical hit and kill the enemy in one strike.\nCriticalFailChance: Chance for the player to perform a critical failure, causing the player's weapon to drop on the ground without dealing damage."); sharpenerSpawnPerItem = AddonFusion.configFile.Bind<int>("Blade Sharpener", "Spawn addon per item", 1, "If this option is enabled, it limits the number of spawnable addons based on the associated item + configured value.\nIf there is :\n- 1 knife without an addon -> 1 blade sharpener + 1 (default value) can spawn\n- 2 knives -> 2 blade sharpener + 1 (default value) can spawn\n- 0 knives -> 1 (default value) blade sharpener can spawn"); isSenzuEnabled = AddonFusion.configFile.Bind<bool>("Senzu", "Enable", true, "Is the senzu enabled?"); isSenzuSpawnable = AddonFusion.configFile.Bind<bool>("Senzu", "Spawnable", false, "Is the senzu spawnable?"); senzuRarity = AddonFusion.configFile.Bind<int>("Senzu", "Rarity", 5, "Senzu spawn rarity"); isSenzuPurchasable = AddonFusion.configFile.Bind<bool>("Senzu", "Purchasable", true, "Is the senzu purchasable?"); senzuPrice = AddonFusion.configFile.Bind<int>("Senzu", "Price", 30, "Senzu price"); senzuReviveDuration = AddonFusion.configFile.Bind<float>("Senzu", "Revive duration", 60f, "Duration during which a player can be revived."); senzuHealthRegenDuration = AddonFusion.configFile.Bind<float>("Senzu", "Health regen duration", 25f, "Time required to regen the health from 0 to max, in seconds."); senzuStaminaRegenDuration = AddonFusion.configFile.Bind<float