public void OnTriggerEnter2D(Collider2D other) { IArrowHolder arrowHolder = other.GetComponent <IArrowHolder>(); EnemyMovementBehaviour EMB = other.gameObject.GetComponent <EnemyMovementBehaviour>(); if (arrowHolder != null) { OnPickedUpBy(arrowHolder, this); PickUpBy(arrowHolder); } if (CurrentState == State.InFlight) // Resting arrows shouldn't hit people { ITarget target = other.GetComponent <ITarget>(); if (target != null) { OnHit(other, target, this); Hit(target, other.ClosestPoint(transform.position)); } if (other.gameObject.tag == "Enemy") // kill enemy { EMB.dead = true; } } }
void FindClosestTarget() { var temp = Targets; for (int i = 0; i < temp.Count; i++) { if (temp[i] == null) { temp.RemoveAt(i); } } Targets = temp; if (Targets == null || Targets.Count == 0) { CurrentTarget = null; OnTargetChanged.Invoke(null); return; } Targets = Targets.OrderBy(x => x.DistanceFromTarget).ToList(); CurrentTarget = Targets[0]; if (!CurrentTarget) { return; } OnTargetChanged.Invoke(CurrentTarget.gameObject); }
public EnemyEntityData(EnemyCollisionBehaviour _ecb, EnemyMovementBehaviour _emb, Transform _g, BoxCollider _boxCollider, EnemyPatrolBehaviour _enemyPatrolBehaviour) { collider = _boxCollider; enemyCollisionBehaviour = _ecb; enemyMovementBehaviour = _emb; graphics = _g; enemyPatrolBehaviour = _enemyPatrolBehaviour; }
void OnTriggerExit(Collider other) { if (Targets.Contains(other.GetComponent <EnemyMovementBehaviour>())) { Targets.Remove(other.GetComponent <EnemyMovementBehaviour>()); CurrentTarget = null; } FindClosestTarget(); }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.layer == 9) { GameSceneManager.instance.AddPoints(200 * (2 - GameSceneManager.instance.speedMultiplier)); EnemyMovementBehaviour temp = collision.gameObject.GetComponent <EnemyMovementBehaviour> (); temp.StopAllCoroutines(); temp.enabled = false; GameSceneManager.instance.myEnemiesComp.aliveEnemies.Remove(temp); if (GameSceneManager.instance.myEnemiesComp.aliveEnemies.Count == 0) { GameSceneManager.instance.myEnemiesComp.aliveEnemiesReadyForPattern = false; } GameSceneManager.instance.Explode(temp.transform.position); Destroy(collision.gameObject); } GameObject.Destroy(this.gameObject); }
void OnEnd(EnemyMovementBehaviour EMB) { completed = true; }
private void Awake() { _movement = GetComponent <EnemyMovementBehaviour>(); }
void OnEnd(EnemyMovementBehaviour EMB) { cv.enabled = true; }
// Use this for initialization void Start() { myMovementComp = GetComponent <EnemyMovementBehaviour> (); myMovementComp.ResetAnimation(positiveLimit, negativeLimit, time, xAnimCurve, yAnimCurve, zAnimCurve); }
void OnEnd(EnemyMovementBehaviour EMB) { spawnEnemy = false; }
private void Awake() { //Grabs a refrence to movement behaviour in order to get the enemy's target _movement = GetComponent <EnemyMovementBehaviour>(); }