using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using TowerDefense.UI.HUD;
/**
* 精灵升级面板
* @Author: chenxin
* @Date: 2020-12-11 10:59:15
*/
namespace KTGMGemClient
{
public class ElfUpgrade : MonoBehaviour
{
[SerializeField]
private Image lightImg;
[SerializeField]
private Text continueText;
[SerializeField]
private GameObject particlePrefab;
private GameObject particleObj;
private float startAlpha = 0.3f;
private Vector3 rotation = Vector3.forward;
///
/// 升级最低等级
///
private int upgradeLevel;
// Start is called before the first frame update
private void Start()
{
EndlessUIStart.instance.ShowUIMask();
particleObj = Instantiate(particlePrefab);
particleObj.transform.SetParent(GameObject.Find("ParticleSystemObject").transform, false);
particleObj.transform.localPosition = new Vector3(0f, 5.5f, 38.6f);
particleObj.transform.localScale = new Vector3(2f, 2f, 2f);
ParticleSystem ps = particleObj.transform.GetChild(0).GetComponent();
ps?.Play();
Tween1();
}
private void Update()
{
lightImg.transform.Rotate(-rotation * 10 * Time.deltaTime);
}
private void Tween1()
{
continueText.color = new Color(1f, 1f, 1f, startAlpha);
DOTween.To(
() => continueText.color,
(Color v) => continueText.color = v,
new Color(1f, 1f, 1f, 1f), 0.3f)
.SetEase(Ease.OutCubic)
.OnComplete(Tween2);
}
private void Tween2()
{
DOTween.To(
() => continueText.color,
(Color v) => continueText.color = v,
new Color(1f, 1f, 1f, startAlpha), 0.6f)
.SetDelay(0.5f)
.OnComplete(Tween1);
}
public void OnClick()
{
EndlessUIStart.instance.HideUIMask();
Destroy(gameObject);
Destroy(particleObj);
particleObj = null;
EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.ElfUpgradePanelClosed);
}
public void SetUpgradeLevel(int level)
{
if (level < 1) level = 1;
else if (level >= ElfUpgradeData.MaxTowerLevel) level = ElfUpgradeData.MaxTowerLevel;
upgradeLevel = level;
}
public int GetUpgradeLevel()
{
return upgradeLevel == 0 ? 1 : upgradeLevel;
}
}
}