//--------------------------------------------------------
|
// [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<OnlineRewardsModel>()); } }
|
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>();
|
// 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<OnlineRewardsOnTime>();
|
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
|
|
}
|
|
}
|
|
|
|
|