少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-05 efa5f8d07fc3321f6ac5f5d97fb422db28d0886f
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
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, February 28, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
namespace Snxxz.UI
{
 
    public class EquipStarUpgradeMaterialBehaviour : MonoBehaviour
    {
        [SerializeField] int m_Index;
        [SerializeField] Text m_Hint;
        [SerializeField] ItemBehaviour m_Item;
        [SerializeField] Button m_AddMaterial;
        [SerializeField] Button m_RemoveMaterial;
        [SerializeField] RectTransform m_Locked;
 
        bool isLocked = false;
        EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
        public void Display(bool isLocked)
        {
            this.isLocked = isLocked;
            DisplayBaseInfo(this.isLocked);
            DisplayDynamicInfo(true);
 
            m_AddMaterial.SetListener(OpenCandidateMaterials);
            m_RemoveMaterial.SetListener(RemoveMaterial);
        }
 
        private void LateUpdate()
        {
            DisplayDynamicInfo(false);
        }
 
        private void DisplayBaseInfo(bool isLocked)
        {
            m_Locked.gameObject.SetActive(isLocked);
        }
 
        private void DisplayDynamicInfo(bool force)
        {
            if (force || model.GetMaterialLogicStringByIndex(m_Index).dirty)
            {
                var material = model.GetMaterialLogicStringByIndex(m_Index).Fetch();
                var hasMaterial = material != null;
                m_Hint.gameObject.SetActive(!isLocked && hasMaterial);
                m_Item.gameObject.SetActive(!isLocked && hasMaterial);
                if (hasMaterial)
                {
                    var item = packModel.GetItemByGuid(material);
                    m_Item.SetItem(item.itemId, 1);
                }
 
                m_AddMaterial.gameObject.SetActive(!isLocked && !hasMaterial);
                m_RemoveMaterial.gameObject.SetActive(!isLocked && hasMaterial);
            }
        }
 
        private void OpenCandidateMaterials()
        {
 
        }
 
        private void RemoveMaterial()
        {
            model.RemoveMaterial(m_Index);
        }
 
    }
 
}