少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-13 033958214c0b16d7e7b93cc821b018c295251867
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
namespace Snxxz.UI
{
    public class AlchemyStudyBehaviour : MonoBehaviour
    {
        [SerializeField] ItemBehaviour m_Item;
        [SerializeField] Text m_StoveCondition;
        [SerializeField] Text m_ReikiPointCondition;
        [SerializeField] Button m_Func;
        [SerializeField] Text m_FuncLabel;
 
        AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        ReikiRootModel reikiRootModel { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
 
        private void Awake()
        {
            m_Func.SetListener(Learn);
        }
 
        public void Display()
        {
            DisplayItem();
            DisplayStoveCondition();
            DisplayPropertyCondition();
            DisplayFuncState();
        }
 
        void DisplayItem()
        {
            var config = AlchemyConfig.Get(model.selectAlchemy);
            m_Item.SetItem(config.LearnNeedItemID, 1);
        }
 
        void DisplayStoveCondition()
        {
            var config = AlchemyConfig.Get(model.selectAlchemy);
            m_StoveCondition.gameObject.SetActive(config.LearnNeedAlchemLV > 0);
            if (config.LearnNeedAlchemLV > 0)
            {
                var satisfy = model.stoveLevel >= config.LearnNeedAlchemLV;
                m_StoveCondition.text = Language.Get("AlchemyCondition_1", config.LearnNeedAlchemLV);
                m_StoveCondition.color = UIHelper.GetUIColor(satisfy ? TextColType.Green : TextColType.Red, true);
            }
        }
 
        void DisplayPropertyCondition()
        {
            var config = AlchemyConfig.Get(model.selectAlchemy);
            m_ReikiPointCondition.gameObject.SetActive(config.LearnNeedLuck > 0);
            if (config.LearnNeedLuck > 0)
            {
                var satisfy = reikiRootModel.GetReikiRootTotalPointWithFree() >= config.LearnNeedLuck;
                m_ReikiPointCondition.text = Language.Get("AlchemyCondition_2", config.LearnNeedLuck);
                m_ReikiPointCondition.color = UIHelper.GetUIColor(satisfy ? TextColType.Green : TextColType.Red, true);
            }
        }
 
        void DisplayFuncState()
        {
            var error = 0;
            var satisfyLearn = model.TryLearn(model.selectAlchemy, out error);
            m_Func.SetColorful(m_FuncLabel, satisfyLearn);
        }
 
        private void Learn()
        {
            var error = 0;
            if (model.TryLearn(model.selectAlchemy, out error))
            {
                var pak = new CA576_tagCMPlayerRefine();
                pak.AlchemyID = (uint)model.selectAlchemy;
                pak.DoType = 0;
                GameNetSystem.Instance.SendInfo(pak);
            }
            else
            {
                DisplayErrorTip(error);
            }
        }
 
        void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 1:
                    var config = AlchemyConfig.Get(model.selectAlchemy);
                    ItemTipUtility.Show(config.LearnNeedItemID);
                    //SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_1");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_2");
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("AlchemyLearnError_3");
                    break;
            }
        }
 
        public void Dispose()
        {
        }
    }
}