Files
Embodiment/Levels/Level 3.gd

53 lines
1.5 KiB
GDScript

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