extends Node2D var status: Node var _age := 0.0 func _ready() -> void: z_index = 2 func _process(delta: float) -> void: _age += delta visible = is_instance_valid(status) and status.remaining>0.0 if visible: queue_redraw() func _draw() -> void: var owner := get_parent() var radius := float(owner.get_visual_size())*0.47 if owner.has_method("get_visual_size") else 29.0 var pulse := 0.5+0.5*sin(_age*5) for i in 5: var angle := i*TAU/5.0+_age*0.35 draw_arc(Vector2.ZERO,radius,angle,angle+0.32,8,Color(0.5,1,0.24,0.12+pulse*0.15),1.0,true) var point := Vector2.RIGHT.rotated(angle)*radius draw_circle(point,1.0,Color(0.7,1,0.4,0.2+pulse*0.25))