Esempio n. 1
0
    public void SetState(GuyStates state)
    {
        if (state == currentState)
        {
            return;
        }

        if (state != GuyStates.Follow)
        {
            followCrono = 0;
        }

        if (state != GuyStates.Attack && punchCoroutine != null)
        {
            StopCoroutine(punchCoroutine);
        }
        anim.ResetTrigger("Attack");

        //Start dos estados
        switch (state)
        {
        case GuyStates.Attack:
            punchCoroutine = StartCoroutine(Attack());
            break;

        case GuyStates.Wait:
            StartCoroutine(Wait(3));
            break;

        case GuyStates.WalkAroundPlayer:
            StartCoroutine(WalkAroundPlayer());
            break;

        case GuyStates.Hit:
            StartCoroutine(Hit(2));
            break;

        case GuyStates.DropItem:
            anim.SetTrigger("ReflectedDown");
            gameObject.tag = "DieWithItem";
            health         = 0;
            Melee_Controller controller = GetComponent <Melee_Controller>();
            if (controller != null)
            {
                controller.enabled = false;
            }
            break;

        case GuyStates.Die:
            anim.SetTrigger("ReflectedDown");
            Die();
            break;
        }

        currentState = state;
    }
Esempio n. 2
0
 private void IsCloseToPlayer(GuyStates direction)
 {
     if ((Mathf.Abs(transform.position.x - player.transform.position.x) > distanceFollow ||
          Mathf.Abs(transform.position.x - player.transform.position.x) < 0.1f) ||
         Mathf.Abs(transform.position.y - player.transform.position.y) > 0.1f)
     {
         SetState(direction);
     }
     else
     {
         SetState(GuyStates.Attack);
     }
 }
Esempio n. 3
0
    public void SetState(GuyStates state)
    {
        if (state == currentState)
        {
            return;
        }

        if (currentState == GuyStates.Follow && state == GuyStates.Kick)
        {
            return;
        }

        if (state != GuyStates.Kick)
        {
            anim.ResetTrigger("Kick");
        }

        //Start dos estados
        switch (state)
        {
        case GuyStates.Attack:
            StartCoroutine(Shoot());
            break;

        case GuyStates.Reloud:
            StartCoroutine(Reloud());
            break;

        case GuyStates.Kick:
            StartCoroutine(Kick());
            break;

        case GuyStates.Die:
            anim.SetTrigger("Reflected");
            anim.SetBool("Shooting", false);
            this.enabled = false;
            Die();
            break;
        }

        currentState = state;
    }