wangguan
2020-11-24 a27b3510185c04eb385f5ab3ad24fd4e87a27626
Assets/Scripts/Guide/GuideCtrl.cs
@@ -41,8 +41,12 @@
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.KillDone, KillDone);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.GetOneTowerPos, GetOneTowerPos);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillStep, SkillStep);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillReleaseDone, SkillReleaseDone);
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillStep, SkillStep);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.DragStep, DragStep);
        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateThirdWaveDone, CreateThirdWaveDone);
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease);
        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillReleaseDone, SkillReleaseDone);
    }
@@ -54,33 +58,19 @@
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.KillDone, KillDone);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.GetOneTowerPos, GetOneTowerPos);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.CreateWaterLv1, CreateWaterLv1);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.SkillStep, SkillStep);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.SkillReleaseDone, SkillReleaseDone);
        //EventCenter.Ins.Remove((int)KTGMGemClient.EventType.SkillStep, SkillStep);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.DragStep, DragStep);
        EventCenter.Ins.Remove((int)KTGMGemClient.EventType.CreateThirdWaveDone, CreateThirdWaveDone);
        //EventCenter.Ins.Remove((int)KTGMGemClient.EventType.SkillRelease, SkillRelease);
        //EventCenter.Ins.Remove((int)KTGMGemClient.EventType.SkillReleaseDone, SkillReleaseDone);
    }
    public void Init(int step)
    {
        //Time.timeScale = 0;//游戏暂停,这样会导致协程停止了
        ChangeStep(GuideEnum.Step0);
        GameConfig.CanOpenNewTower = false;
        // switch (step)
        // {
        //     case 2:
        //     case 3:
        //         //生成两个火元素
        //         break;
        //     case 4:
        //         //生成1个2级火元素,标记上阵位置
        //         break;
        //     case 5:
        //         //生成2级火元素塔,第一关小怪出木元素小怪
        //         break;
        // }
        // ChangeStep((GuideEnum)(step + 1));
    }
@@ -93,16 +83,18 @@
        allGuideDic.Add(GuideEnum.Step0, new string[] { GuideConfig.showWords[0], GuideConfig.showWords[1] });
        allGuideDic.Add(GuideEnum.Step1, new string[] { GuideConfig.showWords[2], GuideConfig.showWords[3] });
        allGuideDic.Add(GuideEnum.Step2, new string[] { GuideConfig.showWords[4], GuideConfig.showWords[5] });
        allGuideDic.Add(GuideEnum.Step3, new string[] { GuideConfig.showWords[6], GuideConfig.showWords[7] });
        allGuideDic.Add(GuideEnum.Step4, new string[] { GuideConfig.showWords[8] });
        allGuideDic.Add(GuideEnum.Step5, new string[] { GuideConfig.showWords[9], GuideConfig.showWords[10] });
        allGuideDic.Add(GuideEnum.Step6, new string[] { GuideConfig.showWords[11], GuideConfig.showWords[12] });
        allGuideDic.Add(GuideEnum.Step7, new string[] { GuideConfig.showWords[13] });
        allGuideDic.Add(GuideEnum.Step8, new string[] { GuideConfig.showWords[14], GuideConfig.showWords[15] });
        allGuideDic.Add(GuideEnum.Step9, new string[] { GuideConfig.showWords[16], GuideConfig.showWords[17] });
        allGuideDic.Add(GuideEnum.Step10, new string[] { GuideConfig.showWords[18], GuideConfig.showWords[19] });
        allGuideDic.Add(GuideEnum.Step11, new string[] { GuideConfig.showWords[20], GuideConfig.showWords[21] });
        allGuideDic.Add(GuideEnum.Step12, new string[] { GuideConfig.showWords[22], GuideConfig.showWords[23], GuideConfig.showWords[24] });
        allGuideDic.Add(GuideEnum.Step3, new string[] { });
        allGuideDic.Add(GuideEnum.Step4, new string[] { GuideConfig.showWords[6] });
        allGuideDic.Add(GuideEnum.Step5, new string[] { GuideConfig.showWords[7], GuideConfig.showWords[8] });
        allGuideDic.Add(GuideEnum.Step6, new string[] { });
        allGuideDic.Add(GuideEnum.Step7, new string[] { });
        allGuideDic.Add(GuideEnum.Step8, new string[] { GuideConfig.showWords[9] });
        allGuideDic.Add(GuideEnum.Step9, new string[] { });
        allGuideDic.Add(GuideEnum.Step10, new string[] { GuideConfig.showWords[10], GuideConfig.showWords[11] });
        allGuideDic.Add(GuideEnum.Step11, new string[] { });
        allGuideDic.Add(GuideEnum.Step12, new string[] { GuideConfig.showWords[12], GuideConfig.showWords[13] });
        allGuideDic.Add(GuideEnum.Step13, new string[] { });
        allGuideDic.Add(GuideEnum.Step14, new string[] { GuideConfig.showWords[14], GuideConfig.showWords[15] });
    }
@@ -157,6 +149,12 @@
                case GuideEnum.Step12:
                    Step12();
                    break;
                case GuideEnum.Step13:
                    Step13();
                    break;
                case GuideEnum.Step14:
                    Step14();
                    break;
                case GuideEnum.Finish:
                    Finish();
                    break;
@@ -174,8 +172,8 @@
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第1步开始");
            GA_SDK_Manager.Ins.Statistics(5);//埋点
            CommonDebugHelper.DebugError("第1步开始, 对话");
            TDAA_SDKManager.Ins.Statistics(5);//埋点
            currentIndex = 0;
            needIndex = 2;
@@ -191,9 +189,9 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第2步开始");
            GA_SDK_Manager.Ins.Statistics(6);//埋点
            GA_SDK_Manager.Ins.GuideStep(1);//埋点
            CommonDebugHelper.DebugError("第2步开始,购买火元素");
            TDAA_SDKManager.Ins.Statistics(6);//埋点
            TDAA_SDKManager.Ins.GuideStep(1);//埋点
            currentIndex = 0;
            needIndex = 2;
@@ -238,8 +236,8 @@
        isShowing = true;
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第3步开始");
            GA_SDK_Manager.Ins.GuideStep(2);//埋点
            CommonDebugHelper.DebugError("第3步开始,介绍火元素");
            TDAA_SDKManager.Ins.GuideStep(2);//埋点
            currentIndex = 0;
            needIndex = 2;
@@ -260,31 +258,32 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第4步开始");
            GA_SDK_Manager.Ins.GuideStep(3);//埋点
            CommonDebugHelper.DebugError("第4步开始,引导合成火元素");
            TDAA_SDKManager.Ins.GuideStep(3);//埋点
            currentIndex = 0;
            needIndex = 2;
            panel.Step3(currentIndex, allGuideDic[currentStep][currentIndex]);
            panel.Step3(currentIndex, "");
        }
    }
    //开始拖拽
    public void BeginDrag()
    {
        panel.Step3_2(allGuideDic[currentStep][1]);
        panel.Step3_2("");
    }
    //结束推拽 没有合成,回到上一步
    public void EndDrag()
    {
        panel.Step3(0, allGuideDic[currentStep][0]);
        panel.Step3(0, "");
    }
    //合成了卡牌,开始下一步
    private void AddCard()
    {
        currentIndex = -1;
        panel.StopShowDragPath(false);
        ChangeStep(GuideEnum.Step4);
    }
@@ -292,10 +291,11 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第5步开始");
            GA_SDK_Manager.Ins.GuideStep(4);//埋点
            CommonDebugHelper.DebugError("第5步开始,上阵火元素 ");
            TDAA_SDKManager.Ins.GuideStep(4);//埋点
            currentIndex = 0;
            panel.StopShowDragPath(true);
            panel.Step4(currentIndex, allGuideDic[currentStep][currentIndex]);
        }
    }
@@ -304,6 +304,7 @@
    private void CreateFireLv2()
    {
        currentIndex = -1;
        panel.StopShowDragPath(true);
        ChangeStep(GuideEnum.Step5);
    }
@@ -312,8 +313,8 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第6步开始");
            GA_SDK_Manager.Ins.GuideStep(5);//埋点
            CommonDebugHelper.DebugError("第6步开始,开打第一波");
            TDAA_SDKManager.Ins.GuideStep(5);//埋点
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateFirstWave);
            panel.Step5(currentIndex, "");
@@ -340,8 +341,8 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第7步开始");
            GA_SDK_Manager.Ins.GuideStep(6);//埋点
            CommonDebugHelper.DebugError("第7步开始,出怪");
            TDAA_SDKManager.Ins.GuideStep(6);//埋点
            panel.SetGuideUI(false);
            //恢复出怪
@@ -360,11 +361,15 @@
    private void KillDone()
    {
        currentIndex = 0;
        needIndex = 2;
        panel.SetGuideUI(true);
        isShowing = true;
        panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        currentIndex = -1;
        ChangeStep(GuideEnum.Step7);
        // currentIndex = 0;
        // needIndex = 2;
        // panel.SetGuideUI(true);
        // isShowing = true;
        // panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
    }
@@ -372,16 +377,20 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第8步开始");
            GA_SDK_Manager.Ins.GuideStep(7);//埋点
            CommonDebugHelper.DebugError("第8步开始,跳过了");
            TDAA_SDKManager.Ins.GuideStep(7);//埋点
            currentIndex = 0;
            needIndex = 1;
            panel.SetGuideUI(false);
            GameConfig.CanOpenNewTower = true;
            //GameConfig.CanOpenNewTower = true;
            //等待解锁塔
            panel.Step7(currentIndex, allGuideDic[currentStep][currentIndex]);
            //panel.Step7(currentIndex, allGuideDic[currentStep][currentIndex]);
            //第一排直接开过塔了,引导买水元素
            GetOneTowerPos();
        }
    }
@@ -399,38 +408,35 @@
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第9步开始");
            GA_SDK_Manager.Ins.GuideStep(8);//埋点
            CommonDebugHelper.DebugError("第9步开始,介绍水元素");
            TDAA_SDKManager.Ins.GuideStep(8);//埋点
            GameConfig.CanOpenNewTower = false;
            currentIndex = 0;
            needIndex = 2;
            needIndex = 1;
            panel.Step8();
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        }
        else if (currentIndex == 1)
        {
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        }
    }
    private void Step9()
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第10步开始");
            GA_SDK_Manager.Ins.GuideStep(9);//埋点
            CommonDebugHelper.DebugError("第10步开始,购买水元素,第二步上阵");
            TDAA_SDKManager.Ins.GuideStep(9);//埋点
            currentIndex = 0;
            needIndex = 2;
            panel.SetGuideUI(false);
            panel.Step9(allGuideDic[currentStep][currentIndex], currentIndex, Step9_1);
            panel.Step9("", currentIndex, Step9_1);
        }
        else if (currentIndex == 1)
        {
            panel.Step9(allGuideDic[currentStep][currentIndex], currentIndex, null);
            panel.Step9("", currentIndex, null);
        }
    }
@@ -446,10 +452,17 @@
    private void CreateWaterLv1()
    {
        panel.CleanMask();
        panel.StopShowDragPath(true);
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateSecondWave);//生成第二波小怪
    }
    private void SkillStep()
    {
        currentIndex = -1;
        ChangeStep(GuideEnum.Step10);
    }
    private void DragStep()
    {
        currentIndex = -1;
        ChangeStep(GuideEnum.Step10);
@@ -460,8 +473,8 @@
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第11步开始");
            GA_SDK_Manager.Ins.GuideStep(10);//埋点
            CommonDebugHelper.DebugError("第11步开始,自己编的,需要修改,反正就是引导换位置");
            TDAA_SDKManager.Ins.GuideStep(10);//埋点
            currentIndex = 0;
            needIndex = 2;
@@ -472,7 +485,7 @@
        else if (currentIndex == 1)
        {
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
            panel.Step10();
            //panel.Step10();
        }
    }
@@ -480,13 +493,13 @@
    {
        if (currentIndex == -1)
        {
            CommonDebugHelper.DebugError("第12步开始");
            GA_SDK_Manager.Ins.GuideStep(11);//埋点
            CommonDebugHelper.DebugError("第12步开始,已经换了位置");
            TDAA_SDKManager.Ins.GuideStep(11);//埋点
            currentIndex = 0;
            needIndex = 1;
            panel.Step11(currentIndex, allGuideDic[currentStep][currentIndex]);
            panel.Step11Drag(currentIndex);
        }
    }
@@ -494,14 +507,32 @@
    //开始拖拽
    public void BeginDrag11_1()
    {
        panel.Step11(1, allGuideDic[currentStep][1]);
        panel.Step11Drag(1);
    }
    //结束推拽 没有合成,回到上一步
    public void EndDrag11_1()
    {
        panel.Step11(0, allGuideDic[currentStep][0]);
        panel.Step11Drag(0);
    }
    public void DragDone()
    {
        GameConfig.CanDragTower = false;
        CommonDebugHelper.Debug("结束拖拽");
        panel.Step11Drag(2);
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.RestartWave);
    }
    private void CreateThirdWaveDone()
    {
        currentIndex = -1;
        ChangeStep(GuideEnum.Step12);
    }
    private void SkillRelease()
    {
        panel.SkillRelease();
    }
@@ -516,15 +547,62 @@
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第13步开始");
            GA_SDK_Manager.Ins.GuideStep(12);//埋点
            CommonDebugHelper.DebugError("第13步开始,对话框说明技能");
            TDAA_SDKManager.Ins.GuideStep(12);//埋点
            currentIndex = 0;
            needIndex = 3;
            needIndex = 2;
            panel.Step12();
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        }
        else
        {
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        }
    }
    private void Step13()
    {
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第14步开始,引导释放技能");
            TDAA_SDKManager.Ins.GuideStep(13);//埋点
            currentIndex = 0;
            needIndex = 2;
            panel.Step13("释放技能", AfterSkillDone);
        }
    }
    private void AfterSkillDone()
    {
        panel.CleanMask();
        StartCoroutine(ChangeState());
    }
    IEnumerator ChangeState()
    {
        CommonDebugHelper.Debug("释放技能结束,这里等了1秒钟");
        yield return new WaitForSeconds(1.0f);
        currentIndex = -1;
        ChangeStep(GuideEnum.Step14);
    }
    private void Step14()
    {
        isShowing = true;
        if (currentIndex == -1)//初始化本步
        {
            CommonDebugHelper.DebugError("第15步开始,引导释放技能");
            TDAA_SDKManager.Ins.GuideStep(14);//埋点
            currentIndex = 0;
            needIndex = 2;
            panel.Step14();
            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
        }
        else
        {
@@ -535,13 +613,14 @@
    private void Finish()
    {
        UnityEngine.Debug.Log("新手指导已经完成了");
        GA_SDK_Manager.Ins.GuideStep(13);//埋点
        TDAA_SDKManager.Ins.GuideStep(13);//埋点
        GameConfig.CanOpenNewTower = true;
        GameConfig.CanBuyNewTower = true;
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GuideFinish);
        PlayerPrefs.SetInt("GemBattleGuide", 1);
        Destroy(gameObject);
        //gameObject.SetActive(false);
    }
    #endregion