Added indexes saving

This commit is contained in:
2025-12-12 14:41:36 +03:00
parent 871ce40f8c
commit e1f5f3a9e0
3 changed files with 52 additions and 23 deletions
+27 -2
View File
@@ -10,6 +10,7 @@ var data : WorldData
var current_area : AreaData
var current_stage : StageData
var current_sector : SectorData
var current_passage : PassageData
var _current_passage_scene : Passage
var _current_area_map_scene : AreaMap
@@ -24,7 +25,7 @@ func _ready() -> void:
pause_screen.hide()
game_over_screen.hide()
start_game(SaveManager.get_game_data())
start_game(SaveManager.game_data)
func _input(event: InputEvent) -> void:
@@ -70,6 +71,8 @@ func _create_game_map() -> void:
func _show_map() -> void:
if _current_passage_scene != null: _current_passage_scene.queue_free()
_current_area_map_scene.current_sector = current_sector
_current_area_map_scene.selected_sector = current_sector
_current_area_map_scene.show()
@@ -77,11 +80,13 @@ func _create_passage(passage_data: PassageData) -> void:
if _current_passage_scene != null: _current_passage_scene.queue_free()
_current_area_map_scene.hide()
current_passage = passage_data
_current_passage_scene = PASSAGE.instantiate()
add_child(_current_passage_scene)
_current_passage_scene.data = passage_data
_current_passage_scene.completed.connect(_show_map)
_current_passage_scene.completed.connect(_on_passage_completion)
_current_passage_scene.player_died.connect(_on_passage_player_died)
@@ -100,4 +105,24 @@ func _show_main_menu() -> void:
func _on_passage_player_died() -> void:
SaveManager.delete_game_data()
game_over_screen.show()
func _on_passage_completion() -> void:
current_sector = current_passage.next_sector
_update_data_indexes()
_show_map()
func _update_data_indexes() -> void:
for area_index in range(data.areas.size()):
var area := data.areas[area_index]
for stage_index in range(area.stages.size()):
var stage := area.stages[stage_index]
for sector_index in range(stage.sectors.size()):
if stage.sectors[sector_index] == current_sector:
SaveManager.game_data.current_area_index = area_index
SaveManager.game_data.current_stage_index = stage_index
SaveManager.game_data.current_sector_index = sector_index
SaveManager.save()