Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of PiggysVarietyMod v1.2.0
PiggysVarietyMod.dll
Decompiled 3 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalCompanyInputUtils.Api; using LobbyCompatibility.Enums; using LobbyCompatibility.Features; using Microsoft.CodeAnalysis; using PiggysVarietyMod.Dependencies; using PiggysVarietyMod.Utils; using TestAccount666.PiggysVarietyMod.NetcodePatcher; using TestAccountCore; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("EasyTextEffects")] [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.Components")] [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("TestAccount666.PiggysVarietyMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Add various vanilla style things.")] [assembly: AssemblyFileVersion("1.2.0.0")] [assembly: AssemblyInformationalVersion("1.2.0+4ccb3b12b674ca9e7e0b61970a1ab6384d54f3c1")] [assembly: AssemblyProduct("PiggysVarietyMod")] [assembly: AssemblyTitle("TestAccount666.PiggysVarietyMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [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 PiggysVarietyMod { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency("TestAccount666.TestAccountCore", "1.16.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInIncompatibility("Piggy.PiggyVarietyMod")] [BepInPlugin("TestAccount666.PiggysVarietyMod", "PiggysVarietyMod", "1.2.0")] public class PiggysVarietyMod : BaseUnityPlugin { public static readonly ItemInputs INPUT_ACTIONS_INSTANCE = new ItemInputs(); public static PiggysVarietyMod Instance { get; private set; } = null; internal static ManualLogSource Logger { get; private set; } = null; internal static Harmony? Harmony { get; set; } internal static void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("TestAccount666.PiggysVarietyMod"); } Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(); Logger.LogDebug((object)"Finished patching!"); } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; if (DependencyChecker.IsLobbyCompatibilityInstalled()) { Logger.LogInfo((object)"Found LobbyCompatibility Mod, initializing support :)"); LobbyCompatibilitySupport.Initialize(); } Assembly executingAssembly = Assembly.GetExecutingAssembly(); Netcode.ExecuteNetcodePatcher(executingAssembly); LoadAssetBundle("PiggyVarietyMod.AssetBundle", executingAssembly); Patch(); Logger.LogInfo((object)"TestAccount666.PiggysVarietyMod v1.2.0 has loaded!"); } private void LoadAssetBundle(string fileName, Assembly assembly) { AssetLoader.LoadBundle(assembly, fileName); AssetLoader.LoadItems(((BaseUnityPlugin)this).Config); AssetLoader.LoadShopItems(((BaseUnityPlugin)this).Config); AssetLoader.LoadHallwayHazards(((BaseUnityPlugin)this).Config); } internal static void Unpatch() { Logger.LogDebug((object)"Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } Logger.LogDebug((object)"Finished unpatching!"); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "TestAccount666.PiggysVarietyMod"; public const string PLUGIN_NAME = "PiggysVarietyMod"; public const string PLUGIN_VERSION = "1.2.0"; } } namespace PiggysVarietyMod.Utils { public class ItemInputs : LcInputActions { [InputAction(/*Could not decode attribute arguments.*/)] public InputAction RifleReloadKey { get; set; } [InputAction(/*Could not decode attribute arguments.*/)] public InputAction FireKey { get; set; } [InputAction(/*Could not decode attribute arguments.*/)] public InputAction SwitchFireModeKey { get; set; } [InputAction(/*Could not decode attribute arguments.*/)] public InputAction InspectKey { get; set; } } public static class ReferenceResolver { public static bool TryGetPlayer(int playerIndex, out PlayerControllerB player) { if (playerIndex < 0 || playerIndex >= StartOfRound.Instance.allPlayerScripts.Length) { player = null; return false; } player = StartOfRound.Instance.allPlayerScripts[playerIndex]; return Object.op_Implicit((Object)(object)player); } public static bool TryGetEnemy(Collider collider, out EnemyAI enemyAI) { EnemyAICollisionDetect val = default(EnemyAICollisionDetect); if (!((Component)collider).TryGetComponent<EnemyAICollisionDetect>(ref val) || !Object.op_Implicit((Object)(object)val.mainScript)) { enemyAI = null; return false; } enemyAI = val.mainScript; return true; } public static bool TryGetEnemy(NetworkObjectReference enemyReference, out EnemyAI enemyAI) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) NetworkObject val = NetworkObjectReference.op_Implicit(enemyReference); if (Object.op_Implicit((Object)(object)val)) { return ((Component)val).TryGetComponent<EnemyAI>(ref enemyAI); } enemyAI = null; return false; } } } namespace PiggysVarietyMod.Items { internal class RifleScript : GrabbableObject { [CompilerGenerated] private sealed class <EndInspectCoroutine>d__68 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float t; public RifleScript <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <EndInspectCoroutine>d__68(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(t); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.isInspecting = false; <>4__this.cantFire = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <FinishReloadCoroutine>d__57 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float t; public RifleScript <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <FinishReloadCoroutine>d__57(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(t); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.ammosLoaded = <>4__this.clipSize; <>4__this.isReloading = false; <>4__this.cantFire = false; <>4__this.ResetBloom(); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <FinishSwitchFireModeCoroutine>d__63 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float t; public RifleScript <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <FinishSwitchFireModeCoroutine>d__63(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(t); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.automatic = !<>4__this.automatic; <>4__this.cantFire = false; <>4__this.isSwitchingFireMode = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <ResetCantFireCoroutine>d__49 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float t; public RifleScript <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ResetCantFireCoroutine>d__49(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(t); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.cantFire = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public int gunCompatibleAmmoID = 485; public int clipSize = 30; public float fireRate = 0.085f; public bool automatic = true; private const string _BASE_AMMO_TIP = "Reload : [R]"; private const string _BASE_MODE_TIP = "Switch Fire Mode [C]"; public float baseSpread = 0.01f; public float bloomIncrease = 0.005f; public float maxBloom = 0.04f; private float _currentBloom; public float recoilVertical = 2f; public float recoilHorizontal = 0.6f; public float recoilReturnSpeed = 6f; private float _currentRecoilX; private float _currentRecoilY; private float _fireCooldown; public int ammosLoaded; public int ammoSlotToUse; public bool isReloading; public bool isInspecting; public bool isSwitchingFireMode; public bool cantFire; public Animator gunAnimator; public RuntimeAnimatorController rifleLocalAnimator; public RuntimeAnimatorController rifleRemoteAnimator; private static readonly Dictionary<ulong, RuntimeAnimatorController> _SAVED_ANIMATORS = new Dictionary<ulong, RuntimeAnimatorController>(); private AnimatorStateInfo _savedState; private float _savedNormalizedTime; private bool _savedCrouching; private bool _savedWalking; private bool _savedJumping; private bool _savedSprinting; private bool _animatorReplaced = false; public ParticleSystem shootParticle; public AudioSource audioSource; public AudioClip SFX_FireM4; public AudioClip SFX_ReloadM4; public AudioClip SFX_TriggerM4; public AudioClip SFX_SwitchFireModeM4; private static void DebugLog(string msg) { Debug.Log((object)("[PiggyVarietyMod:RifleScript] " + msg)); } public override void Start() { ammosLoaded = clipSize; _currentBloom = baseSpread; ((GrabbableObject)this).Start(); } public override void Update() { ((GrabbableObject)this).Update(); if (!((Object)(object)base.playerHeldBy == (Object)null) && !((Object)(object)base.playerHeldBy != (Object)(object)GameNetworkManager.Instance.localPlayerController) && !base.isPocketed) { _fireCooldown -= Time.deltaTime; HandleInput(); UpdateRecoilCamera(); DisplayRifleTooltip(); } } public override void GrabItem() { EnableRifleAnimator(); ((GrabbableObject)this).GrabItem(); } public override void EquipItem() { EnableRifleAnimator(); ((GrabbableObject)this).EquipItem(); } public override void PocketItem() { DisableRifleAnimator(); ((GrabbableObject)this).PocketItem(); } public override void DiscardItem() { DisableRifleAnimator(); ((GrabbableObject)this).DiscardItem(); } private void HandleInput() { if (ShouldBlockInput()) { return; } ItemInputs iNPUT_ACTIONS_INSTANCE = PiggysVarietyMod.INPUT_ACTIONS_INSTANCE; bool flag = iNPUT_ACTIONS_INSTANCE.FireKey.IsPressed(); bool flag2 = iNPUT_ACTIONS_INSTANCE.FireKey.WasPressedThisFrame(); if (flag2 && ammosLoaded <= 0) { audioSource.PlayOneShot(SFX_TriggerM4); } if (automatic) { if (flag) { TryShoot(); } } else if (flag2) { TryShoot(); } if (iNPUT_ACTIONS_INSTANCE.RifleReloadKey.WasPressedThisFrame()) { TryReload(); } if (iNPUT_ACTIONS_INSTANCE.SwitchFireModeKey.WasPressedThisFrame()) { TrySwitchFireMode(); } if (iNPUT_ACTIONS_INSTANCE.InspectKey.WasPressedThisFrame()) { TryInspect(); } } private bool ShouldBlockInput() { if ((Object)(object)base.playerHeldBy == (Object)null) { return true; } if (base.playerHeldBy.isGrabbingObjectAnimation) { return true; } if (base.playerHeldBy.isTypingChat) { return true; } if (base.playerHeldBy.inTerminalMenu) { return true; } if (base.playerHeldBy.inSpecialInteractAnimation) { return true; } if ((Object)(object)base.playerHeldBy.hoveringOverTrigger != (Object)null) { return true; } if (base.playerHeldBy.quickMenuManager.isMenuOpen) { return true; } if (base.playerHeldBy.inSpecialMenu) { return true; } return false; } private void TryShoot() { //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)base.playerHeldBy == (Object)null) && !cantFire && !isReloading && !isInspecting && !isSwitchingFireMode && !(_fireCooldown > 0f) && ammosLoaded > 0) { _fireCooldown = fireRate; cantFire = true; ((MonoBehaviour)this).StartCoroutine(ResetCantFireCoroutine(0.1f)); Vector3 position = ((Component)base.playerHeldBy.gameplayCamera).transform.position; Vector3 shootDirection = GetShootDirection(); ShootServerRpc(position, shootDirection); ApplyCameraRecoil(); IncreaseBloom(); } } [IteratorStateMachine(typeof(<ResetCantFireCoroutine>d__49))] private IEnumerator ResetCantFireCoroutine(float t) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ResetCantFireCoroutine>d__49(0) { <>4__this = this, t = t }; } [ServerRpc(RequireOwnership = false)] public void ShootServerRpc(Vector3 gunPosition, Vector3 gunForward) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3816867504u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gunPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gunForward); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3816867504u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ShootClientRpc(gunPosition, gunForward); } } } [ClientRpc] public void ShootClientRpc(Vector3 gunPosition, Vector3 gunForward) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2076814580u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gunPosition); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref gunForward); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2076814580u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; Shoot(gunPosition, gunForward); } } } public void Shoot(Vector3 gunPosition, Vector3 gunForward) { //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)base.playerHeldBy == (Object)null) { return; } float num = 80f; shootParticle.Play(true); base.playerHeldBy.playerBodyAnimator.Play("ShootM4", 4, 0f); audioSource.PlayOneShot(SFX_FireM4); ammosLoaded--; if ((Object)(object)base.playerHeldBy != (Object)(object)GameNetworkManager.Instance.localPlayerController) { return; } RaycastHit[] array = Physics.RaycastAll(gunPosition, gunForward, num, StartOfRound.Instance.collidersRoomMaskDefaultAndPlayers | 0x80000, (QueryTriggerInteraction)2); if (array.Length == 0) { return; } Array.Sort(array, (RaycastHit x, RaycastHit y) => ((RaycastHit)(ref x)).distance.CompareTo(((RaycastHit)(ref y)).distance)); RaycastHit[] array2 = array; PlayerControllerB val2 = default(PlayerControllerB); IHittable val3 = default(IHittable); for (int i = 0; i < array2.Length; i++) { RaycastHit val = array2[i]; GameObject gameObject = ((Component)((RaycastHit)(ref val)).collider).gameObject; if (gameObject.TryGetComponent<PlayerControllerB>(ref val2) && (Object)(object)val2 == (Object)(object)base.playerHeldBy) { continue; } if (gameObject.TryGetComponent<IHittable>(ref val3)) { EnemyAICollisionDetect val4 = (EnemyAICollisionDetect)(object)((val3 is EnemyAICollisionDetect) ? val3 : null); if (val4 != null) { DebugLog("Hitting Enemy = " + (object)val4); val4.mainScript.HitEnemyOnLocalClient(1, gunForward, base.playerHeldBy, true, -1); break; } PlayerControllerB val5 = (PlayerControllerB)(object)((val3 is PlayerControllerB) ? val3 : null); if (val5 != null) { DebugLog("Hitting Player = " + (object)val5); val3.Hit(1, gunForward, base.playerHeldBy, true, -1); } else { val3.Hit(1, gunForward, base.playerHeldBy, true, -1); } } else { EnemyAI componentInParent = ((Component)((RaycastHit)(ref val)).collider).GetComponentInParent<EnemyAI>(); if ((Object)(object)componentInParent != (Object)null) { componentInParent.HitEnemyOnLocalClient(1, gunForward, base.playerHeldBy, true, 1); } } break; } } private void TryReload() { if (!((Object)(object)base.playerHeldBy == (Object)null) && !isReloading && !isInspecting && !isSwitchingFireMode && ammosLoaded < clipSize) { int num = FindAmmoInInventory(); if (num != -1) { ammoSlotToUse = num; isReloading = true; cantFire = true; ReloadServerRpc(ammoSlotToUse); } } } [ServerRpc(RequireOwnership = false)] public void ReloadServerRpc(int ammoSlotIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(50184615u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, ammoSlotIndex); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 50184615u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; ReloadClientRpc(ammoSlotIndex); } } } [ClientRpc] public void ReloadClientRpc(int ammoSlotIndex) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1885630641u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, ammoSlotIndex); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1885630641u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; StartReload(ammoSlotIndex); } } } public void StartReload(int ammoSlotIndex) { ammoSlotToUse = ammoSlotIndex; isReloading = true; cantFire = true; base.playerHeldBy.playerBodyAnimator.Play("ReloadM4", 4, 0f); gunAnimator.Play("Reload", 0, 0f); audioSource.PlayOneShot(SFX_ReloadM4); base.playerHeldBy.DestroyItemInSlotAndSync(ammoSlotToUse); ammoSlotToUse = -1; float clipLength = GetClipLength("ReloadM4"); ((MonoBehaviour)this).StartCoroutine(FinishReloadCoroutine(clipLength)); } [IteratorStateMachine(typeof(<FinishReloadCoroutine>d__57))] private IEnumerator FinishReloadCoroutine(float t) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <FinishReloadCoroutine>d__57(0) { <>4__this = this, t = t }; } private int FindAmmoInInventory() { for (int i = 0; i < base.playerHeldBy.ItemSlots.Length; i++) { if ((Object)(object)base.playerHeldBy.ItemSlots[i] != (Object)null) { GunAmmo component = ((Component)base.playerHeldBy.ItemSlots[i]).GetComponent<GunAmmo>(); if ((Object)(object)component != (Object)null && component.ammoType == gunCompatibleAmmoID) { return i; } } } return -1; } private void TrySwitchFireMode() { if (!((Object)(object)base.playerHeldBy == (Object)null) && !isReloading && !isInspecting && !isSwitchingFireMode) { isSwitchingFireMode = true; cantFire = true; SwitchFireModeServerRpc(); } } [ServerRpc(RequireOwnership = false)] private void SwitchFireModeServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4047799981u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4047799981u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; SwitchFireModeClientRpc(); } } } [ClientRpc] private void SwitchFireModeClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(163424506u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 163424506u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; StartSwitchFireMode(); } } } private void StartSwitchFireMode() { isSwitchingFireMode = true; cantFire = true; base.playerHeldBy.playerBodyAnimator.Play("SwitchFireModeM4", 4, 0f); audioSource.PlayOneShot(SFX_SwitchFireModeM4); float t = GetClipLength("SwitchFireModeM4") / 2f; ((MonoBehaviour)this).StartCoroutine(FinishSwitchFireModeCoroutine(t)); } [IteratorStateMachine(typeof(<FinishSwitchFireModeCoroutine>d__63))] private IEnumerator FinishSwitchFireModeCoroutine(float t) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <FinishSwitchFireModeCoroutine>d__63(0) { <>4__this = this, t = t }; } private void TryInspect() { if (!((Object)(object)base.playerHeldBy == (Object)null) && !isReloading && !isInspecting && !isSwitchingFireMode) { isInspecting = true; cantFire = true; InspectServerRpc(); } } [ServerRpc(RequireOwnership = false)] private void InspectServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2805837038u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2805837038u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; InspectClientRpc(); } } } [ClientRpc] private void InspectClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1173771251u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1173771251u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { ((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0; StartInspect(); } } } private void StartInspect() { isInspecting = true; cantFire = true; base.playerHeldBy.playerBodyAnimator.Play("InspectM4", 4, 0f); float clipLength = GetClipLength("InspectM4"); ((MonoBehaviour)this).StartCoroutine(EndInspectCoroutine(clipLength)); } [IteratorStateMachine(typeof(<EndInspectCoroutine>d__68))] private IEnumerator EndInspectCoroutine(float t) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <EndInspectCoroutine>d__68(0) { <>4__this = this, t = t }; } private Vector3 GetShootDirection() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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) Camera gameplayCamera = base.playerHeldBy.gameplayCamera; Vector3 forward = ((Component)gameplayCamera).transform.forward; forward.x += Random.Range(0f - _currentBloom, _currentBloom); forward.y += Random.Range(0f - _currentBloom, _currentBloom); return ((Vector3)(ref forward)).normalized; } private void IncreaseBloom() { _currentBloom = Mathf.Clamp(_currentBloom + bloomIncrease, baseSpread, maxBloom); } private void ResetBloom() { _currentBloom = baseSpread; } private void ApplyCameraRecoil() { if (!((Object)(object)base.playerHeldBy == (Object)null)) { _currentRecoilY += recoilVertical; _currentRecoilX += Random.Range(0f - recoilHorizontal, recoilHorizontal); HUDManager.Instance.ShakeCamera((ScreenShakeType)0); } } private void UpdateRecoilCamera() { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)base.playerHeldBy == (Object)null)) { PlayerControllerB playerHeldBy = base.playerHeldBy; playerHeldBy.cameraUp -= _currentRecoilY * Time.deltaTime * 8f; base.playerHeldBy.cameraUp = Mathf.Clamp(base.playerHeldBy.cameraUp, -80f, 80f); base.playerHeldBy.thisPlayerBody.Rotate(Vector3.up * (_currentRecoilX * Time.deltaTime * 8f)); _currentRecoilX = Mathf.Lerp(_currentRecoilX, 0f, Time.deltaTime * recoilReturnSpeed); _currentRecoilY = Mathf.Lerp(_currentRecoilY, 0f, Time.deltaTime * recoilReturnSpeed); } } private void DisplayRifleTooltip() { string text = (automatic ? "Auto" : "Semi"); base.itemProperties.toolTips[2] = string.Format("{0} [{1}]", "Reload : [R]", ammosLoaded); base.itemProperties.toolTips[3] = "Switch Fire Mode [C] [" + text + "]"; HUDManager.Instance.ChangeControlTipMultiple(base.itemProperties.toolTips, false, base.itemProperties); } private void SaveAnimatorState(Animator anim) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) _savedState = anim.GetCurrentAnimatorStateInfo(0); _savedNormalizedTime = ((AnimatorStateInfo)(ref _savedState)).normalizedTime; _savedCrouching = anim.GetBool("crouching"); _savedWalking = anim.GetBool("Walking"); _savedJumping = anim.GetBool("Jumping"); _savedSprinting = anim.GetBool("Sprinting"); } private void RestoreAnimatorState(Animator anim) { anim.Play(((AnimatorStateInfo)(ref _savedState)).fullPathHash, 0, _savedNormalizedTime); anim.SetBool("crouching", _savedCrouching); anim.SetBool("Walking", _savedWalking); anim.SetBool("Jumping", _savedJumping); anim.SetBool("Sprinting", _savedSprinting); base.playerHeldBy.playerBodyAnimator.Play("HoldM4", 4, 0f); } private void EnableRifleAnimator() { if (!_animatorReplaced && !((Object)(object)base.playerHeldBy == (Object)null)) { if (!_SAVED_ANIMATORS.ContainsKey(base.playerHeldBy.playerClientId)) { _SAVED_ANIMATORS[base.playerHeldBy.playerClientId] = base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController; } SaveAnimatorState(base.playerHeldBy.playerBodyAnimator); if ((Object)(object)base.playerHeldBy == (Object)(object)GameNetworkManager.Instance.localPlayerController) { base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController = rifleLocalAnimator; } else { base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController = rifleRemoteAnimator; } base.playerHeldBy.playerBodyAnimator.Rebind(); base.playerHeldBy.playerBodyAnimator.Update(0f); RestoreAnimatorState(base.playerHeldBy.playerBodyAnimator); _animatorReplaced = true; } } private void DisableRifleAnimator() { if (_animatorReplaced && !((Object)(object)base.playerHeldBy == (Object)null)) { SaveAnimatorState(base.playerHeldBy.playerBodyAnimator); if (_SAVED_ANIMATORS.TryGetValue(base.playerHeldBy.playerClientId, out RuntimeAnimatorController value)) { base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController = value; _SAVED_ANIMATORS.Remove(base.playerHeldBy.playerClientId); } base.playerHeldBy.playerBodyAnimator.Rebind(); base.playerHeldBy.playerBodyAnimator.Update(0f); RestoreAnimatorState(base.playerHeldBy.playerBodyAnimator); _animatorReplaced = false; } } private float GetClipLength(string clipName) { if ((Object)(object)base.playerHeldBy == (Object)null || (Object)(object)base.playerHeldBy.playerBodyAnimator == (Object)null || (Object)(object)base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController == (Object)null) { return -1f; } AnimationClip[] animationClips = base.playerHeldBy.playerBodyAnimator.runtimeAnimatorController.animationClips; foreach (AnimationClip val in animationClips) { if (((Object)val).name == clipName) { return val.length; } } return -1f; } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3816867504u, new RpcReceiveHandler(__rpc_handler_3816867504), "ShootServerRpc"); ((NetworkBehaviour)this).__registerRpc(2076814580u, new RpcReceiveHandler(__rpc_handler_2076814580), "ShootClientRpc"); ((NetworkBehaviour)this).__registerRpc(50184615u, new RpcReceiveHandler(__rpc_handler_50184615), "ReloadServerRpc"); ((NetworkBehaviour)this).__registerRpc(1885630641u, new RpcReceiveHandler(__rpc_handler_1885630641), "ReloadClientRpc"); ((NetworkBehaviour)this).__registerRpc(4047799981u, new RpcReceiveHandler(__rpc_handler_4047799981), "SwitchFireModeServerRpc"); ((NetworkBehaviour)this).__registerRpc(163424506u, new RpcReceiveHandler(__rpc_handler_163424506), "SwitchFireModeClientRpc"); ((NetworkBehaviour)this).__registerRpc(2805837038u, new RpcReceiveHandler(__rpc_handler_2805837038), "InspectServerRpc"); ((NetworkBehaviour)this).__registerRpc(1173771251u, new RpcReceiveHandler(__rpc_handler_1173771251), "InspectClientRpc"); ((GrabbableObject)this).__initializeRpcs(); } private static void __rpc_handler_3816867504(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 gunPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gunPosition); Vector3 gunForward = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gunForward); target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).ShootServerRpc(gunPosition, gunForward); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2076814580(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { Vector3 gunPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gunPosition); Vector3 gunForward = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref gunForward); target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).ShootClientRpc(gunPosition, gunForward); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_50184615(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int ammoSlotIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref ammoSlotIndex); target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).ReloadServerRpc(ammoSlotIndex); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1885630641(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int ammoSlotIndex = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref ammoSlotIndex); target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).ReloadClientRpc(ammoSlotIndex); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4047799981(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).SwitchFireModeServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_163424506(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).SwitchFireModeClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2805837038(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).InspectServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1173771251(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((RifleScript)(object)target).InspectClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "RifleScript"; } } } namespace PiggysVarietyMod.Hazards.TeslaGate { public class TeslaGate : NetworkBehaviour { private static readonly int _POWERED_ANIMATOR_HASH = Animator.StringToHash("Powered"); private static readonly int _SPEED_ANIMATOR_HASH = Animator.StringToHash("Speed"); public Animator animator; public AudioSource shutDownSound; private float _randomSpeed = -1f; private bool _initialized; public override void OnNetworkSpawn() { if (((NetworkBehaviour)this).IsHost || ((NetworkBehaviour)this).IsServer) { if (!_initialized) { _randomSpeed = Random.Range(0.96f, 1.04f); } UseRandomOffsetClientRpc(_randomSpeed); } } private void LateUpdate() { if (animator.GetBool(_POWERED_ANIMATOR_HASH) && RoundManager.Instance.powerOffPermanently) { animator.SetBool(_POWERED_ANIMATOR_HASH, false); shutDownSound.Play(); } } [ClientRpc] public void UseRandomOffsetClientRpc(float randomSpeed) { //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_00dc: 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.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3322670014u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref randomSpeed, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3322670014u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; if (!_initialized) { _randomSpeed = randomSpeed; animator.SetFloat(_SPEED_ANIMATOR_HASH, _randomSpeed); _initialized = true; } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(3322670014u, new RpcReceiveHandler(__rpc_handler_3322670014), "UseRandomOffsetClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_3322670014(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float randomSpeed = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref randomSpeed, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((TeslaGate)(object)target).UseRandomOffsetClientRpc(randomSpeed); target.__rpc_exec_stage = (__RpcExecStage)0; } } [MethodImpl(MethodImplOptions.NoInlining)] protected internal override string __getTypeName() { return "TeslaGate"; } } public class TeslaKillTrigger : MonoBehaviour { private void OnTriggerStay(Collider other) { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) if (ReferenceResolver.TryGetEnemy(other, out EnemyAI enemyAI)) { OnEnemyTrigger(enemyAI); return; } PlayerControllerB componentInChildren = ((Component)other).GetComponentInChildren<PlayerControllerB>(); if (Object.op_Implicit((Object)(object)componentInChildren)) { PlayerControllerB localPlayerController = StartOfRound.Instance.localPlayerController; if (!((Object)(object)componentInChildren != (Object)(object)localPlayerController)) { componentInChildren.DamagePlayer(componentInChildren.health, true, true, (CauseOfDeath)11, 0, false, default(Vector3)); } } } private static void OnEnemyTrigger(EnemyAI enemyAI) { StartOfRound instance = StartOfRound.Instance; if ((instance == null || ((NetworkBehaviour)instance).IsHost || ((NetworkBehaviour)instance).IsServer) && Object.op_Implicit((Object)(object)enemyAI) && enemyAI != null && !enemyAI.isEnemyDead) { EnemyType enemyType = enemyAI.enemyType; if (enemyType != null && enemyType.canDie) { enemyAI.KillEnemyClientRpc(false); } } } } } namespace PiggysVarietyMod.Dependencies { internal static class DependencyChecker { internal static bool IsLobbyCompatibilityInstalled() { return Chainloader.PluginInfos.Values.Any((PluginInfo metadata) => metadata.Metadata.GUID.Contains("LobbyCompatibility")); } } internal static class LobbyCompatibilitySupport { internal static void Initialize() { PluginHelper.RegisterPlugin("TestAccount666.PiggysVarietyMod", new Version("1.2.0"), (CompatibilityLevel)2, (VersionStrictness)2); } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } } namespace __GEN { internal class NetworkVariableSerializationHelper { [RuntimeInitializeOnLoadMethod] internal static void InitializeSerialization() { } } } namespace TestAccount666.PiggysVarietyMod.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }