var knockback_direction = (global_position - global_position).normalized
should be:
var knockback_direction = (global_position - global_position).normalized()
with parenthesis at the end.
That’s a tricky one, but basically, using normalized without parenthesis will refer to the function itself (which is a “Callable”, as written in the error message), whereas using normalized() with parenthesis will actually call the function and get its result, here a Vector2.
A thing you could do is specify the type of your variable, like this:
var knockback_direction: Vector2 = (global_position - global_position).normalized()
By doing that, you’ll have an error before even launching the game if you forget the parenthesis. Not specifying the type can be great, but can lead to some issues like the one you just had.
That would look like this:
I did not test the code, I’ve just written it on the fly to give you an idea. You may need to adjust it. Feel free to open another topic if you’re struggling with the knockback itself