Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of LethalMystery v0.4.6
zeeblo.LethalMystery.dll
Decompiled 10 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalCompanyInputUtils.Api; using LethalConfig; using LethalConfig.ConfigItems; using LethalConfig.ConfigItems.Options; using LethalMystery.MainGame; using LethalMystery.Maps; using LethalMystery.Maps.Sabotages; using LethalMystery.Network; using LethalMystery.Patches; using LethalMystery.Players; using LethalMystery.Players.Abilities; using LethalMystery.UI; using LethalMystery.Utils; using LethalNetworkAPI; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using TMPro; using Unity.Netcode; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.InputSystem; 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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("zeeblo.LethalMystery")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("0.4.6.0")] [assembly: AssemblyInformationalVersion("0.4.6+2e945b6817358e1b946ffd9a0eab44006df087a0")] [assembly: AssemblyProduct("LethalMystery")] [assembly: AssemblyTitle("zeeblo.LethalMystery")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.4.6.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace LethalMystery { public class Commands { public static readonly Dictionary<string, string> HelpCmds = new Dictionary<string, string> { { "vote", "/vote playerID - use in a meeting to vote a specific user. To see everyone's playerID type /ids \n /vote skip - use in a meeting to skip votting" } }; public static GrabbableObject? randomObject; public static ShotgunItem? gunObject; internal static string? msgtitle; internal static string? msgbody; internal static string NetCommandPrefix = "<size=0>LCMD:"; internal static string NetHostCommandPrefix = "<size=0>LMCMD:"; internal static string NetCommandPostfix = "</size>"; internal static string? playerwhocalled; internal static bool NonHostCommands(string command) { bool result = true; string[] array = command.Split(' '); int num = array.Length; if (num > 1) { foreach (KeyValuePair<string, string> helpCmd in HelpCmds) { if (command.StartsWith("help") && array[1].ToLower().Contains(helpCmd.Key)) { msgtitle = helpCmd.Key; msgbody = helpCmd.Value; DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return result; } } string text = array[0]; string text2 = text; if (text2 == "vote") { SetVote(array[1]); } else { result = false; } return result; } switch (command) { case "help": GetHelp(); break; case "hosthelp": GetHostHelp(); break; case "ids": GetPlayerIDs(); break; case "role": GetRole(); break; case "clear": ClearChat(); break; default: result = false; break; } return result; } internal static void ProcessCommandInput(string command) { msgtitle = "default"; msgbody = "<color=#FF0000>ERR</color>: unknown"; string[] array = command.Split(' '); if (NonHostCommands(command)) { return; } if (!Plugin.isHost) { msgtitle = "Command"; msgbody = "Unable to send command since you are not host."; return; } string text = array[0]; string text2 = text; if (text2 == "set") { SetCommands(array, array.Length); } } internal static void SendHostCommand(string commandInput) { if (Plugin.isHost) { string text = NetHostCommandPrefix + commandInput + NetCommandPostfix; HUDManager.Instance.AddTextToChatOnServer(text, -1); } } public static void ProcessNetHostCommand(string commandInput) { } public static void ProcessCommand(string commandInput) { ProcessCommandInput(commandInput); } public static void DisplayChatMessage(string chatMessage) { string item = "<color=#FFFF00>" + chatMessage + "</color>"; HUDManager.Instance.ChatMessageHistory.Add(item); UpdateChatText(); } public static void DisplayChatError(string errorMessage) { string item = "<color=#FF0000>ERROR</color>: <color=#FF0000>" + errorMessage + "</color>"; HUDManager.Instance.ChatMessageHistory.Add(item); UpdateChatText(); } private static void UpdateChatText() { ((TMP_Text)HUDManager.Instance.chatText).text = string.Join("\n", HUDManager.Instance.ChatMessageHistory); } public static string GetHelp() { msgtitle = "Available Commands:"; msgbody = Data.GetInfo("help"); DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } public static string GetHostHelp() { msgtitle = "Host Commands:"; msgbody = Data.GetInfo("hosthelp"); DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } public static string GetRole() { msgtitle = "Role:"; msgbody = "You currently have no role."; if (Roles.CurrentRole != null) { msgbody = Roles.CurrentRole.Name + ": " + Roles.CurrentRole.Desc; } DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } public static string GetPlayerIDs() { string text = ""; foreach (KeyValuePair<ulong, int> clientPlayer in StartOfRound.Instance.ClientPlayerList) { PlayerControllerB val = StartOfRound.Instance.allPlayerScripts[StartOfRound.Instance.ClientPlayerList[clientPlayer.Key]]; text += $"{val.playerUsername} || ID: {val.playerClientId}\n"; } msgtitle = "IDs:"; msgbody = text; DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } public static string SetVote(string vote) { msgtitle = "Vote:"; if (GameNetworkManager.Instance.localPlayerController.playersManager.inShipPhase) { msgbody = "You can only vote in a meeting."; } else if (vote.ToLower() == "skip") { msgbody = "You voted to skip!"; } else { if (!ulong.TryParse(vote, out var result) || !StartOfRound.Instance.ClientPlayerList.Keys.Contains(result)) { msgbody = "Invalid. Type \"/ids\" to see the available IDs \n Type \"/help vote\" to properly use this command"; DisplayChatError("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } result = ulong.Parse(vote); PlayerControllerB[] allPlayerScripts = StartOfRound.Instance.allPlayerScripts; foreach (PlayerControllerB val in allPlayerScripts) { if (val.playerClientId == result) { msgbody = "You voted " + val.playerUsername + " (ID: " + result + ")"; } } } DisplayChatMessage("<color=#FF00FF>" + msgtitle + "</color>\n" + msgbody); return msgbody + "/" + msgtitle; } private static void SetCommands(string[] command, int args) { switch (args) { case 1: DisplayChatMessage("You need to specify a set command."); break; case 3: SetRoleAmount(command[1], command[2]); break; } } public static void SetRoleAmount(string role, string num) { if (!Roles.specialRoleAmount.ContainsKey(role)) { DisplayChatError("Invalid Command"); Plugin.mls.LogInfo((object)(">>> role: " + role + " | num: " + num + " ")); } else { int num2 = StringAddons.ConvertToInt(num); int num3 = ((num2 != 0 && num2 != 1 && num2 != 2) ? 1 : num2); Roles.specialRoleAmount[role] = num3; DisplayChatMessage($"Set {role} amount to {num3}"); } } public static void ClearChat() { HUDManager.Instance.ChatMessageHistory.Clear(); UpdateChatText(); } public static void SpawnScrapFunc(string toSpawn, bool toInventory = false) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: 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) if ((Object)(object)CustomLvl.CurrentInside == (Object)null) { return; } Vector3 zero = Vector3.zero; zero = CalculateSpawnPosition(); if (!((Object)(object)Plugin.currentRound != (Object)null)) { return; } int num = Plugin.currentRound.currentLevel.spawnableScrap.Count(); bool flag = false; for (int i = 0; i < num; i++) { Item spawnableItem = Plugin.currentRound.currentLevel.spawnableScrap[i].spawnableItem; if (((Object)spawnableItem.spawnPrefab).name.ToLower().Contains(toSpawn.ToLower())) { GameObject spawnPrefab = spawnableItem.spawnPrefab; GameObject val = Object.Instantiate<GameObject>(spawnPrefab, zero, Quaternion.identity, Plugin.currentRound.spawnedScrapContainer); GrabbableObject component = val.GetComponent<GrabbableObject>(); component.startFallingPosition = zero; component.targetFloorPosition = component.GetItemFloorPosition(zero); component.SetScrapValue(10); ((NetworkBehaviour)component).NetworkObject.Spawn(false); flag = true; if (toInventory) { randomObject = component; } break; } } if (flag) { } } private static Vector3 CalculateSpawnPosition() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) Vector3 zero = Vector3.zero; Random random = new Random(); int index = random.Next(0, InsideMap.scrapLocations.ToArray().Length); return InsideMap.scrapLocations[index]; } public static void SpawnWeapons(string name) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(12f, -60f, 15f); SelectableLevel val2 = RoundManager.Instance.playersManager.levels[6]; if (name.ToLower().Contains("knife") || name == "all") { Object.Instantiate<GameObject>(val2.Enemies[11].enemyType.enemyPrefab, val, Quaternion.identity).gameObject.GetComponentInChildren<NetworkObject>().Spawn(true); } if (name.ToLower().Contains("shotgun") || name == "all") { Object.Instantiate<GameObject>(val2.Enemies[9].enemyType.enemyPrefab, val, Quaternion.identity).gameObject.GetComponentInChildren<NetworkObject>().Spawn(true); } } public static void SpawnBaby() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(((Component)Plugin.localPlayer).transform.position.x, ((Component)Plugin.localPlayer).transform.position.y + 4f, ((Component)Plugin.localPlayer).transform.position.z); SelectableLevel[] levels = RoundManager.Instance.playersManager.levels; for (int i = 0; i < levels.Length; i++) { foreach (SpawnableEnemyWithRarity enemy in levels[i].Enemies) { if (enemy.enemyType.enemyName.Contains("Maneater")) { Object.Instantiate<GameObject>(enemy.enemyType.enemyPrefab, val, Quaternion.identity).gameObject.GetComponentInChildren<NetworkObject>().Spawn(true); } } } } } [BepInPlugin("LethalMystery.zeeblo.dev", "zeeblo.LethalMystery", "0.4.6")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public const string modGUID = "LethalMystery.zeeblo.dev"; public const string modName = "zeeblo.LethalMystery"; public const string modVersion = "0.4.6"; private readonly Harmony _harmony = new Harmony("LethalMystery.zeeblo.dev"); public static Plugin? instance; public static string MainDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Replace("file:\\", ""); internal static ManualLogSource mls = Logger.CreateLogSource("LethalMystery.zeeblo.dev"); public static bool inTestMode = true; internal static SelectableLevel? currentLevel; internal static EnemyVent[]? currentLevelVents; internal static RoundManager? currentRound; internal static bool isHost; public static GameObject shipInstance; public static GameObject? sidebar; public static TextMeshProUGUI? sidebarHeaderText; public static TextMeshProUGUI? sidebarBodyText; public static PlayerControllerB localPlayer; public static Terminal terminal; public static EnemyVent enemyVent; public static string firedText = "Ejected"; public static string firedTextSub = ""; public static ulong localID; public static Controls.PlayerBinds actionInstance; public static NetHandler netHandler { get; set; } private void Awake() { netHandler = new NetHandler(); actionInstance = new Controls.PlayerBinds(); LMConfig.AllConfigs(((BaseUnityPlugin)this).Config); PatchAllStuff(); LMAssets.LoadAllAssets(); Roles.AppendRoles(); Controls.InitControls(); } private void PatchAllStuff() { _harmony.PatchAll(Assembly.GetExecutingAssembly()); } public static void ResetVariables() { if ((Object)(object)HUDManager.Instance != (Object)null) { ((Behaviour)HUDManager.Instance.loadingText).enabled = false; } if ((Object)(object)VotingUI.votingGUI != (Object)null) { Object.Destroy((Object)(object)VotingUI.votingGUI.gameObject); } UnlockableSuitPatch.ResetVars(); Meeting.MeetingDefaults(); Roles.ResetVariables(); CharacterDisplay.ResetVariables(); Tasks.ResetVariables(); AutoGiveItem.ResetVariables(); EjectPlayers.ResetVars(); Ability.ResetVars(); Controls.ResetVars(); Start.ResetVars(); Sabotage.ResetVars(); InsideMap.ResetVars(); } public static void RemoveEnvironment(bool value = true) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) GameObject obj = GameObject.Find("OutOfBoundsTerrain"); if (obj != null) { GameObject gameObject = obj.gameObject; if (gameObject != null) { gameObject.SetActive(!value); } } Scene sceneAt = SceneManager.GetSceneAt(1); GameObject[] rootGameObjects = ((Scene)(ref sceneAt)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (((Object)val).name == "Environment") { val.SetActive(!value); break; } } } public static void DespawnEnemies() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) if (!isHost) { return; } Scene sceneAt = SceneManager.GetSceneAt(0); GameObject[] rootGameObjects = ((Scene)(ref sceneAt)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (((Object)val).name.Contains("Nutcracker")) { Object.Destroy((Object)(object)val.gameObject); } if (((Object)val).name.Contains("Butler")) { Object.Destroy((Object)(object)val.gameObject); } } } public static bool FoundThisMod(string modID) { foreach (KeyValuePair<string, PluginInfo> pluginInfo in Chainloader.PluginInfos) { BepInPlugin metadata = pluginInfo.Value.Metadata; if (metadata.GUID.Equals(modID)) { return true; } } return false; } public static string GetAssetPath(string file, string parent = "Assetbundles") { string text = MainDir + "\\Assets\\" + parent + "\\" + file; string result = MainDir + "/" + file; if (File.Exists(text)) { return text; } return result; } } public static class MyPluginInfo { public const string PLUGIN_GUID = "zeeblo.LethalMystery"; public const string PLUGIN_NAME = "LethalMystery"; public const string PLUGIN_VERSION = "0.4.6"; } } namespace LethalMystery.Utils { public class Data { private class CMDInfo { public List<string>? help { get; set; } public List<string>? hosthelp { get; set; } } public static string GetInfo(string key) { string assetPath = Plugin.GetAssetPath("info.json", "data"); string text = File.ReadAllText(assetPath); CMDInfo cMDInfo = JsonConvert.DeserializeObject<CMDInfo>(text); string text2 = ""; string newValue = ((LMConfig.PrefixSetting != null) ? LMConfig.PrefixSetting.Value : "/"); if (cMDInfo == null) { return text2; } if (key == "help" && cMDInfo.help != null) { foreach (string item in cMDInfo.help) { text2 = text2 + item.Replace("[PX]", newValue) + "\n"; } } else if (key == "hosthelp" && cMDInfo.hosthelp != null) { foreach (string item2 in cMDInfo.hosthelp) { text2 = text2 + item2.Replace("[PX]", newValue) + "\n"; } } return text2; } } public class GOTools { public static void CheckForWeaponInInventoryNotif() { if (Roles.CurrentRole != null && (Roles.CurrentRole.Type == Roles.RoleType.monster || Roles.CurrentRole.Name == "sheriff") && !CheckForExistingWeapon()) { Commands.DisplayChatMessage("Press <color=#FF0000>\"" + LMConfig.spawnItemBind.Value.ToUpper() + "\"</color> to spawn and equip your weapon. (this takes a few seconds)"); } } public static bool CheckForExistingWeapon() { for (int i = 0; i < GameNetworkManager.Instance.localPlayerController.ItemSlots.Length; i++) { if ((Object)(object)GameNetworkManager.Instance.localPlayerController.ItemSlots[i] != (Object)null && (((Object)GameNetworkManager.Instance.localPlayerController.ItemSlots[i]).name.ToLower().Contains("shotgun") || ((Object)GameNetworkManager.Instance.localPlayerController.ItemSlots[i]).name.ToLower().Contains("knife"))) { return true; } } return false; } public static List<Transform> GetAllChildrenAdvanced(Transform parent, List<Transform> children = null) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown if (children == null) { children = new List<Transform>(); } foreach (Transform item in parent) { Transform val = item; children.Add(val); GetAllChildrenAdvanced(val, children); } return children; } public static List<GameObject> GetAllChildren(GameObject parent) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown List<GameObject> list = new List<GameObject>(); foreach (Transform item in parent.transform) { Transform val = item; list.Add(((Component)val).gameObject); } return list; } public static void ClearInventory() { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; for (int i = 0; i < localPlayerController.ItemSlots.Count(); i++) { if ((Object)(object)localPlayerController.ItemSlots[i] != (Object)null) { localPlayerController.DestroyItemInSlotAndSync(i); ((Behaviour)HUDManager.Instance.itemSlotIcons[i]).enabled = false; } } } public static void CleanSlot() { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; for (int i = 0; i < localPlayerController.ItemSlots.Count(); i++) { ((Behaviour)HUDManager.Instance.itemSlotIcons[i]).enabled = false; } } public static void RemoveItem(int slot) { PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; GrabbableObject val = localPlayerController.ItemSlots[slot]; localPlayerController.currentlyHeldObjectServer.DiscardItemOnClient(); localPlayerController.currentlyHeldObjectServer = null; localPlayerController.ItemSlots[slot] = null; } public static int UlongToPlayerID(ulong id) { PlayerControllerB[] allPlayerScripts = StartOfRound.Instance.allPlayerScripts; foreach (PlayerControllerB val in allPlayerScripts) { if (val.actualClientId == id) { return (int)val.playerClientId; } } return -1; } public static GameObject GetObjectPlayerIsLookingAt() { //IL_0063: 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_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Plugin.localPlayer == (Object)null) { return Plugin.shipInstance.gameObject; } Camera gameplayCamera = Plugin.localPlayer.gameplayCamera; float grabDistance = Plugin.localPlayer.grabDistance; bool twoHanded = Plugin.localPlayer.twoHanded; float sinkingValue = Plugin.localPlayer.sinkingValue; Transform transform = ((Component)Plugin.localPlayer).transform; Ray val = default(Ray); ((Ray)(ref val))..ctor(((Component)gameplayCamera).transform.position, ((Component)gameplayCamera).transform.forward); int num = (int)Traverse.Create((object)GameNetworkManager.Instance.localPlayerController).Field("interactableObjectsMask").GetValue(); RaycastHit val2 = default(RaycastHit); if (!Physics.Raycast(val, ref val2, grabDistance, num) || ((Component)((RaycastHit)(ref val2)).collider).gameObject.layer == 8 || !(((Component)((RaycastHit)(ref val2)).collider).tag == "PhysicsProp") || twoHanded || sinkingValue > 0.73f || Physics.Linecast(((Component)gameplayCamera).transform.position, ((Component)((RaycastHit)(ref val2)).collider).transform.position + transform.up * 0.16f, 1073741824, (QueryTriggerInteraction)1)) { if ((Object)(object)((RaycastHit)(ref val2)).collider != (Object)null) { return ((Component)((Component)((RaycastHit)(ref val2)).collider).transform).gameObject; } return Plugin.shipInstance.gameObject; } return ((Component)((Component)((RaycastHit)(ref val2)).collider).transform).gameObject; } public static void RemoveGameObject(string tag, string name) { GameObject[] array = GameObject.FindGameObjectsWithTag(tag); GameObject[] array2 = array; foreach (GameObject val in array2) { string text = name.ToLower().Replace("(clone)", ""); string text2 = ((Object)val).name.ToLower().Replace("(clone)", ""); if (text == text2) { Object.Destroy((Object)(object)val); } } } public static void HideEnvironment(bool value, string ignore = "") { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) GameObject obj = GameObject.Find("OutOfBoundsTerrain"); if (obj != null) { GameObject gameObject = obj.gameObject; if (gameObject != null) { gameObject.SetActive(!value); } } Scene sceneAt = SceneManager.GetSceneAt(1); GameObject[] rootGameObjects = ((Scene)(ref sceneAt)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (!(((Object)val).name == "Environment")) { continue; } foreach (GameObject allChild in GetAllChildren(val)) { if (((Object)allChild).name == ignore) { allChild.SetActive(value); } else if (allChild.activeSelf) { allChild.SetActive(!value); } } } } public static void HideVanillaDungeon(bool value = true) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) Scene sceneAt = SceneManager.GetSceneAt(1); GameObject[] rootGameObjects = ((Scene)(ref sceneAt)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (((Object)val).name == "Systems") { ((Component)val.transform.Find("LevelGeneration")).gameObject.SetActive(!value); } } } public static void HidePlayerModel(bool value = true) { ((Component)Plugin.localPlayer.thisPlayerModelArms).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.thisPlayerModelLOD1).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.thisPlayerModelLOD2).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.playerGlobalHead).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.headCostumeContainer).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.headCostumeContainerLocal).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.playerModelArmsMetarig).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.playerBadgeMesh).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.playerBetaBadgeMesh).gameObject.SetActive(!value); ((Component)Plugin.localPlayer.localVisor).gameObject.SetActive(!value); if (!((Object)(object)Plugin.localPlayer.currentlyHeldObjectServer == (Object)null) && !((Object)(object)((Component)Plugin.localPlayer.currentlyHeldObjectServer).gameObject.GetComponent<MeshRenderer>() == (Object)null)) { ((Renderer)((Component)Plugin.localPlayer.currentlyHeldObjectServer).gameObject.GetComponent<MeshRenderer>()).enabled = !value; } } public static void TurnLightsRed(bool value = true) { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) GameObject parent = GameObject.Find("Environment/HangarShip/ShipElectricLights"); foreach (GameObject allChild in GetAllChildren(parent)) { if ((Object)(object)allChild.GetComponent<Light>() != (Object)null) { allChild.GetComponent<Light>().color = (value ? Color.red : Color.white); } } } public static void AddScanNode(GameObject obj, string headerText, string subText = "", int nodeType = 0, int maxRange = 17, int minRange = 2, bool requiresLineOfSight = true) { obj.layer = LayerMask.NameToLayer("ScanNode"); obj.AddComponent<BoxCollider>(); ScanNodeProperties val = obj.AddComponent<ScanNodeProperties>(); val.headerText = headerText; val.subText = subText; val.nodeType = nodeType; val.maxRange = maxRange; val.minRange = minRange; val.requiresLineOfSight = requiresLineOfSight; } public static void AddInteractTrig(GameObject obj, string hoverTip = "HOLD", float time = 1.8f) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown Sprite hoverIcon = Object.FindObjectOfType<InteractTrigger>().hoverIcon; obj.tag = "InteractTrigger"; obj.layer = LayerMask.NameToLayer("InteractableObject"); InteractTrigger val = obj.AddComponent<InteractTrigger>(); val.hoverTip = hoverTip + " : [LMB]"; val.timeToHold = time; val.holdInteraction = true; val.hoverIcon = hoverIcon; val.holdingInteractEvent = new InteractEventFloat(); val.onInteractEarlyOtherClients = new InteractEvent(); val.onInteract = new InteractEvent(); val.onInteractEarly = new InteractEvent(); val.onStopInteract = new InteractEvent(); val.onCancelAnimation = new InteractEvent(); } public static void HideLMInsideDungeon(bool value = true) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)CustomLvl.CurrentInside == (Object)null) { return; } Scene sceneByName = SceneManager.GetSceneByName("SampleSceneRelay"); GameObject[] rootGameObjects = ((Scene)(ref sceneByName)).GetRootGameObjects(); foreach (GameObject val in rootGameObjects) { if (((Object)val).name.Contains(((Object)CustomLvl.CurrentInside).name)) { val.SetActive(!value); break; } } } } internal class LMAssets { public static Sprite? KnifeIcon; public static Sprite? LethalMysteryLogo; public static Sprite? LethalMysteryBanner; public static Sprite? CheckboxEmptyIcon; public static Sprite? CheckboxEnabledIcon; public static Sprite? CheckboxDisabledIcon; public static Sprite? MapIcon; public static Sprite? VoteIcon; public static Sprite? MapIconHover; public static Sprite? PlainArrow; public static Sprite? PlainArrowHover; public static Sprite? LightSwitch; public static Sprite? LightSwitchHover; public static Sprite? LightSwitchSelect; public static AudioClip SFX_VentOpen; public static AudioClip SFX_VentLeave; public static AudioClip SFX_VentSwitch; public static GameObject SkeldMap; public static GameObject OfficeMap; public static void LoadAllAssets() { ItemsLoader(); DefaultMapLoader(); } private static void ItemsLoader() { //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) string assetPath = Plugin.GetAssetPath("items"); AssetBundle val = AssetBundle.LoadFromFile(assetPath); Texture2D val2 = val.LoadAsset<Texture2D>("sprite_knife.png"); Texture2D val3 = val.LoadAsset<Texture2D>("logo_a.png"); Texture2D val4 = val.LoadAsset<Texture2D>("default_banner.jpg"); Texture2D val5 = val.LoadAsset<Texture2D>("btn_empty.png"); Texture2D val6 = val.LoadAsset<Texture2D>("btn_check.png"); Texture2D val7 = val.LoadAsset<Texture2D>("btn_X.png"); Texture2D val8 = val.LoadAsset<Texture2D>("mapIcon.png"); Texture2D val9 = val.LoadAsset<Texture2D>("mapIcon_hover.png"); Texture2D val10 = val.LoadAsset<Texture2D>("voteIcon.png"); Texture2D val11 = val.LoadAsset<Texture2D>("plain-arrow.png"); Texture2D val12 = val.LoadAsset<Texture2D>("plain-arrow_hover.png"); Texture2D val13 = val.LoadAsset<Texture2D>("light-bulb.png"); Texture2D val14 = val.LoadAsset<Texture2D>("light-bulb_hover.png"); Texture2D val15 = val.LoadAsset<Texture2D>("light-bulb_selected.png"); KnifeIcon = Sprite.Create(val2, new Rect(0f, 0f, (float)((Texture)val2).width, (float)((Texture)val2).height), new Vector2(0f, 0f)); LethalMysteryLogo = Sprite.Create(val3, new Rect(0f, 0f, (float)((Texture)val3).width, (float)((Texture)val3).height), new Vector2(0f, 0f)); LethalMysteryBanner = Sprite.Create(val4, new Rect(0f, 0f, (float)((Texture)val4).width, (float)((Texture)val4).height), new Vector2(0f, 0f)); CheckboxEmptyIcon = Sprite.Create(val5, new Rect(0f, 0f, (float)((Texture)val5).width, (float)((Texture)val5).height), new Vector2(0f, 0f)); CheckboxEnabledIcon = Sprite.Create(val6, new Rect(0f, 0f, (float)((Texture)val6).width, (float)((Texture)val6).height), new Vector2(0f, 0f)); CheckboxDisabledIcon = Sprite.Create(val7, new Rect(0f, 0f, (float)((Texture)val7).width, (float)((Texture)val7).height), new Vector2(0f, 0f)); MapIcon = Sprite.Create(val8, new Rect(0f, 0f, (float)((Texture)val8).width, (float)((Texture)val8).height), new Vector2(0f, 0f)); VoteIcon = Sprite.Create(val10, new Rect(0f, 0f, (float)((Texture)val10).width, (float)((Texture)val10).height), new Vector2(0f, 0f)); MapIconHover = Sprite.Create(val9, new Rect(0f, 0f, (float)((Texture)val9).width, (float)((Texture)val9).height), new Vector2(0f, 0f)); PlainArrow = Sprite.Create(val11, new Rect(0f, 0f, (float)((Texture)val11).width, (float)((Texture)val11).height), new Vector2(0f, 0f)); PlainArrowHover = Sprite.Create(val12, new Rect(0f, 0f, (float)((Texture)val12).width, (float)((Texture)val12).height), new Vector2(0f, 0f)); LightSwitch = Sprite.Create(val13, new Rect(0f, 0f, (float)((Texture)val13).width, (float)((Texture)val13).height), new Vector2(0f, 0f)); LightSwitchHover = Sprite.Create(val14, new Rect(0f, 0f, (float)((Texture)val14).width, (float)((Texture)val14).height), new Vector2(0f, 0f)); LightSwitchSelect = Sprite.Create(val15, new Rect(0f, 0f, (float)((Texture)val15).width, (float)((Texture)val15).height), new Vector2(0f, 0f)); AudioLoader(val); } private static void AudioLoader(AssetBundle bundle) { SFX_VentOpen = bundle.LoadAsset<AudioClip>("vent_open.wav"); SFX_VentLeave = bundle.LoadAsset<AudioClip>("vent_leave.wav"); SFX_VentSwitch = bundle.LoadAsset<AudioClip>("vent_switch.MP3"); } private static void DefaultMapLoader() { string assetPath = Plugin.GetAssetPath("lm_maps"); AssetBundle val = AssetBundle.LoadFromFile(assetPath); SkeldMap = val.LoadAsset<GameObject>("Skeld.prefab"); OfficeMap = val.LoadAsset<GameObject>("Office.prefab"); } } public class LMConfig { public enum MonsterAmt { One, Two } public enum SheriffAmt { Zero, One, Two } public static ConfigFile _config; [Header("Keybinds")] public static ConfigEntry<string> PrefixSetting; public static ConfigEntry<string> shapeshiftBind; public static ConfigEntry<string> selfcleanBind; public static ConfigEntry<string> spawnItemBind; public static ConfigEntry<string> showMapBind; public static ConfigEntry<string> showVoteBind; public static List<ConfigEntry<string>> AllHotkeys = new List<ConfigEntry<string>>(); [Header("Host Settings")] public static ConfigEntry<MonsterAmt> defaultImposterAmt; public static ConfigEntry<SheriffAmt> defaultSheriffAmt; public static ConfigEntry<float> defaultDiscussTime; public static ConfigEntry<float> defaultVoteTime; public static float defaultMeetingTime; public static ConfigEntry<float> defaultMeetingCooldown; public static ConfigEntry<int> defaultMeetingNum; public static ConfigEntry<float> defaultGracePeriodTime; public static ConfigEntry<float> defaultKillCooldown; public static ConfigEntry<float> defaultScrapTimer; public static ConfigEntry<bool> enableChat; public static void AllConfigs(ConfigFile cfg) { _config = cfg; PrefixSetting = cfg.Bind<string>("Command Settings", "Command Prefix", "/", "Prefix for chat commands"); shapeshiftBind = cfg.Bind<string>("Monster Controls", "Shapeshift", "8", "Disguise yourself"); selfcleanBind = cfg.Bind<string>("Monster Controls", "Self Clean", "f", "Clean the blood on you"); spawnItemBind = cfg.Bind<string>("Player Controls", "Spawn Item", "t", "Spawn your role specific item"); showMapBind = cfg.Bind<string>("Player Controls", "Show Map", "m", "A full view of the map"); showVoteBind = cfg.Bind<string>("Player Controls", "Show Votes", "v", "Displays everyone that can be voted"); AllHotkeys.Add(PrefixSetting); AllHotkeys.Add(shapeshiftBind); AllHotkeys.Add(selfcleanBind); AllHotkeys.Add(spawnItemBind); AllHotkeys.Add(showMapBind); AllHotkeys.Add(showVoteBind); defaultImposterAmt = cfg.Bind<MonsterAmt>("Host Settings", "Imposter Amount", MonsterAmt.One, "Number of imposters"); defaultSheriffAmt = cfg.Bind<SheriffAmt>("Host Settings", "Sheriff Amount", SheriffAmt.One, "Number of Sheriffs"); defaultDiscussTime = cfg.Bind<float>("Host Settings", "Discuss Time", 35f, (ConfigDescription)null); defaultVoteTime = cfg.Bind<float>("Host Settings", "Vote Time", 95f, (ConfigDescription)null); defaultMeetingCooldown = cfg.Bind<float>("Host Settings", "Meeting Cooldown", 10f, "Time until you can call a meeting again"); defaultMeetingNum = cfg.Bind<int>("Host Settings", "Meeting Amount", 1, "Amount of times a specific user can call a meeting"); defaultGracePeriodTime = cfg.Bind<float>("Host Settings", "Grace Period", 20f, "Time until people can take damage after a meeting and when a round first starts"); defaultKillCooldown = cfg.Bind<float>("Host Settings", "Kill Cooldown", 20f, "Time until monsters can instakill"); defaultScrapTimer = cfg.Bind<float>("Host Settings", "Scrap Spawn Timer", 15f, "Time until scraps will spawn on custom moons"); enableChat = cfg.Bind<bool>("Host Settings", "Enable Chat", false, "Allow players to type in chat during a round"); defaultImposterAmt.SettingChanged += DefaultImposterAmt_SettingChanged; defaultSheriffAmt.SettingChanged += DefaultSheriffAmt_SettingChanged; defaultDiscussTime.SettingChanged += DefaultDiscussTime_SettingChanged; defaultVoteTime.SettingChanged += DefaultVoteTime_SettingChanged; defaultMeetingCooldown.SettingChanged += DefaultMeetingCooldown_SettingChanged; defaultMeetingNum.SettingChanged += DefaultMeetingNum_SettingChanged; defaultGracePeriodTime.SettingChanged += DefaultGracePeriodTime_SettingChanged; defaultKillCooldown.SettingChanged += DefaultKillCooldown_SettingChanged; defaultScrapTimer.SettingChanged += DefaultScrapTimer_SettingChanged; enableChat.SettingChanged += EnableChat_SettingChanged; LethalConfigAddons(); } private static void LethalConfigAddons() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_004e: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Expected O, but got Unknown //IL_007e: Expected O, but got Unknown //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_0084: 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_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00ae: Expected O, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00d7: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Expected O, but got Unknown //IL_0108: Expected O, but got Unknown //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Expected O, but got Unknown //IL_0139: Expected O, but got Unknown //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Expected O, but got Unknown //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown //IL_016a: Expected O, but got Unknown //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected O, but got Unknown LethalConfigManager.SkipAutoGen(); EnumDropDownConfigItem<MonsterAmt> val = new EnumDropDownConfigItem<MonsterAmt>(defaultImposterAmt, false); EnumDropDownConfigItem<SheriffAmt> val2 = new EnumDropDownConfigItem<SheriffAmt>(defaultSheriffAmt, false); ConfigEntry<float> obj = defaultDiscussTime; FloatSliderOptions val3 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val3).Min = 10f; ((BaseRangeOptions<float>)val3).Max = 360f; FloatSliderConfigItem val4 = new FloatSliderConfigItem(obj, val3); ConfigEntry<float> obj2 = defaultVoteTime; FloatSliderOptions val5 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val5).Min = 10f; ((BaseRangeOptions<float>)val5).Max = 360f; FloatSliderConfigItem val6 = new FloatSliderConfigItem(obj2, val5); ConfigEntry<float> obj3 = defaultMeetingCooldown; FloatSliderOptions val7 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val7).Min = 10f; ((BaseRangeOptions<float>)val7).Max = 180f; FloatSliderConfigItem val8 = new FloatSliderConfigItem(obj3, val7); ConfigEntry<int> obj4 = defaultMeetingNum; IntInputFieldOptions val9 = new IntInputFieldOptions { RequiresRestart = false }; ((BaseRangeOptions<int>)val9).Min = 0; ((BaseRangeOptions<int>)val9).Max = 5; IntInputFieldConfigItem val10 = new IntInputFieldConfigItem(obj4, val9); ConfigEntry<float> obj5 = defaultGracePeriodTime; FloatSliderOptions val11 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val11).Min = 10f; ((BaseRangeOptions<float>)val11).Max = 120f; FloatSliderConfigItem val12 = new FloatSliderConfigItem(obj5, val11); ConfigEntry<float> obj6 = defaultKillCooldown; FloatSliderOptions val13 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val13).Min = 10f; ((BaseRangeOptions<float>)val13).Max = 60f; FloatSliderConfigItem val14 = new FloatSliderConfigItem(obj6, val13); ConfigEntry<float> obj7 = defaultScrapTimer; FloatSliderOptions val15 = new FloatSliderOptions { RequiresRestart = false }; ((BaseRangeOptions<float>)val15).Min = 10f; ((BaseRangeOptions<float>)val15).Max = 60f; FloatSliderConfigItem val16 = new FloatSliderConfigItem(obj7, val15); BoolCheckBoxConfigItem val17 = new BoolCheckBoxConfigItem(enableChat, false); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val2); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val4); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val6); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val8); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val10); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val12); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val14); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val16); LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val17); } public static void SetHostConfigs(int playerID = -1) { foreach (KeyValuePair<ConfigDefinition, ConfigEntryBase> item in _config) { string section = item.Key.Section; string key = item.Key.Key; string arg = $"{item.Value.BoxedValue}"; if (!(section != "Host Settings")) { Plugin.netHandler.SetHostConfigsReceive($"{key}/{arg}/{playerID}"); } } } private static void DefaultImposterAmt_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Roles.specialRoleAmount["monster"] = (int)defaultImposterAmt.Value; } } private static void DefaultSheriffAmt_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Roles.specialRoleAmount["sheriff"] = (int)defaultSheriffAmt.Value; } } private static void DefaultDiscussTime_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Discuss Time/{defaultDiscussTime.Value}/-1"); } } private static void DefaultVoteTime_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Vote Time/{defaultVoteTime.Value}/-1"); } } private static void DefaultMeetingCooldown_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Meeting Cooldown/{defaultMeetingCooldown.Value}/-1"); } } private static void DefaultMeetingNum_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Meeting Amount/{defaultMeetingNum.Value}/-1"); } } private static void DefaultGracePeriodTime_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Grace Period/{defaultGracePeriodTime.Value}/-1"); } } private static void DefaultKillCooldown_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Kill Cooldown/{defaultKillCooldown.Value}/-1"); } } private static void DefaultScrapTimer_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Scrap Spawn Timer/{defaultScrapTimer.Value}/-1"); } } private static void EnableChat_SettingChanged(object sender, EventArgs e) { if (!((Object)(object)StartOfRound.Instance == (Object)null) && StartOfRound.Instance.inShipPhase) { Plugin.netHandler.SetHostConfigsReceive($"Enable Chat/{enableChat.Value}/-1"); } } } public class StringAddons { public static readonly Dictionary<char, string> convertableChars = new Dictionary<char, string> { { ';', "&/59" }, { '=', "&/61" }, { '[', "&/91" }, { ']', "&/93" } }; public static string UseDefaultPrefix() { string text = "/"; if (LMConfig.PrefixSetting != null) { LMConfig.PrefixSetting.Value = text; ((ConfigEntryBase)LMConfig.PrefixSetting).ConfigFile.Save(); } Plugin.mls.LogInfo((object)"setting prefix back to /"); return text; } public static string ConvertToSymbols(string input) { foreach (char key in convertableChars.Keys) { if (key.ToString() == input) { return convertableChars[key]; } } return input; } public static string ConvertToPrefix(string input) { foreach (char key in convertableChars.Keys) { if (convertableChars[key] == input) { return key.ToString(); } } return input; } public static bool InConvertableChars(string input = "", string prefix = "") { if (!string.IsNullOrEmpty(input)) { foreach (char key in convertableChars.Keys) { if (convertableChars[key] == input) { return true; } } } else if (!string.IsNullOrEmpty(prefix)) { foreach (char key2 in convertableChars.Keys) { if (key2.ToString() == prefix) { return true; } } } return false; } public static string CleanPrefix(string prefix) { if (string.IsNullOrEmpty(prefix)) { return UseDefaultPrefix(); } if (InConvertableChars("", prefix.ToString())) { return prefix; } if (prefix.Length > 1) { return UseDefaultPrefix(); } return prefix; } public static bool CheckPrefix(string prefix) { if (LMConfig.PrefixSetting != null && !string.IsNullOrEmpty(prefix.Trim()) && (prefix == LMConfig.PrefixSetting.Value || InConvertableChars("", prefix))) { prefix = CleanPrefix(prefix); return ConvertToSymbols(prefix) == LMConfig.PrefixSetting.Value; } return false; } public static string Title(string input) { if (string.IsNullOrEmpty(input)) { return input; } return char.ToUpper(input[0]) + input.Substring(1); } public static bool ContainsWhitelistedItem(string input) { if (string.IsNullOrEmpty(input)) { return false; } foreach (string allScrap in Tasks.allScraps) { if (allScrap.ToLower().Contains(input.ToLower())) { return true; } } return false; } public static bool ContainsSpecialMapID(string input) { if (string.IsNullOrEmpty(input)) { return false; } string[] specialMapID = CustomLvl.specialMapID; foreach (string text in specialMapID) { if (text.ToLower().Contains(input.ToLower())) { return true; } } return false; } public static bool ContainsString(string input, List<string> array) { foreach (string item in array) { if (item.Contains(input.ToLower())) { return true; } } return false; } public static bool ConvertToBool(string input) { if (string.IsNullOrEmpty(input) || input == "false") { return false; } if (input.ToLower() == "true") { return true; } return false; } public static int ConvertToInt(string input) { int.TryParse(input, out var result); return result; } public static float ConvertToFloat(string input) { float.TryParse(input, out var result); return result; } public static Vector3 ConvertToVector3(string input) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) string text = input; text = text.Trim('(', ')'); string[] array = text.Split(','); Vector3 result = default(Vector3); ((Vector3)(ref result))..ctor(float.Parse(array[0].Trim()), float.Parse(array[1].Trim()), float.Parse(array[2].Trim())); return result; } public static LMConfig.MonsterAmt ConvertToMonsterAmt(string input) { if (!(input == "One")) { if (input == "Two") { return LMConfig.MonsterAmt.Two; } return LMConfig.MonsterAmt.One; } return LMConfig.MonsterAmt.One; } public static LMConfig.SheriffAmt ConvertToSheriffAmt(string input) { return input switch { "Zero" => LMConfig.SheriffAmt.Zero, "One" => LMConfig.SheriffAmt.One, "Two" => LMConfig.SheriffAmt.Two, _ => LMConfig.SheriffAmt.One, }; } public static int AddInts(string a, int b) { int num = ConvertToInt(a); return num += b; } public static int NameToID(string name) { int result = -1; foreach (KeyValuePair<ulong, int> clientPlayer in StartOfRound.Instance.ClientPlayerList) { if (StartOfRound.Instance.allPlayerScripts[clientPlayer.Value].playerUsername.ToLower() == name.ToLower()) { return (int)StartOfRound.Instance.allPlayerScripts[clientPlayer.Value].playerClientId; } } return result; } public static int GetLastId(string name) { MatchCollection matchCollection = Regex.Matches(name, "#(\\d+)"); if (matchCollection.Count > 0) { return int.Parse(matchCollection[matchCollection.Count - 1].Groups[1].Value); } return -1; } } } namespace LethalMystery.UI { [HarmonyPatch] internal class MainMenu { [HarmonyPatch(typeof(MenuManager), "Start")] [HarmonyPostfix] [HarmonyAfter(new string[] { "me.swipez.melonloader.morecompany" })] private static void StartPatch() { CreateLMMainMenu(); } private static void CreateLMMainMenu() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) Image val = new GameObject("Banner").AddComponent<Image>(); GameObject val2 = GameObject.Find("Canvas/MenuContainer/MainButtons/HeaderImage"); GameObject val3 = GameObject.Find("Canvas/MenuContainer/LoadingScreen/Image"); if ((Object)(object)val2 != (Object)null && (Object)(object)LMAssets.LethalMysteryLogo != (Object)null && (Object)(object)val != (Object)null) { ((Component)val).transform.SetParent(GameObject.Find("Canvas/MenuContainer/MainButtons/").transform); ((Component)val).transform.SetAsFirstSibling(); ((Graphic)val).rectTransform.offsetMin = Vector2.zero; ((Graphic)val).rectTransform.offsetMax = Vector2.zero; ((Graphic)val).rectTransform.anchorMin = Vector2.zero; ((Graphic)val).rectTransform.anchorMax = Vector2.one; ((Transform)((Graphic)val).rectTransform).localPosition = Vector3.zero; ((Component)val).transform.localScale = new Vector3(1.1125f, 0.9253f, 5.1671f); val.sprite = LMAssets.LethalMysteryBanner; val2.GetComponent<Image>().sprite = LMAssets.LethalMysteryLogo; val3.GetComponent<Image>().sprite = LMAssets.LethalMysteryLogo; } } } [HarmonyPatch] internal class MinimapUI { public class ArrowPointer : MonoBehaviour { public Transform arrow; public GameObject pointer; public void Start() { SpawnPointer(); } public void Update() { AdjustPosition(); } private void SpawnPointer() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) if (!StartOfRound.Instance.inShipPhase) { Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(((Component)Plugin.localPlayer).transform.position.x - 5f, ((Component)Plugin.localPlayer).transform.position.y, ((Component)Plugin.localPlayer).transform.position.z); pointer = Object.Instantiate<GameObject>(Minimap.waypointPrefab, val, Quaternion.identity); pointer.SetActive(true); ((Renderer)pointer.GetComponent<MeshRenderer>()).enabled = false; } } private void AdjustPosition() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_008b: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)pointer == (Object)null)) { Vector3 position = StartOfRound.Instance.playerSpawnPositions[0].position; pointer.transform.LookAt(position); Vector3 position2 = default(Vector3); ((Vector3)(ref position2))..ctor(((Component)Plugin.localPlayer).transform.position.x - 5f, ((Component)Plugin.localPlayer).transform.position.y, ((Component)Plugin.localPlayer).transform.position.z); pointer.transform.position = position2; } } } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static UnityAction <>9__18_2; public static UnityAction <>9__19_2; public static UnityAction <>9__20_2; internal void <LeftButtonUI>b__18_2() { Minimap.SwitchPlayerButton(forward: false); } internal void <RightButtonUI>b__19_2() { Minimap.SwitchPlayerButton(forward: true); } internal void <CreateLightSabotage>b__20_2() { Generator.BreakGenerator(); } } public static GameObject minimap; public static GameObject minimapCam; public static GameObject border; public static GameObject mapIcon; public static Image lightIcon; public static TextMeshProUGUI playerNameTXT; public static List<GameObject> allMinimapObjects = new List<GameObject>(); public static List<GameObject> slotObjects = new List<GameObject>(); public static GameObject SlotHolder; private static RectTransform slotRect; public static void DestroyUI() { foreach (GameObject allMinimapObject in allMinimapObjects) { if ((Object)(object)allMinimapObject != (Object)null) { Object.Destroy((Object)(object)allMinimapObject); } } foreach (GameObject slotObject in slotObjects) { if ((Object)(object)slotObject != (Object)null) { Object.Destroy((Object)(object)slotObject); } } slotObjects.Clear(); allMinimapObjects.Clear(); Minimap.ResetVars(); } public static void CreateMapIcon() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD"); mapIcon = new GameObject("minimapIcon"); mapIcon.transform.SetParent(val.transform, false); mapIcon.layer = 5; mapIcon.transform.SetSiblingIndex(1); Image val2 = mapIcon.AddComponent<Image>(); val2.sprite = LMAssets.MapIcon; RectTransform component = mapIcon.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(64f, 64f); component.anchorMin = new Vector2(1f, 1f); component.anchorMax = new Vector2(1f, 1f); component.pivot = new Vector2(1f, 1f); component.anchoredPosition = new Vector2(0f, 0f); allMinimapObjects.Add(mapIcon); ShowMapIconKeybind(); } private static void ShowMapIconKeybind() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: 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) //IL_00cd: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("background"); val.transform.SetParent(mapIcon.transform, false); val.transform.SetSiblingIndex(0); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(0f, 0f, 0f, 1f); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(32f, 16f); component.anchorMin = new Vector2(1f, 1f); component.anchorMax = new Vector2(1f, 1f); component.pivot = new Vector2(1.5f, 4.5f); component.anchoredPosition = Vector2.zero; GameObject val3 = new GameObject("keybind"); val3.transform.SetParent(mapIcon.transform, false); val3.transform.SetSiblingIndex(1); TextMeshProUGUI val4 = val3.AddComponent<TextMeshProUGUI>(); ((TMP_Text)val4).text = "[ " + LMConfig.showMapBind.Value.ToUpper() + " ]"; ((TMP_Text)val4).fontSize = 9f; ((TMP_Text)val4).fontWeight = (FontWeight)800; ((TMP_Text)val4).alignment = (TextAlignmentOptions)514; ((Graphic)val4).color = new Color(0.996f, 0.095f, 0f, 1f); RectTransform component2 = val3.GetComponent<RectTransform>(); component2.sizeDelta = new Vector2(280f, 80f); component2.pivot = new Vector2(0.5f, 0.9f); component2.anchoredPosition = Vector2.zero; } private static void CreateBorder() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.Find("Systems/UI/Canvas"); border = new GameObject("Minimap"); border.transform.SetParent(val.transform, false); Image val2 = border.AddComponent<Image>(); ((Graphic)val2).color = new Color(0.996f, 0.095f, 0f, 1f); border.layer = 5; border.transform.SetSiblingIndex(13); RectTransform component = border.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(450f, 450f); component.anchoredPosition = Vector2.zero; allMinimapObjects.Add(border); } public static void CreateMinimap() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) CreateBorder(); minimap = new GameObject("MinimapScreen"); minimap.transform.SetParent(border.transform, false); minimapCam = Object.Instantiate<GameObject>(GameObject.Find("Systems/GameSystems/ItemSystems/MapCamera")); ((Object)minimapCam).name = "MinimapCam"; GameObject val = new GameObject("MapScript"); val.transform.SetParent(minimap.transform); ManualCameraRenderer val2 = val.AddComponent<ManualCameraRenderer>(); SetRenderVars(val2); GameObject val3 = Object.Instantiate<GameObject>(GameObject.Find("Systems/GameSystems/ItemSystems/MapScreenUI/ArrowUI")); val3.transform.SetParent(minimap.transform, false); val3.SetActive(false); RawImage val4 = minimap.AddComponent<RawImage>(); val4.texture = (Texture)(object)val2.mapCamera.targetTexture; minimap.layer = 5; RectTransform component = minimap.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(448f, 448f); component.anchoredPosition = Vector2.zero; Minimap.MinimapWaypoint minimapWaypoint = minimap.AddComponent<Minimap.MinimapWaypoint>(); minimapWaypoint.minimapCamera = minimapCam.GetComponent<Camera>(); minimapWaypoint.minimapRectTransform = minimap.GetComponent<RectTransform>(); Minimap.waypointPrefab = ((Component)((Component)Plugin.localPlayer).transform.Find("Misc/MapDot")).gameObject; allMinimapObjects.Add(minimap); allMinimapObjects.Add(minimapCam); CreateName(); LeftButtonUI(); RightButtonUI(); CreateLightSabotage(); CreateMapList(); } private static void SetRenderVars(ManualCameraRenderer camRender) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown ManualCameraRenderer component = GameObject.Find("Environment/HangarShip/ShipModels2b/MonitorWall/Cube.001/CameraMonitorScript").GetComponent<ManualCameraRenderer>(); Camera component2 = minimapCam.GetComponent<Camera>(); RenderTexture targetTexture = new RenderTexture(512, 512, 16); component2.targetTexture = targetTexture; camRender.cam = component2; camRender.cameraViews = component.cameraViews; camRender.cameraViewIndex = component.cameraViewIndex; camRender.currentCameraDisabled = false; camRender.mesh = component.mesh; camRender.offScreenMat = component.offScreenMat; camRender.onScreenMat = component.onScreenMat; camRender.materialIndex = component.materialIndex; camRender.overrideCameraForOtherUse = false; camRender.renderAtLowerFramerate = false; camRender.targetedPlayer = Plugin.localPlayer; camRender.radarTargets = component.radarTargets; camRender.targetTransformIndex = component.targetTransformIndex; camRender.mapCamera = component2; camRender.mapCameraAnimator = component.mapCameraAnimator; camRender.mapCameraStationaryUI = component.mapCameraStationaryUI; camRender.shipArrowPointer = component.shipArrowPointer; camRender.shipArrowUI = component.shipArrowUI; } private static void CreateName() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00d7: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("playerName"); val.transform.SetParent(minimap.transform, false); playerNameTXT = val.AddComponent<TextMeshProUGUI>(); ((TMP_Text)playerNameTXT).font = ((TMP_Text)StartOfRound.Instance.mapScreenPlayerName).font; ((TMP_Text)playerNameTXT).fontSize = ((TMP_Text)StartOfRound.Instance.mapScreenPlayerName).fontSize; ((TMP_Text)playerNameTXT).text = Plugin.localPlayer.playerUsername; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(280f, 80f); component.anchorMin = new Vector2(0f, 1f); component.anchorMax = new Vector2(0f, 1f); component.pivot = new Vector2(0f, 1f); component.anchoredPosition = Vector2.zero; } private static void LeftButtonUI() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_018e: 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_00fc: Expected O, but got Unknown GameObject val = new GameObject("LswitchBtn"); val.transform.SetParent(minimap.transform, false); Button val2 = val.AddComponent<Button>(); Image Limg = val.AddComponent<Image>(); Sprite arrowImg = LMAssets.PlainArrow; Sprite arrowImgHover = LMAssets.PlainArrowHover; Limg.sprite = arrowImg; EventTrigger val3 = val.AddComponent<EventTrigger>(); Entry val4 = new Entry(); val4.eventID = (EventTriggerType)0; ((UnityEvent<BaseEventData>)(object)val4.callback).AddListener((UnityAction<BaseEventData>)delegate { Limg.sprite = arrowImgHover; }); Entry val5 = new Entry(); val5.eventID = (EventTriggerType)1; ((UnityEvent<BaseEventData>)(object)val5.callback).AddListener((UnityAction<BaseEventData>)delegate { Limg.sprite = arrowImg; }); val3.triggers.Add(val4); val3.triggers.Add(val5); ButtonClickedEvent onClick = val2.onClick; object obj = <>c.<>9__18_2; if (obj == null) { UnityAction val6 = delegate { Minimap.SwitchPlayerButton(forward: false); }; <>c.<>9__18_2 = val6; obj = (object)val6; } ((UnityEvent)onClick).AddListener((UnityAction)obj); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(32f, 32f); component.anchorMin = new Vector2(0f, 0f); component.anchorMax = new Vector2(0f, 0f); component.pivot = new Vector2(1f, 0f); component.anchoredPosition = new Vector2(8f, 2f); ((Transform)component).rotation = Quaternion.Euler(0f, 0f, -90f); } private static void RightButtonUI() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_018e: 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_00fc: Expected O, but got Unknown GameObject val = new GameObject("RswitchBtn"); val.transform.SetParent(minimap.transform, false); Button val2 = val.AddComponent<Button>(); Image Rimg = val.AddComponent<Image>(); Sprite arrowImg = LMAssets.PlainArrow; Sprite arrowImgHover = LMAssets.PlainArrowHover; Rimg.sprite = arrowImg; EventTrigger val3 = val.AddComponent<EventTrigger>(); Entry val4 = new Entry(); val4.eventID = (EventTriggerType)0; ((UnityEvent<BaseEventData>)(object)val4.callback).AddListener((UnityAction<BaseEventData>)delegate { Rimg.sprite = arrowImgHover; }); Entry val5 = new Entry(); val5.eventID = (EventTriggerType)1; ((UnityEvent<BaseEventData>)(object)val5.callback).AddListener((UnityAction<BaseEventData>)delegate { Rimg.sprite = arrowImg; }); val3.triggers.Add(val4); val3.triggers.Add(val5); ButtonClickedEvent onClick = val2.onClick; object obj = <>c.<>9__19_2; if (obj == null) { UnityAction val6 = delegate { Minimap.SwitchPlayerButton(forward: true); }; <>c.<>9__19_2 = val6; obj = (object)val6; } ((UnityEvent)onClick).AddListener((UnityAction)obj); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(32f, 32f); component.anchorMin = new Vector2(0f, 0f); component.anchorMax = new Vector2(0f, 0f); component.pivot = new Vector2(0f, 1f); component.anchoredPosition = new Vector2(80f, 0f); ((Transform)component).rotation = Quaternion.Euler(0f, 0f, 90f); } private static void CreateLightSabotage() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Expected O, but got Unknown //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_00c8: 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_0158: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Expected O, but got Unknown if (Roles.CurrentRole != null && Roles.CurrentRole.Type == Roles.RoleType.employee) { return; } GameObject val = new GameObject("LightSwitchBtn"); val.transform.SetParent(minimap.transform, false); Button val2 = val.AddComponent<Button>(); lightIcon = val.AddComponent<Image>(); Sprite baseImg = LMAssets.LightSwitch; Sprite imgHover = LMAssets.LightSwitchHover; Sprite imgSelect = LMAssets.LightSwitchSelect; lightIcon.sprite = baseImg; EventTrigger val3 = val.AddComponent<EventTrigger>(); Entry val4 = new Entry(); val4.eventID = (EventTriggerType)0; ((UnityEvent<BaseEventData>)(object)val4.callback).AddListener((UnityAction<BaseEventData>)delegate { lightIcon.sprite = ((!Sabotage.generatorFixed || Sabotage.fogTimerStarted) ? imgSelect : imgHover); }); Entry val5 = new Entry(); val5.eventID = (EventTriggerType)1; ((UnityEvent<BaseEventData>)(object)val5.callback).AddListener((UnityAction<BaseEventData>)delegate { lightIcon.sprite = ((!Sabotage.generatorFixed || Sabotage.fogTimerStarted) ? imgSelect : baseImg); }); val3.triggers.Add(val4); val3.triggers.Add(val5); ButtonClickedEvent onClick = val2.onClick; object obj = <>c.<>9__20_2; if (obj == null) { UnityAction val6 = delegate { Generator.BreakGenerator(); }; <>c.<>9__20_2 = val6; obj = (object)val6; } ((UnityEvent)onClick).AddListener((UnityAction)obj); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(32f, 32f); component.anchorMin = new Vector2(1f, 1f); component.anchorMax = new Vector2(1f, 1f); component.pivot = new Vector2(1f, 1f); component.anchoredPosition = new Vector2(-3f, -8f); allMinimapObjects.Add(val); } private static GameObject CreateMapList() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("MapList"); val.transform.SetParent(border.transform, false); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(0.4627f, 0f, 0f, 1f); val.layer = 5; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(140f, 300f); component.anchoredPosition = new Vector2(0f, 0f); component.anchorMin = new Vector2(0f, 0.5f); component.anchorMax = new Vector2(0f, 0.5f); component.pivot = new Vector2(1f, 0.5f); Outline val3 = val.AddComponent<Outline>(); ((Shadow)val3).effectColor = new Color(0.996f, 0.095f, 0f, 1f); ((Shadow)val3).effectDistance = new Vector2(2f, 2f); val.AddComponent<Mask>(); slotObjects.Clear(); CreatePlayerList(val); return val; } private static void CreatePlayerList(GameObject voteList) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("PlayerList"); val.transform.SetParent(voteList.transform, false); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(0.4627f, 0f, 0f, 1f); val.layer = 5; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(250f, 230f); ScrollRect val3 = val.AddComponent<ScrollRect>(); val3.horizontal = false; val3.content = CreatePlayerSlotHolder(val); val.AddComponent<Mask>(); } private static RectTransform CreatePlayerSlotHolder(GameObject playerList) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) SlotHolder = new GameObject("PlayerSlotHolder"); SlotHolder.transform.SetParent(playerList.transform, false); Image val = SlotHolder.AddComponent<Image>(); ((Graphic)val).color = new Color(0.4627f, 0f, 0f, 1f); SlotHolder.layer = 5; slotRect = SlotHolder.GetComponent<RectTransform>(); slotRect.sizeDelta = new Vector2(250f, 30f); slotRect.anchorMin = new Vector2(0f, 1f); slotRect.anchorMax = new Vector2(1f, 1f); slotRect.pivot = new Vector2(0.5f, 1f); GridLayoutGroup val2 = SlotHolder.AddComponent<GridLayoutGroup>(); val2.cellSize = new Vector2(245f, 50f); ((LayoutGroup)val2).childAlignment = (TextAnchor)1; val2.constraint = (Constraint)1; val2.constraintCount = 1; return slotRect; } public static void CreatePlayerSlot(ulong playerID, Vector3 position) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("playerSlot"); val.transform.SetParent(SlotHolder.transform, false); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(1f, 0f, 0f, 0f); val.layer = 5; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(200f, 30f); component.anchoredPosition = new Vector2(10f, 0f); component.anchorMin = new Vector2(0f, 1f); component.anchorMax = new Vector2(0f, 1f); component.pivot = new Vector2(0f, 1f); float x = slotRect.sizeDelta.x; float num = slotRect.sizeDelta.y + 55f; slotRect.sizeDelta = new Vector2(x, num); PlayerSlot playerSlot = val.AddComponent<PlayerSlot>(); playerSlot.playerID = playerID; playerSlot.playerSlot = val; GameObject val3 = NameTagBg(val); NameTag(val3, playerID); PositionText(val3, playerID, position); slotObjects.Add(val); } private static GameObject NameTagBg(GameObject playerSlot) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.Find("Systems/UI/Canvas"); GameObject val2 = new GameObject("nametag"); val2.transform.SetParent(playerSlot.transform, false); Image val3 = val2.AddComponent<Image>(); ((Graphic)val3).color = new Color(0.6509f, 0.2091f, 0.0031f, 1f); val2.layer = 5; RectTransform component = val2.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(75f, 40f); component.anchoredPosition = Vector2.zero; component.anchorMax = new Vector2(1f, 0f); component.anchorMin = new Vector2(0.5f, 0f); component.pivot = new Vector2(1f, 0f); return val2; } private static void NameTag(GameObject nametagBG, ulong playerID) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Expected O, but got Unknown GameObject val = new GameObject("username"); val.transform.SetParent(nametagBG.transform, false); TextMeshProUGUI text = val.AddComponent<TextMeshProUGUI>(); ((Graphic)text).color = new Color(1f, 0.5897f, 0f, 1f); ((TMP_Text)text).fontSize = 16f; ((TMP_Text)text).alignment = (TextAlignmentOptions)513; ((TMP_Text)text).margin = Vector4.op_Implicit(new Vector3(8f, 0f, 0f)); ((TMP_Text)text).overflowMode = (TextOverflowModes)1; ((TMP_Text)text).text = $"#{playerID} {StartOfRound.Instance.allPlayerScripts[(uint)playerID].playerUsername}"; val.layer = 5; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(180f, 20f); component.anchoredPosition = Vector2.zero; Button val2 = val.AddComponent<Button>(); EventTrigger val3 = val.AddComponent<EventTrigger>(); Entry val4 = new Entry(); val4.eventID = (EventTriggerType)0; ((UnityEvent<BaseEventData>)(object)val4.callback).AddListener((UnityAction<BaseEventData>)delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) ((Graphic)text).color = Color.white; }); Entry val5 = new Entry(); val5.eventID = (EventTriggerType)1; ((UnityEvent<BaseEventData>)(object)val5.callback).AddListener((UnityAction<BaseEventData>)delegate { //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Graphic)text).color = new Color(1f, 0.5897f, 0f, 1f); }); val3.triggers.Add(val4); val3.triggers.Add(val5); ((UnityEvent)val2.onClick).AddListener((UnityAction)delegate { Minimap.JumpToPlayerButton((int)playerID); }); } private static void PositionText(GameObject namebg, ulong playerID, Vector3 pos) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003b: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("position"); val.transform.SetParent(namebg.transform, false); TextMeshProUGUI val2 = val.AddComponent<TextMeshProUGUI>(); ((Graphic)val2).color = new Color(1f, 0.5897f, 0f, 1f); ((TMP_Text)val2).fontSize = 10f; ((TMP_Text)val2).alignment = (TextAlignmentOptions)513; ((TMP_Text)val2).margin = Vector4.op_Implicit(new Vector3(8f, 0f, 0f)); ((TMP_Text)val2).overflowMode = (TextOverflowModes)1; ((TMP_Text)val2).text = $"{pos}"; val.layer = 5; RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(180f, 20f); component.anchoredPosition = new Vector2(20f, 12f); } public static void UpdatePositionText(ulong targetID, Vector3 pos) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) foreach (GameObject slotObject in slotObjects) { if (!((Object)(object)slotObject == (Object)null)) { PlayerSlot component = slotObject.GetComponent<PlayerSlot>(); if (component.playerID == targetID) { ((TMP_Text)((Component)slotObject.transform.Find("nametag/position")).GetComponent<TextMeshProUGUI>()).text = $"({pos})"; break; } } } } public static void CreatePositionSlot(ulong playerID, Vector3 pos) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) foreach (GameObject slotObject in slotObjects) { if (!((Object)(object)slotObject == (Object)null)) { PlayerSlot component = slotObject.GetComponent<PlayerSlot>(); if (component.playerID == playerID) { UpdatePositionText(playerID, pos); Plugin.mls.LogInfo((object)"}}}} 2 {{{{{"); return; } } } Plugin.mls.LogInfo((object)"}}}} 3 {{{{{"); CreatePlayerSlot(playerID, pos); } } public class PlayerSlot : MonoBehaviour { public ulong playerID; public GameObject playerSlot; public GameObject votes; } [HarmonyPatch] internal class VotingUI { public static bool isCalled = false; public static bool inVoteTime = false; public static GameObject votingGUI; public static GameObject voteIcon; public static GameObject skipSection; public static GameObject SlotHolder; public static List<GameObject> slotObjects = new List<GameObject>(); private static Sprite xButtonSprite; [HarmonyPatch(typeof(QuickMenuManager), "Update")] [HarmonyPostfix] private static void UpdatePatch(QuickMenuManager __instance) { if (isCalled) { CreateVoteIcon(); xButtonSprite = LMAssets.CheckboxDisabledIcon; votingGUI = CreateVoteList(); UpdateVoteButtonSprite(); isCalled = false; } if (StringAddons.ConvertToBool(Meeting.inMeeting.Value) && (Object)(object)votingGUI != (Object)null) { bool flag = Start.hostDiscussTime > 0f && StringAddons.ConvertToFloat(Meeting.discussTime.Value) > 0f; float num = StringAddons.ConvertToFloat(Meeting.voteTime.Value); float num2 = StringAddons.ConvertToFloat(Meeting.discussTime.Value); string text = (flag ? $"DISCUSS: {(int)num2}" : $"VOTE: {(int)num}"); UpdateTextHeader(text); } } public static void CreateVoteIcon() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) GameObject val = GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD"); voteIcon = new GameObject("voteIcon"); voteIcon.transform.SetParent(val.transform, false); voteIcon.layer = 5; voteIcon.transform.SetSiblingIndex(1); Image val2 = voteIcon.AddComponent<Image>(); val2.sprite = LMAssets.VoteIcon; RectTransform component = voteIcon.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(64f, 64f); component.anchorMin = new Vector2(1f, 1f); component.anchorMax = new Vector2(1f, 1f); component.pivot = new Vector2(1f, 1f); component.anchoredPosition = new Vector2(-80f, 0f); ShowVoteIconKeybind(); } private static void ShowVoteIconKeybind() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: 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) //IL_00cd: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("background"); val.transform.SetParent(voteIcon.transform, false); val.transform.SetSiblingIndex(0); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(0f, 0f, 0f, 1f); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(32f, 16f); component.anchorMin = new Vector2(1f, 1f); component.anchorMax = new Vector2(1f, 1f); component.pivot = new Vector2(1.5f, 4.5f); component.anchoredPosition = Vector2.zero; GameObject val3 = new GameObject("keybind"); val3.transform.SetParent(voteIcon.transform, false); val3.transform.SetSiblingIndex(1); TextMeshProUGUI val4 = val3.AddComponent<TextMeshProUGUI>(); ((TMP_Text)val4).text = "[ " + LMConfig.showVoteBind.Value.ToUpper() + " ]"; ((TMP_Text)val4).fontSize = 9f; ((TMP_Text)val4).fontWeight = (FontWeight)800; ((TMP_Text)val4).alignment = (TextAlignmentOptions)514; ((Graphic)val4).color = new Color(0.996f, 0.095f, 0f, 1f); RectTransform component2 = val3.GetComponent<RectTransform>(); component2.sizeDelta = new Vector2(280f, 80f); component2.pivot = new Vector2(0.5f, 0.9f); component2.anchoredPosition = Vector2.zero; } private static GameObject CreateVoteList() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_0046: 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_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Un