//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 06, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //在线奖励面板 namespace Snxxz.UI { public class OnlineRewardsWin : Window { [SerializeField] ScrollerController m_ScrollerController; [SerializeField] Text m_TimeText; [SerializeField] Text m_timeRemainingText; #region Built-in OnlineRewardsModel m_OnlineRewardsModel; OnlineRewardsModel OnlineRewardsModel { get { return m_OnlineRewardsModel ?? (m_OnlineRewardsModel = ModelCenter.Instance.GetModel()); } } public int DaysRemaining = 7;// protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { m_ScrollerController.OnRefreshCell += OnRefreshGridCellOnlineTime; TimeUtility.OnServerOpenDayRefresh += OnStepServerDay; OnlineRewardsModel.OnlineRewardsUpdate += OnlineRewardsUpdate; GlobalTimeEvent.Instance.secondEvent += secondEvent; if (DaysRemaining - TimeUtility.CreateDays >= 0) { if (DaysRemaining - TimeUtility.CreateDays == 0) { } else { m_timeRemainingText.text = string.Format(Language.Get("TimeRemainingText"), DaysRemaining - (TimeUtility.CreateDays)); } } else { m_timeRemainingText.text = Language.Get("ActivityEnd"); } //OnCreateGridLineCell(m_ScrollerController); OnCreateGridLineCellOnlineTime(m_ScrollerController); // m_ScrollerController.JumpIndex(Jump()); } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_ScrollerController.OnRefreshCell -= OnRefreshGridCellOnlineTime; TimeUtility.OnServerOpenDayRefresh -= OnStepServerDay; OnlineRewardsModel.OnlineRewardsUpdate -= OnlineRewardsUpdate; GlobalTimeEvent.Instance.secondEvent -= secondEvent; } private void secondEvent() { if (DaysRemaining - TimeUtility.CreateDays == 0) { m_timeRemainingText.text = (23 - DateTime.Now.Hour) + Language.Get("Hour") + (60 - DateTime.Now.Minute) + Language.Get("Minute") + (60 - DateTime.Now.Second) + Language.Get("RealmWin_Bewrite_35"); } } private void OnlineRewardsEvent() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } private void OnlineRewardsUpdate() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } private void OnStepServerDay() { if (DaysRemaining - TimeUtility.CreateDays >= 0) { m_timeRemainingText.text = string.Format(Language.Get("TimeRemainingText"), DaysRemaining - (TimeUtility.CreateDays)); } else { m_timeRemainingText.text = Language.Get("ActivityEnd"); } if (OnlineRewardsModel.IsOk) { OnCreateGridLineCellOnlineTime(m_ScrollerController); // OnCreateGridLineCell(m_ScrollerController); } } protected override void OnAfterClose() { } //void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建 //{ // gridCtrl.Refresh(); // if (TimeUtility.CreateDays <= OnlineRewardsModel.onlineRewardsCloseDay) // { // foreach (var Key in OnlineRewardsModel.OnlineRewards.Keys) // { // gridCtrl.AddCell(ScrollerDataType.Header, Key); // } // } // gridCtrl.Restart(); //} //private void OnRefreshGridCell(ScrollerDataType type, CellView cell) //{ // int day = cell.index; // OnlineRewards onlineRewards = cell.GetComponent(); // onlineRewards.IsReceiveAward(day); //} //============================================ private void OnCreateGridLineCellOnlineTime(ScrollerController gridCtrl) { gridCtrl.Refresh(); if (OnlineRewardsModel.OnlineRewards.ContainsKey(TimeUtility.CreateDays)) { int[] TimeMinute = OnlineRewardsModel.OnlineRewards[TimeUtility.CreateDays].TimeMinute; for (int i = 0; i < TimeMinute.Length; i++) { gridCtrl.AddCell(ScrollerDataType.Header, TimeMinute[i]); } } gridCtrl.Restart(); } private void OnRefreshGridCellOnlineTime(ScrollerDataType type, CellView cell) { int minute = cell.index; OnlineRewardsOnTime onlineRewards = cell.GetComponent(); onlineRewards.GetMinutes(minute); } protected override void LateUpdate() { TimeSpan date = (DateTime.Now- OnlineRewardsModel.DateTime); date= date.Add(new TimeSpan(TimeSpan.TicksPerMillisecond* OnlineRewardsModel.CumulativeTime)); if (date.Hours > 0) { m_TimeText.text = date.Hours + Language.Get("RealmWin_Bewrite_33") + date.Minutes + Language.Get("Minute") + date.Seconds + Language.Get("RealmWin_Bewrite_35"); } else if (date.Minutes > 0) { m_TimeText.text = date.Minutes + Language.Get("Minute") + date.Seconds + Language.Get("RealmWin_Bewrite_35"); } else if (date.Seconds > 0) { m_TimeText.text =date.Seconds + Language.Get("RealmWin_Bewrite_35"); } } private int Jump() { if (TimeUtility.CreateDays <= OnlineRewardsModel.onlineRewardsCloseDay) { return TimeUtility.CreateDays - 1; } return 0; } #endregion } }