Added victory screen

This commit is contained in:
2025-12-15 23:41:40 +03:00
parent 7de4e92fed
commit a84c391145
6 changed files with 107 additions and 6 deletions
+30 -4
View File
@@ -18,24 +18,26 @@ var _current_area_map_scene : AreaMap
@onready var pause_screen : Control = $PauseScreen
@onready var game_over_screen : Control = $GameOverScreen
@onready var victory_screen : Control = $VictoryScreen
@onready var world_generator : WorldGenerator = $WorldGenerator
func _ready() -> void:
pause_screen.hide()
victory_screen.hide()
game_over_screen.hide()
start_game(SaveManager.game_data)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("pause"):
var is_game_over := victory_screen.visible or game_over_screen.visible
if event.is_action_pressed("pause") and not is_game_over:
pause_screen.show()
get_tree().paused = true
func start_game(game_data: GameData) -> void:
if not _fill_data(game_data):
print("Can't process game data")
_show_main_menu()
@@ -56,6 +58,10 @@ func _initialize_new_game() -> void:
func _fill_data(game_data: GameData) -> bool:
data = world_generator.generate(game_data.game_seed.hash())
return _set_currents(game_data)
func _set_currents(game_data: GameData) -> bool:
if game_data.current_area_index >= data.areas.size(): return false
current_area = data.areas[game_data.current_area_index]
@@ -68,6 +74,22 @@ func _fill_data(game_data: GameData) -> bool:
return true
func _process_to_next_area() -> void:
SaveManager.game_data.current_area_index += 1
SaveManager.game_data.current_stage_index = 0
SaveManager.game_data.current_sector_index = 0
print(SaveManager.game_data.current_area_index)
if SaveManager.game_data.current_area_index >= data.areas.size():
SaveManager.delete_game_data()
victory_screen.show()
else:
SaveManager.save()
_set_currents(SaveManager.game_data)
_create_game_map()
func _create_game_map() -> void:
if _current_area_map_scene != null: _current_area_map_scene.queue_free()
@@ -121,13 +143,17 @@ func _on_passage_player_died() -> void:
func _on_passage_completion() -> void:
_current_passage_scene.queue_free()
var projectiles := get_tree().get_nodes_in_group("projectiles")
for projectile in projectiles:
projectile.queue_free()
current_sector = current_passage.next_sector
_update_data_indexes()
_show_map()
if current_sector.next_passages.size() == 0:
_process_to_next_area()
else:
_update_data_indexes()
_show_map()
func _update_data_indexes() -> void:
+9 -1
View File
@@ -1,8 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://dl7m4rqyj8mck"]
[gd_scene load_steps=6 format=3 uid="uid://dl7m4rqyj8mck"]
[ext_resource type="Script" uid="uid://1wfu4iuddo25" path="res://game/game.gd" id="1_l1rk1"]
[ext_resource type="PackedScene" uid="uid://d34nh3lc1gpb" path="res://menu/pause_screen.tscn" id="2_h7iqs"]
[ext_resource type="PackedScene" uid="uid://duxm8n62j2qt6" path="res://menu/game_over_screen.tscn" id="4_4fuuu"]
[ext_resource type="PackedScene" uid="uid://bdcs2ff85qjs4" path="res://menu/victory_screen.tscn" id="4_dxrkv"]
[ext_resource type="PackedScene" uid="uid://ggf76ayl53bb" path="res://game/world/generators/world_generator.tscn" id="5_dxrkv"]
[node name="Game" type="Node2D"]
@@ -12,6 +13,12 @@ script = ExtResource("1_l1rk1")
process_mode = 2
z_index = 100
[node name="VictoryScreen" parent="." instance=ExtResource("4_dxrkv")]
offset_left = 320.0
offset_top = 172.0
offset_right = 320.0
offset_bottom = 172.0
[node name="GameOverScreen" parent="." instance=ExtResource("4_4fuuu")]
z_index = 100
anchors_preset = 8
@@ -28,4 +35,5 @@ offset_bottom = 172.0
[connection signal="continue_game" from="PauseScreen" to="." method="_on_pause_screen_continue_game"]
[connection signal="show_main_menu" from="PauseScreen" to="." method="_show_main_menu"]
[connection signal="show_main_menu" from="VictoryScreen" to="." method="_show_main_menu"]
[connection signal="show_main_menu" from="GameOverScreen" to="." method="_show_main_menu"]