From 2f7b0692f38986ecdb65e1a137652b3e91a8adca Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Fri, 13 Sep 2024 21:57:03 -0400 Subject: [PATCH] fix error in Polus Outside tasks in TaskAdder --- MiraAPI/Patches/Roles/TaskAdderPatch.cs | 26 +++++++++++-------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/MiraAPI/Patches/Roles/TaskAdderPatch.cs b/MiraAPI/Patches/Roles/TaskAdderPatch.cs index f804867..bb2c736 100644 --- a/MiraAPI/Patches/Roles/TaskAdderPatch.cs +++ b/MiraAPI/Patches/Roles/TaskAdderPatch.cs @@ -1,7 +1,7 @@ using AmongUs.GameOptions; using HarmonyLib; -using Il2CppSystem; -using Il2CppSystem.Collections.Generic; +using System; +using System.Collections.Generic; using MiraAPI.PluginLoading; using MiraAPI.Roles; using MiraAPI.Utilities.Assets; @@ -12,10 +12,13 @@ using Object = UnityEngine.Object; namespace MiraAPI.Patches.Roles; +/// +/// Patch TaskAdder for organizing Roles and adding scroller. +/// [HarmonyPatch] public static class TaskAdderPatch { - private static readonly System.Collections.Generic.Dictionary ModsFolders = []; + private static readonly Dictionary ModsFolders = []; private static Scroller? _scroller; [HarmonyPostfix] @@ -167,19 +170,14 @@ public static class TaskAdderPatch ControllerManager.Instance.AddSelectableUiElement(taskFolder2.Button); if (!string.IsNullOrEmpty(__instance.restorePreviousSelectionByFolderName) && - taskFolder2.FolderName.Equals(__instance.restorePreviousSelectionByFolderName, System.StringComparison.Ordinal)) + taskFolder2.FolderName.Equals(__instance.restorePreviousSelectionByFolderName, StringComparison.Ordinal)) { __instance.restorePreviousSelectionFound = taskFolder2.Button; } } var flag = false; - var list = new List(); - - foreach (var item in taskFolder.Children) - { - list.Add(item); - } + var list = taskFolder.Children.ToArray().OrderBy(t => t.TaskType).ToList(); for (var l = 0; l < list.Count; l++) { @@ -197,14 +195,12 @@ public static class TaskAdderPatch } case TaskTypes.FixWeatherNode: { - var nodeId = ((WeatherNodeTask)taskAddButton.MyTask).NodeId; + var nodeId = taskAddButton.MyTask.Cast().NodeId; taskAddButton.Text.text = TranslationController.Instance.GetString( - StringNames.FixWeatherNode, - Array.Empty()) + " " + + StringNames.FixWeatherNode) + " " + TranslationController.Instance.GetString( - WeatherSwitchGame.ControlNames[nodeId], - Array.Empty()); + WeatherSwitchGame.ControlNames[nodeId]); break; } default: