Example #1
0
 /// <summary>
 /// Respond this instance.
 /// So that the Zombie look for the Citizen and the Hero being in the range.
 /// </summary>
 public virtual void Respond()
 {
     foreach (GameObject go in GameManager.npc)
     {
         zombie = GameObject.Find("Zombie").GetComponent <Zombie>();
         if (go != null)
         {
             if (go.GetComponent <Citizen>() || go.GetComponent <Hero>())
             {
                 dist = Vector3.Distance(go.transform.position, transform.position);
                 if (dist <= closeDistance)
                 {
                     transform.position = Vector3.MoveTowards(transform.position, go.transform.position, (speed * Time.deltaTime));
                     if (dist <= 2f && go.GetComponent <Hero>())
                     {
                         zombie.Damage(2, 20);
                     }
                     else if (dist <= 2f && go.GetComponent <Citizen>())
                     {
                         zombie.Convert(go);
                     }
                     _state = State.Running;
                 }
             }
         }
     }
 }