using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using UnityEngine.EventSystems;

public class OtherPlayerInfoRootCtr : MonoBehaviour {

    public enum MenuType
    {
        Equip = 0,                  // 装备属性
        Skill = 1,                  // 技能
        Pet = 2,                    // 宠物
        Fabao = 3,                  // 法宝
        Power = 4,                  // 战力
        Advance = 5                 // 进阶
    }

    #region
    // public List<GameObject> menuItemList;                                   // 操作按钮
    // public List<Image> menuMarkList;                                        // 标记
    public List<GameObject> infoPanelList = new List<GameObject>();         // 对应信息Panel
    public TogglesControl toggleControl;
    public UIContainerSelect menuContainer;                                 // 菜单拉动区
    public int[] advanceTypeList;                                           // 进阶类型映射

    private int panelType = -1;                                             // 当前类型
    private int toggleIndex = -1;                                           // 点击菜单按钮索引

    #endregion

    public static OtherPlayerInfoRootCtr Instance;
    private void Awake()
    {
        Instance = this;
        //menuContainer._ScrollRect.OnEndDrag();
    }

    private void OnDestroy()
    {
        Instance = null;
    }

    void OnEnable()
    {
        toggleControl.OnTogglesSelect += OnMenuItemClick;
        toggleControl.SetToggleOn(0);
    }

    private void OnDisable()
    {
        toggleControl.OnTogglesSelect -= OnMenuItemClick;
    }

    public void OnMenuItemClick(int tIndex)
    {
        // 关闭之前的界面
        if (panelType != -1 && panelType <= (int)MenuType.Advance)
        {
            if(panelType < 4)
            {
                infoPanelList[panelType].SetActive(false);
            }
            else
            {
                infoPanelList[4].SetActive(false);
            }
        }

        toggleIndex = tIndex;

        if(toggleIndex > 3)
        {
            panelType = 5;

            infoPanelList[panelType - 1].SetActive(true);
        }
        else if(tIndex >= 0)
        {
            panelType = toggleIndex;
            infoPanelList[panelType].SetActive(true);
        }

        CG_ASK_OTHERROLE_DATA askPak = (CG_ASK_OTHERROLE_DATA)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_OTHERROLE_DATA);
        askPak.SetGuid(GameManager.gameManager.OtherPlayerData.RoleGUID);
        switch (panelType)
        {
            case (int)MenuType.Equip:
                askPak.SetDataType((int)MenuType.Equip);
                break;
            case (int)MenuType.Skill:
                //申请当前的技能信息
                askPak.SetDataType((int)MenuType.Skill);
                break;
            case (int)MenuType.Pet:
                askPak.SetDataType((int)MenuType.Pet);
                break;
            case (int)MenuType.Fabao:
                askPak.SetDataType((int)MenuType.Fabao);
                break;
            // 其他均视为进阶请求
            default:
                if(OtherPlayerAdvancePanelCtr.Instance != null)
                {
                    if (OtherPlayerAdvancePanelCtr.Instance.HasInit)
                    {
                        OtherPlayerAdvancePanelCtr.Instance.ShowPanel((AdvanceBase.AdvanceType)advanceTypeList[(toggleIndex - (int)MenuType.Advance) + 1]);
                        return;
                    }
                    else
                    {
                        askPak.SetDataType((int)MenuType.Advance);
                        OtherPlayerAdvancePanelCtr.Instance.advanceType = (AdvanceBase.AdvanceType)advanceTypeList[(toggleIndex - (int)MenuType.Advance + 1)];
                    }
                }
                break;
        }
        askPak.SendPacket();
    }

    public void OnCloseBtnClick()
    {
        UIManager.CloseUI(UIInfo.OtherPlayerInfoRoot);
    }

    #region 滑动框上下限提示

    private void TipShow(PointerEventData eventData)
    {

    }

    #endregion
}