using vnxbqy.UI;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
|
/// <summary>
|
/// 合服-骑宠盛宴
|
/// </summary>
|
|
public class MergeServerQCSYModel : ILModel<MergeServerQCSYModel>
|
{
|
public ILOpenServerActivityProxy activity;
|
public Operation operationType = Operation.default11;
|
public const int activityID = 4;
|
public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_HFHD;
|
|
public bool IsOpen()
|
{
|
return OperationTimeHepler.Instance.SatisfyOpenCondition(operationType);
|
}
|
|
public bool IsAdvance()
|
{
|
return false;
|
}
|
|
public bool priorityOpen()
|
{
|
//红点
|
return redpoint.state == RedPointState.Simple;
|
}
|
|
|
public event Action<int> onStateUpdate;
|
|
protected override void Init()
|
{
|
OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
|
OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
|
GameEvent.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
|
GameEvent.playerLoginOkEvent += OnPlayerLoginOk;
|
activity = new ILOpenServerActivityProxy(IsOpen, IsAdvance, priorityOpen);
|
OpenServerActivityCenter.Instance.Register(activityID, activity, activityType);
|
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
}
|
|
public void OnPlayerLoginOk()
|
{
|
UpdateRedpoint();
|
}
|
|
protected override void UnInit()
|
{
|
OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
|
OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
|
GameEvent.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
|
GameEvent.playerLoginOkEvent -= OnPlayerLoginOk;
|
}
|
|
|
private void OperationEndEvent(Operation operation, int state)
|
{
|
if (operation == operationType && state == 0)
|
{
|
TimeMgr.Instance.OnMinuteEvent -= OnMinuteEvent;
|
if (onStateUpdate != null)
|
{
|
onStateUpdate(activityID);
|
}
|
redpoint.state = RedPointState.None;
|
}
|
}
|
|
private void OperationStartEvent(Operation operation, int state)
|
{
|
if (operation == operationType && state == 0)
|
{
|
TimeMgr.Instance.OnMinuteEvent -= OnMinuteEvent;
|
TimeMgr.Instance.OnMinuteEvent += OnMinuteEvent;
|
if (onStateUpdate != null)
|
{
|
onStateUpdate(activityID);
|
}
|
}
|
}
|
|
void OnMinuteEvent()
|
{
|
OperationBase operationBase = null;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(operationType, out operationBase))
|
{
|
OperationQCSY operation = operationBase as OperationQCSY;
|
if (operation.IsInAction())
|
{
|
UpdateRedpoint();
|
}
|
}
|
}
|
|
|
#region 红点
|
public Redpoint redpoint = new Redpoint(MainRedPoint.hfhdRedPoint, MainRedPoint.hfhdRedPoint * 100 + activityID);
|
public void UpdateRedpoint()
|
{
|
redpoint.state = RedPointState.None;
|
if (!IsOpen())
|
{
|
return;
|
}
|
redpoint.state = RedPointState.Simple;
|
}
|
#endregion
|
}
|