using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Games.ImpactModle;
using UnityEngine.UI;
using GCGame.Table;

public class BufferItem : UIItemSelect {

    private Tab_Impact buffInfo;
    public Tab_Impact BuffInfo
    {
        get
        {
            return buffInfo;
        }
    }

    public Text desc;                       // buffer描述
    public Image buffIcon;                // buffer图标
    public Text buffName;                 // buffer名称
    public GameObject mask;               // 灰色蒙版

    public GameObject hasBuffer;            // 有Buff显示的内容节点
    public GameObject noBuffer;             // 没Buff显示的内容节点

    public override void Show(Hashtable hash)
    {
        if(hash != null)
        {
            int buffId = (int)hash["Info"];
            Tab_Impact tempBuffInfo = TableManager.GetImpactByID(buffId, 0);
            buffInfo = tempBuffInfo;
        }
        else
        {
            buffInfo = null;
        }

        this._InitInfo = buffInfo;
        InitInfo(buffInfo);
    }

    private void InitInfo(Tab_Impact info)
    {
        if(info != null && info.ImpactID != -1)
        {
            if(hasBuffer != null)
            {
                hasBuffer.SetActive(true);
            }
            if (noBuffer != null)
            {
                noBuffer.SetActive(false);
            }

            if (desc != null)
            {
                desc.text = info.Instruction;
            }
            if(buffName != null)
            {
                buffName.text = info.Name;
            }

            LoadAssetBundle.Instance.SetImageSprite(buffIcon, info.BuffIcon);
        }
        else
        {
            if (hasBuffer != null)
            {
                hasBuffer.SetActive(false);
            }
            if (noBuffer != null)
            {
                noBuffer.SetActive(true);
            }
        }
    }

    public void SetMask(bool state)
    {
        if (mask != null)
        {
            if (mask.activeSelf != state)
            {
                mask.SetActive(state);
            }

            if(state == true)
            {
                UnSelected();
            }
        }
    }
}