//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, May 10, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI {
|
|
public class OSTimeLimitGiftWin : Window
|
{
|
[SerializeField] OSGiftBehaviour[] m_OSGifts;
|
[SerializeField] Text m_MoneyValue;
|
[SerializeField] Text m_CoolDown;
|
|
OSTimeLimitGiftModel m_Model;
|
OSTimeLimitGiftModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<OSTimeLimitGiftModel>());
|
}
|
}
|
|
StoreModel m_StoreModel;
|
StoreModel storeModel
|
{
|
get
|
{
|
return m_StoreModel ?? (m_StoreModel = ModelCenter.Instance.GetModel<StoreModel>());
|
}
|
}
|
|
bool IsOutOffTime = false;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
storeModel.RefreshBuyShopLimitEvent += DisplayItems;
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent;
|
TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
|
IsOutOffTime = false;
|
timer = 0;
|
UpdateCoolDown();
|
DisplayItems();
|
DisplayMoney();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
model.SetDayRemind();
|
}
|
|
protected override void OnPreClose()
|
{
|
storeModel.RefreshBuyShopLimitEvent -= DisplayItems;
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
|
TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
float timer = 0;
|
float m_DelayTime = 0.5f;
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
if (IsOutOffTime)
|
{
|
return;
|
}
|
timer += Time.deltaTime;
|
if (timer > m_DelayTime)
|
{
|
UpdateCoolDown();
|
timer = 0;
|
}
|
}
|
#endregion
|
|
private void UpdateCoolDown()
|
{
|
var t = model.overdueTime - TimeUtility.ServerNow;
|
m_CoolDown.text = StringUtility.Contact(Language.Get("OSActivityCoolDown"),
|
TimeUtility.SecondsToDHMSCHS((int)t.TotalSeconds));
|
if (model.currentDay > model.openDays)
|
{
|
IsOutOffTime = true;
|
m_CoolDown.color = UIHelper.GetUIColor(TextColType.NavyYellow);
|
m_CoolDown.text = Language.Get("ActivityEnd");
|
}
|
else
|
{
|
m_CoolDown.color = UIHelper.GetUIColor(TextColType.LightGreen);
|
}
|
}
|
|
private void DisplayItems()
|
{
|
List<StoreConfig> _list;
|
var day = Mathf.Max(1, model.currentDay);
|
day = Mathf.Min(day, model.openDays);
|
if (model.TryGetGifts(day, out _list))
|
{
|
for (int i = 0; i < m_OSGifts.Length; i++)
|
{
|
if (i < _list.Count)
|
{
|
m_OSGifts[i].SetActive(true);
|
m_OSGifts[i].Display(_list[i].ID);
|
}
|
else
|
{
|
m_OSGifts[i].SetActive(false);
|
}
|
}
|
}
|
}
|
|
private void DisplayMoney()
|
{
|
m_MoneyValue.text = UIHelper.GetMoneyCntEx(1).ToString();
|
}
|
|
private void PlayerDataRefreshInfoEvent(PlayerDataType type)
|
{
|
if (type == PlayerDataType.Gold || type == PlayerDataType.default5)
|
{
|
DisplayMoney();
|
}
|
}
|
|
private void OnServerOpenDayRefresh()
|
{
|
DisplayItems();
|
}
|
}
|
}
|
|
|
|
|