|
|
@@ -153,18 +153,29 @@ public class Demonic : MoveCharacter
|
|
|
moveDir = Vector3.left;
|
|
|
break;
|
|
|
}
|
|
|
- float minDistance =
|
|
|
- Vector3.Distance(transform.position, TowerMap.enemyTowers[0].transform.position);
|
|
|
- int id = 0;
|
|
|
- for (int i = 1; i < TowerMap.enemyTowers.Count; i++)
|
|
|
+ float minDistance = Mathf.Infinity;
|
|
|
+ int id = -1;
|
|
|
+ for (int i = 0; i < TowerMap.enemyTowers.Count; i++)
|
|
|
{
|
|
|
- float distance = Vector3.Distance(transform.position, TowerMap.enemyTowers[i].transform.position);
|
|
|
+ EnemyTower enemyTower = TowerMap.enemyTowers[i].GetComponent<EnemyTower>();
|
|
|
+ if(transform.position.y >
|
|
|
+ enemyTower.transform.position.y + enemyTower.height)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ float distance = Vector3.Distance(transform.position,
|
|
|
+ TowerMap.enemyTowers[i].transform.position);
|
|
|
if (distance < minDistance)
|
|
|
{
|
|
|
minDistance = distance;
|
|
|
id = i;
|
|
|
}
|
|
|
}
|
|
|
+ if(id == -1)
|
|
|
+ {
|
|
|
+ moveDir = Vector3.left;
|
|
|
+ break;
|
|
|
+ }
|
|
|
if (bodyTrans.position.x > TowerMap.enemyTowers[id].transform.position.x)
|
|
|
{
|
|
|
moveDir = Vector3.left;
|
|
|
@@ -173,6 +184,8 @@ public class Demonic : MoveCharacter
|
|
|
{
|
|
|
moveDir = Vector3.right;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
break;
|
|
|
case SearchState.InSearchScope:
|
|
|
if (targetCharacter)
|