diff --git a/autoloads/save_system.gd b/autoloads/save_system.gd index 1564692..34eafeb 100644 --- a/autoloads/save_system.gd +++ b/autoloads/save_system.gd @@ -27,7 +27,8 @@ func load_game() -> bool: if save_data.has("version") and save_data["version"] != version: print("Save file version mismatch. Expected: ", version, ", Found: ", save_data["version"]) return false - + print("Game state loaded from: ", save_path) + print("Player state: ", save_data["player_state"]) gm.player_state = save_data["player_state"] var skills: Array[String] = [] for skill_name in gm.player_state["unlocked_skills"]: diff --git a/objects/level/base_level.tscn b/objects/level/base_level.tscn index ead55c3..c9a9b37 100644 --- a/objects/level/base_level.tscn +++ b/objects/level/base_level.tscn @@ -114,5 +114,8 @@ metadata/_custom_type_script = "uid://8r1y8elyw7kt" [node name="Killzone" parent="." instance=ExtResource("13_0vx27")] position = Vector2(215, 324) +[connection signal="on_death" from="Brick Player/HealthComponent" to="UI Layer/DeathScreen" method="on_player_death"] +[connection signal="on_death" from="Brick Player/HealthComponent" to="UI Layer/GameOverScreen" method="on_player_death"] + [editable path="Brick Player"] [editable path="UI Layer"] diff --git a/scripts/components/skill_unlocker_component.gd b/scripts/components/skill_unlocker_component.gd index 143194a..807d8bf 100644 --- a/scripts/components/skill_unlocker_component.gd +++ b/scripts/components/skill_unlocker_component.gd @@ -22,7 +22,7 @@ func try_unlock_skill(skill_data: SkillData) -> bool: return false game_manager.remove_coins(skill_data.cost) - game_manager.current_session_state["unlocked_skills"].append(skill_data.name) + game_manager.current_session_state["skills_unlocked"].append(skill_data.name) skill_manager.add_skill(skill_data) return true @@ -35,4 +35,4 @@ func unlock_all_skills() -> void: skills.append(skill.name) game_manager.unlock_skills(skills) - skill_manager.apply_unlocked_skills() \ No newline at end of file + skill_manager.apply_unlocked_skills() diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 76d39af..cd1f22a 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -8,13 +8,12 @@ extends Node "lives": 3, "unlocked_skills": [], "current_level": 0, - "unlocked_levels": [], + "unlocked_levels": [0], "completed_levels": [], } var nodes_in_scene := [] - var current_session_state := { "coins_collected": 0, "skills_unlocked": [], @@ -135,6 +134,8 @@ func reset_player_state() -> void: "coins": 0, "lives": 3, "unlocked_skills": [], + "current_level": 0, + "unlocked_levels": [0], "completed_levels": [], } @@ -150,7 +151,6 @@ func try_to_go_to_next_level() -> void: get_tree().change_scene_to_packed(level_scenes[next_level]) - func mark_level_complete(level_index: int) -> void: unlock_level(level_index + 1) if level_index not in player_state["completed_levels"]: player_state["completed_levels"].append(level_index) @@ -163,6 +163,14 @@ func reset_current_session_state() -> void: } + +func restart_game() -> void: + reset_player_state() + reset_current_session_state() + get_tree().change_scene_to_packed(level_scenes[0]) + SaveSystem.save_game() + + func quit_game() -> void: get_tree().quit() @@ -177,9 +185,9 @@ func resume_game() -> void: func start_new_game() -> void: reset_player_state() - player_state["current_level"] = 0 - player_state["unlocked_levels"] = [0] # Start with the first level unlocked + reset_current_session_state() get_tree().change_scene_to_packed(level_scenes[0]) + SaveSystem.save_game() func continue_game() -> void: diff --git a/scripts/ui/game_over_screen.gd b/scripts/ui/game_over_screen.gd index cc19c5b..1086262 100644 --- a/scripts/ui/game_over_screen.gd +++ b/scripts/ui/game_over_screen.gd @@ -22,9 +22,7 @@ func on_restart_button_pressed() -> void: if not gm: return - gm.reset_player_state() - gm.reset_current_session_state() - get_tree().reload_current_scene() + gm.restart_game() func on_main_menu_button_pressed() -> void: diff --git a/translations.csv b/translations.csv index 88c6750..a1ede99 100644 --- a/translations.csv +++ b/translations.csv @@ -42,7 +42,7 @@ LEVEL_4_NAME,VILLAGE – 4,WIOSKA – 4 LEVEL_5_NAME,VILLAGE – 5,WIOSKA – 5 MARKETPLACE,MARKETPLACE,SKLEP GAME_OVER,GAME OVER,KONIEC GRY -RESTART_LEVEL_BUTTON,RESTART LEVEL,POTWÓRZ POZIOM +RESTART_LEVEL_BUTTON,RESTART GAME,ZACZNIJ OD NOWA GO_TO_MENU_BUTTON,GO TO MENU,WRÓĆ DO MENU BRICK_POWER,Brick power,Ceglana siła EXPLOSIVE_BRICK,Explosive brick,Wybuchowa cegła diff --git a/translations.en.translation b/translations.en.translation index e498ad6..df431f6 100644 Binary files a/translations.en.translation and b/translations.en.translation differ diff --git a/translations.pl.translation b/translations.pl.translation index 371160f..775000e 100644 Binary files a/translations.pl.translation and b/translations.pl.translation differ