From aadfae81e6a511cd2c062ab0b05f3ee3419f1a7f Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Wed, 23 Dec 2020 20:15:14 +0800
Subject: [PATCH] 选中BUFF塔播放相应的特效

---
 Assets/Scripts/Guide/GuidePanel.cs |  270 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 158 insertions(+), 112 deletions(-)

diff --git a/Assets/Scripts/Guide/GuidePanel.cs b/Assets/Scripts/Guide/GuidePanel.cs
index c476983..684560e 100644
--- a/Assets/Scripts/Guide/GuidePanel.cs
+++ b/Assets/Scripts/Guide/GuidePanel.cs
@@ -25,20 +25,23 @@
     private RectTransform image_Tip_Rect;//可以移动的提示框
     private Text text_Tip;//可以移动的提示框文字
 
-    private Image image_SkillRim;//技能释放区域
     Vector2 rimOffset = new Vector2(30, 30);//边框要比按钮大一些
 
     Image tmpMask;//自身的遮罩
     GameObject offectBackground;//适配需要的黑色背景
     ImageFire1 fire1;
+    ParticleSystem fire1PS1, fire1PS2;//出现的特效
+
     ImageFire2 fire2;//两个用来合成的火元素
+    ParticleSystem fire2PS1, fire2PS2;
 
-    ImageWater water1;
+    ImageWater wood1;
 
-    ImageSkill skill;
+    ParticleSystem woodPS1, woodPS2;
+
 
     ImageTowerPos towerPos;//塔位标识
-    ImageTowerPos2 towerPos2;//塔位标识
+    ImageTowerPos towerPos2;//塔位标识
 
     GameObject towerBuyBtn;//购买宝石按钮
     Vector2 towerBuyBtnPos;
@@ -47,8 +50,9 @@
     RectTransform dragHandImg;//拖动标识手指
 
     Button skillBtn;//
-    Vector2 skillBtnPos = new Vector2(459, 280);
+    Vector2 skillBtnPos = new Vector2(459, 44.6f);
 
+    private Image warningImg;//大波敌人来袭提示
     /// <summary>
     /// 关闭所有UI
     /// </summary>
@@ -56,9 +60,10 @@
     {
         CloseMask();
         SetRimActive(false);
-        image_SkillRim.gameObject.SetActive(false);
 
     }
+
+    private GuideBox boxPanel;//宝箱面板
 
     // Start is called before the first frame update
     void Awake()
@@ -70,7 +75,7 @@
 
         backgroundImg = transform.Find("Button").GetComponent<Image>();
 
-        skillBtn = GameObject.Find("UICamera/BottomCanvas/Panel/Energy/FireSkillBtn").GetComponent<Button>();
+        skillBtn = GameObject.Find("UICamera/BottomCanvas/Panel/Energy/FireSkillBg/SkillBtn").GetComponent<Button>();
         skillBtn.interactable = false;
         towerBuyBtn = GameObject.Find("UICamera/BottomCanvas/Panel/TowerBuyBtn");
         RectTransform tmpTs = towerBuyBtn.GetComponent<RectTransform>();
@@ -108,16 +113,20 @@
 
         image_Tip_Rect = transform.Find("Image_Tip").GetComponent<RectTransform>();
         text_Tip = image_Tip_Rect.transform.Find("Text").GetComponent<Text>();
-        image_SkillRim = transform.Find("Image_SkillRim").GetComponent<Image>();
-        image_SkillRim.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
+
 
         SetRimActive(false);
-        image_SkillRim.gameObject.SetActive(false);
+
 
         fire1 = transform.Find("Image_Fire1").GetComponent<ImageFire1>();
         fire1.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
+        fire1PS1 = fire1.transform.Find("Huo/Particle System").GetComponent<ParticleSystem>();
+        fire1PS2 = fire1.transform.Find("Huo_02/Particle System").GetComponent<ParticleSystem>();
+
         fire2 = transform.Find("Image_Fire2").GetComponent<ImageFire2>();
         fire2.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
+        fire2PS1 = fire2.transform.Find("Huo/Particle System").GetComponent<ParticleSystem>();
+        fire2PS2 = fire2.transform.Find("Huo_02/Particle System").GetComponent<ParticleSystem>();
 
         fire1.gameObject.SetActive(false);
         fire2.gameObject.SetActive(false);
@@ -127,22 +136,25 @@
 
         towerPos.enabled = false;
 
-        towerPos2 = transform.Find("Image_TowerPos2").GetComponent<ImageTowerPos2>();
+        towerPos2 = transform.Find("Image_TowerPos2").GetComponent<ImageTowerPos>();
         towerPos2.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
 
         towerPos2.enabled = false;
 
-        water1 = transform.Find("Image_Water").GetComponent<ImageWater>();
-        water1.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
-        water1.gameObject.SetActive(false);
+        wood1 = transform.Find("Image_Wood").GetComponent<ImageWater>();
+        wood1.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
+        woodPS1 = wood1.transform.Find("Mu/Particle System").GetComponent<ParticleSystem>();
+        woodPS2 = wood1.transform.Find("Mu_02/Particle System").GetComponent<ParticleSystem>();
 
-        skill = transform.Find("Image_Skill").GetComponent<ImageSkill>();
-        skill.GetComponent<RectTransform>().anchoredPosition *= tmpScale;
-
-        skill.gameObject.SetActive(false);
+        wood1.gameObject.SetActive(false);
 
         dragHandImg = transform.Find("ImageHand").GetComponent<RectTransform>();
         dragHandImg.gameObject.SetActive(false);
+
+        warningImg = transform.Find("Image_Warning").GetComponent<Image>();
+        warningImg.gameObject.SetActive(false);
+
+        boxPanel = transform.Find("BoxPanel").GetComponent<GuideBox>();
     }
 
 
@@ -157,40 +169,15 @@
         tmpOffect = GetComponent<RectTransform>().offsetMin;
         tmpOffect = new Vector2(tmpOffect.x, tmpOffect.y * 0.5f);
 
-        image_SkillRim.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
         fire1.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
         fire2.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
         towerPos.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
         towerPos2.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
-        water1.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
-        skill.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
+        wood1.GetComponent<RectTransform>().anchoredPosition -= tmpOffect;
 
     }
-    /// <summary>
-    /// 设置引导框
-    /// </summary>
-    /// <param name="active"></param>
-    public void SetGuideUI(bool active)
-    {
-        if (backgroundImg.enabled != active)
-            backgroundImg.enabled = active;
-        if (tipsUI.activeSelf != active)
-            tipsUI.SetActive(active);
-    }
 
-    //开始打印文字
-    public void StartShowWord(string str, Action cb)
-    {
-        charForeach.StartShowWord(str, cb);
-    }
 
-    /// <summary>
-    /// 立刻完成打印
-    /// </summary>
-    public void ShowWordImmediately()
-    {
-        charForeach.ShowWordImmediately();
-    }
 
     /// <summary>
     /// 第二步,购买宝石
@@ -226,18 +213,22 @@
             fire1.gameObject.SetActive(true);
             fire1.transform.Find("Image_2").gameObject.SetActive(false);
             fire1.enabled = false;
+            fire1PS1.Play();
+            fire1PS2.Play();
 
-            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire1.transform.position);
+            //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire1.transform.position);
         }
     }
     public void Step1_2()
     {
         fire2.gameObject.SetActive(true);
+        fire2PS1.Play();
+        fire2PS2.Play();
         fire2.enabled = false;
         DestoryButtonListener(towerBuyBtn);
         SetRimActive(false);
         CloseMask();
-        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire2.transform.position);
+        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.PlayAppearEffect, fire2.transform.position);
 
         //RemoveButtonListener(towerBuyBtn);
     }
@@ -269,7 +260,7 @@
             fire1.enabled = true;
             fire2.enabled = true;
             image_Tip_Rect.gameObject.SetActive(false);
-            ShowDragPath(fire2.GetStartP, fire1.GetRect);
+            //ShowDragPath(fire2.GetStartP, fire1.GetRect);
             StartCoroutine(ShowRimTip(str));
         }
     }
@@ -346,7 +337,7 @@
 
 
     /// <summary>
-    /// 第九步,
+    /// 第九步,购买水元素,第二步上阵
     /// </summary>
     /// <param name="str"></param>
     /// <param name="currentIndex">当前第几步</param>
@@ -369,68 +360,23 @@
             btnImg.raycastTarget = true;
             InitRectGuidance(btnImg, 75, 80, tmpOffect);
             SetRimPos(go);
-            ShowDragPath(water1.GetStartP, btnImg.rectTransform);
+            ShowDragPath(wood1.GetStartP, btnImg.rectTransform);
         }
     }
 
     public void Step9_1()
     {
-        water1.gameObject.SetActive(true);
+        wood1.gameObject.SetActive(true);
+        woodPS1.Play();
+        woodPS2.Play();
         towerPos2.enabled = true;
         DestoryButtonListener(towerBuyBtn);
-    }
-
-
-    //生成一个技能宝石
-    public void Step10()
-    {
-        //SetGuideUI(false);
-
-        image_SkillRim.gameObject.SetActive(true);
-
-        skill.gameObject.SetActive(true);
-    }
-
-    /// <summary>
-    /// 第12步,引导释放技能
-    /// </summary>
-    public void Step11(int currentIndex, string str)
-    {
-        if (currentIndex == 0)
-        {
-            tmpMask.enabled = true;
-            tmpMask.color = new Color(1.0f, 1.0f, 1.0f, 0);
-            SetGuideUI(false);
-            SetRimActive(true);
-            SetRimPos(skill.gameObject);
-            image_Tip_Rect.gameObject.SetActive(false);
-            //StartCoroutine(ShowRimTip(str));
-
-            ShowDragPath(skill.GetStartP, image_SkillRim.rectTransform);
-
-            InitRectGuidance(image_SkillRim, 79, 265, tmpOffect);
-
-        }
-        else if (currentIndex == 1)
-        {
-            SetRimActive(false);
-            //SetRimPos(image_SkillRim.gameObject);
-            //StartCoroutine(ShowRimTip(str));
-        }
-    }
-
-    public void SkillRelease()
-    {
-        StopShowDragPath(true);
-        CloseMask();
-        image_SkillRim.gameObject.SetActive(false);
-        tmpMask.enabled = false;
-        SetRimActive(false);
+        towerBuyBtn.gameObject.SetActive(false);
     }
 
 
     /// <summary>
-    /// 第12步,引导释放技能
+    /// 第12步,交换水火塔 
     /// </summary>
     public void Step11Drag(int currentIndex)
     {
@@ -447,8 +393,9 @@
             btnImg.raycastTarget = false;
 
             InitRectGuidance(btnImg, 75, 80, tmpOffect);
-            SetRimPos(towerPos2.gameObject);
-            StartCoroutine(ShowRimTip("拖动"));
+            //SetRimPos(towerPos2.gameObject);
+            SetRimPos(towerPos2.gameObject, new Vector2(0, 30));
+            StartCoroutine(ShowRimTip("交换"));
             ShowDragPath(towerPos2.GetComponent<RectTransform>().anchoredPosition, towerPos.GetComponent<RectTransform>());
 
         }
@@ -458,8 +405,10 @@
             btnImg.raycastTarget = false;
 
             InitRectGuidance(btnImg, 75, 80, tmpOffect);
-            SetRimPos(towerPos.gameObject);
-            StartCoroutine(ShowRimTip("拖动"));
+            //SetRimPos(towerPos.gameObject);
+            SetRimPos(towerPos.gameObject, new Vector2(0, 10));
+
+            StartCoroutine(ShowRimTip("交换"));
 
         }
         else if (currentIndex == 2)
@@ -470,6 +419,32 @@
         }
     }
 
+    /// <summary>
+    /// 一大波敌人
+    /// </summary>
+    public void Step11_End()
+    {
+        warningImg.color = new Color(1.0f, 1.0f, 1.0f, 0);
+        warningImg.gameObject.SetActive(true);
+        colorCount = 0;
+        SetWarningColor();
+    }
+
+    int colorCount = 0;
+    private void SetWarningColor()
+    {
+        if (colorCount < 4)
+        {
+            colorCount++;
+            warningImg.DOFade(colorCount % 2, 1.0f).OnComplete(SetWarningColor);
+            CommonDebugHelper.Debug($"执行了{colorCount}次");
+        }
+        else
+        {
+            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
+            warningImg.gameObject.SetActive(false);
+        }
+    }
 
     public void Step12()
     {
@@ -490,7 +465,9 @@
         AddButtonListener(skillBtn.gameObject, ac);
         Image btnImg = skillBtn.GetComponent<Image>();
         InitRectGuidance(btnImg, 79, 79f, Vector2.one);
-        SetRimPos(skillBtn.gameObject);
+        //SetRimPos(skillBtn.gameObject);
+        SetRimPos(skillBtn.gameObject, new Vector2(-15, -241));
+
         text_Tip.text = str;//动态改变长度
         StartCoroutine(ShowRimTip(str));
     }
@@ -499,8 +476,41 @@
     {
         SetGuideUI(true);
         backgroundImg.raycastTarget = true;
+        RemoveButtonListener(skillBtn.gameObject);
     }
 
+    public void FinishGuide()
+    {
+        towerBuyBtn.gameObject.SetActive(true);
+    }
+
+    #region 设置对话框
+    /// <summary>
+    /// 设置引导框
+    /// </summary>
+    /// <param name="active"></param>
+    public void SetGuideUI(bool active)
+    {
+        if (backgroundImg.enabled != active)
+            backgroundImg.enabled = active;
+        if (tipsUI.activeSelf != active)
+            tipsUI.SetActive(active);
+    }
+
+    //开始打印文字
+    public void StartShowWord(string str, Action cb)
+    {
+        charForeach.StartShowWord(str, cb);
+    }
+
+    /// <summary>
+    /// 立刻完成打印
+    /// </summary>
+    public void ShowWordImmediately()
+    {
+        charForeach.ShowWordImmediately();
+    }
+    #endregion
 
     #region 按钮以及提示
 
@@ -525,7 +535,7 @@
         {
             image_Rim_Rect.anchoredPosition = towerBuyBtnPos - tmpOffect;
         }
-        else if (target.gameObject.name == "FireSkillBtn")
+        else if (target.gameObject.name == "SkillBtn")
         {
             image_Rim_Rect.anchoredPosition = skillBtnPos - tmpOffect;
         }
@@ -548,9 +558,43 @@
         if (changeTipPos)
         {
             image_Tip_Rect.anchoredPosition = new Vector2(image_Rim_Rect.anchoredPosition.x, image_Rim_Rect.anchoredPosition.y + 74 / 2 + image_Rim_Rect.sizeDelta.y / 2);
-            //image_Tip_Rect.anchoredPosition -= tmpOffect;
         }
 
+    }
+
+    /// <summary>
+    /// 设置边框的大小和位置
+    /// </summary>
+    /// <param name="target"></param>
+    private void SetRimPos(GameObject target, Vector2 offect)
+    {
+        SetRimActive(true);
+        RectTransform rt = target.GetComponent<RectTransform>();
+        if (target.gameObject.name == "TowerBuyBtn")
+        {
+            image_Rim_Rect.anchoredPosition = towerBuyBtnPos - tmpOffect;
+        }
+        else if (target.gameObject.name == "SkillBtn")
+        {
+            image_Rim_Rect.anchoredPosition = skillBtnPos - tmpOffect;
+        }
+        else
+        {
+            image_Rim_Rect.anchoredPosition = rt.anchoredPosition;
+        }
+        image_Rim_Rect.sizeDelta = (rt.sizeDelta * rt.localScale) + rimOffset;
+        if (image_Rim_Rect.sizeDelta.x > 200)
+        {
+            particle_1.SetActive(false);
+            particle_2.SetActive(true);
+        }
+        else
+        {
+            particle_1.SetActive(true);
+            particle_2.SetActive(false);
+        }
+        image_Tip_Rect.anchoredPosition = new Vector2(image_Rim_Rect.anchoredPosition.x, image_Rim_Rect.anchoredPosition.y + 74 / 2 + image_Rim_Rect.sizeDelta.y / 2);
+        image_Tip_Rect.anchoredPosition += offect;
     }
 
     IEnumerator ShowRimTip(string str)
@@ -572,9 +616,6 @@
     #endregion
 
     #region 遮罩,以及按钮添加删除事件
-
-
-
     /// <summary>
     /// 抠出来一个区域
     /// </summary>
@@ -585,13 +626,12 @@
         {
             maskObj.gameObject.SetActive(true);
         }
-        //maskObj.Init(target);
-        //maskObj.ShowImmediately();
+
         if (target.gameObject.name == "TowerBuyBtn")
         {
             maskObj.InitForCamera(target, towerBuyBtnPos, x, y);
         }
-        else if (target.gameObject.name == "FireSkillBtn")
+        else if (target.gameObject.name == "SkillBtn")
         {
             maskObj.InitForCamera(target, skillBtnPos, x, y);
         }
@@ -663,4 +703,10 @@
 
     #endregion
 
+
+    public void OpenDialogBox(){
+        
+    }
+
+
 }

--
Gitblit v1.9.1