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();
|
}
|
}
|
|
}
|
|
|
|
|
|