public GameObject FindLeastBloodFriend(Soldier checksoldier) { Soldier.Side soldSide = checksoldier.side; float leastBlood = 101; GameObject result = null; foreach (KeyValuePair <Soldier.Side, ArrayList> item in side2Troop) { if (item.Key == soldSide) { foreach (GameObject soldier in item.Value) { if (checksoldier.gameObject.name == soldier.name) { continue; } if (soldier.GetComponent <Soldier>().blood < leastBlood) { result = soldier; leastBlood = soldier.GetComponent <Soldier>().blood; } } } } return(result); }
public GameObject FindTauntWarrior(Soldier soldier) { Soldier.Side soldSide = soldier.side; GameObject result = null; foreach (KeyValuePair <Soldier.Side, ArrayList> item in side2Troop) { if (item.Key == soldSide) { continue; } foreach (GameObject enemy in item.Value) { if (enemy.GetComponent <Soldier>().isDead) { continue; } if (enemy.name == "warrior") { result = enemy; } } } return(result); }
public List <GameObject> FindFriendsInRange(Soldier checksoldier, float range) { Soldier.Side soldSide = checksoldier.side; List <GameObject> result = new List <GameObject>(); foreach (KeyValuePair <Soldier.Side, ArrayList> item in side2Troop) { if (item.Key == soldSide) { foreach (GameObject soldier in item.Value) { if (checksoldier.gameObject.name == soldier.name) { continue; } if (Vector3.Distance(checksoldier.transform.position, soldier.transform.position) < range) { result.Add(soldier); } } } } return(result); }
public GameObject FindMyEnemy(Soldier soldier) { Soldier.Side soldSide = soldier.side; float mixDis = citySize[0] + citySize[1]; GameObject result = null; foreach (KeyValuePair <Soldier.Side, ArrayList> item in side2Troop) { if (item.Key == soldSide) { continue; } foreach (GameObject enemy in item.Value) { if (enemy.GetComponent <Soldier>().isDead) { continue; } float enyDis = Vector3.Distance(soldier.transform.position, enemy.transform.position); if (enyDis < mixDis) { result = enemy; mixDis = enyDis; } } } return(result); }