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