hch
5 小时以前 bc6f633a2f3cfc01122d8fd4452f69313ddcb32b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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();
        });
    }
 
}