//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, May 08, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI {
|
|
public class BossNotifyWin : Window
|
{
|
[SerializeField] RectTransform m_ContainerType1;
|
[SerializeField] ScaleTween m_ScaleTween1;
|
[SerializeField] RichText m_NotifyContent1;
|
[SerializeField] Image m_NotifyBottom1;
|
[SerializeField] Image m_ArtNotify;
|
|
[SerializeField] RectTransform m_ContainerType2;
|
[SerializeField] PositionTween m_PositionTween2;
|
[SerializeField] Image m_BossWord;
|
[SerializeField] Image m_BossIcon;
|
|
[SerializeField] RectTransform m_ContainerType3;
|
[SerializeField] RichText m_NotifyContent3;
|
|
float timer = 0;
|
bool coolDown = false;
|
|
float totalTime = 0;
|
|
int cacheSkillId = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
cacheSkillId = 0;
|
m_ContainerType1.SetActive(false);
|
m_ScaleTween1.SetStartState();
|
m_ContainerType2.SetActive(false);
|
m_PositionTween2.SetStartState();
|
m_ContainerType3.SetActive(false);
|
BossNotify.releaseNotifyEvent += ReleaseNotifyEvent;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
BossNotify.OnNotifyEvent += OnNotifyEvent;
|
DisplayConstNotify();
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
BossNotify.OnNotifyEvent -= OnNotifyEvent;
|
BossNotify.releaseNotifyEvent -= ReleaseNotifyEvent;
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
BossNotify.constDisplaySkill = 0;
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
if (coolDown)
|
{
|
timer += Time.deltaTime;
|
if (timer > totalTime)
|
{
|
m_ContainerType1.SetActive(false);
|
m_ContainerType2.SetActive(false);
|
BossNotify.SetNotifyComplete(cacheSkillId);
|
cacheSkillId = 0;
|
Display();
|
}
|
}
|
}
|
#endregion
|
|
public void Display()
|
{
|
coolDown = false;
|
timer = 0;
|
var _skillId = BossNotify.Request();
|
if (_skillId != 0)
|
{
|
var _bossNotifyCfg = bossSkillTipsConfig.Get(_skillId);
|
totalTime = (float)_bossNotifyCfg.time / 1000;
|
cacheSkillId = _bossNotifyCfg.SkillID;
|
switch (_bossNotifyCfg.mode)
|
{
|
case 1:
|
m_ContainerType1.SetActive(true);
|
m_ScaleTween1.SetStartState();
|
m_ScaleTween1.Play(OnScaleTweenComplelte);
|
bool _artNotify = !_bossNotifyCfg.art.Equals(string.Empty);
|
m_NotifyContent1.SetActive(!_artNotify);
|
m_NotifyBottom1.SetActive(!_artNotify);
|
m_ArtNotify.SetActive(_artNotify);
|
if (_artNotify)
|
{
|
m_ArtNotify.SetSprite(_bossNotifyCfg.art);
|
m_ArtNotify.SetNativeSize();
|
}
|
else
|
{
|
m_NotifyContent1.text = _bossNotifyCfg.Content;
|
}
|
break;
|
case 2:
|
BossNotify.SetNofityStart(_bossNotifyCfg.SkillID);
|
m_ContainerType2.SetActive(true);
|
m_PositionTween2.SetStartState();
|
m_PositionTween2.Play(OnPositionTweenComplete);
|
if (_bossNotifyCfg.bossIcon.Length > 1)
|
{
|
m_BossIcon.SetSprite(_bossNotifyCfg.bossIcon[0]);
|
m_BossWord.SetSprite(_bossNotifyCfg.bossIcon[1]);
|
}
|
else
|
{
|
DebugEx.LogFormat("错误的Boss信息提示配置{0}", _bossNotifyCfg.SkillID);
|
}
|
m_BossIcon.SetNativeSize();
|
break;
|
}
|
|
}
|
else
|
{
|
if (!m_ContainerType3.gameObject.activeSelf)
|
{
|
CloseImmediately();
|
}
|
}
|
}
|
|
public void DisplayConstNotify()
|
{
|
if (BossNotify.constDisplaySkill != 0)
|
{
|
m_ContainerType3.SetActive(true);
|
var _cfg = bossSkillTipsConfig.Get(BossNotify.constDisplaySkill);
|
m_NotifyContent3.text = _cfg.Content;
|
}
|
}
|
|
private void OnNotifyEvent()
|
{
|
DisplayConstNotify();
|
if (!m_ContainerType1.gameObject.activeSelf
|
&& !m_ContainerType2.gameObject.activeSelf)
|
{
|
Display();
|
}
|
}
|
|
private void ReleaseNotifyEvent(int _id)
|
{
|
if (_id == BossNotify.constDisplaySkill)
|
{
|
m_ContainerType3.SetActive(false);
|
if (!m_ContainerType2.gameObject.activeSelf && !m_ContainerType3.gameObject.activeSelf)
|
{
|
CloseImmediately();
|
}
|
}
|
}
|
|
private void OnScaleTweenComplelte()
|
{
|
coolDown = true;
|
}
|
|
private void OnPositionTweenComplete()
|
{
|
coolDown = true;
|
}
|
}
|
|
}
|
|
|
|
|