111 lines
2.3 KiB
C#
111 lines
2.3 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2020-11-06
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "SkillJoystick" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace G.UI
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class SkillJoystick : Joystick
|
|
{
|
|
public TextMeshProUGUI tmpName;
|
|
public TextMeshProUGUI tmpCdTime;
|
|
public Image imgCdProgress;
|
|
public Image imgSkillIcon;
|
|
public GameObject castFx;
|
|
|
|
private Button _skillBtn;
|
|
|
|
private Cha_Moves.MovesInfo _buffInfo;
|
|
|
|
public void SetBuff(Cha_Moves.MovesInfo buffInfo)
|
|
{
|
|
_buffInfo = buffInfo;
|
|
var skillItem = ItemProxy.Instance.GetStaticItem<ItemSkill>(buffInfo.targetId);
|
|
if (skillItem != null)
|
|
IconProxy.Instance.SetSprite(imgSkillIcon, skillItem.icon);
|
|
}
|
|
|
|
public Cha_Moves.MovesInfo GetBuff()
|
|
{
|
|
return _buffInfo;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
_buffInfo = null;
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
if (_buffInfo == null)
|
|
return;
|
|
var ct = _buffInfo.uiSkillCoolTime;
|
|
var cd = _buffInfo.uiSkillCoolDown;
|
|
|
|
if (ct > 0f && cd > 0f)
|
|
{
|
|
_skillBtn.interactable = false;
|
|
if (castFx && castFx.activeSelf)
|
|
{
|
|
castFx.SetActive(false);
|
|
}
|
|
|
|
if (cd < 1f)
|
|
{
|
|
tmpCdTime.text = (cd).ToString("0.0");
|
|
}
|
|
else
|
|
{
|
|
tmpCdTime.text = ((int)cd).ToString();
|
|
}
|
|
imgCdProgress.fillAmount = cd / ct;
|
|
}
|
|
else
|
|
{
|
|
if (castFx && !castFx.activeSelf)
|
|
{
|
|
castFx.SetActive(true);
|
|
}
|
|
_skillBtn.interactable = true;
|
|
tmpCdTime.text = "";
|
|
imgCdProgress.fillAmount = 0f;
|
|
}
|
|
}
|
|
|
|
protected override void Start()
|
|
{
|
|
_skillBtn = GetComponent<Button>();
|
|
|
|
base.Start();
|
|
background.gameObject.SetActive(false);
|
|
}
|
|
|
|
public override void OnBeginDrag(PointerEventData eventData)
|
|
{
|
|
background.gameObject.SetActive(false);
|
|
base.OnBeginDrag(eventData);
|
|
}
|
|
|
|
public override void OnEndDrag(PointerEventData eventData)
|
|
{
|
|
background.gameObject.SetActive(false);
|
|
base.OnEndDrag(eventData);
|
|
}
|
|
}
|
|
}
|