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