少年修仙传客户端代码仓库
hch
2025-04-03 c154ac0832fe4379a00d3e1cda700e7d2a7383c7
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
110
111
112
113
114
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, November 09, 2017
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
 
namespace vnxbqy.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;
        [SerializeField] UIFrame m_FlashFrame;
        [SerializeField] PositionTween m_FloorTween;
 
        [HideInInspector] public RuneTowerBehaviour towerBehaviour;
 
        RectTransform m_RectTransform;
        RectTransform rectTransform { get { return m_RectTransform ?? (this.transform as RectTransform); } }
 
        RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
 
        int floorId = 0;
        public void Display(int _floorId)
        {
            m_FlashFrame.SetActive(false);
            this.floorId = _floorId;
 
            var isOpened = this.model.currentFloor >= this.floorId;
            var config = RuneTowerFloorConfig.Get(floorId);
            m_FloorName.text = StringUtility.Contact(config.FloorName);
            m_Challenge.SetActive(this.model.currentFloor == this.floorId);
            m_Cover.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);
            dungeonModel.onDungeonResultEvent -= OnDungeonResultEvent;
            //不在塔地图中增加雷诛功能
            if (this.model.currentFloor == this.floorId && dungeonModel.CanFlashKill())
            {
                dungeonModel.onDungeonResultEvent += OnDungeonResultEvent;
            }
        }
 
 
        private void OnEnable()
        {
            model.selectedFloorEvent += OnSelected;
        }
        private void OnDisable()
        {
            model.selectedFloorEvent -= OnSelected;
            StopAllCoroutines();
        }
 
 
        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.SetActive(floorId == _floor);
        }
 
        private void OnDungeonResultEvent()
        {
            if (dungeonModel.dungeonResult.quickPass == 1 && dungeonModel.dungeonResult.dataMapID == RuneTowerModel.RUNETOWER_MAPID)
            {
                m_FlashFrame.SetActive(true);
                m_FloorTween.Play(() => {
                    m_FlashFrame.SetActive(false);
                    model.OnFlashOver(1);
                });
                SoundPlayer.Instance.PlayUIAudio(857);
            }
        }
    }
 
}