diff --git a/MiraAPI/GameModes/GameModeOption.cs b/MiraAPI/GameModes/GameModeOption.cs index 2d1cc88..56b63ac 100644 --- a/MiraAPI/GameModes/GameModeOption.cs +++ b/MiraAPI/GameModes/GameModeOption.cs @@ -139,7 +139,7 @@ public static class GameModeOption [HarmonyPatch(typeof(GameOptionsMenu), nameof(GameOptionsMenu.ValueChanged))] [HarmonyPrefix] - private static bool ValueChanged(GameOptionsMenu __instance, OptionBehaviour option) + private static bool ValueChanged(OptionBehaviour option) { if (!OptionBehaviour.Equals(option)) return true; diff --git a/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs b/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs index 4313101..9dacf03 100644 --- a/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs +++ b/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs @@ -208,7 +208,7 @@ internal static class GameOptionsMenuPatch internal static List> GetActiveGameSettingsRows(Func formatBool) { var menu = GameSettingMenu.Instance ? GameSettingMenu.Instance.GameSettingsTab : null; - if (!menu || menu.Children == null) + if (!menu || menu!.Children == null) { return []; } @@ -216,7 +216,7 @@ internal static class GameOptionsMenuPatch var rows = new List>(); foreach (var option in menu.Children) { - if (!option || !option!.gameObject.activeInHierarchy || + if (!option || !option.gameObject.activeInHierarchy || option == menu.MapPicker || (GameModeOption.OptionBehaviour && option == GameModeOption.OptionBehaviour) || !option.Data) diff --git a/MiraAPI/Patches/RoleGuidePatches.cs b/MiraAPI/Patches/RoleGuidePatches.cs index b8196fc..bc86a9e 100644 --- a/MiraAPI/Patches/RoleGuidePatches.cs +++ b/MiraAPI/Patches/RoleGuidePatches.cs @@ -41,18 +41,17 @@ public static class RoleGuidePatches private static readonly List UntrackedRolePanelDiagnostics = []; private static GameObject searchComponentContainer; - public static PassiveButton SearchIconButton; private static SpriteRenderer _searchIconIdle; private static SpriteRenderer _searchIconHover; - public static PassiveButton SearchSortingOrderButton; + private static PassiveButton _searchSortingOrderButton; private static SpriteRenderer _searchSortingOrderIdle; private static SpriteRenderer _searchSortingOrderHover; - public static TextMeshPro GroupSortingTmp; - public static PassiveButton SearchSortingGroupButton; + private static TextMeshPro groupSortingTmp; + private static PassiveButton _searchSortingGroupButton; private static SpriteRenderer _searchSortingGroupIdle; private static SpriteRenderer _searchSortingGroupHover; - public static TextMeshPro FilterSortingTmp; - public static PassiveButton SearchSortingFilterButton; + private static TextMeshPro filterSortingTmp; + private static PassiveButton _searchSortingFilterButton; private static SpriteRenderer _searchSortingFilterIdle; private static SpriteRenderer _searchSortingFilterHover; private static Scroller _rolesScroller; @@ -107,14 +106,14 @@ public static class RoleGuidePatches var playerMenuGradient = instance.matchInfoPlayersMaskArea.transform.parent.GetAllChildren() .First(x => x.name.Contains("BG_Gradient")); - var settingsenuGradient = instance.matchInfoSettingsMaskArea.transform.parent.GetAllChildren() + var settingsMenuGradient = instance.matchInfoSettingsMaskArea.transform.parent.GetAllChildren() .First(x => x.name.Contains("BG_Gradient")); var roleMenuGradient = instance.MatchInfoRoleMaskArea.transform.parent.GetAllChildren() .First(x => x.name.Contains("BG_Gradient")); playerMenuGradient .GetComponent() .maskInteraction = - settingsenuGradient.GetComponent() + settingsMenuGradient.GetComponent() .maskInteraction = roleMenuGradient.GetComponent() .maskInteraction = SpriteMaskInteraction.VisibleInsideMask; @@ -190,10 +189,9 @@ public static class RoleGuidePatches _currentWikiPage = null!; _loadingSpinner = null; ResetSettingsState(); - SearchIconButton = null!; - SearchSortingOrderButton = null!; - SearchSortingGroupButton = null!; - SearchSortingFilterButton = null!; + _searchSortingOrderButton = null!; + _searchSortingGroupButton = null!; + _searchSortingFilterButton = null!; _searchIconIdle = null!; _searchIconHover = null!; _searchSortingOrderIdle = null!; @@ -417,9 +415,9 @@ public static class RoleGuidePatches HudManager.Instance.SettingsButton, searchComponentContainer.transform); sortingOrderButton.gameObject.SetActive(true); - SearchSortingOrderButton = sortingOrderButton.GetComponent(); + _searchSortingOrderButton = sortingOrderButton.GetComponent(); SetupSearchButton( - SearchSortingOrderButton, + _searchSortingOrderButton, "SearchSortingOrderButton", SwitchMethod, GetSortMethodSprite(_sortMethod, false), @@ -432,9 +430,9 @@ public static class RoleGuidePatches sortingOrderButton, searchComponentContainer.transform); sortingGroupButton.gameObject.SetActive(true); - SearchSortingGroupButton = sortingGroupButton.GetComponent(); + _searchSortingGroupButton = sortingGroupButton.GetComponent(); SetupSearchButton( - SearchSortingGroupButton, + _searchSortingGroupButton, "SearchSortingGroupButton", SwitchGrouping, GetSortGroupSprite(_sortGrouping, false), @@ -447,9 +445,9 @@ public static class RoleGuidePatches sortingOrderButton, searchComponentContainer.transform); sortingFilterButton.gameObject.SetActive(true); - SearchSortingFilterButton = sortingFilterButton.GetComponent(); + _searchSortingFilterButton = sortingFilterButton.GetComponent(); SetupSearchButton( - SearchSortingFilterButton, + _searchSortingFilterButton, "SearchSortingFilterButton", SwitchFilter, GetSortFilterSprite(_sortFilter, false), @@ -510,9 +508,8 @@ public static class RoleGuidePatches sortingOrderButton, sortingOrderButton.transform.parent); searchIconButton.gameObject.SetActive(true); - SearchIconButton = searchIconButton.GetComponent(); SetupSearchButton( - SearchIconButton, + searchIconButton.GetComponent(), "SearchIconButton", ClearSearchText, MiraAssets.SearchIconIdleSprite, @@ -677,17 +674,17 @@ public static class RoleGuidePatches orderSortingTmp.horizontalAlignment = HorizontalAlignmentOptions.Center; orderSortingTmp.transform.localPosition = new Vector3(-0.65f, 0.4f, 0); - GroupSortingTmp = Object.Instantiate( + groupSortingTmp = Object.Instantiate( orderSortingTmp, sortingGroupButton.transform); - GroupSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.GroupingLabel"); - GroupSortingTmp.transform.localPosition = new Vector3(-0.65f, 0.4f, 0); + groupSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.GroupingLabel"); + groupSortingTmp.transform.localPosition = new Vector3(-0.65f, 0.4f, 0); - FilterSortingTmp = Object.Instantiate( + filterSortingTmp = Object.Instantiate( orderSortingTmp, sortingFilterButton.transform); - FilterSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.FilterLabel"); - FilterSortingTmp.transform.localPosition = new Vector3(-0.65f, 0.4f, 0); + filterSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.FilterLabel"); + filterSortingTmp.transform.localPosition = new Vector3(-0.65f, 0.4f, 0); playerButton.transform.localPosition = new Vector3(-3.6f, 0.656f, -0.2f); settingButton.transform.localPosition = new Vector3(-3.6f, 0.056f, -0.2f); @@ -1140,10 +1137,9 @@ public static class RoleGuidePatches .ThenByDescending(p => p.Title.Contains(searchText, StringComparison.OrdinalIgnoreCase) || p.Category.Contains(searchText, StringComparison.OrdinalIgnoreCase)); - return (_sortMethod is SortingMethod.Alphabetical + return [.. _sortMethod is SortingMethod.Alphabetical ? sorted.ThenBy(p => p.GetSortKey(_sortGrouping)) - : sorted.ThenByDescending(p => p.GetSortKey(_sortGrouping))) - .ToList(); + : sorted.ThenByDescending(p => p.GetSortKey(_sortGrouping))]; } private static bool MatchesSearch(DetailedPanel entry, string searchText) @@ -2084,7 +2080,6 @@ public static class RoleGuidePatches _settingsScroller.gameObject.SetActive(true); _settingsPageObject = Helpers.CreateAdvancedSettingsPage( - guide, _settingsScroller, rows, columns, @@ -2155,38 +2150,38 @@ public static class RoleGuidePatches /// False while searching, since search results are a single page. private static void RepurposeSortButtons(bool paginationVisible) { - if (!SearchSortingFilterButton || !SearchSortingGroupButton || !SearchSortingOrderButton) + if (!_searchSortingFilterButton || !_searchSortingGroupButton || !_searchSortingOrderButton) { return; } if (!_sortButtonsRepurposed) { - _savedFilterLabel = FilterSortingTmp.text; - _savedGroupLabel = GroupSortingTmp.text; + _savedFilterLabel = filterSortingTmp.text; + _savedGroupLabel = groupSortingTmp.text; _savedFilterIconScale = _searchSortingFilterIdle.transform.localScale; _savedGroupIconScale = _searchSortingGroupIdle.transform.localScale; - _savedFilterLabelPosition = FilterSortingTmp.transform.localPosition; - _savedGroupLabelPosition = GroupSortingTmp.transform.localPosition; + _savedFilterLabelPosition = filterSortingTmp.transform.localPosition; + _savedGroupLabelPosition = groupSortingTmp.transform.localPosition; SetPaginationSprites(_searchSortingFilterIdle, _searchSortingFilterHover, true); SetPaginationSprites(_searchSortingGroupIdle, _searchSortingGroupHover, false); - FilterSortingTmp.transform.localPosition = new Vector3( + filterSortingTmp.transform.localPosition = new Vector3( -1.25f, 0f, _savedFilterLabelPosition.z); - GroupSortingTmp.transform.localPosition = new Vector3( + groupSortingTmp.transform.localPosition = new Vector3( 0f, 0f, _savedGroupLabelPosition.z); - FilterSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.PrevPage", "Prev"); - GroupSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.NextPage", "Next"); + filterSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.PrevPage", "Prev"); + groupSortingTmp.text = MiraLocaleManager.Get("MiraApi.Wiki.NextPage", "Next"); _sortButtonsRepurposed = true; } - SearchSortingOrderButton.gameObject.SetActive(false); - SearchSortingFilterButton.gameObject.SetActive(paginationVisible); - SearchSortingGroupButton.gameObject.SetActive(paginationVisible); + _searchSortingOrderButton.gameObject.SetActive(false); + _searchSortingFilterButton.gameObject.SetActive(paginationVisible); + _searchSortingGroupButton.gameObject.SetActive(paginationVisible); } private static void SetPaginationSprites(SpriteRenderer idle, SpriteRenderer hover, bool isLeft) @@ -2212,7 +2207,7 @@ public static class RoleGuidePatches } _sortButtonsRepurposed = false; - if (!SearchSortingFilterButton || !SearchSortingGroupButton || !SearchSortingOrderButton) + if (!_searchSortingFilterButton || !_searchSortingGroupButton || !_searchSortingOrderButton) { return; } @@ -2227,13 +2222,13 @@ public static class RoleGuidePatches _searchSortingFilterHover.transform.localScale = _savedFilterIconScale; _searchSortingGroupIdle.transform.localScale = _searchSortingGroupHover.transform.localScale = _savedGroupIconScale; - FilterSortingTmp.text = _savedFilterLabel; - GroupSortingTmp.text = _savedGroupLabel; - FilterSortingTmp.transform.localPosition = _savedFilterLabelPosition; - GroupSortingTmp.transform.localPosition = _savedGroupLabelPosition; - SearchSortingOrderButton.gameObject.SetActive(true); - SearchSortingFilterButton.gameObject.SetActive(true); - SearchSortingGroupButton.gameObject.SetActive(true); + filterSortingTmp.text = _savedFilterLabel; + groupSortingTmp.text = _savedGroupLabel; + filterSortingTmp.transform.localPosition = _savedFilterLabelPosition; + groupSortingTmp.transform.localPosition = _savedGroupLabelPosition; + _searchSortingOrderButton.gameObject.SetActive(true); + _searchSortingFilterButton.gameObject.SetActive(true); + _searchSortingGroupButton.gameObject.SetActive(true); } } @@ -2255,4 +2250,4 @@ internal enum SortingFilter EnabledOnly, DisabledOnly, AllRoles, -} \ No newline at end of file +} diff --git a/MiraAPI/Utilities/GuideOptionsPatches.cs b/MiraAPI/Utilities/GuideOptionsPatches.cs index 22703b5..e33f601 100644 --- a/MiraAPI/Utilities/GuideOptionsPatches.cs +++ b/MiraAPI/Utilities/GuideOptionsPatches.cs @@ -141,13 +141,12 @@ internal static class GuideOptionPages } } - return pages + return [.. pages .OrderBy(page => page.MenuOrder) .ThenBy(page => page.GroupPriority) .ThenBy(page => page.Order) .ThenBy(page => page.Group.GroupName, StringComparer.OrdinalIgnoreCase) - .ThenBy(page => page.ModAbbreviation, StringComparer.OrdinalIgnoreCase) - .ToList(); + .ThenBy(page => page.ModAbbreviation, StringComparer.OrdinalIgnoreCase)]; } private static int GetMenuOrder(MenuCategory menu) @@ -173,7 +172,7 @@ internal static class GuideOptionPages var pageList = pages.ToList(); var normalizedQuery = NormalizeSearchText(query); var matchingModPages = normalizedQuery.Length < 3 - ? Array.Empty() + ? [] : pageList .Where(page => page.ModSearchTerms.Any(term => NormalizeSearchText(term).Contains(normalizedQuery, StringComparison.Ordinal))) @@ -181,16 +180,15 @@ internal static class GuideOptionPages if (matchingModPages.Length > 0) { - return matchingModPages.SelectMany(page => page.Entries).ToList(); + return [.. matchingModPages.SelectMany(page => page.Entries)]; } - return pageList + return [.. pageList .SelectMany(page => page.Entries .Select(entry => (Entry: entry, Rank: Rank(entry, query, cmp))) .Where(result => result.Rank < int.MaxValue) .OrderBy(result => result.Rank) - .Select(result => result.Entry)) - .ToList(); + .Select(result => result.Entry))]; } private static string[] GetModSearchTerms(MiraPluginInfo plugin, AbstractOptionGroup group) @@ -211,7 +209,7 @@ internal static class GuideOptionPages AddNamespace(terms, option.GetType()); } - return terms.Where(term => !string.IsNullOrWhiteSpace(term)).ToArray(); + return [.. terms.Where(term => !string.IsNullOrWhiteSpace(term))]; } private static void AddNamespace(HashSet terms, Type type) @@ -224,7 +222,7 @@ internal static class GuideOptionPages private static string NormalizeSearchText(string value) { - return new string(value.Where(char.IsLetterOrDigit).Select(char.ToLowerInvariant).ToArray()); + return new string([.. value.Where(char.IsLetterOrDigit).Select(char.ToLowerInvariant)]); } private static int Rank(GuideOptionEntry entry, string query, StringComparison cmp) @@ -336,9 +334,9 @@ internal static class GuideOptionPages return TrailingZeroRegex.Replace(number.Data.GetValueString(number.Value), string.Empty); default: - return option.Data.Type == global::OptionTypes.Checkbox + return option.Data.Type == OptionTypes.Checkbox ? formatBool(Math.Abs(option.GetFloatData() - 1f) < 0.0001f) : option.Data.GetValueString(option.GetFloatData()); } } -} \ No newline at end of file +} diff --git a/MiraAPI/Utilities/Helpers.cs b/MiraAPI/Utilities/Helpers.cs index 570bb04..94fea9f 100644 --- a/MiraAPI/Utilities/Helpers.cs +++ b/MiraAPI/Utilities/Helpers.cs @@ -914,25 +914,21 @@ public static class Helpers /// /// Creates a page of vanilla settings rows inside a roles-style scroller. /// - /// The guide object. /// The the page is parented to. /// The rows to show: key is the label, value is the displayed value. /// The that holds all the rows. Destroy it to remove the page. public static GameObject CreateAdvancedSettingsPage( - MatchInfoGuide guide, Scroller parent, IReadOnlyList> settings) { return CreateAdvancedSettingsPage( - guide, parent, - settings.Select(setting => new AdvancedSettingsRow(setting.Key, setting.Value, null)).ToList(), + [.. settings.Select(setting => new AdvancedSettingsRow(setting.Key, setting.Value, null))], 2, false); } internal static GameObject CreateAdvancedSettingsPage( - MatchInfoGuide guide, Scroller parent, List settings, int columns = 2, @@ -997,7 +993,7 @@ public static class Helpers bounds.Encapsulate(next); return bounds; }); - var rowScale = (columnWidth / prefabBounds.size.x) * 1.22f; + var rowScale = columnWidth / prefabBounds.size.x * 1.22f; var rowHeight = prefabBounds.size.y * rowScale; var rowPitch = 0.45f * rowScale; var groupedSettings = groupsAsColumns @@ -1009,7 +1005,7 @@ public static class Helpers groupsAsColumns = groupedSettings.Count > 1; if (groupsAsColumns) { - rowScale = (columnWidth / prefabBounds.size.x) * (columns > 2 ? 1.15f : 1f); + rowScale = columnWidth / prefabBounds.size.x * (columns > 2 ? 1.15f : 1f); rowHeight = prefabBounds.size.y * rowScale; rowPitch = 0.45f * rowScale; } @@ -1321,4 +1317,4 @@ public static class Helpers panel.roleCount.fontMaterial.SetFloat(panel.STENCIL_NAME, 50f); panel.roleIcon.transform.localScale = new Vector3(3.5f, 3.5f, 1f); } -} \ No newline at end of file +}