//--------------------------------------------------------
|
// [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 BossRebornWin : Window
|
{
|
[SerializeField] Button m_GotoBoss;
|
[SerializeField] Text m_Description;
|
[SerializeField] Slider m_Slider;
|
[SerializeField] Text m_Progress;
|
[SerializeField] Text m_Time;
|
[SerializeField] Text m_RebornCount;
|
[SerializeField] CyclicScroll m_TaskScroll;
|
|
BossRebornModel model { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_GotoBoss.AddListener(GotoKillBoss);
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_Description.text = Language.Get("BossFHLanguage7", model.bossRebornIndegralTotal);
|
UpdateIntegral();
|
UpdateCountDown();
|
UpdateRebornCount();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
model.bossTaskStateChangeEvent += OnTaskStateChange;
|
model.bossRebornIntergralEvent += UpdateIntegral;
|
model.bossRebornCountEvent += UpdateRebornCount;
|
GlobalTimeEvent.Instance.secondEvent += OnPerSecond;
|
}
|
|
protected override void OnPreClose()
|
{
|
model.bossTaskStateChangeEvent -= OnTaskStateChange;
|
model.bossRebornIntergralEvent -= UpdateIntegral;
|
model.bossRebornCountEvent -= UpdateRebornCount;
|
GlobalTimeEvent.Instance.secondEvent -= OnPerSecond;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
UpdateActivities();
|
}
|
|
#endregion
|
|
private void GotoKillBoss()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FindPreciousFrameFunc1);
|
}
|
|
private void UpdateIntegral()
|
{
|
var needPoint = model.bossRebornIndegralTotal;
|
var progress = (float)model.bossRebornIntegral / needPoint;
|
m_Slider.value = progress;
|
m_Progress.text = StringUtility.Contact(model.bossRebornIntegral, "/", needPoint);
|
}
|
|
private void UpdateCountDown()
|
{
|
m_Time.text = Language.Get("BossFHLanguage2", TimeUtility.SecondsToDHMSCHS(model.surplusSecond));
|
}
|
|
private void UpdateRebornCount()
|
{
|
m_RebornCount.text = Language.Get("BossRebornTimes", model.bossRebornCount);
|
}
|
|
private void OnTaskStateChange(int _id)
|
{
|
UpdateActivities();
|
}
|
|
private void UpdateActivities()
|
{
|
var activities = model.GetTasks();
|
activities.Sort(BossRebornTask.SortCompare);
|
m_TaskScroll.Init(activities);
|
}
|
|
private void OnPerSecond()
|
{
|
UpdateCountDown();
|
}
|
|
}
|
|
}
|
|
|
|
|