wangguan
2020-12-15 a5666fce59f464fb9e0813adb4fc85260dd24bc3
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,7 +308,7 @@
                    if (config.IsAttackDeath || config.IsArrived) return;
                    ++config.AttackCount;
                    Debug.Log($"---- BubbleBombAgent Id: {id}, AttackCount: {config.AttackCount} ----");
                    config.Agent.Blood.SetRemainHitCount(config.NeedAttackCount - config.AttackCount);
                    if (config.AttackCount >= config.NeedAttackCount)
                        AgentDead(config);
@@ -314,6 +332,7 @@
                    if (config.IsAttackDeath || config.IsArrived) return;
                    config.Agent.Blood.HideBlood();
                    AgentDead(config);
                    break;
                }
@@ -350,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();
@@ -362,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();
@@ -376,6 +397,8 @@
            {
                BubbleBombConfig config = bubbleBombList[i];
                if (config.Agent == null || config.obj == null) continue;
                // 泡泡炸弹已经触发了攻击,延时一会过后掉爱心
                if (config.IsAttack)
                {
@@ -383,7 +406,7 @@
                    if (config.AttackTime <= 0)
                    {
                        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessLoseHeart, 3);
                        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessLoseHeart, 2);
                        config.IsAttack = false;
                    }
                }
@@ -420,7 +443,7 @@
                }
                // 更新移动
                if (config.Agent.CanMove)
                if (config.Agent != null && config.Agent.CanMove)
                {
                    Vector3 pos = config.obj.transform.position;
                    pos.z -= deltaTime * config.MoveSpeed;
@@ -432,11 +455,6 @@
                        config.IsAttack = true;
                        config.AttackTime = 0.65f;
                    }
                }
                else
                {
                    // cx test
                    Debug.LogError("---- 泡泡炸弹不能移动??? ----");
                }
            }
        }