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> m_KeepSignInItemDict = new Dictionary>(); 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(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(); } } } }