using UnityEngine;
|
using UnityEngine.UI;
|
using DG.Tweening;
|
using System;
|
|
|
//实装的显示
|
public class MinggeEquipCell : MonoBehaviour
|
{
|
[SerializeField] UIEffectPlayer loopEffect;
|
[SerializeField] Text posNameText;
|
[SerializeField] Text lvText;
|
[SerializeField] Image iconImage;
|
[SerializeField] Image skillImage; //只有带意象技能才显示
|
[SerializeField] UIEffectPlayer activeEffect;
|
[SerializeField] Button button;
|
[SerializeField] Transform flyStartObj;
|
|
[Header("命格装备位")]
|
public int equipIndex;
|
|
string lastGuid = "uninit";
|
public void Display()
|
{
|
var presetID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge);
|
var packIndex = MinggeManager.Instance.GetPackIndex(presetID, equipIndex);//对应卦玉背包索引
|
var item = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
|
if (item == null)
|
{
|
loopEffect?.Stop();
|
posNameText.text = Language.Get($"MinggeGird{equipIndex}");
|
iconImage.SetActive(false);
|
button.RemoveAllListeners();
|
lastGuid = "";
|
return;
|
}
|
posNameText.text = "";
|
iconImage.SetActive(true);
|
int itemID = item.config.ID;
|
iconImage.SetItemSprite(itemID);
|
if (equipIndex <= 4 && skillImage != null)
|
{
|
skillImage.SetActive(true);
|
var skillID = EquipModel.Instance.GetEquipSkillID(item);
|
if (skillID != 0)
|
{
|
skillImage.SetSprite($"MinggeSkill_{skillID}");
|
var index = Array.IndexOf(EffectConfig.Get(loopEffect.effectId).animIndex, skillID);
|
loopEffect.Play(index);
|
}
|
else
|
{
|
skillImage.SetActive(false);
|
loopEffect.Stop();
|
}
|
}
|
else
|
{
|
skillImage.SetActive(false);
|
}
|
|
lvText.text = EquipModel.Instance.GetEquipLV(item).ToString();
|
|
button.AddListener(() =>
|
{
|
ItemTipUtility.Show(item.guid);
|
});
|
|
if (lastGuid == "uninit")
|
{
|
lastGuid = item.guid;
|
}
|
else if (lastGuid != item.guid)
|
{
|
lastGuid = item.guid;
|
PlayEffect();
|
}
|
}
|
|
public void PlayEffect()
|
{
|
iconImage.transform.position = flyStartObj.position;
|
iconImage.transform.DOLocalMove(Vector3.zero, 0.2f).SetEase(Ease.InQuad).OnComplete(() =>
|
{
|
activeEffect.Play();
|
});
|
}
|
|
}
|