Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (commands.state != MonkayCommands.MonkayState.controled)
        {
            if ((commands.state == MonkayCommands.MonkayState.going && commands.GetDistanceFormDirectionTarget() > 20) ||
                (user.IsBeingChased() && commands.state == MonkayCommands.MonkayState.waiting))
            {
                {
                    forceIn = true;
                    commands.ChangeState(gameObject.transform.parent.gameObject.GetComponent <CharacterMenager>(), MonkayCommands.MonkayState.following);
                }
            }

            if ((user.IsBeingChased() && (commands.state != MonkayCommands.MonkayState.going || character.GetSoundStrenght() < 0.1f)))
            {
                if (!crazy)
                {
                    ChangeCurrentRandomPositioner(Instantiate(randomPositioner, transform.position, Quaternion.identity));
                    ai.target = currentRandomPositioner.transform.GetChild(0);
                    commands.ChangeState(gameObject.transform.parent.gameObject.GetComponent <CharacterMenager>(), MonkayCommands.MonkayState.running);
                    crazy = true;
                }
                else if (timer < Time.time && character.GetSoundStrenght() < 0.2f)
                {
                    if (!ai.target.GetComponent <MonkayTargetChanger>())
                    {
                        crazy = false;
                    }
                    else
                    {
                        ai.target.GetComponent <MonkayTargetChanger>().Change();
                        currentRandomPositioner.transform.position = transform.position;
                        timer = Time.time + 0.15f;
                    }
                }
            }
            else
            {
                crazy = false;
            }
        }
    }