private IEnumerator StateTimer(PeasantSate newState, float minTime, float maxTime)
    {
        yield return(new WaitForSeconds(Random.Range(3, 7)));

        ChangeState(newState);
    }
    private void ChangeState(PeasantSate newState)
    {
        if (newState == state)
        {
            return;
        }

        state = newState;
        StopAllCoroutines();

        switch (newState)
        {
        case PeasantSate.IDLE:
        {
            animator.SetFloat("Speed", 0);
            StartCoroutine(StateTimer(PeasantSate.WALKING, 3, 7));
            break;
        }

        case PeasantSate.WALKING:
        {
            Debug.Log("Walk");
            transform.rotation = Quaternion.Euler(0, Random.Range(0, 360), 0);
            animator.SetFloat("Speed", speed);
            StartCoroutine(StateTimer(PeasantSate.IDLE, 3, 7));
            break;
        }

        case PeasantSate.RUNNING:
        {
            animator.SetFloat("Speed", runSpeed);
            break;
        }

        case PeasantSate.ENGAGED:
        {
            animator.SetTrigger("Engage");
            engaged = true;
            animator.SetFloat("Speed", speed);
            break;
        }

        case PeasantSate.ATTACKING:
        {
            Debug.Log("Attack");
            animator.SetTrigger("Attack");
            animator.SetFloat("Speed", 0);
            StartCoroutine(StateTimer(PeasantSate.ENGAGED, 2f, 2f));
            break;
        }

        case PeasantSate.HURT:
        {
            animator.SetFloat("Speed", 0);
            animator.SetTrigger("Hurt");
            break;
        }

        case PeasantSate.DEAD:
        {
            animator.SetFloat("Speed", 0);
            GetComponent <DropObjects>().Drop();
            Destroy(gameObject);
            break;
        }
        }
    }