From 88a0a33dc3ebc8c6cef149f99a5618b239573d03 Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Sat, 26 Dec 2020 13:56:56 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle

---
 Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
index a990680..2f91714 100644
--- a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -31,12 +31,12 @@
         /// </summary>
         /// <param name="enemy"></param>
         /// <param name="attributeId">子弹的属性id</param>
-        public void DealDamage(Targetable enemy, bool isEnhancedBullet = false)
+        public void DealDamage(Targetable enemy, Damager damager = null)
         {
             switch ((enemy as Agent).AgentType)
             {
                 case SpawnAgentType.Normal:
-                    HandleNormal(enemy, isEnhancedBullet);
+                    HandleNormal(enemy, damager);
                     break;
                 case SpawnAgentType.BubbleBomb:
                     HandleBubbleBomb(enemy);
@@ -115,8 +115,11 @@
         /// 处理普通小怪和boss收到的伤害
         /// </summary>
         /// <param name="enemy"></param>
-        private void HandleNormal(Targetable enemy, bool isEnhancedBullet)
+        private void HandleNormal(Targetable enemy, Damager damager)
         {
+            // 保证强化子弹只会击退一个不会击退多个
+            if (TowerPtr != null && damager.IsEnhancedBullet && damager.IsRepeled) return;
+
             // 基础伤害 = elf_info 基础攻击力 * elf_upgrade 攻击比率 / 1000f
             float basicDamage = ElfInfoData.GetBasicDamage(TowerPtr.ElfId, TowerPtr.currentLevel);
             elf_info info = ElfInfoData.GetDataById(TowerPtr.ElfId);
@@ -134,7 +137,7 @@
             }
 
             // 玉米强化子弹10倍伤害
-            if (isEnhancedBullet)
+            if (damager.IsEnhancedBullet)
                 basicDamage *= 10f;
 
             bool needFrost = HandleWaterFrost(TowerPtr.ElfId, (enemy as Agent), ref basicDamage);
@@ -189,8 +192,11 @@
                 (enemy as Agent).PlayOnHit();
 
                 // 如果是玉米强化子弹的攻击,要处理击退的效果
-                if (TowerPtr != null && isEnhancedBullet)
+                if (TowerPtr != null && damager.IsEnhancedBullet && !damager.IsRepeled)
+                {
+                    damager.IsRepeled = true;
                     (enemy as Agent).AgentBeRepelled();
+                }
             }
         }
 

--
Gitblit v1.9.1