extends Node #The time, in seconds, it should take for the character to fade to FadeOutValue export var FadeOutTime = 2.0 #The alpha value we aim for when fading out export var FadeOutValue = 0.05 var coroutines = [] func AlmostFadeOutRoutine(player, delta): var sprite : Sprite = get_node("Sprite") var elapsed = delta var origin = sprite.get_modulate().a while sprite.get_modulate().a > FadeOutValue: var a = lerp(origin, FadeOutValue, elapsed / FadeOutTime) elapsed += yield() pass func StartEffect(player): var rout = AlmostFadeOutRoutine(player, 0) coroutines.add(rout) pass func FinishEffect(): pass func UpdateEffect(delta): for rout in coroutines: if rout.is_valid(): rout.resume(delta) else: coroutines.remove(rout) pass