private void PrepareProjectileArc()
    {
        if (projectileArc != null)
        {
            // Last ball's rigidbody
            Rigidbody2D rb = ballista.nextProjectile.GetComponent <Rigidbody2D>();
            // float velocity = (currentDrawLength / maxDrawLength) * ballista.maxShootForce;
            float velocity = currentForcePercentage * ballista.maxShootForce;

            projectileArc.UpdateProjectileArc(rb, ballista.shootPoint.position,
                                              ballista.flightGroove.eulerAngles.z, velocity);
        }
    }
    override public void UseAbilityOnHold(Vector2 currentTouchPosition)
    {
        if (isResettingCameraZoom && isResettingCameraPosition)
        {
            return;
        }
        this.currentTouchPosition = currentTouchPosition;
        angle = MyCalculator.CalculateAngle(initialTouchPosition, currentTouchPosition, transform.position);
        currentForcePercentage = MyCalculator.CalcuateForcePercentage(initialTouchPosition, currentTouchPosition, maxDrawLength);
        if (abilityCharges > 0f)
        {
            if (projectileArc != null)
            {
                projectileArc.UpdateProjectileArc(rb, transform.position, angle, currentForcePercentage * maxForce);
            }
        }

        CameraZoom();
    }