Пример #1
0
        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.
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public override void ApplySpecialEffect(Scrips.EnemyData.Instances.EnemyInstance target)
 {
     target.ReduceArmor(Amount);
 }