1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
public class MinggeSmallTipWin : UIBase
{
    [SerializeField] RectTransform content;
    [SerializeField] RectTransform arrow;
    [SerializeField] MinggeItemCell itemCell;
    [SerializeField] Text itemName;
    [SerializeField] OutlineEx itemNameOutline;
    [SerializeField] List<TextEx> fightAttrNames;
    [SerializeField] List<TextEx> fightAttrValues;
    [SerializeField] TextEx[] skillDesces;
 
    [SerializeField] Transform topObj;
 
    protected override void OnPreOpen()
    {
 
        Display();
    }
    protected override void NextFrameAfterOpen()
    {
        var worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
 
 
        Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(worldPos);
 
        var beforePos = screenAdjustedPos;
        var beforeAdjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(beforePos);
 
        var rectWidth = content.rect.width * Screen.width / canvasScaler.referenceResolution.x;
        screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f);
        screenAdjustedPos.y -= 40;
        var adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
        adjustedPos.z = 0;
        content.position = adjustedPos;
 
        arrow.position = new Vector3(beforeAdjustedPos.x, arrow.position.y, 0);
    }
    
 
    public void Display()
    {
        var guid = ItemTipUtility.mainTipData.guid;
        if (string.IsNullOrEmpty(guid))
        {
            DelayCloseWindow().Forget();
            return;
        }
 
        topObj.SetActive(ItemTipUtility.mainTipData.showAll);
        
        var equip = PackManager.Instance.GetItemByGuid(guid);
 
        itemCell.Display(equip.guid);
        string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(equip.config.ItemColor).ColorName);
        itemName.text = UIHelper.AppendColor(equip.config.ItemColor, qualityName + equip.config.ItemName, true, 2);
        itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(equip.config.ItemColor);
 
        
 
        var fightAttrs = EquipModel.Instance.GetEquipFightAttrs(equip);
        var fightValues = EquipModel.Instance.GetEquipFightValues(equip);
 
 
        for (var i = 0; i < fightAttrNames.Count; i++)
        {
            if (i >= fightAttrs.Count)
            {
                //显示锁住
                fightAttrNames[i].text = "?";
                fightAttrNames[i].colorType = TextColType.NavyGray;
                fightAttrValues[i].text = Language.Get("Mingge27", MinggeManager.Instance.unlockAttrLVList[i - 1]);
                fightAttrValues[i].colorType = TextColType.NavyGray;
            }
            else
            {
                fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name;
                fightAttrNames[i].colorType = TextColType.lightYellow;
                fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]);
                fightAttrValues[i].colorType = TextColType.lightYellow;
            }
        }
 
        //技能描述 所有技能全显示
        var skillID = EquipModel.Instance.GetEquipSkillID(equip);
        if (skillID == 0)
        {
            for (int i = 0; i < skillDesces.Length; i++)
            {
                skillDesces[i].SetActive(false);
            }
        }
        else
        {
            var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict();
            //如果是旧装备 显示当前数量;新装备不同技能数量+1,同技能不变
            var hasCnt = dict[skillID].Count;
            for (int i = 0; i < skillDesces.Length; i++)
            {
                skillDesces[i].SetActive(true);
                skillDesces[i].colorType = i == hasCnt - 1 ? TextColType.lightYellow : TextColType.NavyGray;
                var showCnt = Math.Min(hasCnt, i + 1);
                skillDesces[i].text = Language.Get("L1039", Language.Get($"MinggeSkillType_{skillID}")) +
                        SkillConfig.Get(skillID + i).Description + " " + Language.Get("HeroFates11", showCnt, i + 1);
            }
        }
    }
 
 
 
 
 
}