paintjam2020/Scripts/SlowTrail.gd

29 lines
801 B
GDScript

extends Node
var slowFactor
var lifetime = 5
var elapsed = 0
var sprite
func slow_player(victim):
if victim.is_in_group("Player"):
victim.MAX_SPEED /= slowFactor
func unslow_player(victim):
if victim.is_in_group("Player"):
victim.MAX_SPEED *= slowFactor
# Called when the node enters the scene tree for the first time.
func _ready():
sprite = get_node("Sprite")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
func _process(delta):
elapsed += delta
if elapsed >= lifetime * 0.7:
sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3)))
if elapsed >= lifetime:
queue_free()