using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame.Table;
using Games.Mission;
using Games.Events;
using Games.Item;

public class EquipGemSuitItemGemItem : UIItemSelect
{
    public Image _Icon;
    public Image _Quality;
    public Text _Num;
    public GameObject _DisableGO;

    private int _GemDataID;

    public override void Show(Hashtable hash)
    {
        base.Show();

        _GemDataID = (int)hash["InitObj"];
        GameItem equipItem = null;
        if (hash.ContainsKey("EquipItem"))
        {
            equipItem = (GameItem)hash["EquipItem"];
        }
        ShowGem(_GemDataID, equipItem);
    }

    public void ShowGem(int gemData, GameItem equipItem)
    {
        if (equipItem == null)
            return;

        Tab_CommonItem commonItem = TableManager.GetCommonItemByID(gemData, 0);
        LoadAssetBundle.Instance.SetImageSprite(_Icon, commonItem.Icon);
        LoadAssetBundle.Instance.SetImageSprite(_Quality, GCGame.Utils.GetItemQualityFrame(commonItem.Quality));
        if (commonItem.QualityEffect > 0)
        {
            CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, _Icon.transform);
        }
        else
        {
            CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, _Icon.transform);
        }

        var itemCnt = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(gemData);
        if (itemCnt > 0)
        {
            _Num.text = itemCnt.ToString();
        }
        else
        {
            _Num.text = StrDictionary.GetClientDictionaryString("#{5526}") + itemCnt + "</color>";
        }

        bool isContainGem = false;
        foreach (var gemInfo in equipItem.GemItems)
        {
            if (gemData == gemInfo.DataID)
            {
                isContainGem = true;
                break;
            } 
        }

        if (isContainGem)
        {
            _DisableGO.SetActive(false);
        }
        else
        {
            _DisableGO.SetActive(true);
        }
    }

    public override void OnItemClick()
    {
        base.OnItemClick();

        ItemTooltipsLogic.ShowItemTooltip(_GemDataID, ItemTooltipsLogic.ShowType.GetPath, transform.position);
    }
}