using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using GCGame.Table;
using Module.Log;

public class WelfareEveryDaySinginItem : UIItemBase {

    public Image _ItemIcon;
    public Image _itemQuality;
    public Text _ItemCount;
    public Image _ItemStateIcon;
    public GameObject _HasGetIcon;
    public Image _CanDoubleIcon;
    public List<Sprite> _StateIconList;
    public GameObject _MarkIcon;
    public GameObject effectCtr;
    public GameObject effect;          // 特效控制,挂载点即本脚物体

    public int _ItemState;
    private int _ItemId;

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

        WelfareEveryDaySingInItemInfo info = (WelfareEveryDaySingInItemInfo)hash["InitObj"];

        Tab_CommonItem commonItem = TableManager.GetCommonItemByID(info._ItemId, 0);
        if(commonItem == null)
        {
            LogModule.ErrorLog("CommonItem is null, Item id is : " + info._ItemId);
            return;
        }
        _ItemId = info._ItemId;
        _ItemState = info._ItemState;

        _NodeId = info._NodeId;
        _SubNodeId = info._SubNodeId;

        LoadAssetBundle.Instance.SetImageSprite(_ItemIcon, commonItem.Icon);
        LoadAssetBundle.Instance.SetImageSprite(_itemQuality, GCGame.Utils.GetItemQualityFrame(commonItem.Quality));
        if (commonItem.QualityEffect > 0)
        {
            CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, _ItemIcon.transform);
        }
        else
        {
            CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, _ItemIcon.transform);
        }

        _ItemCount.text = info._ItemCount.ToString();

        _CanDoubleIcon.gameObject.SetActive(!info._vipDoubleIconPath.Equals(""));
        LoadAssetBundle.Instance.SetImageSprite(_CanDoubleIcon, info._vipDoubleIconPath);

        if (info._isSpecial)
        {
            effect.gameObject.SetActive(true);
            effect.transform.localPosition = Vector3.zero;
        }
        else
        {
            effect.gameObject.SetActive(false);
        }

        InitRewState();
    }

    public void InitRewState()
    {
        switch(_ItemState)
        {
            case (int)WelfareRootCtr.WlfareRewardState.CanGet:
                _MarkIcon.SetActive(true);
                _ItemStateIcon.gameObject.SetActive(true);
                _HasGetIcon.SetActive(false);
                _ItemStateIcon.overrideSprite = _StateIconList[(int)WelfareRootCtr.WlfareRewardState.CanGet - 1];
                effectCtr.gameObject.SetActive(true);
                break;
            case (int)WelfareRootCtr.WlfareRewardState.HasGeted:
                _MarkIcon.SetActive(true);
                _ItemStateIcon.gameObject.SetActive(false);
                _HasGetIcon.SetActive(true);
                effectCtr.gameObject.SetActive(false);
                break;
            case (int)WelfareRootCtr.WlfareRewardState.CanReCheck:
                _MarkIcon.SetActive(true);
                _HasGetIcon.SetActive(false);
                _ItemStateIcon.gameObject.SetActive(true);
                effectCtr.gameObject.SetActive(false);
                _ItemStateIcon.overrideSprite = _StateIconList[(int)WelfareRootCtr.WlfareRewardState.CanReCheck - 1];
                break;
            case (int)WelfareRootCtr.WlfareRewardState.None:
                _MarkIcon.SetActive(false);
                _HasGetIcon.SetActive(false);
                _ItemStateIcon.gameObject.SetActive(false);
                effectCtr.gameObject.SetActive(true);
                break;
        }
    }

    public override void OnItemClick()
    {
        switch(_ItemState)
        {
            case (int)WelfareRootCtr.WlfareRewardState.CanGet:
            case (int)WelfareRootCtr.WlfareRewardState.CanReCheck:
                {
                    ReqGetWelfareRew req = new ReqGetWelfareRew();
                    req._NodeId = _NodeId;
                    req._SubNodeId = _SubNodeId;
                    req.SendMsg();
                }
                break;
            default:
                {
                    ItemTooltipsLogic.ShowItemTooltip(_ItemId, ItemTooltipsLogic.ShowType.Info, _ItemIcon.transform.position);
                }
                break;
        }
    }
}