using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace vnxbqy.UI
|
{
|
|
public class SignInModel : Model, IBeforePlayerDataInitialize
|
{
|
public int keepSignInCost
|
{
|
get; private set;
|
}
|
|
public int alreadySignInCount
|
{
|
get; private set;
|
}
|
|
public int keepSignInCount
|
{
|
get; private set;
|
}
|
|
public bool todaySignIn
|
{
|
get;private set;
|
}
|
|
public bool IsFirstMonth
|
{
|
get; private set;
|
}
|
|
public int totalSignInCount { get; private set; }
|
|
public event Action OnSignRefresh;
|
|
public Redpoint redpoint = new Redpoint(201, 20101);
|
|
public void OnRefreshData(HA30D_tagMCDaySignInfo vNetData)
|
{
|
alreadySignInCount = vNetData.DaySignCount;
|
keepSignInCount = vNetData.ReplenishSignCount;
|
totalSignInCount = vNetData.TotalSignCount;
|
todaySignIn = vNetData.IsSign == 1;
|
IsFirstMonth = vNetData.IsFrist == 1;
|
if (OnSignRefresh != null)
|
{
|
OnSignRefresh();
|
}
|
UpdateRedPoint();
|
}
|
|
public override void Init()
|
{
|
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
ParseConfig();
|
}
|
|
public override void UnInit()
|
{
|
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
}
|
|
public Dictionary<int, List<int>> m_KeepSignInItemDict = new Dictionary<int, List<int>>();
|
void ParseConfig()
|
{
|
var configs = ContinueSignInConfig.GetValues();
|
for (int i = 0; i < configs.Count; i++)
|
{
|
var config = configs[i];
|
if (config.JobItemList.Length != 0)
|
{
|
m_KeepSignInItemDict.Add(config.ContineDay, new List<int>(config.JobItemList));
|
}
|
}
|
|
{
|
var config = FuncConfigConfig.Get("SignConsumption");
|
keepSignInCost = int.Parse(config.Numerical1);
|
}
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
alreadySignInCount = 0;
|
keepSignInCount = 0;
|
todaySignIn = false;
|
IsFirstMonth = true;
|
totalSignInCount = 0;
|
}
|
|
private void UpdateRedPoint()
|
{
|
if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.SignIn))
|
{
|
redpoint.state = RedPointState.None;
|
return;
|
}
|
redpoint.state = todaySignIn ? RedPointState.None : RedPointState.GetReward;
|
}
|
|
private void OnFuncStateChangeEvent(int func)
|
{
|
if (func == (int)FuncOpenEnum.SignIn)
|
{
|
UpdateRedPoint();
|
}
|
}
|
}
|
}
|
|