new abnormal special WIP

This commit is contained in:
Maurane
2026-03-05 18:13:49 +01:00
parent 6b39f60feb
commit f9ea0e6a56
19 changed files with 150 additions and 239 deletions
+3 -1
View File
@@ -5,12 +5,13 @@ var day_count : int = 1
var floor_count : int = -1
var patient_count : int = 1
var its_patient_count : int = 0
var accurate_diagnoses : 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 = []
var its_patients_seen = []
var patient_id
var event_index = 0
#Variables for UI
var save_slot_count = 4 #How many save slots there are in the game, in addition to the autosave slot
@@ -38,6 +39,7 @@ signal start_balloon
signal release_display
signal terminate_display
signal its_end
signal next_event
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
+23 -50
View File
@@ -7,7 +7,6 @@ extends Control
var balloon: Node
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
@@ -30,14 +29,15 @@ func _ready() -> void:
#Connecting Signals
title_screen.new_game_pressed.connect(self._on_new_game_pressed)
UI.save_slot_pressed.connect(self._on_save_slot_pressed)
UI.load_slot_pressed.connect(self._on_load_slot_pressed)
UI.save_slot_pressed.connect(self.save_game)
UI.load_slot_pressed.connect(self.load_game)
UI.main_menu_pressed.connect(self._on_main_menu_pressed)
UI.text_value_changed.connect(self._on_text_value_changed)
UI.auto_value_changed.connect(self._on_auto_value_changed)
UI.its_game_over.back_to_menu.pressed.connect(self._on_main_menu_pressed)
UI.its_game_over.reload_checkpoint.pressed.connect(self.load_game.bind(0))
Globals.character_label_color_change.connect(self._on_character_label_color_change)
Globals.start_balloon.connect(self.start_balloon)
@@ -56,6 +56,7 @@ func _on_new_game_pressed():
Globals.day_count = 1
Globals.floor_count = -1
Globals.patient_count = 0
Globals.accurate_diagnoses = 0
Globals.diagnoses_quota = 1
Globals.daily_patient_limit = 6
Globals.patients_seen.clear()
@@ -68,39 +69,33 @@ func _on_new_game_pressed():
start_day()
#Plays the entire introduction
func play_intro():
#PART IN PROGRESS
#WORK IN PROGRESS
#Starting the day
start_day()
#Starts the day
func start_day():
#Hiding Menu for cinematic impact
UI.pause_menu.menu_button.hide()
#Transitioning to day screen
$TextScreens/Day.text = "[center]FLOOR " + str(Globals.floor_count) + "[/center]"
var scenes_to_hide: Array[Node] = [$TitleScreen, $TextScreens, $TextScreens/Day, $ScreeningDesk]
var scenes_to_hide: Array[Node] = [$TitleScreen, $ScreeningDesk, UI.pause_menu.menu_button, UI.its_game_over]
var scenes_to_show: Array[Node] = [$TextScreens, $TextScreens/Day]
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]:
$ScreeningDesk.middle_screen.update(Globals.day_count, Globals.floor_count, Globals.accurate_diagnoses, Globals.diagnoses_quota)
for scene in [$ScreeningDesk, UI.its_game_over]: #Resetting scenes
scene.reset()
$ScreeningDesk.journal_layer.update_journal(Globals.floor_count) #Updating Journal
#Transitioning to the screening desk
scenes_to_hide = scenes_to_show
@@ -108,13 +103,7 @@ func start_day():
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.computer.next_patient_button.show()
$ScreeningDesk.event_manager(Globals.event_index)
#Saves game state on the selected save slot
@@ -124,11 +113,12 @@ func save_game(save_slot_number:int):
var save_data = {
"day_count": Globals.day_count,
"floor_count": Globals.floor_count,
"event_index": Globals.event_index,
"patient_count": Globals.patient_count,
"accurate_diagnoses": Globals.accurate_diagnoses,
"diagnoses_quota": Globals.diagnoses_quota,
"daily_patient_limit": Globals.daily_patient_limit,
"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()
@@ -145,10 +135,8 @@ func save_game(save_slot_number:int):
print("Failed to open file for saving.")
#Updating save/load slots information
var save_slot_path = "Menu/Save/MarginContainer/VBoxContainer/SaveSlot" + str(save_slot_number)
var load_slot_path = "Menu/Load/MarginContainer/VBoxContainer/LoadSlot" + str(save_slot_number)
var save_slot = UI.get_node(save_slot_path)
var load_slot = UI.get_node(load_slot_path)
var save_slot = UI.pause_menu.save.save_slot[save_slot_number]
var load_slot = UI.pause_menu.load.load_slot[save_slot_number]
save_slot.text = "FLOOR " + str(save_data["floor_count"]) + "\nSAVE DATE : " + str(save_data["save_date"])
load_slot.text = save_slot.text
@@ -176,11 +164,12 @@ func load_game(load_slot_number:int):
print("Loaded save: " + str(load_data))
Globals.day_count = load_data["day_count"]
Globals.floor_count = load_data["floor_count"]
Globals.event_index = int(load_data["event_index"])
Globals.patient_count = load_data["patient_count"]
Globals.accurate_diagnoses = load_data["accurate_diagnoses"]
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()
@@ -191,31 +180,17 @@ func load_game(load_slot_number:int):
start_day()
func _on_save_slot_pressed(save_slot):
save_game(save_slot)
func _on_load_slot_pressed(load_slot):
load_game(load_slot)
func _on_main_menu_pressed():
#Removing mask
UI.masks.mask.visible = false
#Hiding loading menu and mask
UI.masks.mask.hide()
UI.pause_menu.reset()
#Clearing balloon
clear_balloon()
#Hiding menus
UI.get_node("Menu/Menu").hide()
UI.get_node("Menu/UpperContainer").hide()
#Going back to main menu
var scenes_to_hide = [$ScreeningDesk, $TextScreens, $TextScreens/Day, UI.its_game_over]
var scenes_to_hide = [$ScreeningDesk, $TextScreens, $TextScreens/Day, UI.its_game_over, UI.pause_menu.menu_button]
var scenes_to_show = [$TitleScreen]
UI.masks.transition(scenes_to_hide, scenes_to_show)
await UI.masks.transition_finished
@@ -225,12 +200,11 @@ func _on_main_menu_pressed():
scene.reset()
#Updates Save/Load Slots based on Existing Saves
func update_slots():
#Loops over the 4 save/load slots
for save_number in range(1, Globals.save_slot_count + 1):
#Loops over the 4 save/load slots + the autosaveslot
for save_number in range(Globals.save_slot_count + 1):
#Retrieves save and load slots
var save_slot = UI.pause_menu.save.save_slot[save_number]
@@ -254,7 +228,6 @@ func update_slots():
print("Failed to parse Loading Data.")
#Starts a balloon dialogue
func start_balloon(balloon_type:String, patient_type:String, dialogue_resource: Resource, start_title: String):