2020-04-04 14:18:27 +02:00

36 lines
774 B
GDScript

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