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