using vnxbqy.UI;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class ShentongSkillCell : ILBehaviour
|
{
|
ImageEx skillIcon;
|
Image m_CoolDownMask;
|
Text m_CoolDown;
|
Button skillBtn;
|
|
|
bool inCountDown = false;
|
float timer = 0f;
|
int m_skillId = 0;
|
|
protected override void Awake()
|
{
|
skillIcon = proxy.GetWidgtEx<ImageEx>("Img_Icon");
|
m_CoolDownMask = proxy.GetWidgtEx<Image>("MaskImage1");
|
m_CoolDown = proxy.GetWidgtEx<Text>("Text");
|
skillBtn = proxy.GetWidgtEx<Button>("ShentongSkill");
|
}
|
|
public void Display(int skillID)
|
{
|
m_skillId = skillID;
|
var config = SkillConfig.Get(skillID);
|
skillIcon.SetSprite(config.IconName);
|
|
skillBtn.SetListener(()=> {
|
SkillConfig _skillModel = SkillConfig.Get(skillID);
|
|
if (_skillModel != null)
|
{
|
PlayerDatas.Instance.hero.CastSkill(skillID);
|
}
|
});
|
}
|
protected override void LateUpdate()
|
{
|
if (!ILSkillManager.Instance.HasSkill(m_skillId))
|
{
|
return;
|
}
|
DisplaySkillDynamicInfo(false);
|
|
if (inCountDown)
|
{
|
if (!m_CoolDown.gameObject.activeSelf)
|
{
|
m_CoolDown.SetActive(true);
|
}
|
|
if (m_CoolDownMask != null && !m_CoolDownMask.gameObject.activeSelf)
|
{
|
m_CoolDownMask.SetActive(true);
|
}
|
|
if (m_CoolDownMask != null)
|
{
|
m_CoolDownMask.fillAmount = ILSkillManager.Instance.GetSkillCD(m_skillId).GetCountDownFillAmount();
|
}
|
|
timer -= Time.deltaTime;
|
if (timer < 0f)
|
{
|
var countDown = ILSkillManager.Instance.GetSkillCD(m_skillId).GetCountDown();
|
|
if (countDown > 1)
|
{
|
m_CoolDown.text = countDown.ToString("f0");
|
}
|
else
|
{
|
m_CoolDown.text = "";
|
}
|
|
timer += 1f;
|
}
|
|
}
|
else
|
{
|
if (m_CoolDown.gameObject.activeSelf)
|
{
|
m_CoolDown.SetActive(false);
|
}
|
|
if (m_CoolDownMask != null)
|
{
|
if (m_CoolDownMask.gameObject.activeSelf)
|
{
|
m_CoolDownMask.SetActive(false);
|
}
|
}
|
|
}
|
}
|
|
private void DisplaySkillDynamicInfo(bool force)
|
{
|
var skillCd = ILSkillManager.Instance.GetSkillCD(m_skillId);
|
if (force || skillCd.dirty)
|
{
|
var data = skillCd.Fetch();
|
inCountDown = data.IsCountDown();
|
|
var countDown = ILSkillManager.Instance.GetSkillCD(m_skillId).GetCountDown();
|
if (countDown > 0)
|
{
|
m_CoolDown.text = countDown.ToString("f0");
|
}
|
else
|
{
|
m_CoolDown.text = "";
|
}
|
|
}
|
|
var skillForbid = ILSkillManager.Instance.GetSkillForbid(m_skillId);
|
if (force || skillForbid.dirty)
|
{
|
skillIcon.gray = skillForbid.Fetch();
|
}
|
}
|
}
|