using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GCGame.Table;
using UnityEngine.Events;
using System;
using UnityEngine.EventSystems;

public class ChildSkillDescItem : MonoBehaviour, IPointerDownHandler{

    [Serializable]
    public class ChildSkillItemClick : UnityEvent<int>
    {
        public ChildSkillItemClick() { }
    }
    [SerializeField]
    public ChildSkillItemClick _ClickEvent;
    
    public Image _SkillIcon;
    public Text _SkillLevel;
    public GameObject _Mark;

    [HideInInspector]
    public static int _CurSkillExId;
    [HideInInspector]
    public int m_CurSkillType;  //当前技能类型\
    [HideInInspector]
    public int _CurSkillType
    {
        get { return m_CurSkillType; }
        private set { m_CurSkillType = value; }
    }
    public void InitSkillDescItem(int skillId, int level = 0)
    {
        _CurSkillExId = skillId;
        _SkillLevel.text = level + "";

        var childrenSkillParamTab = TableManager.GetChildrenSkillParamByID(skillId, 0);
        if(childrenSkillParamTab == null)
        {
            Debug.LogError("ChildrenSkillParamTab is null : " + skillId);
            return;
        }

        _CurSkillType = childrenSkillParamTab.Type;
        var skillExTab = TableManager.GetSkillExByID(skillId, 0);
        if(skillExTab == null)
        {
            Debug.LogError("skillExTab is null : " + _CurSkillExId);
            return;
        }

        var skillBaseTab = TableManager.GetSkillBaseByID(skillExTab.BaseId, 0);
        if(skillBaseTab == null)
        {
            Debug.LogError("SkillBaseTab is null : " + skillExTab.BaseId);
            return;
        }

        LoadAssetBundle.Instance.SetImageSprite(_SkillIcon, skillBaseTab.Icon);
    }

    public void ShowMark(bool isShow)
    {
        if(_Mark)
            _Mark.SetActive(isShow);
        else
            _Mark.SetActive(false);
    }

    public void OnPointerDown(PointerEventData eventData)
    {
        if (_ClickEvent != null)
            _ClickEvent.Invoke(_CurSkillType);
    }
}