Save/Load rework
This commit is contained in:
@@ -3,10 +3,12 @@ extends Node
|
||||
var day_count : int = 1
|
||||
var floor_count : int = -1
|
||||
var patient_count : int = 1
|
||||
var its_patient_count : int = 0
|
||||
var diagnoses_quota : int = 1
|
||||
var daily_patient_limit : int = 3
|
||||
var patient_list = ["42", "43", "44", "45", "46", "47", "48", "49", "50", "51"]
|
||||
var patients_seen: Array[String]
|
||||
var patients_seen = []
|
||||
var its_patients_seen = []
|
||||
var patient_id
|
||||
var interfloor_dialogue = load("res://Dialogues/interfloor.dialogue")
|
||||
var directives = "\n[center][font_size=22]INSTRUCTIONS[/font_size][/center]
|
||||
|
||||
+31
-23
@@ -88,28 +88,33 @@ func start_day():
|
||||
#Transitioning to day screen
|
||||
$TextScreens/Day.text = "[center]DAY " + str(Globals.day_count) + "[/center]"
|
||||
|
||||
var scenes_to_hide: Array[Node] = [$TitleScreen]
|
||||
var scenes_to_hide: Array[Node] = [$TitleScreen, $TextScreens, $TextScreens/Day, $ScreeningDesk]
|
||||
var scenes_to_show: Array[Node] = [$TextScreens, $TextScreens/Day]
|
||||
TransitionScreen.transition(scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
UI.masks.transition(scenes_to_hide, scenes_to_show)
|
||||
await UI.masks.transition_finished
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
|
||||
#Setting up new patient
|
||||
$ScreeningDesk.accurate_diagnoses = 0 #Resetting accurate_diagnoses value at the day's beginning
|
||||
$ScreeningDesk.middle_screen.update(Globals.day_count, Globals.floor_count, $ScreeningDesk.accurate_diagnoses, Globals.diagnoses_quota)
|
||||
|
||||
#Resetting scenes
|
||||
for scene in [$ScreeningDesk, UI.its_game_over]:
|
||||
scene.reset()
|
||||
|
||||
#Transitioning to the screening desk
|
||||
scenes_to_hide = scenes_to_show
|
||||
scenes_to_show = [$ScreeningDesk, UI, UI.get_node("UI/UpperContainer")]
|
||||
TransitionScreen.transition(scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
UI.masks.transition(scenes_to_hide, scenes_to_show)
|
||||
await UI.masks.transition_finished
|
||||
|
||||
#Supervisor Dialogue
|
||||
#$ScreeningDesk.supervisor.dialogue("interfloor_" + str(-Globals.floor_count-1))
|
||||
#await $ScreeningDesk.supervisor.dialogue_finished
|
||||
|
||||
#Setting up UI
|
||||
$ScreeningDesk.console_screen.display(Globals.directives)
|
||||
$ScreeningDesk.new_patient()
|
||||
$ScreeningDesk.computer.next_patient_button.show()
|
||||
|
||||
|
||||
#Saves game state on the selected save slot
|
||||
@@ -125,14 +130,14 @@ func save_game(save_slot_number:int):
|
||||
"patient_list": Globals.patient_list,
|
||||
"patient_id": Globals.patient_id,
|
||||
"patients_seen": Globals.patients_seen,
|
||||
"its_patients_seen": Globals.its_patients_seen,
|
||||
"save_date": Globals.get_save_date()
|
||||
}
|
||||
|
||||
#Creating save file
|
||||
var file = FileAccess.open("res://Saves/save_" + str(save_slot_number) + ".json", FileAccess.WRITE)
|
||||
if file:
|
||||
var json_string = JSON.stringify(save_data)
|
||||
print(json_string)
|
||||
print("Saved data : " + str(json_string))
|
||||
file.store_string(json_string)
|
||||
file.close()
|
||||
print("Game saved successfully!")
|
||||
@@ -145,7 +150,7 @@ func save_game(save_slot_number:int):
|
||||
var save_slot = UI.get_node(save_slot_path)
|
||||
var load_slot = UI.get_node(load_slot_path)
|
||||
|
||||
save_slot.text = "DAY " + str(save_data["day_count"]) + ", PATIENT " + str(save_data["patient_count"]) + "\nSAVE DATE : " + str(save_data["save_date"])
|
||||
save_slot.text = "DAY " + str(save_data["day_count"]) + ", FLOOR " + str(save_data["floor_count"]) + "\nSAVE DATE : " + str(save_data["save_date"])
|
||||
load_slot.text = save_slot.text
|
||||
|
||||
|
||||
@@ -153,11 +158,11 @@ func save_game(save_slot_number:int):
|
||||
#Loads save file from the selected load slot
|
||||
func load_game(load_slot_number:int):
|
||||
|
||||
#CLearing balloon
|
||||
#Clearing balloon
|
||||
clear_balloon()
|
||||
|
||||
#Hiding loading menus and masks
|
||||
TransitionScreen.mask.visible = false
|
||||
UI.masks.mask.visible = false
|
||||
UI.get_node("UI/Menu").hide()
|
||||
UI.get_node("UI/UpperContainer").hide()
|
||||
UI.get_node("UI/Load").hide()
|
||||
@@ -170,23 +175,22 @@ func load_game(load_slot_number:int):
|
||||
var load_data = JSON.parse_string(json_string)
|
||||
|
||||
if typeof(load_data) == 27: #Checks if loaded data is a Dictionary
|
||||
print(load_data)
|
||||
print("Loaded save: " + str(load_data))
|
||||
Globals.day_count = load_data["day_count"]
|
||||
Globals.floor_count = load_data["floor_count"]
|
||||
Globals.patient_count = load_data["patient_count"]
|
||||
Globals.diagnoses_quota = load_data["diagnoses_quota"]
|
||||
Globals.daily_patient_limit = load_data["daily_patient_limit"]
|
||||
Globals.patient_list = load_data["patient_list"]
|
||||
Globals.patient_id = load_data["patient_id"]
|
||||
Globals.patients_seen = load_data["patients_seen"]
|
||||
Globals.its_patients_seen = load_data["its_patients_seen"]
|
||||
Patient.update_patient_list()
|
||||
else:
|
||||
print("Failed to parse Loading Data.")
|
||||
|
||||
#Transitioning to loaded Save
|
||||
var scenes_to_hide = [$TitleScreen, $Bedroom, $TextScreens, $TextScreens/Day, $ScreeningDesk.patient_controls, $ScreeningDesk.end_of_day_controls, $ScreeningDesk.patient_texture, $ScreeningDesk.panel_container, $ScreeningDesk.face_zoom] + $ScreeningDesk.margin_container.get_children()
|
||||
var scenes_to_show = [$ScreeningDesk, $ScreeningDesk.alone_controls, UI.get_node("UI/UpperContainer")]
|
||||
TransitionScreen.transition(scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
$ScreeningDesk.new_patient()
|
||||
#Starting day
|
||||
start_day()
|
||||
|
||||
|
||||
|
||||
@@ -203,7 +207,7 @@ func _on_load_slot_pressed(load_slot):
|
||||
func _on_main_menu_pressed():
|
||||
|
||||
#Removing mask
|
||||
TransitionScreen.mask.visible = false
|
||||
UI.masks.mask.visible = false
|
||||
|
||||
#Clearing balloon
|
||||
clear_balloon()
|
||||
@@ -215,8 +219,12 @@ func _on_main_menu_pressed():
|
||||
#Going back to main menu
|
||||
var scenes_to_hide = [$ScreeningDesk, $TextScreens, $TextScreens/Day, UI.its_game_over]
|
||||
var scenes_to_show = [$TitleScreen]
|
||||
TransitionScreen.transition(scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
UI.masks.transition(scenes_to_hide, scenes_to_show)
|
||||
await UI.masks.transition_finished
|
||||
|
||||
#Resetting scenes
|
||||
for scene in [$ScreeningDesk, UI.its_game_over]:
|
||||
scene.reset()
|
||||
|
||||
|
||||
|
||||
@@ -243,8 +251,8 @@ func update_slots():
|
||||
var load_data = JSON.parse_string(json_string)
|
||||
if typeof(load_data) == 27: #Checks if loaded data is a Dictionary
|
||||
#Updates save and load slots texts
|
||||
print(load_data)
|
||||
save_slot.text = "DAY " + str(load_data["day_count"]) + ", PATIENT " + str(load_data["patient_count"]) + "\nSAVE DATE : " + str(load_data["save_date"])
|
||||
print("Initializing save slot #" + str(save_number) + " : " + str(load_data))
|
||||
save_slot.text = "DAY " + str(load_data["day_count"]) + ", FLOOR " + str(load_data["floor_count"]) + "\nSAVE DATE : " + str(load_data["save_date"])
|
||||
load_slot.text = save_slot.text
|
||||
else:
|
||||
print("Failed to parse Loading Data.")
|
||||
|
||||
Reference in New Issue
Block a user