chenxin
2020-12-09 ab9a718b28a142a0a903d5cc3e091d4d2577856e
Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBubbleBomb.cs
@@ -2,6 +2,7 @@
using UnityEngine;
using TowerDefense.Agents;
using TowerDefense.Level;
using TMPro;
/**
 * 泡泡炸弹
@@ -169,6 +170,10 @@
                config.DestroyTime = bubbleBomb.GetExplodeTime();
                config.MoveSpeed = SkillData.effect[1];
                bubbleBombList.Add(config);
                bubbleBomb.Blood.SetPos();
                bubbleBomb.Blood.SetRemainHitCount(config.NeedAttackCount);
                bubbleBomb.Blood.ShowBlood();
            }
        }
@@ -228,6 +233,15 @@
            {
                GameObject prefab = Resources.Load<GameObject>(prefabPath);
                ret = GameObject.Instantiate(prefab);
                BubbleBombAgent agent = ret.GetComponent<BubbleBombAgent>();
                prefab = Resources.Load<GameObject>($"Prefabs/BubbleBombBlood");
                GameObject bubbleBombBlood = GameObject.Instantiate(prefab);
                GameObject bloodUI = GameObject.Find("MainUI/BloodUI");
                bubbleBombBlood.transform.SetParent(bloodUI.transform, false);
                agent.Blood = bubbleBombBlood.GetComponent<BubbleBombBlood>();
                agent.Blood.Target = agent;
            }
            ret.SetActive(true);
@@ -243,6 +257,8 @@
        {
            if (obj != null)
            {
                BubbleBombAgent agent = obj.GetComponent<BubbleBombAgent>();
                agent.Blood.HideBlood();
                obj.SetActive(false);
                bubbleBombPool.Add(obj);
            }
@@ -257,6 +273,8 @@
            {
                GameObject obj = bubbleBombPool[0];
                bubbleBombPool.Remove(obj);
                BubbleBombAgent agent = obj.GetComponent<BubbleBombAgent>();
                GameObject.Destroy(agent.Blood.gameObject);
                GameObject.Destroy(obj);
            }
        }
@@ -290,6 +308,7 @@
                    if (config.IsAttackDeath || config.IsArrived) return;
                    ++config.AttackCount;
                    config.Agent.Blood.SetRemainHitCount(config.NeedAttackCount - config.AttackCount);
                    if (config.AttackCount >= config.NeedAttackCount)
                        AgentDead(config);
@@ -313,6 +332,7 @@
                    if (config.IsAttackDeath || config.IsArrived) return;
                    config.Agent.Blood.HideBlood();
                    AgentDead(config);
                    break;
                }
@@ -349,6 +369,7 @@
        /// <param name="config"></param>
        private void AgentDead(BubbleBombConfig config)
        {
            config.Agent.Blood.HideBlood();
            config.IsAttackDeath = true;
            AgentInsManager.instance.removeAgent(config.Agent);
            config.Agent.StopNormalEffect();
@@ -361,6 +382,7 @@
        /// <param name="config"></param>
        private void AgentArrived(BubbleBombConfig config)
        {
            config.Agent.Blood.HideBlood();
            config.IsArrived = true;
            AgentInsManager.instance.removeAgent(config.Agent);
            config.Agent.StopNormalEffect();