From b2722bf84115092dcf61a0f612b737c20eb11f27 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Wed, 25 Nov 2020 21:10:20 +0800
Subject: [PATCH] 木精灵蓄力攻击特效

---
 Assets/Scripts/Guide/GuideCtrl.cs |  247 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 203 insertions(+), 44 deletions(-)

diff --git a/Assets/Scripts/Guide/GuideCtrl.cs b/Assets/Scripts/Guide/GuideCtrl.cs
index 8d5cf15..5bf1720 100644
--- a/Assets/Scripts/Guide/GuideCtrl.cs
+++ b/Assets/Scripts/Guide/GuideCtrl.cs
@@ -32,15 +32,22 @@
 
     private void Start()
     {
-        Init();
+        //int step = PlayerPrefs.GetInt("GemBattleGuide");
+
+        Init(0);
         EventCenter.Ins.Add((int)KTGMGemClient.EventType.AddCard, AddCard);
         EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateFireLv2, CreateFireLv2);
         EventCenter.Ins.Add((int)KTGMGemClient.EventType.ChargingEnd, ChargingEnd);
         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.ShowWarningTips, ShowWarningTips);//开始第三关,弹一大波敌人
+        EventCenter.Ins.Add((int)KTGMGemClient.EventType.CreateThirdWaveDone, CreateThirdWaveDone);
+
+        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillRelease, SkillRelease);
+        //EventCenter.Ins.Add((int)KTGMGemClient.EventType.SkillReleaseDone, SkillReleaseDone);
 
     }
 
@@ -52,16 +59,20 @@
         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()
+    public void Init(int step)
     {
-        //Time.timeScale = 0;//游戏暂停,这样会导致协程停止了
-
         ChangeStep(GuideEnum.Step0);
+        GameConfig.CanOpenNewTower = false;
+
     }
 
     /// <summary>
@@ -73,16 +84,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] });
 
     }
 
@@ -137,6 +150,12 @@
                 case GuideEnum.Step12:
                     Step12();
                     break;
+                case GuideEnum.Step13:
+                    Step13();
+                    break;
+                case GuideEnum.Step14:
+                    Step14();
+                    break;
                 case GuideEnum.Finish:
                     Finish();
                     break;
@@ -154,6 +173,9 @@
         isShowing = true;
         if (currentIndex == -1)//初始化本步
         {
+            CommonDebugHelper.DebugError("第1步开始, 对话");
+            TDAA_SDKManager.Ins.Statistics(5);//埋点
+
             currentIndex = 0;
             needIndex = 2;
             panel.SetGuideUI(true);
@@ -168,6 +190,10 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第2步开始,购买火元素");
+            TDAA_SDKManager.Ins.Statistics(6);//埋点
+            TDAA_SDKManager.Ins.GuideStep(1);//埋点
+
             currentIndex = 0;
             needIndex = 2;
             panel.SetGuideUI(false);
@@ -211,6 +237,9 @@
         isShowing = true;
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第3步开始,介绍火元素");
+            TDAA_SDKManager.Ins.GuideStep(2);//埋点
+
             currentIndex = 0;
             needIndex = 2;
             panel.Step2(currentIndex);
@@ -230,28 +259,32 @@
     {
         if (currentIndex == -1)
         {
+            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);
     }
 
@@ -259,7 +292,11 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第5步开始,上阵火元素 ");
+            TDAA_SDKManager.Ins.GuideStep(4);//埋点
+
             currentIndex = 0;
+            panel.StopShowDragPath(true);
             panel.Step4(currentIndex, allGuideDic[currentStep][currentIndex]);
         }
     }
@@ -268,6 +305,7 @@
     private void CreateFireLv2()
     {
         currentIndex = -1;
+        panel.StopShowDragPath(true);
         ChangeStep(GuideEnum.Step5);
     }
 
@@ -276,6 +314,9 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第6步开始,开打第一波");
+            TDAA_SDKManager.Ins.GuideStep(5);//埋点
+
             EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateFirstWave);
             panel.Step5(currentIndex, "");
         }
@@ -301,6 +342,9 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第7步开始,出怪");
+            TDAA_SDKManager.Ins.GuideStep(6);//埋点
+
             panel.SetGuideUI(false);
             //恢复出怪
             EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.RestartWave);
@@ -318,11 +362,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);
     }
 
 
@@ -330,12 +378,20 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第8步开始,跳过了");
+            TDAA_SDKManager.Ins.GuideStep(7);//埋点
+
             currentIndex = 0;
             needIndex = 1;
             panel.SetGuideUI(false);
 
+            //GameConfig.CanOpenNewTower = true;
+
             //等待解锁塔
-            panel.Step7(currentIndex, allGuideDic[currentStep][currentIndex]);
+            //panel.Step7(currentIndex, allGuideDic[currentStep][currentIndex]);
+
+            //第一排直接开过塔了,引导买水元素
+            GetOneTowerPos();
         }
     }
 
@@ -353,31 +409,35 @@
         isShowing = true;
         if (currentIndex == -1)//初始化本步
         {
-            currentIndex = 0;
-            needIndex = 2;
-            panel.Step8();
+            CommonDebugHelper.DebugError("第9步开始,介绍水元素");
+            TDAA_SDKManager.Ins.GuideStep(8);//埋点
+            GameConfig.CanOpenNewTower = false;
 
-            panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
-        }
-        else if (currentIndex == 1)
-        {
+            currentIndex = 0;
+            needIndex = 1;
+            panel.Step8();
             panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
         }
 
     }
 
+
+
     private void Step9()
     {
         if (currentIndex == -1)
         {
+            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);
         }
     }
 
@@ -393,10 +453,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);
@@ -407,6 +474,9 @@
         isShowing = true;
         if (currentIndex == -1)//初始化本步
         {
+            CommonDebugHelper.DebugError("第11步开始,自己编的,需要修改,反正就是引导换位置");
+            TDAA_SDKManager.Ins.GuideStep(10);//埋点
+
             currentIndex = 0;
             needIndex = 2;
             panel.SetGuideUI(true);
@@ -416,7 +486,7 @@
         else if (currentIndex == 1)
         {
             panel.StartShowWord(allGuideDic[currentStep][currentIndex], ShowWordCallBack);
-            panel.Step10();
+            //panel.Step10();
         }
     }
 
@@ -424,10 +494,13 @@
     {
         if (currentIndex == -1)
         {
+            CommonDebugHelper.DebugError("第12步开始,已经换了位置");
+            TDAA_SDKManager.Ins.GuideStep(11);//埋点
+
             currentIndex = 0;
             needIndex = 1;
 
-            panel.Step11(currentIndex, allGuideDic[currentStep][currentIndex]);
+            panel.Step11Drag(currentIndex);
 
         }
     }
@@ -435,34 +508,113 @@
     //开始拖拽
     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 SkillReleaseDone()
+    /// <summary>
+    /// 大波敌人来袭
+    /// </summary>
+    private void ShowWarningTips()
+    {
+        CommonDebugHelper.Debug("这里需要显示大波敌人来袭");
+        panel.Step11_End();
+        //结束后需要
+        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
+    }
+
+    private void CreateThirdWaveDone()
     {
         currentIndex = -1;
         ChangeStep(GuideEnum.Step12);
     }
+
+    // private void SkillRelease()
+    // {
+    //     panel.SkillRelease();
+    // }
+
+
+    // private void SkillReleaseDone()
+    // {
+    //     currentIndex = -1;
+    //     ChangeStep(GuideEnum.Step12);
+    // }
 
     private void Step12()
     {
         isShowing = true;
         if (currentIndex == -1)//初始化本步
         {
+            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
         {
@@ -473,7 +625,14 @@
     private void Finish()
     {
         UnityEngine.Debug.Log("新手指导已经完成了");
-        gameObject.SetActive(false);
+        TDAA_SDKManager.Ins.GuideStep(13);//埋点
+
+        GameConfig.CanOpenNewTower = true;
+        GameConfig.CanBuyNewTower = true;
+
+        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GuideFinish);
+        PlayerPrefs.SetInt("GemBattleGuide", 1);
+        Destroy(gameObject);
     }
 
     #endregion

--
Gitblit v1.9.1