Esempio n. 1
0
 void OnCollisionEnter(Collision col)
 {
     if (state == BullState.DYING)
     {
         return;
     }
     if (col.gameObject.tag == "Player")
     {
         hitSFX.Play();
         UpdateIdle();
     }
     else if (col.gameObject.tag == "Hologram" ||
              col.gameObject.tag == "Marker" ||
              col.gameObject.tag == "Debris")
     {
     }
     else if (col.gameObject.tag == "Pillar")
     {
         state   = BullState.DYING;
         dest    = col.transform.position;
         home    = transform.position;
         toOther = dest - home;
     }
     else
     {
         if (state == BullState.CHARGE)
         {
             hitSFX.Play();
             state     = BullState.STUNNED;
             stunStart = Time.time;
             nav.Stop();
             confusedStars.SetActive(true);
         }
     }
 }
Esempio n. 2
0
 void UpdateIdle()
 {
     state     = BullState.IDLE;
     nav.speed = 3.5f;
     exclamation.SetActive(false);
     nav.SetDestination(dest);
 }
Esempio n. 3
0
 void OnTriggerStay(Collider col)
 {
     if (state == BullState.DYING)
     {
         return;
     }
     if (state == BullState.IDLE)
     {
         if (col.tag == "Player" || col.tag == "Hologram")
         {
             exclamation.SetActive(true);
             target  = col.gameObject;
             home    = target.transform.position;
             toOther = target.transform.position - transform.position;
             state   = chargeDisabled ? BullState.FOLLOW : BullState.CHARGE;
         }
     }
     if (col.tag == "Wall" || col.tag == "Pillar")
     {
         CookNewDest();
         nav.SetDestination(dest);
     }
 }