From 56d95fa59a9f6dc12d0fc0723ea449e5b317f994 Mon Sep 17 00:00:00 2001 From: liuzhiwei <liuzhiwei@qq.com> Date: Sat, 26 Dec 2020 14:05:00 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master --- 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