How do you check a property of a non-existent object?
When you kill an enemy i hide the sprite, play the death screams, wait for the screaming to end then queue_free. My shooting code looks like this:
func _physics_process(_delta: float):
if target and target.i_am:
9 times out of 10 this works great. But that 10th time is all Invalid access to property or key 'i_am' on a base object of type 'previously freed'.
Stupid thing is dying in the middle of a line. i verified that and in GDScript short circuits but just to be safe i also tried breaking that into two lines to forcefully ensure short circuiting and it’s not that.
Unsurprisingly, this only happens on my fast tower (10 shots/second).