extends Node ## Cycle de vie de l'application, navigation entre scenes et etat general du ## jeu. Porte le contexte transitoire necessaire entre deux changements de ## scene (ex. la mission choisie sur la carte), puisque Godot libere les ## noeuds de la scene precedente a chaque changement. const SCENE_BOOT := "res://scenes/boot/boot.tscn" const SCENE_PROFILE_SELECT := "res://scenes/profiles/profile_select.tscn" const SCENE_PROFILE_CREATE := "res://scenes/profiles/profile_create.tscn" const SCENE_WORLD_MAP := "res://scenes/world/world_map.tscn" const SCENE_MISSION_INTRO := "res://scenes/world/mission_intro.tscn" const SCENE_EXERCISE_HOST := "res://scenes/exercises/exercise_host.tscn" const SCENE_REWARD := "res://scenes/ui/reward_screen.tscn" const SCENE_COLLECTION := "res://scenes/ui/collection.tscn" const SCENE_SETTINGS := "res://scenes/ui/settings.tscn" const SCENE_ADULT_SPACE := "res://scenes/ui/adult_space.tscn" ## Mission choisie sur la carte, lue par mission_intro puis exercise_host et ## reward_screen. Remise a vide par reward_screen au retour sur la carte. var pending_mission_id: String = "" ## Resultat de chaque exercice de la mission qui vient de se terminer ## (MissionScoring.OUTCOME_*), transmis par exercise_host a reward_screen. var last_outcomes: Array[String] = [] ## Scene a laquelle l'ecran de reglages rend la main (carte ou selection de ## profil, selon d'ou il a ete ouvert). var settings_return_scene: String = SCENE_WORLD_MAP ## Dernier tableau consulte sur la carte : on y revient apres une mission. var map_region_id: String = "" func goto(scene_path: String) -> void: # Differe le changement de scene : l'appeler depuis le _ready() de la # scene en cours d'ajout a l'arbre echoue sinon ("Parent node is busy"). get_tree().change_scene_to_file.call_deferred(scene_path)