revo-jailbreak/objects/environment/exit/exit.gd

44 lines
1.3 KiB
GDScript

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"):
Game.still_playing = false
var player = area.get_parent()
player.state_chart.send_event("start_teleport")
player.connect("teleport_finished", self, "_on_player_teleport_finished")
#Play level complete jingle
Audio.play_music(Audio.a_victory)
#Display 3D Text
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)
func _on_player_teleport_finished():
Game.tally_scores()
yield(get_tree().create_timer(4.0, false), "timeout")
Fade.fade_out(0.4)
yield(Fade, "fade_finished")
SceneManager.change_scene(preload("res://menus/results.tscn").instance())