using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.GlobeDefine;
using GCGame.Table;

public class TeamInfoApplyItem : UIItemBase
{
    #region 

    public Image _MemberProIcon;
    public UICameraTexture _MemberModelView;
    public Text _MemberLevel;
    public Text _MemberName;
    public Text _MemberInfo1;
    public Text _MemberInfo2;

    private TeamMember _TeamInfo;
    private GameObject _MemberModel;
    #endregion

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

        var teamInfo = (TeamMember)hash["InitObj"];
        InitTeamInfo(teamInfo);
    }

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

        InitTeamInfo(_TeamInfo);
    }

    private void InitTeamInfo(TeamMember teamInfo)
    {
        if (teamInfo == null || teamInfo.Guid == GlobeVar.INVALID_GUID)
        {
            _MemberModelView.gameObject.SetActive(false);
            _MemberProIcon.gameObject.SetActive(false);
            _MemberProIcon.transform.parent.gameObject.SetActive(false);
            _MemberLevel.gameObject.SetActive(false);
            _MemberName.gameObject.SetActive(false);
            _MemberInfo1.gameObject.SetActive(false);
            _MemberInfo2.gameObject.SetActive(false);
            return;
        }
        _MemberModelView.gameObject.SetActive(true);
        _MemberProIcon.gameObject.SetActive(true);
        _MemberProIcon.transform.parent.gameObject.SetActive(true);
        _MemberLevel.gameObject.SetActive(true);
        _MemberName.gameObject.SetActive(true);
        _MemberInfo1.gameObject.SetActive(true);
        _MemberInfo2.gameObject.SetActive(true);

        _TeamInfo = teamInfo;

        LoadAssetBundle.Instance.SetImageSprite(_MemberProIcon, GCGame.Utils.GetProfessionSpriteName(_TeamInfo.Profession));
        _MemberLevel.text = StrDictionary.GetClientDictionaryString("#{1738}", _TeamInfo.Level);
        _MemberName.text = _TeamInfo.MemberName;
        _MemberInfo1.text = StrDictionary.GetClientDictionaryString("#{1064}", _TeamInfo.CombatNum);
        _MemberInfo2.text = "";

        GetModel();
    }

    private void GetModel()
    {
        int nCharmodelID = 0;
        switch (_TeamInfo.Profession)
        {
            case 0:
                nCharmodelID = 0;
                break;
            case 1:
                nCharmodelID = 1;
                break;
            case 2:
                nCharmodelID = 2;
                break;
            case 3:
                nCharmodelID = 3;
                break;
        }
        Tab_CharModel charModel = TableManager.GetCharModelByID(nCharmodelID, 0);
        if (charModel == null)
        {
            return;
        }

        //LoadAssetBundle.Instance.LoadModelAsync(charModel.ResPath, LoadModelFinish);
    }
// 
//    public void LoadModelFinish(string modelName, GameObject resObj, object param1, object param2, object param3 = null)
//    {
//        if (resObj == null)
//            return;
//
//        _MemberModel = resObj;
//        _MemberModelView.InitShowGO(resObj);
//    }

    #region act

    public override void OnItemClick()
    {
        PopMenuLogic.ShowMenu("TeamMemberPopMenu", gameObject, _TeamInfo.Guid, _TeamInfo.MemberName);
    }

    #endregion
}