少年修仙传客户端代码仓库
hch
2025-03-03 28785d6ddf9c08e49527ede9405c7b6c93c6ed32
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, March 28, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using DG.Tweening;
 
namespace vnxbqy.UI
{
 
    public class MainWinTopGrid : MonoBehaviour
    {
        [SerializeField] bool m_AlwayShow;
        // 配置逻辑参考 IsOpen 函数
        [SerializeField] int m_FunctionId;
        [SerializeField] int m_ActivityType = 0;    //活动模板
        [SerializeField] int m_OpenServerActivityType = 100;
        [SerializeField] bool m_IsAnyOpenServerActivity = false;
        [SerializeField] Operation m_OperationActivityType = Operation.max;
 
        [SerializeField] RectTransform m_Content;
        [SerializeField] CanvasGroup m_CanvasGroup;
        [SerializeField] IsPlayerUIeffect m_IsPlayerUIeffect;
 
        TreasureFindHostModel treasureFindHostModel
        {
            get { return ModelCenter.Instance.GetModel<TreasureFindHostModel>(); }
        }
 
        public RectTransform rectTransform { get { return this.transform as RectTransform; } }
        public bool alwayShow { get { return m_AlwayShow; } }
 
        float targetY = 0f;
        float targetAlpha = 0f;
 
        public void Switch(bool active, float offset, float delay)
        {
            if (m_AlwayShow)
            {
                return;
            }
 
            targetY = active ? 0 : (120f + offset);
            targetAlpha = active ? 1f : 0f;
 
            if (active)
            {
                m_Content.DOLocalMoveY(targetY, 0.3f).SetDelay(delay).SetEase(Ease.OutSine).OnComplete(PlayerUIEffect);
            }
            else
            {
                m_Content.DOLocalMoveY(targetY, 0.3f).SetDelay(delay).SetEase(Ease.InSine).OnStart(StopUIEffect);
            }
 
            m_CanvasGroup.DOFade(targetAlpha, 0.3f).SetDelay(delay).SetEase(active ? Ease.OutSine : Ease.InSine);
            m_CanvasGroup.blocksRaycasts = active;
        }
 
        public void SwitchImmediately(bool active, float offset)
        {
            if (m_AlwayShow)
            {
                return;
            }
 
            targetY = active ? 0 : (120f + offset);
            targetAlpha = active ? 1f : 0f;
            m_Content.anchoredPosition = m_Content.anchoredPosition.SetY(targetY);
            m_CanvasGroup.alpha = targetAlpha;
            m_CanvasGroup.blocksRaycasts = active;
 
            if (active)
            {
                PlayerUIEffect();
            }
            else
            {
                StopUIEffect();
            }
        }
        
        public bool IsOpen()
        {
            if (m_FunctionId > 0)
            {
                if (m_FunctionId == 130)
                {
                    return NeedForWhiteModel.Instance.IsOpen(); 
                }
                else if (m_FunctionId == 193)
                {
                    return OnlineRechargeModel.Instance.IsOpen() &&
                        !OnlineRechargeModel.Instance.IsBottomButtonOpen();
                }
                else if (m_FunctionId == 124 && FuncOpen.Instance.IsFuncOpen(m_FunctionId))
                {
                    //仙宝寻主已经全部获取
                    if (treasureFindHostModel.CheckTreasureFindHostFinish())
                        return false;
                    return true;
                }
                return FuncOpen.Instance.IsFuncOpen(m_FunctionId);
            }
 
            //默认100为不判定
            if (m_OpenServerActivityType != 100)
            {
                return OpenServerActivityCenter.Instance.IsActivityOpen(m_OpenServerActivityType, m_ActivityType);
            }
 
            if (m_IsAnyOpenServerActivity)
            {
                var functionOrder = 0;
                if (m_ActivityType == 4)
                {
                    var actionInfo = OpenServerActivityCenter.Instance.GetNewDayActionEnterInfo();
                    return actionInfo.activityID != 0;
                }
                return OpenServerActivityCenter.Instance.IsAnyActivityOpen(out functionOrder, m_ActivityType);
            }
 
            if (m_OperationActivityType != Operation.max)
            {
                if (m_OperationActivityType== Operation.default47)
                {
                    return OperationTimeHepler.Instance.SatisfyOpenCondition(m_OperationActivityType) && !ModelCenter.Instance.GetModel<CycleHallActModel>().GetTabIDList().IsNullOrEmpty();
                }
                else if (m_OperationActivityType == Operation.default48)
                {
                   return OperationTimeHepler.Instance.SatisfyOpenCondition(m_OperationActivityType) && ModelCenter.Instance.GetModel<YunShiXBActModel>().IsFuncOpen();
                }
                return OperationTimeHepler.Instance.SatisfyOpenCondition(m_OperationActivityType);
            }
 
            return false;
        }
 
        private void PlayerUIEffect()
        {
            if (m_IsPlayerUIeffect != null)
            {
                m_IsPlayerUIeffect.StartPlayUIEffect();
            }
        }
 
        private void StopUIEffect()
        {
            if (m_IsPlayerUIeffect != null)
            {
                m_IsPlayerUIeffect.ObtainPlayUIEffect();
            }
        }
 
    }
 
}