public void SpawnBadGuys(int number) { for (int i = 0; i < number; ++i) { GameObject badGuy = GameObject.Instantiate(m_BadGuysPrefab); badGuy.transform.parent = m_BadGuyParent; badGuy.SetActive(false); EvilPeople badPeopleComp = badGuy.GetComponent <EvilPeople>(); if (badPeopleComp != null) { m_EvilPeopleList.Add(badPeopleComp); } } }
//warn the nearest volunteer there is someone cutting down the trees public Volunteers WarnNearestVolunteer(EvilPeople evilPerson) { float closestDist = Mathf.Infinity; Volunteers nearestVolunteer = null; if (m_PlayerVolunteer != null) { if (m_PlayerVolunteer.CheckCanChase()) { float newDist = Vector2.SqrMagnitude(evilPerson.transform.position - m_PlayerVolunteer.transform.position); nearestVolunteer = m_PlayerVolunteer; } } foreach (Volunteers volunteer in m_NPCObjectPooler.m_VolunteerList) { if (!volunteer.gameObject.activeSelf) { continue; } //make sure volunteer is available to start chasing if (!volunteer.CheckCanChase()) { continue; } float newDist = Vector2.SqrMagnitude(evilPerson.transform.position - volunteer.transform.position); if (newDist < closestDist) { closestDist = newDist; nearestVolunteer = volunteer; } } if (nearestVolunteer != null) { //pass the evil person to the nearest volunteer nearestVolunteer.ChaseEvilPerson(evilPerson); } return(nearestVolunteer); }
public void ChaseEvilPerson(EvilPeople evilperson) { m_EvilPersonChasing = evilperson; ChangeState(States.CHASE); }