You could use the connect() function, which is basically like connecting signals but on code.
What i'd do is on the Thorn script, under the _ready() function, write the connect() signal
connect('Shot_Enemy', get_parent(), '_on_Thorn_Shot_Enemy')
Then write the function on the player script:
so whenever the Thorn is created, it connects the 'Shot_Enemy' signal to its parent, which in this case should be the player.
It's not the best solution.. (It only works if the player is the only parent of Thorn) but i used it many times, and it shouldn't affect the Thorn scene.