hch
13 分钟以前 8400b2934e1a8f2783f0762339f545ebbfbe616f
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
 
//装备TIP界面
public class OtherEquipTipWin : UIBase
{
    [SerializeField] Image equipImage;
    [SerializeField] Text itemName;
    [SerializeField] OutlineEx itemNameOutline;
    [SerializeField] Text qualityName;
    [SerializeField] OutlineEx qualityNameOutline;
    [SerializeField] Text placeName;
    [SerializeField] Text lvText;
    [SerializeField] Image bgFlower;    //背景花纹变色
    [SerializeField] List<Text> baseAttrNames;
    [SerializeField] List<Text> baseAttrValues;
    [SerializeField] GameObject fightAttrGameObj;
    [SerializeField] List<GameObject> fightAttrLine;
    [SerializeField] List<Text> fightAttrNames;
    [SerializeField] List<Text> fightAttrValues;
 
    [SerializeField] UIEffectPlayer uieffect;
    [SerializeField] RectTransform bgRect;
    int equipID;
    ItemConfig itemConfig;
    OtherPlayerDetailManager.RolePlusData.EquipData equip;
    OtherPlayerDetailManager manager { get { return OtherPlayerDetailManager.Instance; } }
    protected override void OnPreOpen()
    {
        equip = manager.otherPlayerViewEquip;
        if (equip == null)
        {
            DelayCloseWindow().Forget();
            return;
        }
        equipID = equip.ItemID;
        if (!ItemConfig.HasKey(equipID))
        {
            DelayCloseWindow().Forget();
            return;
        }
        itemConfig = ItemConfig.Get(equipID);
        Display(itemConfig);
    }
 
    protected override void OnOpen()
    {
        //先缩小,这样不会因为间隔帧产生明显的闪烁
        uieffect.transform.localScale = Vector3.zero;
        //特效显示依赖rect的排版,放在下一帧
        RefreshEffect(itemConfig.ItemColor).Forget();
    }
 
    protected override void OnPreClose()
    {
    }
 
    public void Display(ItemConfig config)
    {
 
        equipImage.SetOrgSprite(config.IconKey);
        itemName.text = UIHelper.AppendColor(config.ItemColor, config.ItemName, true, 1);
        itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(config.ItemColor);
        qualityName.text = UIHelper.GetQualityNameWithColor(config.ItemColor, Language.Get("L1039"));
        qualityNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(config.ItemColor);
        placeName.text = EquipModel.Instance.GetEquipPlaceName(config.EquipPlace);
        lvText.text = Language.Get("EquipExchangeWin7", manager.GetEquipLV(equip));
        bgFlower.color = UIHelper.GetUIColor(config.ItemColor);
 
        var baseAttrs = manager.GetEquipBaseAttrs(equip);
        var baseValues = manager.GetEquipBaseValues(equip);
        var fightAttrs = manager.GetEquipFightAttrs(equip);
        var fightValues = manager.GetEquipFightValues(equip);
 
        for (var i = 0; i < baseAttrNames.Count; i++)
        {
            if (i >= baseAttrs.Count)
            {
                baseAttrNames[i].text = "";
                baseAttrValues[i].text = "";
            }
            else
            {
                baseAttrNames[i].text = PlayerPropertyConfig.Get(baseAttrs[i]).Name;
                baseAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(baseAttrs[i], baseValues[i]);
            }
        }
 
        if (fightAttrs.IsNullOrEmpty())
        {
            fightAttrGameObj.SetActive(false);
        }
        else
        {
            fightAttrGameObj.SetActive(true);
            for (var i = 0; i < fightAttrNames.Count; i++)
            {
                if (i >= fightAttrs.Count)
                {
                    fightAttrNames[i].SetActive(false);
                }
                else
                {
                    fightAttrNames[i].SetActive(true);
                    fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name;
                    fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]);
                }
            }
        }
 
    }
 
    //延迟处理特效大小
    async UniTask RefreshEffect(int itemColor)
    {
        await UniTask.DelayFrame(3);
        int effectID = EquipModel.Instance.equipUIEffects[Math.Min(itemColor, EquipModel.Instance.equipUIEffects.Length) - 1];
        if (effectID == 0)
        {
            uieffect.Stop();
        }
        else
        {
            uieffect.effectId = effectID;
            //计算高度缩放比例 特效显示依赖rect的排版
            uieffect.transform.localScale = new Vector3(0.98f, bgRect.rect.height / uieffect.GetComponent<RectTransform>().rect.height, 1);
            uieffect.Play();
        }
    }
 
 
 
}