| | |
| | | public float attackRise { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 基础增加暴击伤害率 |
| | | /// </summary> |
| | | private float baseCritDamageRate = 0.5f; |
| | | |
| | | public Tower TowerPtr; |
| | | |
| | | /// <summary> |
| | | /// 处理代理收到的伤害,这里需要判断代理的类型分别去处理 |
| | | /// </summary> |
| | | /// <param name="enemy"></param> |
| | |
| | | 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; |
| | |
| | | private float GetCritDamageRate() |
| | | { |
| | | CritDamageAdd critDamageAdd = (CritDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritDamageAdd); |
| | | return critDamageAdd.GetCritDamageRate(damager.TowerAttributeId); |
| | | return critDamageAdd.GetCritDamageRate(TowerPtr.attributeId); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | finalDamage += ProcessEndlessBuffAttack(finalDamage); |
| | | |
| | | if (crit) |
| | | finalDamage *= 1 + GetCritDamageRate(); |
| | | finalDamage *= 1 + baseCritDamageRate + GetCritDamageRate(); |
| | | |
| | | int deathCount = 0; |
| | | |
| | |
| | | { |
| | | 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: // 中毒 |