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

// 等级礼包提示UI
// 用于辅助福利大厅的等级礼包
// 在玩家可领取的前几级会一直存在与界面中,达到后特定等级才有跳转功能,转至福利大厅相关界面
public class LevelGiftBagTip : MonoBehaviour {

    public Button getAward;                 // 礼包跳转按钮
    public Text desc;                       // 差距描述

    private int desLevel = -1;              // 目标等级即多少级才能领取礼包

    private static LevelGiftBagTip instance;
    public static LevelGiftBagTip Instance
    { get { return instance; } }

    private void Awake()
    {
        if(instance == null)
        {
            instance = this;
            getAward.onClick.AddListener(OnGetAwardBtnClick);
        }   
    }

    // 该level是差距等级
    public void ShowLevel(int level, int desLevel = -1)
    {
        if(level > 0)
        {
            if(desLevel != -1)
            {
                this.desLevel = desLevel;
            }
            desc.text = StrDictionary.GetClientDictionaryString("#{64003}", level);
        }
        else if(level == 0)
        {
            if(desLevel != -1)
            {
                this.desLevel = desLevel;
            }
            desc.text = StrDictionary.GetClientDictionaryString("#{64004}");
        }
        // 如果是负数,则不正常,直接关闭
        else
        {
            LogModule.ErrorLog("Trying open LevelGiftBagTip, but the level in tip is less than 0, please check !");
            UIManager.CloseUI(UIInfo.LevelGiftBagTip);
        }
    }

    // 尝试关闭等级礼包提示,条件为当前已领取的最高等级大于目前显示的等级
    public void TryClose(int maxLevel)
    {
        if(maxLevel >= desLevel)
        {
            UIManager.CloseUI(UIInfo.LevelGiftBagTip);
        }
    }

    private void OnDestroy()
    {
        instance = null;
    }

    private void OnGetAwardBtnClick()
    {
        UIManager.ShowUI(UIInfo.WelfareRoot,
            (bool bSuccess, object param) =>
            {
                if(bSuccess)
                {
                    // 等级礼包NodeID = 203
                    WelfareRootCtr.Instance.OpenWith(251);
                }
            });
    }
}