using System;
|
using UnityEngine;
|
|
namespace Snxxz.UI
|
{
|
public class MultipleRealmPointModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
|
{
|
public const int MULTIPLEREALM_KEY = 20109;
|
public Redpoint multipleRed = new Redpoint(201,MULTIPLEREALM_KEY);
|
public string LocalRecord_Key = "MultipleRealmRecord";
|
bool isNewDay = false;
|
public override void Init()
|
{
|
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
isNewDay = false;
|
}
|
|
public void OnAfterPlayerDataInitialize()
|
{
|
|
}
|
|
public void OnPlayerLoginOk()
|
{
|
LocalRecord_Key = StringUtility.Contact(LocalRecord_Key, PlayerDatas.Instance.baseData.PlayerID);
|
CheckShowRed();
|
OperationTimeHepler.Instance.operationStartEvent -= RefreshOperationState;
|
OperationTimeHepler.Instance.operationStartEvent += RefreshOperationState;
|
OperationTimeHepler.Instance.operationEndEvent -= RefreshOperationState;
|
OperationTimeHepler.Instance.operationEndEvent += RefreshOperationState;
|
OperationTimeHepler.Instance.operationServerCloseEvent -= RefreshOperationClose;
|
OperationTimeHepler.Instance.operationServerCloseEvent += RefreshOperationClose;
|
}
|
|
public override void UnInit()
|
{
|
|
}
|
|
private void RefreshOperationClose(Operation type)
|
{
|
if (type != Operation.MultipRealmPoint) return;
|
CheckShowRed();
|
}
|
|
private void RefreshOperationState(Operation type, int arg2)
|
{
|
if (type != Operation.MultipRealmPoint) return;
|
CheckShowRed();
|
}
|
|
public void CheckShowRed(bool isClick = false)
|
{
|
bool isOpen = OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.MultipRealmPoint);
|
if (!isOpen) return;
|
|
if(!isNewDay)
|
{
|
if (!PlayerPrefs.HasKey(LocalRecord_Key))
|
{
|
LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
|
isNewDay = true;
|
}
|
else
|
{
|
if (TimeUtility.ServerNow.Day != LocalSave.GetInt(LocalRecord_Key))
|
{
|
isNewDay = true;
|
LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day);
|
}
|
}
|
}
|
|
if(!isClick)
|
{
|
if (isOpen && isNewDay)
|
{
|
multipleRed.state = RedPointState.Simple;
|
}
|
else
|
{
|
multipleRed.state = RedPointState.None;
|
}
|
}
|
else
|
{
|
multipleRed.state = RedPointState.None;
|
}
|
|
}
|
}
|
}
|