//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, July 10, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class BossRebornWin : Window
|
{
|
[SerializeField] Button m_GotoBoss;
|
[SerializeField] Text m_GotoBossText;
|
[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>(); } }
|
FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
|
#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, model.bossRebornCount, model.bossRebornFullCnt);
|
UpdateIntegral();
|
UpdateCountDown();
|
UpdateRebornCount();
|
UpdateBtn();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
model.bossTaskStateChangeEvent += OnTaskStateChange;
|
model.bossRebornIntergralEvent += UpdateIntegral;
|
model.bossRebornCountEvent += UpdateRebornCount;
|
GlobalTimeEvent.Instance.secondEvent += OnPerSecond;
|
|
findPreciousModel.bossInfoUpdateEvent += OnBossInfoUpdate;
|
}
|
|
protected override void OnPreClose()
|
{
|
model.bossTaskStateChangeEvent -= OnTaskStateChange;
|
model.bossRebornIntergralEvent -= UpdateIntegral;
|
model.bossRebornCountEvent -= UpdateRebornCount;
|
GlobalTimeEvent.Instance.secondEvent -= OnPerSecond;
|
findPreciousModel.bossInfoUpdateEvent -= OnBossInfoUpdate;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
UpdateActivities();
|
}
|
|
#endregion
|
|
private void GotoKillBoss()
|
{
|
//WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FindPreciousFrameFunc1);
|
var pos = PlayerDatas.Instance.hero.Pos;
|
MapTransferUtility.Instance.MoveToMapPos(21070, 74, 65, 0);
|
WindowCenter.Instance.Close<OpenServerActivityWin>();
|
}
|
|
private void UpdateIntegral()
|
{
|
if (model.bossRebornFullCnt != 0 && model.bossRebornCount >= model.bossRebornFullCnt)
|
{
|
m_Slider.SetActive(false);
|
return;
|
}
|
m_Slider.SetActive(true);
|
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);
|
m_Description.text = Language.Get("BossFHLanguage7", model.bossRebornIndegralTotal, model.bossRebornCount, model.bossRebornFullCnt);
|
}
|
|
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();
|
}
|
|
|
private void OnBossInfoUpdate(int bossID)
|
{
|
if (bossID != model.MWBossID)
|
return;
|
|
UpdateBtn();
|
}
|
|
|
private void UpdateBtn()
|
{
|
if (findPreciousModel.IsBossAlive(model.MWBossID))
|
{
|
m_GotoBoss.interactable = true;
|
m_GotoBossText.text = Language.Get("BossFHLanguage8");
|
m_GotoBoss.SetColorful(m_GotoBossText, true);
|
|
}
|
else
|
{
|
m_GotoBoss.interactable = false;
|
m_GotoBossText.text = Language.Get("BossFHLanguage9");
|
m_GotoBoss.SetColorful(m_GotoBossText, false);
|
}
|
}
|
}
|
|
}
|
|
|
|
|