Added level selection screen

This commit is contained in:
2026-01-08 21:24:10 +03:00
parent 7e55578994
commit bc0c494244
16 changed files with 186 additions and 15 deletions
+11
View File
@@ -2,6 +2,10 @@ class_name AbstractLevel
extends Node2D
const NEXT_LEVEL_META = "next_level"
const CURRENT_LEVEL_INDEX = "current_level"
@onready var pause_menu : PauseMenu = $%PauseMenu
@onready var game_over_menu : GameOverMenu = $%GameOverMenu
@onready var completion_menu : CompletionMenu = $%CompletionMenu
@@ -27,3 +31,10 @@ func _on_level_end_entered(body: Node2D) -> void:
if body is Player:
get_tree().paused = true
completion_menu.show()
var level_index : int = get_tree().get_meta(AbstractLevel.CURRENT_LEVEL_INDEX, 0)
get_tree().remove_meta(AbstractLevel.CURRENT_LEVEL_INDEX)
if SaveManager.completed_levels <= level_index:
SaveManager.completed_levels = level_index + 1
SaveManager.save()
@@ -1,2 +1,2 @@
class_name Level1
class_name TestLevel
extends AbstractLevel
@@ -1,7 +1,7 @@
[gd_scene load_steps=21 format=4 uid="uid://bmn74wc2vophn"]
[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_15okj"]
[ext_resource type="Script" uid="uid://b04km0lbc108u" path="res://game/levels/level_1.gd" id="2_hj65a"]
[ext_resource type="Script" uid="uid://b04km0lbc108u" path="res://game/levels/test_level.gd" id="2_hj65a"]
[ext_resource type="PackedScene" uid="uid://b3kyqvuxmfn8f" path="res://game/objects/fireplace.tscn" id="3_tuvkr"]
[ext_resource type="PackedScene" uid="uid://pw8xqtpauy57" path="res://game/objects/tutorial/jump_kbd.tscn" id="4_crrvt"]
[ext_resource type="PackedScene" uid="uid://g0n5npbt3hb2" path="res://game/doors/circle_door.tscn" id="4_yrqjd"]
@@ -21,7 +21,7 @@
[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/black_enemy.tscn" id="19_ohfy3"]
[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/white_enemy.tscn" id="20_rt0xo"]
[node name="Level1" instance=ExtResource("1_15okj")]
[node name="TestLevel" instance=ExtResource("1_15okj")]
script = ExtResource("2_hj65a")
[node name="Door" parent="Doors" index="0" instance=ExtResource("11_g1txn")]