30 lines
803 B
GDScript
30 lines
803 B
GDScript
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()
|