From 2ef9a95def81f3f47f302c86a5709140a6f39ce6 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Wed, 18 Nov 2020 12:28:51 +0800
Subject: [PATCH] 新增buff验证测试

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

diff --git a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
index 0b96029..6b86165 100644
--- a/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
+++ b/Assets/Scripts/TowerDefense/Towers/Projectiles/BallisticAttack.cs
@@ -33,6 +33,13 @@
         public float attackRise { get; set; }
 
         /// <summary>
+        /// 基础增加暴击伤害率
+        /// </summary>
+        private float baseCritDamageRate = 0.5f;
+
+        public Tower TowerPtr;
+
+        /// <summary>
         /// 处理代理收到的伤害,这里需要判断代理的类型分别去处理
         /// </summary>
         /// <param name="enemy"></param>
@@ -89,7 +96,7 @@
         private bool IsCrit()
         {
             CritProbabilityAdd critProbabilityAdd = (CritProbabilityAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritProbabilityAdd);
-            float crit = critProbabilityAdd.GetCrit(damager.TowerAttributeId);
+            float crit = critProbabilityAdd.GetCrit(TowerPtr.attributeId);
             float random = UnityEngine.Random.Range(0, 1f);
 
             return random <= crit;
@@ -102,7 +109,7 @@
         private float GetCritDamageRate()
         {
             CritDamageAdd critDamageAdd = (CritDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritDamageAdd);
-            return critDamageAdd.GetCritDamageRate(damager.TowerAttributeId);
+            return critDamageAdd.GetCritDamageRate(TowerPtr.attributeId);
         }
 
         /// <summary>
@@ -118,7 +125,7 @@
             finalDamage += ProcessEndlessBuffAttack(finalDamage);
 
             if (crit)
-                finalDamage *= 1 + GetCritDamageRate();
+                finalDamage *= 1 + baseCritDamageRate + GetCritDamageRate();
 
             int deathCount = 0;
 
@@ -193,7 +200,7 @@
             {
                 case 2:  // 减速.
                     SlowDown slowDown = (SlowDown)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.SlowDown);
-                    enemy.addSpeedSlowRate(0.25f + slowDown.GetSlowDownAdd(damager.TowerAttributeId));
+                    enemy.addSpeedSlowRate(0.25f + slowDown.GetSlowDownAdd(TowerPtr.attributeId));
                     enemy.SetTargetableMatColor(Color.blue);
                     break;
                 case 3:  // 中毒

--
Gitblit v1.9.1