//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, July 10, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //极品白拿 namespace Snxxz.UI { public class NeedForWhiteWin : Window { [SerializeField] Button m_CloseButton; [SerializeField] Text m_TimeLeft_text; [SerializeField] NeedForWhiteInvestment m_Investment_One; [SerializeField] NeedForWhiteInvestment m_Investment_Two; [SerializeField] NeedForWhiteInvestment m_Investment_Three; #region Built-in NeedForWhiteModel m_NeedForWhiteModel; NeedForWhiteModel needForWhiteModel { get { return m_NeedForWhiteModel ?? (m_NeedForWhiteModel = ModelCenter.Instance.GetModel()); } } private bool IsOver = false; protected override void BindController() { } protected override void AddListeners() { m_CloseButton.AddListener(() => { Close(); WindowCenter.Instance.Open(); }); } protected override void OnPreOpen() { needForWhiteModel.UpdateNeedForWhiteEvent += UpdateNeedForWhiteEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; SetNeedForWhiteID(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { needForWhiteModel.UpdateNeedForWhiteEvent -= UpdateNeedForWhiteEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh obj) { if (obj == PlayerDataRefresh.Gold) { SetNeedForWhiteID(); } } private void UpdateNeedForWhiteEvent() { SetNeedForWhiteID(); } protected override void LateUpdate() { TimeSpan ts = (DateTime.Now - needForWhiteModel.DateTime_S); int second = (int)ts.TotalSeconds + needForWhiteModel.OpenTimeS; if (needForWhiteModel.FreeGoodsOpenTimeS - second > 0) { TimeLeftSecond(needForWhiteModel.FreeGoodsOpenTimeS - second); IsOver = true; } else { m_TimeLeft_text.text = Language.Get("Is_over"); if (IsOver) { IsOver = false; SetNeedForWhiteID(); } } } private void TimeLeftSecond(int second) { string timeString = string.Empty; TimeSpan ts = new TimeSpan(second * TimeSpan.TicksPerSecond); int Day = (int)ts.TotalDays; int hour = (int)ts.TotalHours % 24; int minute = (int)ts.TotalMinutes % 60; int _second = (int)ts.TotalSeconds % 60; if (ts.TotalDays > 0)//天 { timeString = Day + Language.Get("L1074") + hour + Language.Get("Hour") + minute + Language.Get("Minute") + _second + Language.Get("RealmWin_Bewrite_35"); } else if (ts.TotalHours > 0)//时 { timeString = 0 + Language.Get("L1074") + hour + Language.Get("Hour") + minute + Language.Get("Minute") + _second + Language.Get("RealmWin_Bewrite_35"); } else if (ts.TotalMinutes > 0)//分 { timeString = 0 + Language.Get("L1074") + 0 + Language.Get("Hour") + minute + Language.Get("Minute") + _second + Language.Get("RealmWin_Bewrite_35"); } else//秒 { timeString = 0 + Language.Get("L1074") + 0 + Language.Get("Hour") + 0 + Language.Get("Minute") + _second + Language.Get("RealmWin_Bewrite_35"); } m_TimeLeft_text.text = string.Format(Language.Get("Time_Left"), timeString); } private void SetNeedForWhiteID() { foreach (var key in needForWhiteModel.NeedForWhiteDic.Keys) { switch (key) { case 1: m_Investment_One.GetId(1); break; case 2: m_Investment_Two.GetId(2); break; case 3: m_Investment_Three.GetId(3); break; default: break; } } } #endregion } }