public override unsafe void OnGenerateItemTooltip(NumberArrayData *numberArrayData, StringArrayData *stringArrayData) { var id = Service.GameGui.HoveredItem; if (id < 2000000) { id %= 500000; var item = itemSheet.GetRow((uint)id); if (item != null && item.Desynth > 0) { var desynthLevel = UIState.Instance()->PlayerState.GetDesynthesisLevel(item.ClassJobRepair.Row); var desynthDelta = item.LevelItem.Row - desynthLevel; var useDescription = desynthesisInDescription.Contains(item.ItemSearchCategory.Row); var seStr = GetTooltipString(stringArrayData, useDescription ? ItemDescription : ExtractableProjectableDesynthesizable); if (seStr != null && seStr.Payloads.Count > 0) { if (seStr.Payloads.Last() is TextPayload textPayload) { if (Config.Delta) { textPayload.Text = textPayload.Text.Replace($"{item.LevelItem.Row},00", $"{item.LevelItem.Row} ({desynthDelta:+#;-#}"); textPayload.Text = textPayload.Text.Replace($"{item.LevelItem.Row}.00", $"{item.LevelItem.Row} ({desynthDelta:+#;-#})"); } else { textPayload.Text = textPayload.Text.Replace($"{item.LevelItem.Row},00", $"{item.LevelItem.Row} ({desynthLevel:F0})"); textPayload.Text = textPayload.Text.Replace($"{item.LevelItem.Row}.00", $"{item.LevelItem.Row} ({desynthLevel:F0})"); } SetTooltipString(stringArrayData, useDescription ? ItemDescription : ExtractableProjectableDesynthesizable, seStr); } } } } }