diff --git a/Patches/FixFleaPatches.cs b/Patches/FixFleaPatches.cs new file mode 100644 index 0000000..a02a76f --- /dev/null +++ b/Patches/FixFleaPatches.cs @@ -0,0 +1,120 @@ +using Aki.Reflection.Patching; +using EFT.Quests; +using EFT.UI; +using EFT.UI.Ragfair; +using HarmonyLib; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace UIFixes +{ + public class FixFleaPatches + { + public static void Enable() + { + // These two are anal AF + new DoNotToggleOnMouseOverPatch().Enable(); + new ToggleOnOpenPatch().Enable(); + + new OfferItemFixMaskPatch().Enable(); + new OfferViewLockedQuestPatch().Enable(); + } + + public class DoNotToggleOnMouseOverPatch : ModulePatch + { + protected override MethodBase GetTargetMethod() + { + return AccessTools.Method(typeof(CategoryView), nameof(CategoryView.PointerEnterHandler)); + } + + [PatchPostfix] + public static void Postfix(Image ____toggleImage, Sprite ____closeSprite, bool ___bool_3) + { + if (!___bool_3) + { + ____toggleImage.sprite = ____closeSprite; + } + } + } + + public class ToggleOnOpenPatch : ModulePatch + { + protected override MethodBase GetTargetMethod() + { + return AccessTools.Method(typeof(CategoryView), nameof(CategoryView.OpenCategory)); + } + + [PatchPostfix] + public static void Postfix(Image ____toggleImage, Sprite ____openSprite, bool ___bool_3) + { + if (___bool_3) + { + ____toggleImage.sprite = ____openSprite; + } + } + } + + public class OfferItemFixMaskPatch : ModulePatch + { + protected override MethodBase GetTargetMethod() + { + return AccessTools.Method(typeof(OfferItemDescription), nameof(OfferItemDescription.Show)); + } + + [PatchPostfix] + public static void Postfix(TextMeshProUGUI ____offerItemName) + { + ____offerItemName.maskable = true; + foreach (var item in ____offerItemName.GetComponentsInChildren()) + { + item.maskable = true; + } + } + } + + public class OfferViewLockedQuestPatch : ModulePatch + { + private static readonly Dictionary QuestUnlocks = []; + + protected override MethodBase GetTargetMethod() + { + return AccessTools.Method(typeof(OfferView), nameof(OfferView.method_10)); + } + + [PatchPostfix] + public static void Postfix(OfferView __instance, HoverTooltipArea ____hoverTooltipArea) + { + if (!Settings.ShowRequiredQuest.Value) + { + return; + } + + string templateId = __instance.Offer_0.Item.TemplateId; + if (__instance.Offer_0.Locked) + { + RawQuestClass quest = null; + if (QuestUnlocks.ContainsKey(templateId)) + { + quest = QuestUnlocks[templateId]; + } + else + { + quest = R.QuestCache.Instance.GetAllQuestTemplates() + .FirstOrDefault(q => q.Rewards[EQuestStatus.Success] + .Any(r => r.type == ERewardType.AssortmentUnlock && r.items.Any(i => i._tpl == templateId))); + QuestUnlocks[templateId] = quest; + } + + if (quest != null) + { + ____hoverTooltipArea.SetMessageText(____hoverTooltipArea.String_1 + " (" + quest.Name + ")", true); + } + } + } + } + } +} diff --git a/Patches/FixTogglesPatches.cs b/Patches/FixTogglesPatches.cs deleted file mode 100644 index 330c41e..0000000 --- a/Patches/FixTogglesPatches.cs +++ /dev/null @@ -1,54 +0,0 @@ -using Aki.Reflection.Patching; -using EFT.UI.Ragfair; -using HarmonyLib; -using System.Reflection; -using UnityEngine; -using UnityEngine.EventSystems; -using UnityEngine.UI; - -namespace UIFixes -{ - // This fix is anal AF - public class FixTogglesPatches - { - public static void Enable() - { - new DoNotToggleOnMouseOverPatch().Enable(); - new ToggleOnOpenPatch().Enable(); - } - - public class DoNotToggleOnMouseOverPatch : ModulePatch - { - protected override MethodBase GetTargetMethod() - { - return AccessTools.Method(typeof(CategoryView), nameof(CategoryView.PointerEnterHandler)); - } - - [PatchPostfix] - public static void Postfix(Image ____toggleImage, Sprite ____closeSprite, bool ___bool_3) - { - if (!___bool_3) - { - ____toggleImage.sprite = ____closeSprite; - } - } - } - - public class ToggleOnOpenPatch : ModulePatch - { - protected override MethodBase GetTargetMethod() - { - return AccessTools.Method(typeof(CategoryView), nameof(CategoryView.OpenCategory)); - } - - [PatchPostfix] - public static void Postfix(Image ____toggleImage, Sprite ____openSprite, bool ___bool_3) - { - if (___bool_3) - { - ____toggleImage.sprite = ____openSprite; - } - } - } - } -} diff --git a/Patches/FleaPrevSearchPatches.cs b/Patches/FleaPrevSearchPatches.cs index 830a1ab..33462fc 100644 --- a/Patches/FleaPrevSearchPatches.cs +++ b/Patches/FleaPrevSearchPatches.cs @@ -1,5 +1,4 @@ using Aki.Reflection.Patching; -using EFT.Quests; using EFT.UI; using EFT.UI.Ragfair; using EFT.UI.Utilities.LightScroller; @@ -9,7 +8,6 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; -using TMPro; using UnityEngine; using UnityEngine.UI; @@ -38,8 +36,6 @@ namespace UIFixes new OfferViewListCategoryPickedPatch().Enable(); new OfferViewListDoneLoadingPatch().Enable(); new ChangedViewListType().Enable(); - new OfferItemFixMaskPatch().Enable(); - new OfferViewLockedQuestPatch().Enable(); Settings.EnableFleaHistory.SettingChanged += (object sender, EventArgs args) => { @@ -319,65 +315,6 @@ namespace UIFixes } } - public class OfferViewLockedQuestPatch : ModulePatch - { - private static readonly Dictionary QuestUnlocks = []; - - protected override MethodBase GetTargetMethod() - { - return AccessTools.Method(typeof(OfferView), nameof(OfferView.method_10)); - } - - [PatchPostfix] - public static void Postfix(OfferView __instance, HoverTooltipArea ____hoverTooltipArea) - { - if (!Settings.ShowRequiredQuest.Value) - { - return; - } - - string templateId = __instance.Offer_0.Item.TemplateId; - if (__instance.Offer_0.Locked) - { - RawQuestClass quest = null; - if (QuestUnlocks.ContainsKey(templateId)) - { - quest = QuestUnlocks[templateId]; - } - else - { - quest = R.QuestCache.Instance.GetAllQuestTemplates() - .FirstOrDefault(q => q.Rewards[EQuestStatus.Success] - .Any(r => r.type == ERewardType.AssortmentUnlock && r.items.Any(i => i._tpl == templateId))); - QuestUnlocks[templateId] = quest; - } - - if (quest != null) - { - ____hoverTooltipArea.SetMessageText(____hoverTooltipArea.String_1 + " (" + quest.Name + ")", true); - } - } - } - } - - public class OfferItemFixMaskPatch : ModulePatch - { - protected override MethodBase GetTargetMethod() - { - return AccessTools.Method(typeof(OfferItemDescription), nameof(OfferItemDescription.Show)); - } - - [PatchPostfix] - public static void Postfix(TextMeshProUGUI ____offerItemName) - { - ____offerItemName.maskable = true; - foreach (var item in ____offerItemName.GetComponentsInChildren()) - { - item.maskable = true; - } - } - } - // Commented out properties just affect the view, so consider the two filters to be a single history entry public static bool IsSimilarTo(this FilterRule one, FilterRule two) { diff --git a/Plugin.cs b/Plugin.cs index 6653a64..2251e21 100644 --- a/Plugin.cs +++ b/Plugin.cs @@ -28,7 +28,7 @@ namespace UIFixes WeaponPresetConfirmPatches.Enable(); WeaponZoomPatches.Enable(); new MoveTaskbarPatch().Enable(); - FixTogglesPatches.Enable(); + FixFleaPatches.Enable(); FleaPrevSearchPatches.Enable(); } }