//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, November 13, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class ElderGodAngerWin : Window
|
{
|
|
[SerializeField] Slider m_AngerSlider;
|
[SerializeField] Text m_AngerValue;
|
[SerializeField] RectTransform m_ElderGodBBContainer;
|
[SerializeField] Text m_ElderGodBBContent;
|
[SerializeField] UIEffect m_AngerEffect;
|
[SerializeField] UIEffect m_BossHeadEffect;
|
|
int angerBuf = 0;
|
bool isExpel = false;
|
float elderGodBBEndTime = 0f;
|
|
float timer = 0;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
angerBuf = 0;
|
isExpel = false;
|
DisplayAnger();
|
model.updateMissionEvent += DisplayAnger;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
model.updateMissionEvent -= DisplayAnger;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
m_AngerEffect.Play();
|
m_BossHeadEffect.Play();
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
if (isExpel)
|
{
|
if (!m_ElderGodBBContainer.gameObject.activeInHierarchy)
|
{
|
m_ElderGodBBContainer.gameObject.SetActive(true);
|
}
|
|
timer += Time.deltaTime;
|
if (timer > 1f)
|
{
|
timer -= 1f;
|
UpdateExpelCoolDown();
|
}
|
}
|
else
|
{
|
if (elderGodBBEndTime > Time.time)
|
{
|
if (!m_ElderGodBBContainer.gameObject.activeInHierarchy)
|
{
|
m_ElderGodBBContainer.gameObject.SetActive(true);
|
}
|
}
|
else
|
{
|
|
if (m_ElderGodBBContainer.gameObject.activeInHierarchy)
|
{
|
m_ElderGodBBContainer.gameObject.SetActive(false);
|
}
|
}
|
}
|
}
|
|
private void DisplayAnger()
|
{
|
m_AngerSlider.value = (float)model.mission.score / GeneralDefine.elderGodAreaAngerTotal;
|
m_AngerValue.text = StringUtility.Contact(model.mission.score, "/", GeneralDefine.elderGodAreaAngerTotal);
|
|
if (model.mission.score == 100)
|
{
|
timer = 1f;
|
isExpel = true;
|
UpdateExpelCoolDown();
|
}
|
else if (angerBuf == 0)
|
{
|
m_ElderGodBBContent.text = Language.Get("ElderGodBB1");
|
elderGodBBEndTime = Time.time + GeneralDefine.elderGodTalkingTime;
|
}
|
else if (angerBuf < 75 && model.mission.score >= 75)
|
{
|
m_ElderGodBBContent.text = Language.Get("ElderGodBB4");
|
elderGodBBEndTime = Time.time + GeneralDefine.elderGodTalkingTime;
|
}
|
else
|
{
|
if (model.mission.KillBOSS == GeneralDefine.elderGodBigBoss)
|
{
|
m_ElderGodBBContent.text = Language.Get("ElderGodBB3");
|
elderGodBBEndTime = Time.time + GeneralDefine.elderGodTalkingTime;
|
}
|
else if (model.mission.KillBOSS != 0)
|
{
|
m_ElderGodBBContent.text = Language.Get("ElderGodBB2");
|
elderGodBBEndTime = Time.time + GeneralDefine.elderGodTalkingTime;
|
}
|
}
|
|
angerBuf = model.mission.score;
|
}
|
|
private void UpdateExpelCoolDown()
|
{
|
var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.ElderGodAreaDeadTime);
|
var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
|
m_ElderGodBBContent.text = Language.Get("ElderGodBB5", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
}
|
|
}
|
|
}
|