You could try using Node.is_node_ready()
and await
for its Node.ready
signal. Something like:
func update_shield(max_value, value):
if not shield_bar.is_node_ready():
await shield_bar.ready
print('found shield bar')
shield_bar.max_value = max_value
shield_bar.value = value