summaryrefslogtreecommitdiff
path: root/Scripts/GameLoop.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/GameLoop.gd')
-rw-r--r--Scripts/GameLoop.gd34
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)