From 62b2779db75575bebd80ffac74fc3f25b5b994fa Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Sat, 14 Nov 2020 10:34:52 +0800
Subject: [PATCH] Merge commit '4a083f2f3d8baf1c2630b3717d62904edcc8e24a' into master

---
 Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs |   47 ++++++++++++++++-------------------------------
 1 files changed, 16 insertions(+), 31 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
index ae56721..377ae88 100644
--- a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
+++ b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -106,6 +106,8 @@
         /// </summary>
         protected Targetable m_TrackingEnemy;
 
+        public TowerLevel towerLevel;
+
         /// <summary>
         /// 处理装弹时间.
         /// </summary>
@@ -249,7 +251,6 @@
         /// </summary>
         protected virtual void SetUpTimers()
         {
-            m_FireTimer = 1 / fireRate;
             m_Launcher = GetComponent<ILauncher>();
         }
 
@@ -360,56 +361,40 @@
             updateTowerSkillData();
 
             m_FireTimer -= Time.deltaTime;
+
             if (trackingEnemy == null)
                 m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector);
-            if (trackingEnemy != null && m_FireTimer <= 0.0f)
-            {
-                OnFireTimer();
-                m_FireTimer = 1 / fireRate;
-                // 多倍攻速:
-                if (fInEnergy > 0.0f)
-                    m_FireTimer = m_FireTimer / 5.0f;
-            }
-        }
 
-        /// <summary>
-        /// Fired at every poll of the fire rate timer
-        /// </summary>
-        protected virtual void OnFireTimer()
-        {
-            if (fireCondition != null)
+            if (trackingEnemy != null)
             {
-                if (!fireCondition())
+                // m_FireTimer = 1 / fireRate;
+
+                if (fInEnergy > 0)
                 {
-                    return;
+                    m_FireTimer = m_FireTimer / 5f;
+                    towerLevel.FireSpeed = 5f;
                 }
+                else
+                    towerLevel.FireSpeed = 1f;
+
+                towerLevel.ChangeState(TowerActionState.Attack);
             }
-            FireProjectile();
         }
 
         /// <summary>
         /// Common logic when attacking
         /// 调用攻击的核心函数,由这个函数发起真正的攻击,多目标或者单目标
         /// </summary>
-        protected virtual void FireProjectile()
+        public virtual void FireProjectile()
         {
             // 不再处理多子弹攻击,确保只有一个弹道
             isMultiAttack = false;
             m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector);
-            if ((m_TrackingEnemy == null) || (fillBulletTime > 0))
-            {
-                if (this.towerPtr)
-                    towerPtr.setTowerState(false);
-                return;
-            }
-            else
-            {
-                if (this.towerPtr)
-                    towerPtr.setTowerState(true);
-            }
             
             GameObject go = damagerProjectile.gameObject;
 
+            if (m_TrackingEnemy == null || fillBulletTime > 0) return;
+
             // 处理子弹充能相关的内容
             if (towerPtr && (towerPtr.bulletCtl != null))
             {

--
Gitblit v1.9.1