extends Node2D ## One-shot expanding ring, greybox stand-in for any radial event ## (card blasts, heat detonations). Runs on scaled time, so a ring ## spawned during freeze blooms on release — which is the rhythm. var max_radius := 56.0 var color := Color(1.0, 0.6, 0.2) var duration := 0.18 var _t := 0.0 func _process(delta: float) -> void: _t += delta queue_redraw() if _t >= duration: queue_free() func _draw() -> void: var k := clampf(_t / duration, 0.0, 1.0) var c := Color(color.r, color.g, color.b, 1.0 - k) draw_arc(Vector2.ZERO, maxf(max_radius * k, 1.0), 0.0, TAU, 48, c, 3.0)