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

public class SceneItemUseChild : MonoBehaviour, IPointerClickHandler
{

    public Image Quility;
    public Image Icon;
    public Text Num;

    private Games.Item.GameItem m_sceneItem;
    public bool Show(Games.Item.GameItem sceneItem)
    {
        if (sceneItem == null || sceneItem.IsValid() == false)
        {
            gameObject.SetActive(false);
            return false;
        }
        m_sceneItem = sceneItem;
        Tab_CommonItem commonItem = TableManager.GetCommonItemByID(m_sceneItem.DataID, 0);
        if (commonItem == null)
        {
            gameObject.SetActive(false);
            return false;
        }
        gameObject.SetActive(true);
        LoadAssetBundle.Instance.SetImageSprite(Quility, GCGame.Utils.GetItemQualityFrame(commonItem.Quality));
        LoadAssetBundle.Instance.SetImageSprite(Icon, commonItem.Icon);
        Num.text = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(commonItem.Id).ToString();
        return true;
    }

    public virtual void OnPointerClick(PointerEventData eventData)
    {
        if (m_sceneItem == null || m_sceneItem.IsValid() == false)
            return;
        Tab_UsableItem tab_UsableItem = TableManager.GetUsableItemByID(m_sceneItem.DataID, 0);
        if (tab_UsableItem == null)
            return;
        if (tab_UsableItem.UseParamA == 1 || tab_UsableItem.UseParamA == 2)
        {
            if(WorldBossData.Instance.AliveBossCount()>=WorldBossData.Instance.SceneBossCount())
            {
                GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#49156}"));
                return;
            }

            if (tab_UsableItem.UseParamC == 2 && WorldBossData.Instance.AliveBossCount() > 0)
            {
                MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{49157}"), "", delegate () {
                    BossScene();
                });
                return;
            }

            BossScene();
            return;
        }

    }

    private void BossScene()
    {
        var useitem = (CG_USE_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_USE_ITEM);
        useitem.SetItemguid(m_sceneItem.Guid);
        useitem.SetUsecount(1);
        useitem.SendPacket();
    }
}