| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Linq;
|
| | | using Cysharp.Threading.Tasks;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
| | | [SerializeField] RectTransform bgRect;
|
| | |
|
| | | ItemModel equip;
|
| | | ItemConfig customEquipItemConfig;
|
| | | AppointItemConfig customEquipAppointItemConfig;
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | equip = PackManager.Instance.GetItemByGuid(ItemTipUtility.mainTipData.guid);
|
| | | Display(equip);
|
| | | bool isShowCustomEquip = ItemTipUtility.isShowCustomEquip;
|
| | | if (isShowCustomEquip)
|
| | | {
|
| | | int customEquipItemId = ItemTipUtility.customEquipItemId;
|
| | | int customEquipAppointItemId = ItemTipUtility.customEquipAppointItemId;
|
| | | if (!ItemConfig.HasKey(customEquipItemId))
|
| | | return;
|
| | | if (!AppointItemConfig.HasKey(customEquipAppointItemId))
|
| | | return;
|
| | | customEquipItemConfig = ItemConfig.Get(customEquipItemId);
|
| | | customEquipAppointItemConfig = AppointItemConfig.Get(customEquipAppointItemId);
|
| | | Display(customEquipItemConfig, customEquipAppointItemConfig);
|
| | | }
|
| | | else
|
| | | {
|
| | | equip = PackManager.Instance.GetItemByGuid(ItemTipUtility.mainTipData.guid);
|
| | | Display(equip);
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnOpen()
|
| | | {
|
| | | //先缩小,这样不会因为间隔帧产生明显的闪烁
|
| | | uieffect.transform.localScale = Vector3.zero;
|
| | | //特效显示依赖rect的排版,放在下一帧
|
| | | RefreshEffect(equip).Forget();
|
| | |
|
| | | bool isShowCustomEquip = ItemTipUtility.isShowCustomEquip;
|
| | | if (isShowCustomEquip)
|
| | | {
|
| | | RefreshEffect(customEquipItemConfig).Forget();
|
| | | }
|
| | | else
|
| | | {
|
| | | //特效显示依赖rect的排版,放在下一帧
|
| | | RefreshEffect(equip).Forget();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public void Display(ItemConfig itemConfig, AppointItemConfig appointItemConfig)
|
| | | {
|
| | |
|
| | | equipImage.SetOrgSprite(itemConfig.IconKey);
|
| | | itemName.text = UIHelper.AppendColor(itemConfig.ItemColor, itemConfig.ItemName, true, 1);
|
| | | itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(itemConfig.ItemColor);
|
| | | qualityName.text = UIHelper.GetQualityNameWithColor(itemConfig.ItemColor, Language.Get("equipQualityFormat"));
|
| | | qualityNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(itemConfig.ItemColor);
|
| | | placeName.text = EquipModel.Instance.GetEquipPlaceName(itemConfig.EquipPlace);
|
| | | lvText.text = Language.Get("EquipExchangeWin7", appointItemConfig.ItemLV);
|
| | | bgFlower.color = UIHelper.GetUIColor(itemConfig.ItemColor);
|
| | |
|
| | |
|
| | | var baseAttrs = appointItemConfig.BaseAttrID.ToList();
|
| | | var baseValues = appointItemConfig.BaseAttrValue.ToList();
|
| | | var fightAttrs = appointItemConfig.LegendAttrID.ToList();
|
| | | var fightValues = appointItemConfig.LegendAttrValue.ToList();
|
| | |
|
| | | 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)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | //延迟处理特效大小
|
| | | async UniTask RefreshEffect(ItemConfig itemConfig)
|
| | | {
|
| | | await UniTask.DelayFrame(3);
|
| | | int effectID = EquipModel.Instance.equipUIEffects[Math.Min(itemConfig.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();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|