using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
using UnityEngine.EventSystems;
|
namespace Snxxz.UI
|
{
|
public class SkillCell : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
|
{
|
|
[SerializeField] SkillData skill;
|
|
public SkillData skillData {
|
get {
|
return skill;
|
}
|
}
|
|
SkillModel m_Model;
|
SkillModel model {
|
get {
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>());
|
}
|
}
|
|
private bool onPress = false;
|
private float m_Time = 0.0f;
|
|
public void OnPointerDown(PointerEventData eventData)
|
{
|
skill.m_SkillBtn.OnPointerClick(eventData);
|
if (model.skillDraging) {
|
return;
|
}
|
if (PlayerDatas.Instance.skill.GetSKillById(skill.skillId) == null) {
|
return;
|
}
|
if (model.GetXpSkillID() == skill.skillId) {
|
return;
|
}
|
onPress = true;
|
}
|
|
public void OnPointerUp(PointerEventData eventData)
|
{
|
//if (!model.skillDraging && skill.m_SkillBtn != null && onPress) {
|
//}
|
onPress = false;
|
m_Time = 0;
|
}
|
|
public void OnPointerExit(PointerEventData eventData)
|
{
|
onPress = false;
|
m_Time = 0;
|
}
|
|
public void Refresh(int skillId)
|
{
|
skill.SetSkillData(skillId);
|
if (model.presentSltSkillID == skillId) {
|
skill.m_SelectImg.gameObject.SetActive(true);
|
}
|
else {
|
skill.m_SelectImg.gameObject.SetActive(false);
|
}
|
|
skill.SetActive(PlayerDatas.Instance.skill.GetSKillById(skillId) != null);
|
skill.m_SkillBtn.onClick.RemoveAllListeners();
|
skill.m_SkillBtn.onClick.AddListener(OnClickSkill);
|
}
|
|
private void OnClickSkill()
|
{
|
model.presentSltSkillID = skill.skillId;
|
model.RefreshSltSkill();
|
}
|
|
private void LateUpdate()
|
{
|
if (onPress && !model.skillDraging) {
|
m_Time += Time.deltaTime;
|
if (m_Time > model.onDragDelay) {
|
model.skillDragId = skill.skillId;
|
model.skillDraging = true;
|
m_Time = 0;
|
onPress = false;
|
}
|
}
|
}
|
}
|
}
|