Esempio n. 1
0
        /// <summary>
        /// looks for closet enmy in array
        /// then spans a projtile
        /// </summary>
        /// <returns></returns>
        EnemyController1 GetClosetEnemy()
        {
            EnemyController1 result = null;
            //find ccloseset
            float minDis = 0;

            foreach (EnemyController1 e in enemies)
            {
                if (e == null)
                {
                    continue;
                }
                float dis = (e.transform.position - transform.position).magnitude;
                if (dis < minDis || result == null)
                {
                    result       = e;
                    minDis       = dis;
                    enemyPostion = (result.transform.position);
                    timer       -= Time.deltaTime;
                    if (timer <= 0)
                    {
                        Instantiate(prefabDarkPostion, spawnPos, Quaternion.identity);
                        print("help");
                        timer = coolDown;
                    }
                }
            }
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// if enenmy has enemycontroller1 when it exits trigger it get removeds from array
        /// </summary>
        /// <param name="collider"></param>
        void OnTriggerExit(Collider collider)
        {
            EnemyController1 e = collider.GetComponent <EnemyController1>();

            if (e != null)
            {
                enemies.Remove(e);
            }
            print("u leave");
        }
Esempio n. 3
0
        /// <summary>
        /// if enenmy has enemycontroller1 it gets added to the array
        /// </summary>
        /// <param name="collider"></param>
        void OnTriggerEnter(Collider collider)
        {
            EnemyController1 e = collider.GetComponent <EnemyController1>();

            if (e != null)
            {
                enemies.Add(e);
            }
            print("u enter");
        }
Esempio n. 4
0
        // Start is called before the first frame update
        /// <summary>
        /// overides the current state
        /// </summary>
        /// <param name="enemy"></param> allows to call function from orginal scripts
        /// <returns></returns>
        public override EnemyState Update(EnemyController1 enemy)
        {
            enemy.Attack();
            enemy.EnemyHealth();
            if (enemy.isAttackState == false)
            {
                return(new EnemyStateChase());
            }

            return(null);
        }
Esempio n. 5
0
 public abstract EnemyState Update(EnemyController1 enemy);
Esempio n. 6
0
 public virtual void OnEnd(EnemyController1 enemy)
 {
 }
Esempio n. 7
0
 public virtual void OnStart(EnemyController1 enemy)
 {
 }