少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-04 d9e6e5aac14261fad5bd18053b600bd513b45509
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using EnhancedUI.EnhancedScroller;
using TableConfig;
using System;
using Snxxz.UI;
namespace Snxxz.UI
{
    public class SkillPanel : Window
    {
        [SerializeField] Button backBtn;
        [SerializeField] Button leftBtn;
        [SerializeField] Button rightBtn;
        [SerializeField] FunctionButton functionButtonAccord;
        [SerializeField] FunctionButton functionButtonPass;
        [SerializeField] FunctionButton functionButtonTalent;
        [SerializeField] FunctionButtonGroup funcBtnGroup;
        [Header("拖动延迟")]
        [SerializeField] float m_OnDragDelay = 0.1f;
 
        SkillModel m_Model;
        SkillModel model {
            get {
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>());
            }
        }
 
        protected override void BindController()
        {
            model.onDragDelay = m_OnDragDelay;
        }
 
        protected override void AddListeners()
        {
            backBtn.onClick.AddListener(OnClose);
            functionButtonAccord.onClick.AddListener(OnAccordFunc);
            functionButtonPass.onClick.AddListener(OnPassFunc);
            functionButtonTalent.onClick.AddListener(OnTalentFunc);
            leftBtn.onClick.AddListener(() => {
                funcBtnGroup.TriggerLast();
            });
            rightBtn.onClick.AddListener(() => {
                funcBtnGroup.TriggerNext();
            });
        }
 
        private void OnPassFunc()
        {
            CloseChild();
            functionOrder = 1;
            if (windowState == WindowState.Opened) {
                WindowCenter.Instance.OpenWithoutAnimation<SkillPassWin>();
            }
            else {
                WindowCenter.Instance.Open<SkillPassWin>();
            }
        }
 
        private void OnTalentFunc()
        {
            CloseChild();
        }
 
        private void OnAccordFunc()
        {
            CloseChild();
            functionOrder = 0;
            if (windowState == WindowState.Opened) {
                WindowCenter.Instance.OpenWithoutAnimation<SkillAccordWin>();
            }
            else {
                WindowCenter.Instance.Open<SkillAccordWin>();
            }
        }
 
        protected override void OnPreOpen()
        {
        }
 
        protected override void OnActived()
        {
            base.OnActived();
            functionButtonTalent.state = TitleBtnState.Locked;
 
            if (functionOrder == 0 && model.jumpToPass)
            {
                functionOrder = 1;
                model.jumpToPass = false;
            }
 
            funcBtnGroup.TriggerByOrder(functionOrder);
        }
 
        protected override void OnAfterOpen()
        {
        }
 
        protected override void OnPreClose()
        {
            model.jumpToPass = false;
        }
 
        protected override void OnAfterClose()
        {
            if (!WindowJumpMgr.Instance.IsJumpState)
            {
                WindowCenter.Instance.Open<MainInterfaceWin>();
            }
        }
 
        void OnClose()
        {
            CloseChild();
            CloseImmediately();
            
        }
 
        void CloseChild()
        {
            if (WindowCenter.Instance.CheckOpen<SkillAccordWin>()) {
                WindowCenter.Instance.CloseImmediately<SkillAccordWin>();
            }
            if (WindowCenter.Instance.CheckOpen<SkillPassWin>()) {
                WindowCenter.Instance.CloseImmediately<SkillPassWin>();
            }
        }
    }
}