extends Node var fastFactor var lifetime = 5 var elapsed = 0 var sprite func slow_player(victim): if victim.is_in_group("Player"): victim.MAX_SPEED *= fastFactor victim.ACCELERATION *= fastFactor func unslow_player(victim): if victim.is_in_group("Player"): victim.MAX_SPEED /= fastFactor victim.ACCELERATION /= fastFactor # 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_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()