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

public class CommonItemTipsSlot : CommonItemContainerItem
{
    public Image _ItemImg;
    public Image _ItemQuality;
    public GameObject _BindFlag;
    public GameObject _EquipFlag;
    public GameObject _DisableFlag;
    public GameObject _RareFlag;
    public Image _QualityBG;            // 品质背景,长条形

    protected GameItem _GameItem;

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

        _GameItem = (GameItem)hash["InitObj"];
        InitItem(_GameItem);
    }

    public void InitItem(GameItem itemParam)
    {
        _GameItem = itemParam;
        if (_GameItem == null)
        {
            _ItemImg.gameObject.SetActive(false);
            _ItemQuality.gameObject.SetActive(false);
            _BindFlag.gameObject.SetActive(false);
            _DisableFlag.gameObject.SetActive(false);
            _EquipFlag.gameObject.SetActive(false);
            _RareFlag.SetActive(false);
            CommonItemContainerItem.ShowQualityEffect(false, EquipFrenzy.EquipFrenzyEffectID, _ItemImg.transform);
            return;
        }
        _ItemImg.gameObject.SetActive(true);
        _ItemQuality.gameObject.SetActive(true);

        Tab_CommonItem commonItem = TableManager.GetCommonItemByID(_GameItem.DataID, 0);

        //CommonItemContainerItem.ShowQualityEffect(_GameItem.IsFrenzy, EquipFrenzy.EquipFrenzyEffectID, _ItemImg.transform);

        
        if (commonItem != null)
        {
            if (commonItem != null)
            {
                //m_ItemNum.text = itemParam.StackCount.ToString();
                #region 时装图标分男女
                int _PlayerProfession = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession;  //获取玩家职业
                                                                                                               //名字  Icon 
                if (_PlayerProfession == 0 || _PlayerProfession == 2)
                {
                    LoadAssetBundle.Instance.SetImageSprite(_ItemImg, commonItem.Icon);//男 
                }
                else if (_PlayerProfession == 1 || _PlayerProfession == 3)
                {
                    LoadAssetBundle.Instance.SetImageSprite(_ItemImg, commonItem.Iconnv); //女
                }

                #endregion
                //LoadAssetBundle.Instance.SetImageSprite(_ItemImg, commonItem.Icon);
                LoadAssetBundle.Instance.SetImageSprite(_ItemQuality, itemParam.GetQualityFrame());
                LoadAssetBundle.Instance.SetImageSprite(_QualityBG, itemParam.GetQualityBG());
                if (commonItem.QualityEffect > 0)
                {
                    CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, _ItemImg.transform);
                }
                else
                {
                    CommonItemContainerItem.ShowQualityEffect(false, EquipFrenzy.EquipFrenzyEffectID, _ItemImg.transform);
                    //CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, _ItemImg.transform);
                }


                if (_GameItem.IsPlayerEquiped())
                {
                    _EquipFlag.SetActive(true);
                    _BindFlag.SetActive(false);
                }
                else
                {
                    _EquipFlag.SetActive(false);
                    if (_GameItem.BindFlag)
                    {
                        _BindFlag.SetActive(true);
                    }
                    else
                    {
                        _BindFlag.SetActive(false);
                    }
                }

                int nPlayerLevel = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level;
                int nPlayerProfession = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession;

                _DisableFlag.SetActive(false);
                if (_GameItem.IsEquipMent() && _GameItem.IsValid())
                {
                    
                    if ((!_GameItem.IsFitForPlayer()))
                    {
                        _DisableFlag.SetActive(true);
                    }

                    if (nPlayerLevel < _GameItem.EquipUseLevel)
                    {
                        _DisableFlag.SetActive(true);
                    }

                    if (itemParam.ShihunTime > 0)
                    {
                        _DisableFlag.SetActive(true);
                    }

                    if (itemParam.Durable == 0)
                    {
                        _DisableFlag.SetActive(true);
                    }

                }
                else
                {
                    if ((!_GameItem.IsFitForPlayer()))
                    {
                        _DisableFlag.SetActive(true);
                    }

                    if (!_GameItem.IsValid()
                        || commonItem.MinLevelRequire > nPlayerLevel
                        || commonItem.MaxLevelRequire < nPlayerLevel)
                    {
                        _DisableFlag.SetActive(true);
                    }
                }
            }
        }

        if (_RareFlag != null)
        {
            if (!_EquipFlag.activeSelf && !_BindFlag.activeSelf)
            {
                _RareFlag.SetActive(false);
                if (itemParam.IsEquipMent())
                {
                    if (itemParam.IsRare)
                    {
                        _RareFlag.SetActive(true);
                        _BindFlag.SetActive(false);
                        _EquipFlag.SetActive(false);
                    }
                }
            }
            else
            {
                _RareFlag.SetActive(false);
            }
        }
    }
    
}