using Core.Language;
using Excel2Json;
using Fort23.UTool;
using GameLogic.Bag;
namespace Fort23.Mono
{
    [UIBinding(prefab = "BreakthroughItemWidget")]
    public partial class BreakthroughItemWidget : UIComponent
    {
        /// 
        /// 1.选择丹药 2.其他道具
        /// 
        private int type;
        public int itemId;
        public ItemInfo itemInfo;
        private void Init()
        {
        }
        public override void AddEvent()
        {
        }
        public override void DelEvent()
        {
        }
        private WidgetItem widgetItem;
        bool isSelected = false;
        public override void AddButtonEvent()
        {
            Btn_Select.onClick.AddListener(async () =>
            {
                if (isSelected)
                    return;
                isSelected = true;
                //打开选择丹药界面
                if (type == 1)
                {
                    SelectElixirPanel selectElixirPanel = await SelectElixirPanel.OpenPanel(this, async (e) =>
                    {
                        isSelected = false;
                        //取消选择丹药
                        if (e == null)
                        {
                            itemInfo = null;
                            UIManager.Instance.DormancyGComponent(widgetItem);
                            Icon_ItemIcon.gameObject.SetActive(false);
                            widgetItem = null;
                            Text_Bl.text = $"+{0}";
                            Text_ItemName.text = "丹药";
                        }
                        else
                        {
                            itemInfo = new ItemInfo(e._itemConfig.ID, 1);
                            // if (widgetItem == null)
                            // {
                            //     widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot);
                            // }
                            Icon_ItemIcon.gameObject.SetActive(true);
                            Icon_ItemIcon.icon_name = itemInfo.config.icon;
                            Text_Bl.text = $"+{itemInfo.config.associateVlaue[2]}";
                            Text_ItemName.text = LanguageManager.Instance.Text(itemInfo.config.itemName);
                            // widgetItem.InitWidget(itemInfo);
                        }
                    });
                    await selectElixirPanel.UIClosed();
                    isSelected = false;
                }
                else
                {
                    SelectBreakthroughItemPanel selectBreakthroughItemPanel = await SelectBreakthroughItemPanel.OpenPanel(this, async () =>
                    {
                        isSelected = false;
                        if (itemInfo != null)
                        {
                            itemInfo = null;
                            Icon_ItemIcon.gameObject.SetActive(false);
                            UIManager.Instance.DormancyGComponent(widgetItem);
                            widgetItem = null;
                            return;
                        }
                        if (PlayerManager.Instance.BagController.IsEnough(itemId, 1))
                        {
                            itemInfo = new ItemInfo(itemId, 1);
                            // if (widgetItem == null)
                            // {
                            //     widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot);
                            // }
                            Icon_ItemIcon.gameObject.SetActive(true);
                            Icon_ItemIcon.icon_name = itemInfo.config.icon;
                            Text_Bl.text = $"+{itemInfo.config.associateVlaue[2]}";
                            Text_ItemName.text = LanguageManager.Instance.Text(itemInfo.config.itemName);
                            // widgetItem.InitWidget(itemInfo);
                        }
                    });
                    await selectBreakthroughItemPanel.UIClosed();
                    isSelected = false;
                }
            });
        }
        public void CustomInit(int type, int itemId,bool isBiXuan)
        {
            this.type = type;
            this.itemId = itemId;
            Icon_BiXuan.SetActive(isBiXuan);
            if (type == 1)
            {
                Text_Bl.text = $"+{0}";
                Text_ItemName.text = "丹药";
            }
            else
            {
                ItemConfig itemConfig = ConfigComponent.Instance.Get(itemId);
                if (itemConfig.itemTag == 3)
                {
                    Text_Bl.text = $"+{itemConfig.associateVlaue[2]}";
                    Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName);
                }
                else
                {
                    Text_Bl.text = $"+{itemConfig.associateVlaue[2]}";
                    Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName);
                }
            }
        }
        public override void DormancyObj()
        {
            UIManager.Instance.DormancyGComponent(widgetItem);
            widgetItem = null;
            itemInfo = null;
            Icon_ItemIcon.gameObject.SetActive(false);
            isSelected = false;
            base.DormancyObj();
        }
    }
}