少年修仙传客户端代码仓库
client_Hale
2019-04-11 f54f6c7531c426a59efa900c880ee86d90d38c9d
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
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, November 09, 2017
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
 
namespace Snxxz.UI
{
 
    public class TowerFloorBehaviour : MonoBehaviour
    {
        static float autoSelectAllowTime = 0f;
        static bool autoSelectable {
            get { return Time.time > autoSelectAllowTime; }
        }
 
        [SerializeField] Image m_Floor;
        [SerializeField] Button m_Selected;
        [SerializeField] TextEx m_FloorName;
        [SerializeField] Image m_Challenge;
        [SerializeField] Image m_Cover;
        [SerializeField] RectTransform m_ContainerSelected;
        [SerializeField] UIEffect m_GateEffect;
 
        public RuneTowerBehaviour towerBehaviour;
 
        RectTransform m_RectTransform;
        RectTransform rectTransform { get { return m_RectTransform ?? (this.transform as RectTransform); } }
 
        RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
 
        int floorId = 0;
        public void Display(int _floorId)
        {
            this.floorId = _floorId;
 
            var isOpened = this.model.currentFloor >= this.floorId;
            var config = RuneTowerFloorConfig.Get(floorId);
            m_FloorName.text = StringUtility.Contact(config.FloorName);
            m_Challenge.gameObject.SetActive(this.model.currentFloor == this.floorId);
            m_Cover.gameObject.SetActive(this.model.currentFloor > this.floorId);
 
            m_FloorName.color = this.model.currentFloor == this.floorId ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.s_LightYellow;
            if (this.model.currentFloor == this.floorId)
            {
                m_GateEffect.Play();
            }
            else
            {
                m_GateEffect.Stop();
            }
 
            OnSelected(model.selectedFloor);
            model.selectedFloorEvent -= OnSelected;
            model.selectedFloorEvent += OnSelected;
        }
 
        public void Dispose()
        {
            model.selectedFloorEvent -= OnSelected;
        }
 
        private void Awake()
        {
            m_Selected.AddListener(SelectTower);
        }
 
        private void SelectTower()
        {
            autoSelectAllowTime = Time.time + 0.5f;
            model.selectedFloor = floorId;
        }
 
        private void OnSelected(int _floor)
        {
            m_ContainerSelected.gameObject.SetActive(floorId == _floor);
        }
 
    }
 
}