void Update()
{
if(CurrentHealth <= 0)
{
Destroy(this.gameObject);
}
damage = gamemanager.allydamage;
armor = gamemanager.allyarmor;
FindClosestEnemy();
if (closestEnemy != null && Vector2.Distance(closestEnemy.transform.position, this.gameObject.transform.position) <= fightDistance)
{
Vector2 newPos = closestEnemy.transform.position;
this.gameObject.transform.position = Vector2.MoveTowards(this.transform.position, newPos, Time.deltaTime);
}
else
{
Vector2 newPos = player.transform.position;
this.gameObject.transform.position = Vector2.MoveTowards(this.transform.position, newPos, Time.deltaTime);
}
if(Vector2.Distance (closestEnemy.transform.position ,this.gameObject .transform .position )<= attackRadius && Time.time >= nextAttackTime)
{
this.GetComponent<Animator>().SetTrigger("attacking");
closestEnemy.GetComponent<enemySoldier>().CurrentHealth -= (damage - closestEnemy.GetComponent<enemySoldier>().armor);
nextAttackTime += Time.time;
}
}
public void FindClosestEnemy()
{
float distanceToClosesetEnemy = Mathf.Infinity;
enemySoldier[] allEnemies = FindObjectsOfType<enemySoldier>();
foreach(enemySoldier currentEnemy in allEnemies)
{
float distanceBetweenThisAndEnemy = Vector2.Distance(currentEnemy.transform.position, this.gameObject.transform.position);
if(distanceBetweenThisAndEnemy <distanceToClosesetEnemy)
{
distanceToClosesetEnemy = distanceBetweenThisAndEnemy;
closestEnemy = currentEnemy;
}
}
}