//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, October 19, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using EnhancedUI.EnhancedScroller; namespace Snxxz.UI { public class SignInWin : Window { [SerializeField] ScrollerController signInCtrl; [SerializeField] ScrollerController ctnSignCtrl; [SerializeField] Text signInfo; SignInModel m_Model; SignInModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { ctnSignCtrl.lockType = EnhanceLockType.KeepVertical; signInCtrl.lockType = EnhanceLockType.KeepVertical; } protected override void AddListeners() { } protected override void OnPreOpen() { InitSignIn(); //signInCtrl.JumpIndex(0); InitCtnSign(); ctnSignCtrl.mScrollRect.verticalNormalizedPosition = 1; signInCtrl.mScrollRect.verticalNormalizedPosition = 1; model.OnSignRefresh += OnSignRefresh; } protected override void OnAfterOpen() { HandleAchievement(); } protected override void OnPreClose() { model.OnSignRefresh -= OnSignRefresh; AchievementGoto.achievementType = 0; } protected override void OnAfterClose() { } #endregion private void OnSignRefresh() { InitSignIn(); InitCtnSign(); } private void HandleAchievement() { if (AchievementGoto.achievementType == AchievementGoto.SignInAchievement) { var _cfg = Config.Instance.Get(AchievementGoto.SignInAchievement); if (!model.todaySign || model.surSignNum > 0) { var _num = Mathf.Max(0, model.signNum); var _line = _num / 5; signInCtrl.JumpIndex(_line); } else { SysNotifyMgr.Instance.ShowTip("Achievement_16"); AchievementGoto.achievementType = 0; } } else { signInCtrl.JumpIndex(0); } signInCtrl.m_Scorller.RefreshActiveCellViews(); } private void InitSignIn() { if (signInCtrl.GetNumberOfCells(signInCtrl.m_Scorller) == 0) { signInCtrl.Refresh(); int page = Mathf.CeilToInt((float)model.signAwardList.Count / 5); for (int i = 0; i < page; i++) { signInCtrl.AddCell(ScrollerDataType.Header, i); } signInCtrl.Restart(); } else { signInCtrl.m_Scorller.RefreshActiveCellViews(); } signInfo.text = Language.Get("SignIn_3", model.signNum, model.surSignNum); } private void InitCtnSign() { if (ctnSignCtrl.GetNumberOfCells(ctnSignCtrl.m_Scorller) == 0) { ctnSignCtrl.Refresh(); for (int i = 0; i < model.cntSignList.Count; i++) { ctnSignCtrl.AddCell(ScrollerDataType.Header, i); } ctnSignCtrl.Restart(); } else { ctnSignCtrl.m_Scorller.RefreshActiveCellViews(); } } } }