Exemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }