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