chenxin
2020-12-01 e36f2a3ac098d6e89d3882f3354ec69c07e71e16
Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -3,7 +3,6 @@
using TowerDefense.Agents;
using TowerDefense.UI.HUD;
using UnityEngine;
using TowerDefense.Level;
using System.Collections.Generic;
using KTGMGemClient;
@@ -44,12 +43,12 @@
        /// </summary>
        /// <param name="enemy"></param>
        /// <param name="attributeId">子弹的属性id</param>
        public void DealDamage(Targetable enemy, int attributeId = -1)
        public void DealDamage(Targetable enemy, int attributeId = -1, bool isEnhancedBullet = false)
        {
            switch ((enemy as Agent).AgentType)
            {
                case SpawnAgentType.Normal:
                    HandleNormal(enemy);
                    HandleNormal(enemy, isEnhancedBullet);
                    break;
                case SpawnAgentType.BubbleBomb:
                    HandleBubbleBomb(enemy);
@@ -120,7 +119,7 @@
        /// 处理普通小怪和boss收到的伤害
        /// </summary>
        /// <param name="enemy"></param>
        private void HandleNormal(Targetable enemy)
        private void HandleNormal(Targetable enemy, bool isEnhancedBullet)
        {
            float finalDamage = damager.finalDamage;
            bool crit = IsCrit();
@@ -163,8 +162,14 @@
            }
            // 播放受击动画:
            if ((!enemy.isDead) && (enemy.liveID == tid))
            if (!enemy.isDead && enemy.liveID == tid)
            {
                (enemy as Agent).PlayOnHit();
                // 如果是玉米强化子弹的攻击,要处理击退的效果
                if (TowerPtr != null && isEnhancedBullet)
                    (enemy as Agent).AgentBeRepelled();
            }
        }
        /// <summary>
@@ -204,15 +209,11 @@
            {
                case 2:  // 减速.
                    SlowDown slowDown = (SlowDown)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.SlowDown);
                    enemy.addSpeedSlowRate(0.15f + (slowDown != null ? slowDown.GetSlowDownAdd(TowerPtr.attributeId) : 0));
                    enemy.SetTargetableMatColor(Color.blue);
                    (enemy as Agent).addSpeedSlowRate(0.15f + (slowDown != null ? slowDown.GetSlowDownAdd(TowerPtr.attributeId) : 0));
                    break;
                case 3:  // 中毒
                    // enemy.poisonAgent(damage, attid);
                    // enemy.SetTargetableMatColor(Color.green);
                    break;
                case 5:  // 破甲
                    enemy.bShieldBreak = true;
                    break;
            }
            return;