using EFT.UI; using SPT.Reflection.Patching; using SPT.Reflection.Utils; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace LootValueEX.Patches { internal class TooltipPatch : ModulePatch { protected override MethodBase GetTargetMethod() => typeof(SimpleTooltip).GetMethods(BindingFlags.Instance | BindingFlags.Public).Where(x => x.Name == "Show").ToList()[0]; [PatchPostfix] public static void AlterText(SimpleTooltip __instance, string text) { StackTrace stackTrace = new StackTrace(); Plugin.Log.LogDebug("Stacktrace of tooltip call: \n" + stackTrace.ToString()); if (GridItemTooltipPatch.PatchTooltip) { text += $"<br>TemplateID: {GridItemTooltipPatch.HoveredItem?.TemplateId}<br>Item hashsum: {GridItemTooltipPatch.HoveredItem?.GetHashSum()}<br><color=#ff0fff><b>GridItemView</b></color>"; } if (InsuranceSlotPatch.PatchTooltip) { text += $"<br>TemplateID: {InsuranceSlotPatch.HoveredItem?.TemplateId}<br><color=#00ffff><b>InsuranceSlotItemView</b></color>"; } if (ItemPricePatch.PatchTooltip) { text += $"<br>TemplateID: {TradingItemPatch.HoveredItem?.TemplateId}<br><color=#00ff00><b>PriceTooltip</b></color>"; } if (HandbookPatching.PatchTooltip) { text += $"<br>TemplateID: {HandbookPatching.HoveredItem?.TemplateId}<br><color=#0000ff><b>EntityIcon</b></color>"; } if (InsuranceGridPatch.PatchTooltip) { text += $"<br>TemplateID: {InsuranceGridPatch.HoveredItem?.TemplateId}<br><color=#21f788><b>InsuranceItemView</b></color>"; } if (BarterItemPatch.PatchTooltip) { text += $"<br>TemplateID: {BarterItemPatch.HoveredItem?.TemplateId}<br><color=#ff6521><b>TradingRequisitePanel</b></color>"; } __instance.SetText(text); } } }