extends Node2D onready var coin: Resource = preload('res://Levels/Interactables/Coin.tscn') var screensize: Vector2 var score: int = 0 func _ready() -> void: $YSort/Player.load_hud($HUD) screensize = get_viewport_rect().size spawn_coins(8) return func spawn_coins(num: int) -> void: for _i in range(num): var g: Node = coin.instance() $'coin_container'.add_child(g) if g.connect('coin_grabbed', self, '_on_coin_grabbed') != OK: print('ERROR: Coin "coin_grabbed" signal already connected.') #g.set_pos(Vector2(rand_range(0, screensize.x - 40), rand_range(0, screensize.y - 40))) g.position = Vector2(rand_range(0, screensize.x - 40), rand_range(0, screensize.y - 40)) return func _on_coin_grabbed() -> void: score += 1 $'Level 3 HUD/Label'.set_text(str(score) + '/5') return func _timer_out() -> void: if get_tree().change_scene('res://GUI/Level Failed.tscn') != OK: print('ERROR: Level 3 failed to change scene to Level Failed.') queue_free() return func _on_TreasureChest_ice_key_collected() -> void: $YSort/Door/doorClosed.visible = false $YSort/Door/doorOpened.visible = true $YSort/DoorCollision.layers = 5 return func _on_DoorDetector_area_entered(area: Area2D) -> void: if area.get_parent().name == 'Player': if get_tree().change_scene('res://GUI/Level Complete.tscn') != OK: print('ERROR: Level 3 failed to change scene to Level Complete.') queue_free() return