private void Fire()
    {
        float speed = power * maximumImpulse / loadedBubble.GetComponent <Rigidbody2D>().mass;

        float angle = Mathf.Sign(fireDirection.y) * Vector3.Angle(Vector3.right, fireDirection);

        if (power == 1)
        {
            angle = Random.Range(angle - spreadAngle, angle + spreadAngle);
        }

        loadedBubble.transform.parent = null;

        Bubble bubble = loadedBubble.GetComponent <Bubble>();

        bubble.PositionChanged -= UpdatePosition;
        bubble.PositionFixed   -= Fire;
        bubble.IsTouchable      = false;

        if (power == 1)
        {
            bubble.HasMaxImpulse = true;
        }

        bubble.ApplyImpulse(speed, angle);

        Destroy(trajectoriesContainer);

        Fired(loadedBubble);
    }