/// <summary> /// Воздействует на персонажа <paramref name="target"/>. /// </summary> /// <param name="user">Персонаж, использующий способность.</param> /// <param name="target">Персонаж, являющийся целью данной способности.</param> public void AffectUnit(Unit user, Unit target) { CurrentCooldown = cooldown; if (abilityType.HasFlag(AbilityType.Heal)) { target.ApplyHeal(abilityInfo.heal); } if (abilityType.HasFlag(AbilityType.MeleeDamage) || abilityType.HasFlag(AbilityType.RangeDamage)) { if (UnityEngine.Random.value > (user.CurrentInfo.hitCoeff - (1 - applicationChance))) { return; } target.ApplyDamage(Mathf.FloorToInt(abilityInfo.damage * user.CurrentInfo.damageCoeff)); user.RestoreEnergy(Mathf.FloorToInt(abilityInfo.damage / 3f)); } if (abilityType.HasFlag(AbilityType.Effect)) { target.ApplyEffects(effects); } if (abilityInfo.energy > 0) { target.RestoreEnergy(abilityInfo.energy); } }