DaveTheCoder the bumper is a StaticBody2D node with no script. What I did is I wrote this in my Player script:
States.BOUNCE:
if velocity.is_zero_approx():
state = States.IDLE # change state
elif Input.is_action_pressed("space_bar") and can_charge_player:
state = States.CHARGE # change state
elif collision:
if collision.get_collider().is_in_group("bumper_group"): # if the collided is in group, run bounce code
velocity = velocity.bounce(collision.get_normal()).normalized() * bounce_strength # bounce (get collision vector's normal)
deceleration = deceleration_bounce # this goes here so the rate doesn't reset after being established in a prev state
anim_bumper.play("lit")
else:
velocity = velocity.bounce(collision.get_normal()) # bounce (get collision vector's normal)
anim_turtle.play("shell")
sound_ricochet.play()
apply_deceleration() # always decelerate
This is so it detects collision if the collided is part of the bumper group (the one interacted with by the player). So that works every time the player collides with a bumper, even if it's a duplicate, but I've been trying to teach myself how to communicate with groups lately, so in addition to the last question, I've been struggling with this thing where the animation is only played on the original instance.
One option would be to make all of them play the animation when one of them is collided with, but more specifically I'm trying to make it the only one that its collided with. Problem is I gotta figure out why only the first instance will play its animation, like even if I collide with another bumper, the first one will animate, but never any besides the first one will animate.