| using System;  | 
| using System.Collections.Generic;  | 
| using Cysharp.Threading.Tasks;  | 
| using UnityEngine;  | 
| using UnityEngine.UI;  | 
|   | 
| //装备TIP界面  | 
| public class EquipTipWin : 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;  | 
|   | 
|     ItemModel equip;  | 
|     protected override void OnPreOpen()  | 
|     {  | 
|         equip = PackManager.Instance.GetItemByGuid(ItemTipUtility.mainTipData.guid);  | 
|         Display(equip);  | 
|     }  | 
|   | 
|     protected override void OnOpen()  | 
|     {  | 
|         //先缩小,这样不会因为间隔帧产生明显的闪烁  | 
|         uieffect.transform.localScale = Vector3.zero;  | 
|         //特效显示依赖rect的排版,放在下一帧  | 
|         RefreshEffect(equip).Forget();  | 
|     }  | 
|   | 
|     protected override void OnPreClose()  | 
|     {  | 
|         equip = null;  | 
|     }  | 
|   | 
|     public void Display(ItemModel equip)  | 
|     {  | 
|   | 
|         equipImage.SetOrgSprite(equip.config.IconKey);  | 
|         itemName.text = UIHelper.AppendColor(equip.config.ItemColor, equip.config.ItemName, true, 1);  | 
|         itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(equip.config.ItemColor);  | 
|         qualityName.text = UIHelper.GetQualityNameWithColor(equip.config.ItemColor, Language.Get("equipQualityFormat"));  | 
|         qualityNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(equip.config.ItemColor);  | 
|         placeName.text = EquipModel.Instance.GetEquipPlaceName(equip.config.EquipPlace);  | 
|         lvText.text = Language.Get("EquipExchangeWin7", EquipModel.Instance.GetEquipLV(equip));  | 
|         bgFlower.color = UIHelper.GetUIColor(equip.config.ItemColor);  | 
|   | 
|   | 
|         var baseAttrs = EquipModel.Instance.GetEquipBaseAttrs(equip);  | 
|         var baseValues = EquipModel.Instance.GetEquipBaseValues(equip);  | 
|         var fightAttrs = EquipModel.Instance.GetEquipFightAttrs(equip);  | 
|         var fightValues = EquipModel.Instance.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(ItemModel equip)  | 
|     {   | 
|         await UniTask.DelayFrame(3);  | 
|         int effectID = EquipModel.Instance.equipUIEffects[Math.Min(equip.config.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();  | 
|         }  | 
|     }  | 
|   | 
| }  | 
|   | 
|   | 
|   | 
|   | 
|   |