using System;
using FGUI.Arrow_game;
using IgnoreOPS;
using UnityEngine;

namespace ChillConnect
{

    public class ArrowTipsUI : BaseUI
    {
        private ArrowTipsUICtrl ctrl;
        private ArrowTipsModel model;
        private com_tips ui;

        public ArrowTipsUI(ArrowTipsUICtrl ctrl) : base(ctrl)
        {
            uiName = UIConst.ArrowTipsUI;
            this.ctrl = ctrl;
        }

        protected override void SetUIInfo(UIInfo uiInfo)
        {
            uiInfo.packageName = "Arrow_game";
            uiInfo.assetName = "com_tips";
            uiInfo.layerType = UILayerType.Popup;
            uiInfo.isNeedUIMask = true;
            uiInfo.isNeedOpenAnim = true;
            uiInfo.isNeedCloseAnim = true;
        }

        protected override void OnInit()
        {
        }

        protected override void OnClose()
        {
            GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, true);
            
            CommonHelper.FadeOut(ui);
            
            HallManager.Instance.UpdateSecondEvent -= UpdateCd;
            
        }

        protected override void OnBind()
        {
            ui = baseUI as com_tips;
        }

        private int state_;
        protected override void OnOpenBefore(object args)
        {
            GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, false);
            
            if (args != null)
            {
                InitView((int)args);
                state_ = (int)args + 5;
            }
            
            HallManager.Instance.UpdateSecondEvent += UpdateCd;
            UpdateCd();
            
            if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig<CommonModel>().PiggyBankSwitch == 1)
            {
                ui.btn_watch.img_saveingpot.visible = true;
            }
        }

        protected override void OnOpen(object args)
        {
            CommonHelper.FadeIn(ui);
        }

        protected override void AddListener()
        {
        }

        protected override void RemoveListener()
        {
        }

        private void InitView(int type)
        {
            int state = type;
            Debug.Log($"tips state = {state} ");
            // 0 提示 1 删除道具
            ui.state.selectedIndex = state;
            
            ui.btn_watch.SetClick(() =>
            {
                string idStr = state == 1 ? "deletePop" : "HintPop";
                GameHelper.ShowVideoAd(idStr, isSuccess =>
                {
                    if (isSuccess)
                    {
                        Debug.Log($"isSuccess tips state = {state} ");
                        GameHelper.SetWatchCd(state_);
                        GameDispatcher.Instance.Dispatch(GameMsg.UseProps, state);
                        CtrlCloseUI();
                    }
                });
            });
            
            ui.btn_close.SetClick(CtrlCloseUI);
        }
        
        
        private void UpdateCd()
        {  
            var btnWatch = ui.btn_watch ;
            // Debug.Log($"DataMgr.NewWatchCd.Value[state_ + 2]==={DataMgr.NewWatchCd.Value[state_ + 2]}");
            if (DataMgr.NewWatchCd.Value[state_] > Convert.ToInt32(GameHelper.GetNowTime()))
            {
                btnWatch.enabled = false;
                btnWatch.can.selectedIndex = 1;
                btnWatch.text.text = CommonHelper.TimeFormat(DataMgr.NewWatchCd.Value[state_] - Convert.ToInt32(GameHelper.GetNowTime()), CountDownType.Hour);
            }
            else
            {
                ui.btn_watch.enabled = true;
                btnWatch.can.selectedIndex = 0;
                btnWatch.text.text = "Use Item";
            }
        }
    }
}