Ejemplo n.º 1
0
    public override State Next()
    {
        State res;

        if (_stateMachine.animal.foundFood)
        {
            res = new StateEating(_stateMachine);
        }
        else if (Vector3.Distance(_stateMachine.animal.transform.position, _game.transform.position) < 4)
        {
            res = new StateNearPlayer(_stateMachine);
        }
        else if (_stateMachine.animal.isHungry())
        {
            res = this;
        }
        else if (_stateMachine.animal.isSad())
        {
            res = new StateSad(_stateMachine);
        }
        else
        {
            res = new StateWalking(_stateMachine);
        }
        return(res);
    }
Ejemplo n.º 2
0
    private StateWalking()
    {
        if (_instance != null)
        {
            return;
        }

        _instance = this;
    }
Ejemplo n.º 3
0
        public override void Configure()
        {
            entity   = GetComponent <Entity>();
            rigid    = GetComponent <Rigidbody2D>();
            collider = GetComponentInChildren <CapsuleCollider2D>();

            ChangeState(stateIdle = new StateIdle());
            stateWalking          = new StateWalking();

            AddOverseer(new AppearanceOverseer());
        }
Ejemplo n.º 4
0
    public override State Next()
    {
        State res = this;

        if (_hasSleeped)
        {
            res = new StateWalking(_stateMachine);
        }

        return(res);
    }
Ejemplo n.º 5
0
    public override State Next()
    {
        State res = this;

        if (_ate)
        {
            res = new StateWalking(_stateMachine);
        }

        if (_food == null)
        {
            res = new StateHungry(_stateMachine);
        }
        return(res);
    }
Ejemplo n.º 6
0
    public override State Next()
    {
        State res;

        if (Vector3.Distance(_stateMachine.animal.transform.position, _game.transform.position) < 5)
        {
            res = new StateNearPlayer(_stateMachine);
        }
        else if (_stateMachine.animal.isHungry())
        {
            _stateMachine.animal.SetNormalSpeed();
            res = new StateHungry(_stateMachine);
        }
        else if (_stateMachine.animal.isSad())
        {
            res = this;
        }
        else
        {
            _stateMachine.animal.SetNormalSpeed();
            res = new StateWalking(_stateMachine);
        }
        return(res);
    }
Ejemplo n.º 7
0
 public AnimalStateMachine(AnimalBody animal) : base(animal)
 {
     _current = new StateWalking(this);
 }