コード例 #1
0
        void LookForTargets()
        {
            float targetMaxRadius = 20f;

            Collider2D[] collider2DArray = Physics2D.OverlapCircleAll(transform.position, targetMaxRadius);

            foreach (Collider2D col in collider2DArray)
            {
                Enemy.Enemy enemy = col.GetComponent <Enemy.Enemy>();
                if (enemy != null)
                {
                    //It's a enemy!
                    if (_targetEnemy == null)
                    {
                        _targetEnemy = enemy;
                    }
                    else
                    {
                        if (Vector3.Distance(transform.position, enemy.transform.position) <
                            Vector3.Distance(transform.position, _targetEnemy.transform.position))
                        {
                            // New enemy is closer!
                            _targetEnemy = enemy;
                        }
                    }
                }
            }
        }
コード例 #2
0
 private void NotifyEnemySightLost(Enemy.Enemy enemy)
 {
     if (OnEnemySightLost != null)
     {
         OnEnemySightLost(enemy);
     }
 }
コード例 #3
0
        private void HitTarget()
        {
            Debug.Log("HIT - HIT - HIT - HIT - HIT - HIT");
            GameObject impactVFX = Instantiate(_projectileVFX, transform.position, transform.rotation);

            Destroy(impactVFX, 1f);

            if (_explosionRadius > 0)
            {
                Explode();
            }
            else
            {
                Enemy.Enemy enemy = _target.GetComponent <Enemy.Enemy>();

                if (enemy != null)
                {
                    enemy.TakeDamage(100);
                }
                else
                {
                    Debug.Log("Enemy is null !");
                }
            }

            Destroy(gameObject);
        }
コード例 #4
0
 private void NotifyEnemySeen(Enemy.Enemy enemy)
 {
     if (OnEnemySeen != null)
     {
         OnEnemySeen(enemy);
     }
 }
コード例 #5
0
        public static ArrowProjectile Create(Vector3 position, Enemy.Enemy enemy)
        {
            Transform pfArrowProjectile = Resources.Load <Transform>("pfArrowProjectile");
            Transform arrowTransform    = Instantiate(pfArrowProjectile, position, Quaternion.identity);

            ArrowProjectile arrowProjectile = arrowTransform.GetComponent <ArrowProjectile>();

            arrowProjectile.SetTarget(enemy);
            return(arrowProjectile);
        }
コード例 #6
0
ファイル: Bullet.cs プロジェクト: andxet/evil-cubes
        /////////////////////////////////////////////
        void OnTriggerEnter(Collider col)
        {
            Enemy.Enemy enemy = col.GetComponent <Enemy.Enemy>();
            if (enemy != null)
            {
                enemy.Hit(mDamage);
            }

            Destroy();
        }
コード例 #7
0
        void OnTriggerEnter2D(Collider2D other)
        {
            Enemy.Enemy enemy = other.GetComponent <Enemy.Enemy>();
            if (enemy != null)
            {
                // Hit an enemy!
                int damageAmount = 10;
                enemy.GetComponent <HealthSystem>().Damage(damageAmount);

                Destroy(gameObject);
            }
        }
コード例 #8
0
        private void Explode()
        {
            Collider[] hits = Physics.OverlapSphere(transform.position, _explosionRadius);

            foreach (Collider go in hits)
            {
                Enemy.Enemy enemy = go.GetComponent <Enemy.Enemy>();
                if (enemy != null)
                {
                    enemy.TakeDamage(100);
                }
            }
        }
コード例 #9
0
ファイル: Tower.cs プロジェクト: aleurent/TowerDefense
        /// <summary>
        /// Method that allows to find the closest enemies of the tower from the list
        /// </summary>
        /// <param name="enemies">List of enemies present in the game</param>
        private void GetFirstEnemyInRange(List <Enemy.Enemy> enemies)
        {
            _target = null;

            foreach (Enemy.Enemy enemy in enemies)
            {
                if (Vector2.Distance(_center, enemy.Center) < _range)
                {
                    _target = enemy;
                    break;
                }
            }
        }
コード例 #10
0
        public override void CheckCollidersInArray(Collider2D[] colliders, int amount)
        {
            detectedColliders.Clear();

            if (colliders.Length == 0)
            {
                return;
            }

            for (int i = 0; i < amount; i++)
            {
                IKillable foundCollider = colliders[i].GetComponent <IKillable>();
                if (foundCollider != null)
                {
                    Enemy.Enemy enemy = colliders[i].GetComponent <Enemy.Enemy>();
                    if (enemy != null && !enemy.IsDead())
                    {
                        detectedColliders.Add(foundCollider);
                    }
                }
            }
        }
コード例 #11
0
 public override void Tick(Enemy.Enemy enemy)
 {
     GameManager.LogMessage("fire tick");
     enemy.TakeDamage(1);
 }
コード例 #12
0
 public void SetUpTarget(Enemy.Enemy targetEnemy)
 {
     this.targetEnemy = targetEnemy;
 }
コード例 #13
0
 public EnemySpawnedEventArgs(Enemy.Enemy enemy)
 {
     SpawnedEnemy = enemy;
 }
コード例 #14
0
 private void InitializeComponent()
 {
     enemy = transform.root.GetComponentInChildren <Enemy.Enemy>();
 }
コード例 #15
0
 public override void Tick(Enemy.Enemy enemy)
 {
 }
コード例 #16
0
 void SetTarget(Enemy.Enemy targetEnemy)
 {
     _targetEnemy = targetEnemy;
 }
コード例 #17
0
 public override void OnHit(Enemy.Enemy enemy, GameObject gameObject)
 {
     enemy.TakeDamage(damage);
     Destroy(gameObject);
 }
コード例 #18
0
        public void LooseSightOf(Enemy.Enemy enemy)
        {
            enemiesInSight.Remove(enemy);

            NotifyEnemySightLost(enemy);
        }
コード例 #19
0
        public void See(Enemy.Enemy enemy)
        {
            enemiesInSight.Add(enemy);

            NotifyEnemySeen(enemy);
        }