Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of EmployeeClasses v0.1.3
EmployeeClasses.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using EmployeeClasses.GUI; using EmployeeClasses.Inputs; using EmployeeClasses.NetcodePatcher; using EmployeeClasses.Patches; using EmployeeClasses.Roles; using EmployeeClasses.Util; using GameNetcodeStuff; using HarmonyLib; using LethalCompanyInputUtils.Api; using TMPro; using Unity.Netcode; using UnityEngine; using UnityEngine.Events; using UnityEngine.InputSystem; using UnityEngine.Rendering.HighDefinition; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("EmployeeClasses")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("EmployeeClasses")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("0ce88ebc-9cb4-47d2-8bb1-f10e6bcfb72e")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { } } namespace EmployeeClasses { [BepInPlugin("Jade.EmployeeClasses", "EmployeeClasses", "0.1.3")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class ModBase : BaseUnityPlugin { private const string modGUID = "Jade.EmployeeClasses"; private const string modName = "EmployeeClasses"; private const string modVersion = "0.1.3"; private readonly Harmony harmony = new Harmony("Jade.EmployeeClasses"); public static ModBase Instance; public static ManualLogSource als; public static AssetBundle assets; internal static Keybinds keybinds; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } als = Logger.CreateLogSource("Jade.EmployeeClasses"); string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); assets = AssetBundle.LoadFromFile(Path.Combine(directoryName, "employeeclasses")); if ((Object)(object)assets == (Object)null) { als.LogError((object)"Failed to load custom assets."); } keybinds = new Keybinds(); SetupKeybindCallbacks(); Sounds.Awake(); harmony.PatchAll(typeof(ModBase)); harmony.PatchAll(typeof(RoleManager)); harmony.PatchAll(typeof(StartOfRoundPatch)); harmony.PatchAll(typeof(QuickMenuManagerPatch)); harmony.PatchAll(typeof(ShovelPatch)); harmony.PatchAll(typeof(HUDManagerPatch)); harmony.PatchAll(typeof(PlayerControllerBPAtch)); harmony.PatchAll(typeof(GameNetworkManagerPatch)); harmony.PatchAll(typeof(TimeOfDayPatch)); Type[] types = Assembly.GetExecutingAssembly().GetTypes(); Type[] array = types; foreach (Type type in array) { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array2 = methods; foreach (MethodInfo methodInfo in array2) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } als.LogInfo((object)":"); als.LogInfo((object)"EmployeeClasses has loaded!"); als.LogInfo((object)":"); } public void SetupKeybindCallbacks() { keybinds.SkillKey.canceled += OnSkillKeyReleased; keybinds.SkillKey.performed += OnSkillKeyPressed; } public void OnSkillKeyPressed(CallbackContext context) { RoleManager.Instance.PressSkill(); } public void OnSkillKeyReleased(CallbackContext context) { RoleManager.Instance.ReleaseSkill(); } public static void logOutput(string msg) { als.LogInfo((object)msg); } } } namespace EmployeeClasses.Util { public static class NetworkObjectExtensions { public static IEnumerator WaitUntilSpawned(this NetworkObject networkObject) { yield return (object)new WaitUntil((Func<bool>)(() => networkObject.IsSpawned)); } private static IEnumerator RunActionAfterSpawned(NetworkObject networkObject, Action action) { yield return networkObject.WaitUntilSpawned(); action(); } public static void OnSpawn(this NetworkObject networkObject, Action action) { ((MonoBehaviour)networkObject).StartCoroutine(RunActionAfterSpawned(networkObject, action)); } } internal class Sounds { public static AudioClip beaconSound; public static AudioClip reelSound; public static AudioClip swingSound; public static AudioClip kickSound; public static AudioClip harvestSound; public static AudioClip synthSound; public static AudioClip stimSound; public static AudioClip switchSound; public static AudioClip hackSound; public static AudioClip failSound; public static Dictionary<int, AudioClip> library; public static void Awake() { beaconSound = LoadClip("Beacon"); reelSound = LoadClip("KickReel"); swingSound = LoadClip("KickSwing"); kickSound = LoadClip("KickHit"); harvestSound = LoadClip("Harvest"); synthSound = LoadClip("Synthesize"); stimSound = LoadClip("Stim"); switchSound = LoadClip("Switch"); hackSound = LoadClip("Hacking"); failSound = LoadClip("HackFail"); library = new Dictionary<int, AudioClip> { { 0, beaconSound }, { 1, reelSound }, { 2, swingSound }, { 3, kickSound }, { 4, harvestSound }, { 5, synthSound }, { 6, stimSound }, { 7, switchSound }, { 8, hackSound }, { 9, failSound } }; } public static AudioClip LoadClip(string clip) { AudioClip val = ModBase.assets.LoadAsset<AudioClip>(clip); if ((Object)(object)val == (Object)null) { ModBase.als.LogError((object)"Trouble loading Beacon clip"); } return val; } public static void PlayClipFromSource(int clip, AudioSource source, float volume) { source.PlayOneShot(library[clip], volume); } } } namespace EmployeeClasses.Roles { public class Role { public string name; public List<RoleTag> tags; public string ability; public string description; public Role(string name, List<RoleTag> tags, string ability, string description) { this.name = name; this.tags = tags; this.ability = ability; this.description = description; } public Role(string name, List<RoleTag> tags, string description) { this.name = name; this.tags = tags; ability = null; this.description = description; } } internal class RoleManager : NetworkBehaviour { private const float KICK_COST = 0.4f; public string selectedRole; public List<RoleTag> tags; public string ability; public float maxSprintSpeed = 2.25f; public float weightPenalty = 1f; public float weightPenalty1H = 1f; public float weightPenalty2H = 1f; public float oxygenReserves = 1f; private float speedMultiplier = 1f; public float fallDamage = 1f; public int attackDamage = 1; public float footstepVolume = 1f; public float scanRange = 1f; private int maxHealth = 100; public bool scanWall = false; private int threatLevel = 0; public int weightPenaltyThreshhold = 0; public float bulletDamage = 0f; public float fogVisibility = 1f; public float sprintTime = 1f; public float sprintMeter = 1f; public float battery = 1f; public bool alwaysClock = false; public float sprintMultiplier = 0.5f; public float drowningTimer = 1f; public float extract = 0f; public int charges = 0; public bool freeCharge = true; public bool stimmed = false; private GameObject headlamp; private float abilityCooldown = 0f; private float duration = 0f; private bool active = false; private Coroutine abilityRoutine; private PlayerControllerB player; public float carryWeight; public static RoleManager Instance; public int playerID; private float holdTimer; private float second = 0f; private Image extractBar; private Image batteryBar; private Image chargeBar; private Dictionary<string, int> extractValues = new Dictionary<string, int> { { "Flowerman", 75 }, { "Crawler", 50 }, { "Hoarding bug", 30 }, { "Centipede", 20 }, { "Bunker Spider", 60 }, { "Puffer", 40 }, { "Nutcracker", 60 }, { "Masked", 50 }, { "Butler", 60 }, { "Clay Surgeon", 50 }, { "MouthDog", 100 }, { "ForestGiant", 100 }, { "Baboon hawk", 50 }, { "Bush Wolf", 50 }, { "Manticoil", 20 }, { "Tulip Snake", 20 } }; private Dictionary<LevelWeatherType, float> batteryRates = new Dictionary<LevelWeatherType, float> { { (LevelWeatherType)(-1), 0.09f }, { (LevelWeatherType)2, 0.1f }, { (LevelWeatherType)1, 0.07f }, { (LevelWeatherType)5, 0.2f }, { (LevelWeatherType)3, 0.05f }, { (LevelWeatherType)0, 0.08f } }; public void Awake() { } public void CreateHUD() { extractBar = ((Component)Object.Instantiate<GameObject>(ModBase.assets.LoadAsset<GameObject>("ExtractBar"), GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD/TopLeftCorner").transform).transform.Find("Bar")).GetComponent<Image>(); ((Component)((Component)extractBar).transform.parent).gameObject.SetActive(false); chargeBar = ((Component)((Component)extractBar).transform.parent.Find("Charges")).GetComponent<Image>(); batteryBar = ((Component)Object.Instantiate<GameObject>(ModBase.assets.LoadAsset<GameObject>("BatteryBar"), GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD/TopLeftCorner").transform).transform.Find("Bar")).GetComponent<Image>(); ((Component)((Component)batteryBar).transform.parent).gameObject.SetActive(false); } public void reset() { if ((Object)(object)headlamp != (Object)null) { DestroyHeadlamp(); } selectedRole = "Employee"; sprintMeter = 1f; maxSprintSpeed = 2.25f; maxHealth = 100; weightPenalty = 1f; weightPenalty1H = 1f; weightPenalty2H = 1f; oxygenReserves = 1f; speedMultiplier = 1f; fallDamage = 1f; attackDamage = 1; footstepVolume = 1f; scanRange = 1f; threatLevel = 0; weightPenaltyThreshhold = 0; bulletDamage = 1f; alwaysClock = false; scanWall = false; holdTimer = -1f; stimmed = false; sprintTime = 1f; fogVisibility = 1f; if (charges == 0) { charges = 1; } battery = 1f; } public void changeRole(Role role) { reset(); tags = role.tags; ability = ((role.ability == null) ? null : role.ability); selectedRole = role.name; RoleTag[] array = tags.ToArray(); foreach (RoleTag roleTag in array) { if (roleTag.Id == 0) { maxSprintSpeed *= roleTag.Power; } else if (roleTag.Id == 2) { maxHealth = (int)roleTag.Power; } else if (roleTag.Id == 3) { weightPenalty = roleTag.Power; } else if (roleTag.Id == 18) { weightPenalty1H = roleTag.Power; } else if (roleTag.Id == 19) { weightPenalty2H = roleTag.Power; } else if (roleTag.Id == 4) { oxygenReserves = roleTag.Power; } else if (roleTag.Id == 1) { speedMultiplier = roleTag.Power; } else if (roleTag.Id == 5) { fallDamage = roleTag.Power; } else if (roleTag.Id == 6) { attackDamage = (int)roleTag.Power; } else if (roleTag.Id == 7) { weightPenaltyThreshhold = (int)roleTag.Power; } else if (roleTag.Id == 8) { footstepVolume = roleTag.Power; } else if (roleTag.Id == 9) { scanRange = roleTag.Power; } else if (roleTag.Id == 10) { scanWall = true; } else if (roleTag.Id == 11) { threatLevel = (int)roleTag.Power; } else if (roleTag.Id == 12) { bulletDamage = roleTag.Power; } else if (roleTag.Id == 13) { alwaysClock = true; } else if (roleTag.Id == 14) { CreateHeadlamp(); } else if (roleTag.Id == 15) { sprintTime = roleTag.Power; } else if (roleTag.Id == 16) { fogVisibility = roleTag.Power; } } if (ability == "STIM") { ((Component)((Component)extractBar).transform.parent).gameObject.SetActive(true); } else { ((Component)((Component)extractBar).transform.parent).gameObject.SetActive(false); } } public void applyRole(PlayerControllerB instance) { instance.health = maxHealth; instance.movementSpeed = 4.6f * speedMultiplier; drowningTimer = oxygenReserves; abilityCooldown = 0f; duration = 0f; active = false; if (NetworkManager.Singleton.IsHost) { ApplyRoleClientRpc(playerID, footstepVolume, selectedRole); } else { ApplyRoleServerRpc(playerID, footstepVolume, selectedRole); } } [ServerRpc(RequireOwnership = false)] public void ApplyRoleServerRpc(int id, float footstepVolume, string role) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: 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_00b0: 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) //IL_00e2: 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(2864087213u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref footstepVolume, default(ForPrimitives)); bool flag = role != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(role, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2864087213u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ApplyRoleClientRpc(id, footstepVolume, role); } } [ClientRpc] public void ApplyRoleClientRpc(int id, float footstepVolume, string role) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: 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_00b0: 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) //IL_00e2: 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(2721717499u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref footstepVolume, default(ForPrimitives)); bool flag = role != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(role, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2721717499u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[id]; ((Component)val3).GetComponent<RoleManager>().footstepVolume = footstepVolume; ((Component)val3).GetComponent<RoleManager>().selectedRole = role; ((TMP_Text)val3.usernameBillboardText).text = val3.playerUsername + "\n[" + role + "]\n\n"; } } public void SyncRoles() { if (NetworkManager.Singleton.IsHost) { BroadcastRoleClientRpc(); } else { BroadcastRoleServerRpc(); } } [ServerRpc(RequireOwnership = false)] public void BroadcastRoleServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1105422478u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1105422478u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { BroadcastRoleClientRpc(); } } } [ClientRpc] public void BroadcastRoleClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3005978444u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3005978444u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if (NetworkManager.Singleton.IsHost) { ApplyRoleClientRpc(playerID, footstepVolume, selectedRole); } else { ApplyRoleServerRpc(playerID, footstepVolume, selectedRole); } } } public void SyncClassObjects() { if (NetworkManager.Singleton.IsHost) { SyncClassObjectsClientRpc(); } else { SyncClassObjectsServerRpc(); } } [ServerRpc(RequireOwnership = false)] public void SyncClassObjectsServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(349131064u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 349131064u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SyncClassObjectsClientRpc(); } } } [ClientRpc] public void SyncClassObjectsClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3316431406u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3316431406u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { if ((Object)(object)headlamp != (Object)null) { CreateHeadlamp(); } if (NetworkManager.Singleton.IsHost) { ApplyRoleClientRpc(playerID, footstepVolume, selectedRole); } else { ApplyRoleServerRpc(playerID, footstepVolume, selectedRole); } } } public static float GetScanRange(float range) { return range * Instance.scanRange; } public float GetFootstepVolume(float volume) { return volume * Instance.footstepVolume; } public static int GetThreatLevel() { return Instance.threatLevel; } public static int GetMaxHealth(int health) { return Instance.maxHealth; } public static float GetSprintMultiplier() { return Instance.sprintMultiplier; } public static float GetSprintMeter() { return Instance.sprintMeter; } public static float GetCarryWeight(float weight) { return Instance.carryWeight; } public void Revive() { if ((Object)(object)headlamp != (Object)null) { headlamp.SetActive(false); } player = StartOfRound.Instance.localPlayerController; EndSkill(); abilityCooldown = 0f; duration = 0f; active = false; extract = 0f; stimmed = false; battery = 1f; sprintMeter = 1f; if (!freeCharge && charges < 3) { charges++; } freeCharge = true; if (NetworkManager.Singleton.IsHost) { ApplyRoleClientRpc(playerID, footstepVolume, selectedRole); } else { ApplyRoleServerRpc(playerID, footstepVolume, selectedRole); } } public void Update() { if ((Object)(object)player == (Object)null && !((Object)(object)StartOfRound.Instance.localPlayerController == (Object)null)) { player = StartOfRound.Instance.localPlayerController; playerID = Array.IndexOf(StartOfRound.Instance.allPlayerScripts, player); } } public void UpdateIt() { //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)StartOfRound.Instance.localPlayerController == (Object)null || RolesGUI.instance == null) { return; } second += Time.deltaTime; if (second >= 0.1f) { second = 0f; if (stimmed) { if ((double)player.drunkness < 0.1) { player.drunkness = 0.1f; } if (player.health <= maxHealth) { PlayerControllerB obj = player; obj.health += ((maxHealth < 100) ? 1 : (maxHealth / 100)); } if (player.health > maxHealth) { player.health = maxHealth; stimmed = false; } HUDManager.Instance.UpdateHealthUI(player.health, true); } } if ((ability == null && (Object)(object)headlamp == (Object)null) || ((!player.isPlayerControlled || StartOfRound.Instance.inShipPhase) && !NetworkManager.Singleton.IsHost)) { RolesGUI.instance.HideTip(); return; } List<string> list = new List<string>(); if (!player.isInsideFactory && battery < 1f) { battery += batteryRates[TimeOfDay.Instance.currentLevelWeather] * Time.deltaTime; if (battery > 1f) { battery = 1f; } } if ((Object)(object)headlamp != (Object)null && player.isPlayerControlled) { list.Add($"TOGGLE LAMP : [Press {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); batteryBar.fillAmount = Mathf.Lerp(batteryBar.fillAmount, battery / 1f, Mathf.SmoothStep(0f, 1f, 0.1f)); if (headlamp.activeSelf) { battery -= 0.004f * Time.deltaTime; if (battery <= 0f) { SyncLamp(active: false); } } } HoldSkill(); if (duration <= 0f && ability != null) { if (abilityCooldown > -10f) { abilityCooldown -= Time.deltaTime * 1f; } if (abilityCooldown > 0f) { list.Add(((int)abilityCooldown).ToString() ?? ""); } else if (ability == "HACK") { if (holdTimer > 0.5f) { string text = Math.Round(3f - holdTimer, 2).ToString() ?? ""; if (text.Length < 4) { text += "0"; } list.Add("HACKING : " + text); } else if (HackAvailable()) { list.Add($"HACK : [Hold {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } } else if (ability == "STIM") { extractBar.fillAmount = Mathf.Lerp(extractBar.fillAmount, extract / 100f, Mathf.SmoothStep(0f, 1f, 0.1f)); chargeBar.fillAmount = (float)charges / 3f; if (HarvestAvailable()) { list.Add($"HARVEST : [Press {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } else if (SynthesizeAvailable() || StimAvailable()) { if (StimAvailable()) { if (StimmingTeam()) { list.Add($"STIM ALLY : [Press {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } else { list.Add($"STIM SELF : [Press {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } } if (SynthesizeAvailable()) { list.Add($"SYNTHESIZE : [Hold {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } } else { RolesGUI.instance.HideTip(); } } else if (abilityCooldown <= 0f && (!(ability == "KICK") || !(sprintMeter < 0.4f))) { list.Add(ability + $": [Press {InputActionRebindingExtensions.GetBindingDisplayString(ModBase.keybinds.SkillKey, (DisplayStringOptions)0, (string)null)[0]}]"); } string text2 = ""; foreach (string item in list) { text2 = text2 + item + "\n"; } RolesGUI.instance.ShowTip(text2, new Color(50f, 50f, 50f)); } else { UpdateSkill(); duration -= Time.deltaTime * 1f; if (duration <= 0f) { EndSkill(); } } } public void PressSkill() { if (player.inTerminalMenu || player.isTypingChat) { return; } if (holdTimer == -1f) { holdTimer = 0f; } if (abilityCooldown < 0f && player.isPlayerControlled && (!StartOfRound.Instance.inShipPhase || ((NetworkBehaviour)StartOfRound.Instance).IsHost) && ability == "KICK") { TriggerKick(); if (NetworkManager.Singleton.IsHost) { TriggerClientRpc(ability, playerID); } else { TriggerServerRpc(ability, playerID); } RolesGUI.instance.HideTip(); } } public void HoldSkill() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) if (player.inTerminalMenu || player.isTypingChat) { return; } if (holdTimer > -1f) { holdTimer += Time.deltaTime; } if (holdTimer < 0.5f) { return; } if (ability == "STIM" && SynthesizeAvailable()) { TriggerSynthesize(); } else if (ability == "HACK") { if (HackAvailable()) { RoundManager.Instance.PlayAudibleNoise(((Component)player).transform.position, 30f, 1f, 0, false, 0); if (holdTimer < 0.6f) { BeginHack(); holdTimer = 0.6f; return; } if (!(holdTimer > 3f)) { return; } TriggerHack(); } else if (holdTimer >= 0.6f) { StopItemAudio(playerID); PlayClipFromItemAudio(9, playerID, 0.3f); RoundManager.Instance.PlayAudibleNoise(((Component)player).transform.position, 30f, 1f, 0, false, 0); } } holdTimer = -2f; } public void ReleaseSkill() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) if (player.inTerminalMenu || player.isTypingChat) { return; } if (holdTimer == -2f) { holdTimer = -1f; return; } if (ability == "HACK" && holdTimer >= 0.6f) { StopItemAudio(playerID); PlayClipFromItemAudio(9, playerID, 0.3f); RoundManager.Instance.PlayAudibleNoise(((Component)player).transform.position, 30f, 1f, 0, false, 0); } holdTimer = -1f; if ((Object)(object)headlamp != (Object)null && player.isPlayerControlled && !player.inTerminalMenu) { SyncLamp(!headlamp.activeSelf); } if (!(abilityCooldown < 0f) || !player.isPlayerControlled || player.inTerminalMenu || (StartOfRound.Instance.inShipPhase && !((NetworkBehaviour)StartOfRound.Instance).IsHost)) { return; } if (ability == "STIM") { if (HarvestAvailable()) { TriggerHarvest(); } else { if (!StimAvailable()) { return; } TriggerStim(); } } else { if (!(ability == "BEACON")) { return; } TriggerBeacon(); } if (NetworkManager.Singleton.IsHost) { TriggerClientRpc(ability, playerID); } else { TriggerServerRpc(ability, playerID); } RolesGUI.instance.HideTip(); } [ServerRpc(RequireOwnership = false)] public void TriggerServerRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2195629412u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2195629412u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { ModBase.als.LogInfo((object)"SRpc is working"); TriggerClientRpc(ability, playerID); } } [ClientRpc] public void TriggerClientRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2883274883u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2883274883u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { ModBase.als.LogInfo((object)"CRpc is working"); if (ability == "BEACON") { TriggerBeaconClient(playerID); } } } public void EndSkill() { if (abilityRoutine != null) { ((MonoBehaviour)player).StopCoroutine(abilityRoutine); } if (ability == "BEACON") { EndBeacon(); } else if (ability == "KICK") { EndKick(); } if (NetworkManager.Singleton.IsHost) { EndClientRpc(ability, playerID); } else { EndServerRpc(ability, playerID); } } [ServerRpc(RequireOwnership = false)] public void EndServerRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1036914643u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1036914643u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { EndClientRpc(ability, playerID); } } [ClientRpc] public void EndClientRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1753155917u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1753155917u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ability == "BEACON") { EndBeaconClient(playerID); } } public void UpdateSkill() { if (ability == "BEACON") { UpdateBeacon(); } if (NetworkManager.Singleton.IsHost) { UpdateClientRpc(ability, playerID); } else { UpdateServerRpc(ability, playerID); } } [ServerRpc(RequireOwnership = false)] public void UpdateServerRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3432153076u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3432153076u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { UpdateClientRpc(ability, playerID); } } [ClientRpc] public void UpdateClientRpc(string ability, 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4094021596u, val, (RpcDelivery)0); bool flag = ability != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(ability, false); } BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4094021596u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ability == "BEACON") { UpdateBeaconClient(playerID); } } public void PlayClipFromItemAudio(int clip, int playerID, float volume) { if (NetworkManager.Singleton.IsHost) { PlayClipFromItemAudioClientRpc(clip, playerID, volume); } else { PlayClipFromItemAudioServerRpc(clip, playerID, volume); } } [ServerRpc(RequireOwnership = false)] public void PlayClipFromItemAudioServerRpc(int clip, int playerID, float volume) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3071970631u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, clip); BytePacker.WriteValueBitPacked(val2, playerID); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3071970631u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { PlayClipFromItemAudioClientRpc(clip, playerID, volume); } } } [ClientRpc] public void PlayClipFromItemAudioClientRpc(int clip, int playerID, float volume) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3165416742u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, clip); BytePacker.WriteValueBitPacked(val2, playerID); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref volume, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3165416742u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { Sounds.PlayClipFromSource(clip, StartOfRound.Instance.allPlayerScripts[playerID].itemAudio, volume); } } } public void StopItemAudio(int playerID) { if (NetworkManager.Singleton.IsHost) { StopItemAudioClientRpc(playerID); } else { StopItemAudioServerRpc(playerID); } } [ServerRpc(RequireOwnership = false)] public void StopItemAudioServerRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3303086127u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3303086127u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { StopItemAudioClientRpc(playerID); } } } [ClientRpc] public void StopItemAudioClientRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3785438024u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3785438024u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { StartOfRound.Instance.allPlayerScripts[playerID].itemAudio.Stop(); } } } public void DestroyEnemy(int id) { if (NetworkManager.Singleton.IsHost) { DestroyEnemyClientRpc(id); } else { DestroyEnemyServerRpc(id); } } [ServerRpc(RequireOwnership = false)] public void DestroyEnemyServerRpc(int id) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(143709668u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 143709668u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { DestroyEnemyClientRpc(id); } } } [ClientRpc] public void DestroyEnemyClientRpc(int id) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1883639957u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1883639957u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { Object.Destroy((Object)(object)((Component)RoundManager.Instance.SpawnedEnemies[id]).gameObject); } } } public void TriggerBeacon() { ModBase.logOutput("Beacon activated!"); duration = 5f; abilityCooldown = 60f; } public void TriggerBeaconClient(int playerID) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) if (playerID != -1) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[playerID]; ((Component)((Component)val).transform.Find("BeaconLight")).gameObject.SetActive(true); PlayClipFromItemAudio(0, playerID, 1.2f); RoundManager.Instance.PlayAudibleNoise(((Component)val).transform.position, 80f, 3f, 0, false, 0); } } public void UpdateBeacon() { sprintMeter = 1f; } public void UpdateBeaconClient(int playerID) { //IL_0046: 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_00b2: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[playerID]; foreach (EnemyAI spawnedEnemy in RoundManager.Instance.SpawnedEnemies) { if (((Object)(object)spawnedEnemy.targetPlayer != (Object)(object)val || !spawnedEnemy.movingTowardsTargetPlayer) && Vector3.Distance(((Component)val).transform.position, ((Component)spawnedEnemy).transform.position) <= 70f) { ModBase.als.LogInfo((object)"target changed"); spawnedEnemy.targetPlayer = val; spawnedEnemy.movingTowardsTargetPlayer = true; } } RoundManager.Instance.PlayAudibleNoise(((Component)val).transform.position, 80f, 3f, 0, false, 0); } public void EndBeacon() { ModBase.logOutput("Beacon ended!"); } public void EndBeaconClient(int playerID) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[playerID]; ((Component)((Component)val).transform.Find("BeaconLight")).gameObject.SetActive(false); } public void TriggerKick() { if (!active && sprintMeter > 0.4f) { active = true; if (abilityRoutine != null) { ((MonoBehaviour)player).StopCoroutine(abilityRoutine); } abilityRoutine = ((MonoBehaviour)player).StartCoroutine(reelKick()); } } private IEnumerator reelKick() { player.activatingItem = true; player.twoHanded = true; player.playerBodyAnimator.ResetTrigger("shovelHit"); player.playerBodyAnimator.SetBool("reelingUp", true); PlayClipFromItemAudio(1, playerID, 1f); yield return (object)new WaitForSeconds(0.35f); if (!ModBase.keybinds.SkillKey.IsPressed()) { EndKick(); yield break; } ModBase.logOutput("pulled back"); yield return (object)new WaitUntil((Func<bool>)(() => !ModBase.keybinds.SkillKey.IsPressed())); ModBase.logOutput("released"); SwingKick(); yield return (object)new WaitForSeconds(0.13f); yield return (object)new WaitForEndOfFrame(); ModBase.logOutput("hit"); HitKick(); yield return (object)new WaitForSeconds(0.3f); ModBase.logOutput("done"); active = false; abilityRoutine = null; } private void SwingKick() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) player.playerBodyAnimator.SetBool("reelingUp", false); PlayClipFromItemAudio(2, playerID, 1f); player.UpdateSpecialAnimationValue(true, (short)((Component)player).transform.localEulerAngles.y, 0.4f, false); } private void HitKick() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) if (sprintMeter >= 0.4f) { sprintMeter -= 0.4f; } else { sprintMeter = 0f; } player.activatingItem = false; player.twoHanded = false; bool flag = false; bool flag2 = false; int num = -1; RaycastHit[] source = Physics.SphereCastAll(((Component)player.gameplayCamera).transform.position + ((Component)player.gameplayCamera).transform.right * -0.35f, 0.8f, ((Component)player.gameplayCamera).transform.forward, 1.5f, 11012424, (QueryTriggerInteraction)2); List<RaycastHit> list = source.OrderBy((RaycastHit x) => ((RaycastHit)(ref x)).distance).ToList(); IHittable val2 = default(IHittable); RaycastHit val3 = default(RaycastHit); for (int i = 0; i < list.Count; i++) { RaycastHit val = list[i]; if (((Component)((RaycastHit)(ref val)).transform).gameObject.layer != 8) { val = list[i]; if (((Component)((RaycastHit)(ref val)).transform).gameObject.layer != 11) { val = list[i]; if (!((Component)((RaycastHit)(ref val)).transform).TryGetComponent<IHittable>(ref val2)) { continue; } val = list[i]; if ((Object)(object)((RaycastHit)(ref val)).transform == (Object)(object)((Component)player).transform) { continue; } val = list[i]; if (!(((RaycastHit)(ref val)).point == Vector3.zero)) { Vector3 position = ((Component)player.gameplayCamera).transform.position; val = list[i]; if (Physics.Linecast(position, ((RaycastHit)(ref val)).point, ref val3, StartOfRound.Instance.collidersAndRoomMaskAndDefault)) { continue; } } flag = true; Vector3 forward = ((Component)player.gameplayCamera).transform.forward; val2.Hit(1, forward, player, true, 1); if (((object)val2).GetType() == typeof(EnemyAICollisionDetect)) { ((EnemyAICollisionDetect)val2).mainScript.SetEnemyStunned(true, 1f, (PlayerControllerB)null); if ((Object)(object)player.inAnimationWithEnemy == (Object)(object)((EnemyAICollisionDetect)val2).mainScript) { player.DamagePlayer(50, true, true, (CauseOfDeath)12, 0, false, default(Vector3)); } } flag2 = true; continue; } } flag = true; val = list[i]; string tag = ((Component)((RaycastHit)(ref val)).collider).gameObject.tag; for (int j = 0; j < StartOfRound.Instance.footstepSurfaces.Length; j++) { if (StartOfRound.Instance.footstepSurfaces[j].surfaceTag == tag) { num = j; break; } } } if (flag) { PlayClipFromItemAudio(3, playerID, 1f); Object.FindObjectOfType<RoundManager>().PlayAudibleNoise(((Component)player).transform.position, 17f, 0.8f, 0, false, 0); if (!flag2 && num != -1) { player.itemAudio.PlayOneShot(StartOfRound.Instance.footstepSurfaces[num].hitSurfaceSFX); WalkieTalkie.TransmitOneShotAudio(player.itemAudio, StartOfRound.Instance.footstepSurfaces[num].hitSurfaceSFX, 1f); } player.playerBodyAnimator.SetTrigger("shovelHit"); } if (flag2) { abilityCooldown = 0f; } } private void EndKick() { active = false; abilityRoutine = null; player.activatingItem = false; player.twoHanded = false; player.playerBodyAnimator.SetBool("reelingUp", false); } private bool HarvestAvailable() { return HarvestTargetExists() && player.isCrouching; } private bool SynthesizeAvailable() { return extract >= 50f && charges < 3; } private bool StimAvailable() { return charges > 0; } private bool StimmingTeam() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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) RaycastHit[] array = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 5f, 11012424, (QueryTriggerInteraction)2); RaycastHit[] array2 = array; PlayerControllerB val2 = default(PlayerControllerB); for (int i = 0; i < array2.Length; i++) { RaycastHit val = array2[i]; if (((Component)((RaycastHit)(ref val)).transform).TryGetComponent<PlayerControllerB>(ref val2) && !((Object)(object)((RaycastHit)(ref val)).transform == (Object)(object)((Component)player).transform) && !val2.isPlayerDead) { return true; } } return false; } private bool HarvestTargetExists() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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) RaycastHit[] array = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 2f, 11012424, (QueryTriggerInteraction)2); RaycastHit[] array2 = array; EnemyAICollisionDetect val2 = default(EnemyAICollisionDetect); for (int i = 0; i < array2.Length; i++) { RaycastHit val = array2[i]; if (((Component)((RaycastHit)(ref val)).transform).TryGetComponent<EnemyAICollisionDetect>(ref val2) && val2.mainScript.isEnemyDead) { return true; } } return false; } public void TriggerHarvest() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) RaycastHit[] array = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 2f, 11012424, (QueryTriggerInteraction)2); RaycastHit[] array2 = array; EnemyAICollisionDetect val2 = default(EnemyAICollisionDetect); for (int i = 0; i < array2.Length; i++) { RaycastHit val = array2[i]; if (((Component)((RaycastHit)(ref val)).transform).TryGetComponent<EnemyAICollisionDetect>(ref val2) && val2.mainScript.isEnemyDead) { extract += extractValues[val2.mainScript.enemyType.enemyName]; if (extract > 100f) { extract = 100f; } DestroyEnemy(Array.IndexOf(RoundManager.Instance.SpawnedEnemies.ToArray(), val2.mainScript)); PlayClipFromItemAudio(4, playerID, 1f); break; } } } public void TriggerSynthesize() { extract -= 50f; PlayClipFromItemAudio(5, playerID, 1f); charges++; } public void TriggerStim() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) freeCharge = false; if (!StimmingTeam()) { charges--; SelfStimmed(); return; } charges--; int num = -1; RaycastHit[] source = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 5f, 11012424, (QueryTriggerInteraction)2); List<RaycastHit> list = source.OrderBy((RaycastHit x) => ((RaycastHit)(ref x)).distance).ToList(); PlayerControllerB val = default(PlayerControllerB); foreach (RaycastHit item in list) { RaycastHit current = item; if (((Component)((RaycastHit)(ref current)).transform).TryGetComponent<PlayerControllerB>(ref val) && !((Object)(object)((RaycastHit)(ref current)).transform == (Object)(object)((Component)player).transform) && !val.isPlayerDead) { num = Array.IndexOf(StartOfRound.Instance.allPlayerScripts, val); ModBase.als.LogInfo((object)("Found component on " + num)); break; } } if (num == -1) { charges++; } else if (NetworkManager.Singleton.IsHost) { TriggerStimClientRpc(num); } else { TriggerStimServerRpc(num); } } [ServerRpc(RequireOwnership = false)] public void TriggerStimServerRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(778867420u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 778867420u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { TriggerStimClientRpc(playerID); } } } [ClientRpc] public void TriggerStimClientRpc(int id) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3666217866u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, id); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3666217866u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && id == Instance.playerID) { Instance.SelfStimmed(); } } } public void SelfStimmed() { PlayClipFromItemAudio(6, playerID, 1f); if (player.health >= maxHealth) { PlayerControllerB obj = player; obj.drunkness += 0.5f; } else { PlayerControllerB obj2 = player; obj2.drunkness += 0.2f; } sprintMeter += 0.2f; if (sprintMeter > 1f) { sprintMeter = 1f; } PlayerControllerB obj3 = player; obj3.health += (int)((float)maxHealth * 0.3f); if (player.health > maxHealth) { player.health = maxHealth; } player.criticallyInjured = false; stimmed = true; } private bool HackAvailable() { return HackTargetExists() && battery >= 0.15f && abilityCooldown <= 0f; } private bool HackTargetExists() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) RaycastHit[] source = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 6f, 1 << LayerMask.NameToLayer("MapHazards"), (QueryTriggerInteraction)2); List<RaycastHit> list = source.ToList(); list.AddRange(Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 6f, 1 << LayerMask.NameToLayer("Default"), (QueryTriggerInteraction)2)); TerminalAccessibleObject val = default(TerminalAccessibleObject); foreach (RaycastHit item in list) { RaycastHit current = item; if (((Component)((RaycastHit)(ref current)).transform).TryGetComponent<TerminalAccessibleObject>(ref val) && !Physics.Linecast(((Component)player.gameplayCamera).transform.position, ((RaycastHit)(ref current)).point, StartOfRound.Instance.collidersAndRoomMask)) { return true; } } return false; } private void BeginHack() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) PlayClipFromItemAudio(8, playerID, 1f); RoundManager.Instance.PlayAudibleNoise(((Component)player).transform.position, 30f, 1f, 0, false, 0); } public void TriggerHack() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_00a9: Unknown result type (might be due to invalid IL or missing references) RaycastHit[] source = Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 6f, 1 << LayerMask.NameToLayer("Default"), (QueryTriggerInteraction)2); List<RaycastHit> list = source.ToList(); list.AddRange(Physics.RaycastAll(((Component)player.gameplayCamera).transform.position, ((Component)player.gameplayCamera).transform.forward, 6f, 1 << LayerMask.NameToLayer("MapHazards"), (QueryTriggerInteraction)2)); TerminalAccessibleObject val = default(TerminalAccessibleObject); foreach (RaycastHit item in list) { RaycastHit current = item; if (((Component)((RaycastHit)(ref current)).transform).TryGetComponent<TerminalAccessibleObject>(ref val)) { val.CallFunctionFromTerminal(); battery -= 0.15f; abilityCooldown = 5f; } } } public void DestroyHeadlamp() { if (NetworkManager.Singleton.IsHost) { DestroyHeadlampClientRpc(playerID); } else { DestroyHeadlampServerRpc(playerID); } } [ServerRpc(RequireOwnership = false)] public void DestroyHeadlampServerRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(800891759u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 800891759u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { DestroyHeadlampClientRpc(playerID); } } } [ClientRpc] public void DestroyHeadlampClientRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2934874275u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2934874275u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerID]; Object.Destroy((Object)(object)((Component)val3).GetComponent<RoleManager>().headlamp); ((Component)val3).GetComponent<RoleManager>().headlamp = null; if (playerID == this.playerID) { ((Component)((Component)batteryBar).transform.parent).gameObject.SetActive(false); } } } public void CreateHeadlamp() { if (NetworkManager.Singleton.IsHost) { CreateHeadlampClientRpc(playerID); } else { CreateHeadlampServerRpc(playerID); } } [ServerRpc(RequireOwnership = false)] public void CreateHeadlampServerRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3113792946u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3113792946u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CreateHeadlampClientRpc(playerID); } } } [ClientRpc] public void CreateHeadlampClientRpc(int playerID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_019b: 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(1289725766u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1289725766u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerID]; if (!((Object)(object)((Component)val3).GetComponent<RoleManager>().headlamp != (Object)null)) { GameObject val4 = Object.Instantiate<GameObject>(ModBase.assets.LoadAsset<GameObject>("Headlamp")); ((Component)val3).GetComponent<RoleManager>().headlamp = val4; Light component = val4.GetComponent<Light>(); component.colorTemperature = 4677f; component.useColorTemperature = true; component.lightShadowCasterMode = (LightShadowCasterMode)2; component.cookie = (Texture)(object)Resources.Load<Texture2D>("flashlightCookie2 4"); val4.transform.parent = ((Component)val3).transform.Find("PlayerEye"); val4.transform.localPosition = new Vector3(-0.1f, 0.3f, 0f); val4.transform.rotation = new Quaternion(0f, 0f, 0f, 0f); val4.SetActive(false); if (playerID == this.playerID) { ((Component)((Component)batteryBar).transform.parent).gameObject.SetActive(true); } } } public void SyncLamp(bool active) { PlayClipFromItemAudio(7, playerID, 1f); if (NetworkManager.Singleton.IsHost) { SyncLampClientRpc(playerID, active); } else { SyncLampServerRpc(playerID, active); } } [ServerRpc(RequireOwnership = false)] public void SyncLampServerRpc(int playerID, bool active) { //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(2118470815u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref active, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2118470815u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SyncLampClientRpc(playerID, active); } } } [ClientRpc] public void SyncLampClientRpc(int playerID, bool active) { //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(3043169109u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, playerID); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref active, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3043169109u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { PlayerControllerB val3 = StartOfRound.Instance.allPlayerScripts[playerID]; ((Component)val3).GetComponent<RoleManager>().headlamp.SetActive(active); } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_RoleManager() { //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 //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Expected O, but got Unknown //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Expected O, but got Unknown //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Expected O, but got Unknown //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Expected O, but got Unknown //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2864087213u, new RpcReceiveHandler(__rpc_handler_2864087213)); NetworkManager.__rpc_func_table.Add(2721717499u, new RpcReceiveHandler(__rpc_handler_2721717499)); NetworkManager.__rpc_func_table.Add(1105422478u, new RpcReceiveHandler(__rpc_handler_1105422478)); NetworkManager.__rpc_func_table.Add(3005978444u, new RpcReceiveHandler(__rpc_handler_3005978444)); NetworkManager.__rpc_func_table.Add(349131064u, new RpcReceiveHandler(__rpc_handler_349131064)); NetworkManager.__rpc_func_table.Add(3316431406u, new RpcReceiveHandler(__rpc_handler_3316431406)); NetworkManager.__rpc_func_table.Add(2195629412u, new RpcReceiveHandler(__rpc_handler_2195629412)); NetworkManager.__rpc_func_table.Add(2883274883u, new RpcReceiveHandler(__rpc_handler_2883274883)); NetworkManager.__rpc_func_table.Add(1036914643u, new RpcReceiveHandler(__rpc_handler_1036914643)); NetworkManager.__rpc_func_table.Add(1753155917u, new RpcReceiveHandler(__rpc_handler_1753155917)); NetworkManager.__rpc_func_table.Add(3432153076u, new RpcReceiveHandler(__rpc_handler_3432153076)); NetworkManager.__rpc_func_table.Add(4094021596u, new RpcReceiveHandler(__rpc_handler_4094021596)); NetworkManager.__rpc_func_table.Add(3071970631u, new RpcReceiveHandler(__rpc_handler_3071970631)); NetworkManager.__rpc_func_table.Add(3165416742u, new RpcReceiveHandler(__rpc_handler_3165416742)); NetworkManager.__rpc_func_table.Add(3303086127u, new RpcReceiveHandler(__rpc_handler_3303086127)); NetworkManager.__rpc_func_table.Add(3785438024u, new RpcReceiveHandler(__rpc_handler_3785438024)); NetworkManager.__rpc_func_table.Add(143709668u, new RpcReceiveHandler(__rpc_handler_143709668)); NetworkManager.__rpc_func_table.Add(1883639957u, new RpcReceiveHandler(__rpc_handler_1883639957)); NetworkManager.__rpc_func_table.Add(778867420u, new RpcReceiveHandler(__rpc_handler_778867420)); NetworkManager.__rpc_func_table.Add(3666217866u, new RpcReceiveHandler(__rpc_handler_3666217866)); NetworkManager.__rpc_func_table.Add(800891759u, new RpcReceiveHandler(__rpc_handler_800891759)); NetworkManager.__rpc_func_table.Add(2934874275u, new RpcReceiveHandler(__rpc_handler_2934874275)); NetworkManager.__rpc_func_table.Add(3113792946u, new RpcReceiveHandler(__rpc_handler_3113792946)); NetworkManager.__rpc_func_table.Add(1289725766u, new RpcReceiveHandler(__rpc_handler_1289725766)); NetworkManager.__rpc_func_table.Add(2118470815u, new RpcReceiveHandler(__rpc_handler_2118470815)); NetworkManager.__rpc_func_table.Add(3043169109u, new RpcReceiveHandler(__rpc_handler_3043169109)); } private static void __rpc_handler_2864087213(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_0089: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int id = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref id); float num = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives)); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string role = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref role, false); } target.__rpc_exec_stage = (__RpcExecStage)1; ((RoleManager)(object)target).ApplyRoleServerRpc(id, num, role); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2721717499(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_0089: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int id = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref id); float num = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives)); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string role = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref role, false); } target.__rpc_exec_stage = (__RpcExecStage)2; ((RoleManager)(object)target).ApplyRoleClientRpc(id, num, role); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1105422478(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; ((RoleManager)(object)target).BroadcastRoleServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3005978444(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((RoleManager)(object)target).BroadcastRoleClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_349131064(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; ((RoleManager)(object)target).SyncClassObjectsServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3316431406(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((RoleManager)(object)target).SyncClassObjectsClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2195629412(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string text = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref text, false); } int num = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref num); target.__rpc_exec_stage = (__RpcExecStage)1; ((RoleManager)(object)target).TriggerServerRpc(text, num); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2883274883(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invali