using DG.Tweening;
using FGUI.Common_01;

namespace ChillConnect
{
    public class AdcomingUI : BaseUI
    {
        private AdcomingUICtrl ctrl;
        private AdcomingModel model;
        private com_adcoming ui;

        public AdcomingUI(AdcomingUICtrl ctrl) : base(ctrl)
        {
            uiName = UIConst.AdcomingUI;
            this.ctrl = ctrl;
        }

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

        #region 生命周期
        protected override void OnInit()
        {
            //model = ModuleManager.Instance.GetModel(ModelConst.AdcomingModel) as AdcomingModel;
        }

        protected override void OnClose()
        {
        }

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

        protected override void OnOpenBefore(object args)
        {
            InitView();
        }

        protected override void OnOpen(object args)
        {
        }

        protected override void OnHide()
        {
        }

        protected override void OnDisplay(object args)
        {
        }
        #endregion

        #region 消息
        protected override void AddListener()
        {
            GameDispatcher.Instance.AddListener(GameMsg.pack_close, playAni);
        }
        protected override void RemoveListener()
        {
            GameDispatcher.Instance.RemoveListener(GameMsg.pack_close, playAni);
        }
        #endregion
        private int time = 5;

        //初始化页面逻辑
        private void InitView()
        {
            ui.time_text.text = time.ToString();

            tweer = DOVirtual.Float(time, 0, time, value => { ui.time_text.text = ((int)value).ToString(); });
            tweer.onComplete += () =>
            {
                CtrlCloseUI();
                GameHelper.ShowInterstitial("interstitial_gameend");
            };
            ui.btn_removead.SetClick(() =>
            {
                UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open);
                tweer.Pause();
            });

        }
        private Tween tweer;
        void playAni(object a)
        {
            tweer.Play();
        }
    }
}