diff options
Diffstat (limited to 'Scripts/GameLoop.gd')
-rw-r--r-- | Scripts/GameLoop.gd | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Scripts/GameLoop.gd b/Scripts/GameLoop.gd new file mode 100644 index 0000000..353f1be --- /dev/null +++ b/Scripts/GameLoop.gd @@ -0,0 +1,34 @@ +extends Node2D + +var spawn_pos : Vector2 = Vector2(640, 372) + +var inv_at_start : Array[int] = [-1, -1, -1, -1, -1, -1] +var has_machette : bool = false + +var player : Entity + +@export var lvl : int = 0 + +@export var level_nodes : Array[Node2D] +@export var level_packs : Array[PackedScene] + +func _ready() -> void: + player = get_tree().get_root().get_node("Node2D/Player") + Engine.time_scale = 1 + +func restart() -> void: + var new = level_packs[lvl].instantiate() + + new.global_position = level_nodes[lvl].global_position + get_tree().get_root().get_node("Node2D").add_child(new) + level_nodes[lvl].queue_free() + level_nodes[lvl] = new + + player.health = player.max_health + UIConnector.display_health(player.health) + player.position = spawn_pos + player.visible = true + player.process_mode = Node.PROCESS_MODE_PAUSABLE + player.get_node("PlayerInventory").mask_inventory = inv_at_start + if !has_machette: player.get_node("PlayerInventory").ungive_machette() + UIConnector.update_masks(player.get_node("PlayerInventory").mask_inventory) |