using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame.Table;
using Games.Item;
using Games.GlobeDefine;
using GCGame;
using System.Collections.Generic;
using Module.Log;
using Games.UserCommonData;

public class EquipMaxGemTooltips : MonoBehaviour
{
    public Image _GemImage;
    public Image _GemQuality;
    public Text _GemName;
    public Text _Level;
    public Text _GemDesc;
    public Text _CombatValue;

    public void Hide()
    {
        gameObject.SetActive(false);
    }

    public void SetGemMaxInfo(int gemDataID)
    {
        gameObject.SetActive(true);

        var gemPropTabs = TableManager.GetGemProp();
        var gemProp = GemData.GetGemPropTab(gemDataID, 1, 0);
        Tab_GemProp maxGemProp = null; 
        foreach (var propTab in gemPropTabs)
        {
            if (propTab.Value.PropID[0] == gemProp.PropID[0])
            {
                if (maxGemProp == null)
                {
                    maxGemProp = propTab.Value;
                }
                else if (propTab.Value.PropValue[0] > maxGemProp.PropValue[0])
                {
                    maxGemProp = propTab.Value;
                }
            }
        }

        GemData maxGemData = new GemData() { DataID = maxGemProp.GemID, Level = maxGemProp.GemLevel};
        SetGemInfo(maxGemData);
    }

    public void SetGemInfo(GemData gemData)
    {
        gameObject.SetActive(true);
        var itemTab = TableManager.GetCommonItemByID(gemData.DataID, 0);
        LoadAssetBundle.Instance.SetImageSprite(_GemImage, itemTab.Icon);
        LoadAssetBundle.Instance.SetImageSprite(_GemQuality, Utils.GetItemQualityFrame(itemTab.Quality));
        if (itemTab.QualityEffect > 0)
        {
            CommonItemContainerItem.ShowQualityEffect(true, itemTab.QualityEffect, _GemImage.transform);
        }
        else
        {
            CommonItemContainerItem.ShowQualityEffect(false, itemTab.QualityEffect, _GemImage.transform);
        }

        string gemName =  itemTab.Name;
        string levelStr = StrDictionary.GetClientDictionaryString("#{1166}", gemData.Level);
        _GemName.text = Utils.GetQualityColorInTip(gemData.GetQuality()) + gemName + "</color>";

        var propTab = gemData.GetGemPropTab(0);
        string attrProStr = GemData.GetPropStr(propTab);

        _CombatValue.text = StrDictionary.GetClientDictionaryString("#{2829}", propTab.CombatValue);

        _GemDesc.text = attrProStr;

    }
}