using Fort23.Core;
using Fort23.UTool;
using GameLogic.Combat;
using GameLogic.Combat.CombatTool;
using UnityEngine;
using UnityEngine.UI;
namespace Fort23.Mono.Phases
{
    /// 
    /// 商店抽卡引导
    /// 
    public class Phase7 : IGuideLogic
    {
        public PlayerGuideManager pgm;
        private bool once = false;
        public Phase7(PlayerGuideManager guideManager)
        {
            this.pgm = guideManager;
            once = true;
        }
        public override void Active()
        {
            base.Active();
            actionList.Add(OnStep701);
            actionList.Add(OnStep702);
            actionList.Add(OnStep703);
            actionList.Add(OnStep704);
            actionList.Add(OnStep705);
            actionList.Add(OnStep706);
            actionList.Add(OnStepEnd);
        }
        public override void Begin()
        {
            guideID = 7;
            guideIdx = -1;
            pgm.isForceDone = false;
            pgm.isTriggerDone = false;
        }
        public override void End()
        {
        }
        public override async CTask Guide()
        {
            if (actionList.Count > guideIdx)
            {
                pgm.ResetPlayerGuide();
                guideIdx++;
                SaveStep(guideIdx);
                await actionList[guideIdx](null);
            }
            else
            {
                LogTool.Error("没有引导了,强制结束。出错步骤,:" + pgm.curPhase + guideIdx);
                pgm.isForceDone = true;
            }
        }
        public override void LogicRelase()
        {
            actionList.Clear();
        }
        public override void LogicUpdate()
        {
        }
        /// 
        /// 点击白嫖代金卷页签
        /// 
        /// 
        public async CTask OnStep701(UnityEngine.Object obj)
        {
            pgm.StepInit();
            await TimerComponent.Instance.WaitAsync(100);
            GameObject gameObject = UIManager.Instance.GetComponent()._shopBtnWidgets[0].own;
            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            Vector2 size = gameObject.GetComponent().sizeDelta;
            pgm.SetfxTransVisiable(true);
            pgm.SetMaskTarget(gameObject);
            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(701, delegate() { });
            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
            pgm.SetFingerVisiable(true);
        }
        /// 
        /// 点击十连抽
        /// 
        /// 
        public async CTask OnStep702(UnityEngine.Object obj)
        {
            pgm.StepInit();
            await TimerComponent.Instance.WaitAsync(100);
            GameObject gameObject = null;
            ShopPanel shopPanel = UIManager.Instance.GetComponent();
            foreach (var shopPanelShopGroupWidgetType1 in shopPanel._shopGroupWidgetType1s)
            {
                if (shopPanelShopGroupWidgetType1 is ShopBoxWidget)
                {
                    ShopBoxWidget shopBoxWidget = (ShopBoxWidget)shopPanelShopGroupWidgetType1;
                    gameObject = shopBoxWidget.tenButton.gameObject;
                    break;
                }
            }
            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            Vector2 size = gameObject.GetComponent().sizeDelta;
            pgm.SetfxTransVisiable(true);
            pgm.SetMaskTarget(gameObject);
            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(702, delegate() { });
            pgm.SetFingerPos(localPos);
            pgm.SetFingerVisiable(true);
        }
        /// 
        /// 点击领取
        /// 
        /// 
        public async CTask OnStep703(UnityEngine.Object obj)
        {
            pgm.StepInit();
            await TimerComponent.Instance.WaitAsync(100);
            GameObject gameObject = UIManager.Instance.GetComponent().Btn_LingQu.gameObject;
            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            Vector2 size = gameObject.GetComponent().sizeDelta;
            pgm.SetfxTransVisiable(true);
            pgm.SetMaskTarget(gameObject);
            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(703, delegate() { });
            pgm.SetFingerPos(localPos);
            pgm.SetFingerVisiable(true);
        }
        /// 
        /// 点击兑换商店
        /// 
        /// 
        public async CTask OnStep704(UnityEngine.Object obj)
        {
            pgm.StepInit();
            await TimerComponent.Instance.WaitAsync(100);
            GameObject gameObject = UIManager.Instance.GetComponent()._shopBtnWidgets[1].own;
            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            Vector2 size = gameObject.GetComponent().sizeDelta;
            pgm.SetfxTransVisiable(true);
            pgm.SetMaskTarget(gameObject);
            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(704, delegate() { });
            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
            pgm.SetFingerVisiable(true);
        }
        /// 
        /// 点击姚丹
        /// 
        /// 
        public async CTask OnStep705(UnityEngine.Object obj)
        {
            pgm.StepInit();
            await TimerComponent.Instance.WaitAsync(100);
            GameObject gameObject =
                (UIManager.Instance.GetComponent()._shopGroupWidgetType1s[0] as ShopGroupWidgetType1)
                ._shopItemWidgetType2s[4].own;
            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            Vector2 size = gameObject.GetComponent().sizeDelta;
            pgm.SetfxTransVisiable(true);
            pgm.SetMaskTarget(gameObject);
            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(705, delegate() { });
            pgm.SetFingerPos(localPos);
            pgm.SetFingerVisiable(true);
        }
        /// 
        /// 点击购买
        /// 
        /// 
        public async CTask OnStep706(UnityEngine.Object obj)
        {
            pgm.StepInit();
            // await TimerComponent.Instance.WaitAsync(100);
            // GameObject gameObject =
            //     UIManager.Instance.GetComponent().Btn_Function.gameObject;
            // Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
            // Vector2 size = gameObject.GetComponent().sizeDelta;
            // pgm.SetfxTransVisiable(true);
            // pgm.SetMaskTarget(gameObject);
            // pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
            await pgm.ConfigLogic(706, delegate() { pgm.NextGuide(); });
            // pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
            // pgm.SetFingerVisiable(true);
            UIManager.Instance.HideUIUIPanel();
        }
        public async CTask OnStepEnd(UnityEngine.Object obj)
        {
            pgm.StepInit();
            pgm.SetBlackBaseVisiable(false);
            ForceGuideOver();
        }
        /// 
        /// 引导完成
        /// 
        private void ForceGuideOver()
        {
            pgm.CloseForceGuide();
            pgm.RestGuide();
        }
    }
}