using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
using UnityEngine.EventSystems;
|
namespace vnxbqy.UI
|
{
|
public class SkillCell : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
|
{
|
|
[SerializeField] SkillData skill;
|
[SerializeField] RedpointBehaviour m_Redpoint;
|
|
public SkillData skillData
|
{
|
get
|
{
|
return skill;
|
}
|
}
|
|
SkillModel m_Model;
|
SkillModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>());
|
}
|
}
|
|
TreasureSkillModel treasureSkillModel
|
{
|
get { return ModelCenter.Instance.GetModel<TreasureSkillModel>(); }
|
}
|
|
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.IsXpSkill(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.SetActive(true);
|
}
|
else
|
{
|
skill.m_SelectImg.SetActive(false);
|
}
|
|
skill.SetActive(PlayerDatas.Instance.skill.GetSKillById(skillId) != null);
|
skill.m_SkillBtn.onClick.RemoveAllListeners();
|
skill.m_SkillBtn.onClick.AddListener(OnClickSkill);
|
|
var config = SkillConfig.Get(skillId);
|
if (m_Redpoint != null)
|
{
|
TreasureSkill treasureSkill;
|
if (treasureSkillModel.TryGetSkill(config.SkillTypeID, out treasureSkill))
|
{
|
m_Redpoint.redpointId = treasureSkill.levelUpRedpoint.id;
|
}
|
}
|
}
|
|
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;
|
}
|
}
|
}
|
}
|
}
|