Example #1
0
    private void wanderState()
    {
        seekPlayer();
        NewTargetPosition = wanderController.NewTargetPosition();
        if (wanderController.GetTimeLeft() == 0)
        {
            state = pickRandomState(new Global.BehaviorState[] { Global.BehaviorState.STATE_IDLE, Global.BehaviorState.STATE_WANDER });
            Random r = new Random();
            wanderController.StartWanderTimer(r.Next(1, 4));
            Direction = GlobalPosition.DirectionTo(NewTargetPosition);
        }

        Velocity = Velocity.MoveToward(Direction * MaxSpeed, Acceleration);
        if (GlobalPosition.DistanceTo(NewTargetPosition) <= 4)
        {
            state = pickRandomState(new Global.BehaviorState[] { Global.BehaviorState.STATE_IDLE, Global.BehaviorState.STATE_WANDER });
            Random r = new Random();
            wanderController.StartWanderTimer(r.Next(1, 4));
        }
    }