public override void ApplySpecialEffect(Scrips.EnemyData.Instances.EnemyInstance target) { if (Length < 1f) { target.TakeDamage(_damage * Length); return; } var enemies = GameObject.FindObjectsOfType <Scrips.EnemyData.Instances.EnemyInstance>(); var nextTarget = enemies .Select(e => new KeyValuePair <Scrips.EnemyData.Instances.EnemyInstance, float>(e, (e.transform.position - target.transform.position).magnitude)) .Where(e => e.Value <= Range && e.Key != target) .Where(e => !_ignoredEnemies.Contains(e.Key)) .OrderBy(e => e.Value) .Select(e => e.Key) .FirstOrDefault(); if (nextTarget == null) { return; } //_instance. }
public override void ApplySpecialEffect(Scrips.EnemyData.Instances.EnemyInstance target) { var enemies = GameObject.FindObjectsOfType <Scrips.EnemyData.Instances.EnemyInstance>(); var targets = enemies .Select(e => new KeyValuePair <Scrips.EnemyData.Instances.EnemyInstance, float>(e, (e.transform.position - target.transform.position).magnitude)) .Where(e => e.Value <= SplashRadius && e.Key != target) .Select(e => e.Key).ToList(); foreach (var subTarget in targets) { subTarget.TakeDamage(_baseDamage * SplashStrength / 100); } }
public override void ApplySpecialEffect(Scrips.EnemyData.Instances.EnemyInstance target) { target.ReduceArmor(Amount); }