extends Node2D var rising = false var growSpeed = 1.6 var riseSpeed = 80 var loiterRiseSpeed = 10 var fadeInSpeed = 1.1 var readyToLoiter = false var loiterTimer = 1 func start_transition(itemSprite): rising = true %ItemSprite.texture = itemSprite %ItemSprite.self_modulate.a = 0.1 $ItemSprite.scale = Vector2(0.1, 0.1) func _process(delta): if rising: $ItemSprite.position -= Vector2(0, riseSpeed * delta) $ItemSprite.scale += Vector2(growSpeed * delta, growSpeed * delta) %ItemSprite.self_modulate.a += fadeInSpeed * delta if %ItemSprite.self_modulate.a >= 1: %ItemSprite.self_modulate.a = 1 readyToLoiter = true rising = false if readyToLoiter: if loiterTimer > 0: $ItemSprite.position -= Vector2(0, loiterRiseSpeed * delta) loiterTimer -= delta else: queue_free()