From 674c6096841087086e2877f5b61ba65da3758e9e Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Sat, 14 Nov 2020 15:35:27 +0800
Subject: [PATCH] 精灵塔动作调整,技能宝石朝向调整

---
 Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
index 377ae88..9ee2b48 100644
--- a/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
+++ b/Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -293,7 +293,7 @@
                         myTower.SetFireMatSpeed(true);//设置了火宝石快速攻击
                         // 设置多倍攻击速度
                         fBackupTimer = m_FireTimer;
-                        m_FireTimer = m_FireTimer / 3.0f;
+                        m_FireTimer = m_FireTimer / 5.0f;
 
                         towerPtr.uiProOffset = 0;
                         towerPtr.PlayEnergyEffect(true);
@@ -353,7 +353,7 @@
         /// <summary>
         /// Update the timers
         /// </summary>
-        protected virtual void Update()
+        protected virtual void LateUpdate()
         {
             if (m_Launcher == null) return;
 
@@ -361,21 +361,22 @@
             updateTowerSkillData();
 
             m_FireTimer -= Time.deltaTime;
+            m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector);
 
-            if (trackingEnemy == null)
-                m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector);
-
-            if (trackingEnemy != null)
+            if (m_TrackingEnemy != null && m_FireTimer < 0)
             {
-                // m_FireTimer = 1 / fireRate;
+                m_FireTimer = 1 / fireRate;
 
                 if (fInEnergy > 0)
+                    m_FireTimer /= 5;
+
+                towerLevel.FireSpeed = fInEnergy > 0 ? 5f : 1f;
+
+                if (towerPtr && (towerPtr.bulletCtl != null))
                 {
-                    m_FireTimer = m_FireTimer / 5f;
-                    towerLevel.FireSpeed = 5f;
+                    int bnum = towerPtr.bulletCtl.GetCtlProgress();
+                    if (bnum == 0) return;
                 }
-                else
-                    towerLevel.FireSpeed = 1f;
 
                 towerLevel.ChangeState(TowerActionState.Attack);
             }
@@ -390,7 +391,7 @@
             // 不再处理多子弹攻击,确保只有一个弹道
             isMultiAttack = false;
             m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector);
-            
+
             GameObject go = damagerProjectile.gameObject;
 
             if (m_TrackingEnemy == null || fillBulletTime > 0) return;
@@ -399,7 +400,7 @@
             if (towerPtr && (towerPtr.bulletCtl != null))
             {
                 int bnum = towerPtr.bulletCtl.decBullet();
-                // 
+
                 if (bnum == 0)
                 {
                     //damagerProjectile.damageMulti = 10.0f;

--
Gitblit v1.9.1