//--------------------------------------------------------  
 | 
//    [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)  
 | 
            {  
 | 
                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();  
 | 
            }  
 | 
        }  
 | 
  
 | 
    }  
 | 
  
 | 
}  
 | 
  
 | 
  
 | 
  
 |