extends Node2D export var cost: int = 0 var open: bool = false onready var label: Label = $Label onready var sprite: Sprite = $Sprite onready var closed_collision: CollisionShape2D = $"%ClosedCollision" func _ready(): label.text = "ΒΆ" + str(cost) func _physics_process(delta): if Game.keys >= cost and not open: open = true label.visible = false var tween = create_tween() tween.tween_property(sprite, "frame", 3, 0.25) tween.tween_property(closed_collision, "disabled", true, 0.0) func _on_Area2D_area_entered(area): if area.is_in_group("player_hitbox"): var player = area.get_parent() player.state_chart.send_event("start_teleport") player.connect("teleport_finished", self, "_on_player_teleport_finished") Audio.play_music(Audio.a_victory) func _on_player_teleport_finished(): Game.tally_scores() var hud = get_tree().get_nodes_in_group("hud").pop_back() if hud: var text = preload("res://objects/hud/3d_text.tscn").instance() text.anim = "level complete" yield(get_tree(), "idle_frame") hud.add_child(text) yield(get_tree().create_timer(2.0, false), "timeout") Fade.fade_out(0.4) yield(Fade, "fade_finished") SceneManager.change_scene(preload("res://menus/results.tscn").instance())