//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, May 31, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class DemonJarSoulIncreaseWin : Window
|
{
|
public static event Action demonJarSoulIncreaseShowEvent;
|
|
[SerializeField] RectTransform m_EffectFrom;
|
[SerializeField] RectTransform m_EffectTo;
|
|
DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
demonJarModel.demonJarSoulIncreaseDelta = 0;
|
StopAllCoroutines();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
if (demonJarModel.demonJarSoulIncreaseDelta >= 2)
|
{
|
EffectMgr.Instance.PlayUIEffect(1145, (int)this.windowInfo.windowType * 1000 + 1500, m_EffectFrom, false);
|
StartCoroutine("Co_Emission", 6);
|
}
|
else if (demonJarModel.demonJarSoulIncreaseDelta >= 1)
|
{
|
EffectMgr.Instance.PlayUIEffect(1144, (int)this.windowInfo.windowType * 1000 + 1500, m_EffectFrom, false);
|
StartCoroutine("Co_Emission", 3);
|
}
|
}
|
|
#endregion
|
|
IEnumerator Co_Emission(int _totalFly)
|
{
|
if (demonJarSoulIncreaseShowEvent != null)
|
{
|
demonJarSoulIncreaseShowEvent();
|
}
|
|
var count = 0;
|
var timer = 0f;
|
var interval = 0.2;
|
while (timer < interval && count < _totalFly)
|
{
|
timer += Time.deltaTime;
|
if (timer > interval)
|
{
|
timer = 0f;
|
var startPoint = m_EffectFrom.position;
|
var endPoint = m_EffectTo.position;
|
|
var direction = Vector3.Normalize(startPoint - endPoint);
|
var normal = new Vector3(-direction.y, direction.x, 0);
|
var distance = Vector3.Distance(startPoint, endPoint);
|
var pivot = startPoint + normal * UnityEngine.Random.Range(-distance, distance) * 0.7f + direction * distance * 0.4f;
|
|
var effect = EffectMgr.Instance.PlayUIEffect(1146, (int)this.windowInfo.windowType * 1000 + 1500, this.transform, false);
|
var bezierMove = effect.AddMissingComponent<BezierMove>();
|
bezierMove.duration = 1f;
|
bezierMove.Begin(startPoint, pivot, endPoint, () =>
|
{
|
effect.Stop();
|
DestroyObject(bezierMove);
|
|
EffectMgr.Instance.PlayUIEffect(1147, (int)this.windowInfo.windowType * 1000 + 1500, this.m_EffectTo, false);
|
});
|
|
count++;
|
}
|
|
yield return null;
|
}
|
|
yield return WaitingForSecondConst.WaitMS2000;
|
CloseClick();
|
}
|
|
}
|
|
}
|
|
|
|
|