少年修仙传客户端代码仓库
client_Hale
2019-04-13 d4b5806a57e4e88a1fc57dd95f17e185f33e4e43
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
//--------------------------------------------------------
//    [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] RectTransform m_Empty;
        [SerializeField] ItemBehaviour m_Item;
        [SerializeField] Button m_AddMaterial;
        [SerializeField] Button m_RemoveMaterial;
        [SerializeField] RectTransform m_Locked;
 
        bool isUnLocked = false;
        EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
        public void Display(bool isUnLocked)
        {
            this.isUnLocked = isUnLocked;
            DisplayBaseInfo(this.isUnLocked);
            DisplayDynamicInfo(true);
 
            m_AddMaterial.SetListener(AddMaterials);
            m_RemoveMaterial.SetListener(RemoveMaterial);
        }
 
        private void LateUpdate()
        {
            DisplayDynamicInfo(false);
        }
 
        private void DisplayBaseInfo(bool isUnLocked)
        {
            m_Locked.gameObject.SetActive(!isUnLocked);
            m_Hint.text = Language.Get("ComposeWin_PutInText_2");
        }
 
        private void DisplayDynamicInfo(bool force)
        {
            if (force || model.GetMaterialLogicStringByIndex(m_Index).dirty)
            {
                var material = model.GetMaterialLogicStringByIndex(m_Index).Fetch();
                var hasMaterial = !string.IsNullOrEmpty(material);
                m_Hint.gameObject.SetActive(isUnLocked && !hasMaterial);
                if (hasMaterial)
                {
                    m_Empty.gameObject.SetActive(false);
                    var item = packModel.GetItemByGuid(material);
                    m_Item.gameObject.SetActive(true);
                    m_Item.SetItem(item.itemId, 1);
                }
                else
                {
                    m_Item.gameObject.SetActive(false);
                    m_Empty.gameObject.SetActive(true);
                }
 
                m_AddMaterial.gameObject.SetActive(isUnLocked && !hasMaterial);
                m_RemoveMaterial.gameObject.SetActive(isUnLocked && hasMaterial);
            }
        }
 
        private void AddMaterials()
        {
            model.operateMaterialIndex.value = m_Index;
        }
 
        private void RemoveMaterial()
        {
            model.RemoveMaterial(m_Index);
        }
 
    }
 
}