/// <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); }
/// <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"); }
/// <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"); }
// 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); }
public abstract EnemyState Update(EnemyController1 enemy);
public virtual void OnEnd(EnemyController1 enemy) { }
public virtual void OnStart(EnemyController1 enemy) { }