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