wangguan
2020-11-11 fd1ac06475bf155996ac4aed6307eb43f9e04f53
Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -176,8 +176,11 @@
            towerTargetter.ResetTargetter();
            towerTargetter.alignment = affectorAlignment;
            towerTargetter.acquiredTarget += OnAcquiredTarget;
            towerTargetter.lostTarget += OnLostTarget;
         GetAudioEnum();
            // towerTargetter.lostTarget += OnLostTarget;
            GetAudioEnum();
            myTower = transform.parent.GetComponent<TowerLevel>();
        }
        private AudioEnum audioEnum;//当前音乐的种类
@@ -203,17 +206,12 @@
        void OnDestroy()
        {
            towerTargetter.acquiredTarget -= OnAcquiredTarget;
            towerTargetter.lostTarget -= OnLostTarget;
        }
        void OnLostTarget()
        {
            m_TrackingEnemy = null;
            // towerTargetter.lostTarget -= OnLostTarget;
        }
        void OnAcquiredTarget(Targetable acquiredTarget)
        {
            m_TrackingEnemy = acquiredTarget;
            // m_TrackingEnemy = acquiredTarget;
        }
        public Damager damagerProjectile
@@ -251,6 +249,7 @@
            m_Launcher = GetComponent<ILauncher>();
        }
        TowerLevel myTower;
        protected void updateTowerSkillData()
        {
@@ -285,7 +284,7 @@
                    if (proint == 10)
                    {
                        fInEnergy = 5.0f;
                        myTower.SetFireMatSpeed(true);//设置了火宝石快速攻击
                        // 设置多倍攻击速度
                        fBackupTimer = m_FireTimer;
                        m_FireTimer = m_FireTimer / 3.0f;
@@ -299,6 +298,8 @@
                    fInEnergy -= Time.deltaTime;
                    if (fInEnergy <= 0)
                    {
                        myTower.SetFireMatSpeed(false);//恢复了火宝石攻击速度
                        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.FireTowerChargeEnd);
                        fInEnergy = 0.0f;
                        this.energyCalTime = 0.0f;
@@ -320,6 +321,8 @@
        /// </summary>
        protected virtual void Update()
        {
            if (m_Launcher == null) return;
            // 处理当前Affector所在Tower对应的技能
            updateTowerSkillData();
@@ -330,10 +333,9 @@
            {
                OnFireTimer();
                m_FireTimer = 1 / fireRate;
                // 多倍攻速:
                if (fInEnergy > 0.0f)
                    m_FireTimer = m_FireTimer / 3.0f;
                    m_FireTimer = m_FireTimer / 5.0f;
            }
        }
@@ -381,9 +383,14 @@
                // 
                if (bnum == 0)
                {
                    damagerProjectile.damageMulti = 5.0f;
                    damagerProjectile.damageMulti = 10.0f;
                    fillBulletTime = 2.0f;
                }
            }
            else
            {
                if (this.towerPtr)
                    towerPtr.setTowerState(true);
            }
            if (isMultiAttack)
@@ -397,7 +404,8 @@
                if (Targetter.bSearchTarget)
                {
                    m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints);
                    AudioSourceManager.Ins.Play(audioEnum);
                    if (AudioSourceManager.Ins)
                        AudioSourceManager.Ins.Play(audioEnum);
                }
            }
            if (randomAudioSource != null)