//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, March 08, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class AllianceBossEntranceWin : Window
|
{
|
[SerializeField] AllianceBossBehaviour[] m_AllianceBosses;
|
[SerializeField] Text m_OpenTime;
|
|
float timer = 0f;
|
|
AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
for (int i = 0; i < m_AllianceBosses.Length; i++)
|
{
|
m_AllianceBosses[i].Display(i);
|
}
|
DisplayTime();
|
|
mapModel.RequestQueryMapLineState(AllianceBossModel.DATAMAPID);
|
|
GlobalTimeEvent.Instance.secondEvent += PerSecond;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
for (int i = 0; i < m_AllianceBosses.Length; i++)
|
{
|
m_AllianceBosses[i].Dispose();
|
}
|
GlobalTimeEvent.Instance.secondEvent -= PerSecond;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void LateUpdate()
|
{
|
timer += Time.deltaTime;
|
if (timer >= 5f)
|
{
|
timer = 0f;
|
mapModel.RequestQueryMapLineState(AllianceBossModel.DATAMAPID);
|
}
|
}
|
#endregion
|
|
private void PerSecond()
|
{
|
DisplayTime();
|
}
|
|
void DisplayTime()
|
{
|
DailyQuestOpenTime dailyQuestOpenTime;
|
if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.AllianceBoss, out dailyQuestOpenTime))
|
{
|
if (dailyQuestOpenTime.InOpenTime())
|
{
|
var seconds = 0;
|
HourMinute hourMinute;
|
if (dailyQuestOpenTime.TryGetTodayNearestOpenTime(out hourMinute))
|
{
|
var endTime = new DateTime(TimeUtility.Year, TimeUtility.Month, TimeUtility.Day,
|
hourMinute.hourEnd, hourMinute.minuteEnd, 0);
|
seconds = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds);
|
seconds = Mathf.Max(0, seconds);
|
}
|
var timeSpan = new TimeSpan(TimeSpan.TicksPerSecond * seconds);
|
m_OpenTime.text = Language.Get("RidingPetQuestRemainTime", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds);
|
m_OpenTime.color = UIHelper.GetUIColor(TextColType.Green, true);
|
//m_OpenTime.text = Language.Get("AllianceBoss_3", TimeUtility.SecondsToHMS(seconds));
|
}
|
else
|
{
|
var seconds = dailyQuestOpenTime.GetNextSessionSurplusTime();
|
var timeSpan = new TimeSpan(TimeSpan.TicksPerSecond * seconds);
|
// m_OpenTime.text = Language.Get("AllianceBoss_2", TimeUtility.SecondsToHMS(seconds));
|
m_OpenTime.text = Language.Get("RidingPetQuestStartCountDown", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds);
|
m_OpenTime.color = UIHelper.GetUIColor(TextColType.Red, true);
|
}
|
}
|
}
|
}
|
}
|
|
|
|
|