If statements work as a series of "is this thing true or false?" questions.
If the thing you are claiming is true it will run the code inside it.
if score + 525 means "if score +525 is true:"
I think int other than 0 always evaluate true, so it's probably always true.
You are gonna need some math for that.
if score % 525 == 0: would be true for any multiplier of 525
% is the modulo operator.
It basically divides the number and checks what is left over after division.
525 divided by any multiplier of 525 would be 0.
(It would be something else for every other number.)
But if you went from score of 524 to score of 526 it'd skip and not help you...
I've seen something like this before:
if current_score % 525 > new_score % 525:
I'm pretty weak at math, so I'm not 100% sure if that works.
Some of the other people on this server are really good at math, maybe they know an easier way to do it.
The warning about shadowing happens when a local two thing have the same name as a thing up top does in the same script.
If you do var cool_thing up top and then inside a function you do var cool_thing a second time, you are creating two things with the same name (which can be confusing), so it warns you.
Also that way of using .connect("signal_name, callable) works, but I find it less error prone to do some_node.some_signal.connect(callable) because then you aren't relying on text strings.