36 lines
774 B
GDScript
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
|
|
|