19 lines
659 B
GDScript
19 lines
659 B
GDScript
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))
|