extends Resource class_name GameData enum GameMode {STORY,INFINITE} signal current_run_updated(r : RunData) signal current_region_data_updated(p : RegionData) @export var player_data : PlayerData = PlayerData.new() @export var current_run : RunData = start_run() : set(v): current_run = v current_run_updated.emit(v) @export var current_region_data : RegionData = null : set(v): current_region_data = v current_region_data_updated.emit(v) @export var progression_data : ProgressionData = ProgressionData.new() @export var last_game_scene : Scene = null @export var ship_in_space = false @export var tutorial_done = false @export var incubator_used = [] @export var game_mode : GameMode = GameMode.STORY @export var dialogs_done : Array[String] = [] #Chemin des dialogues démarrés func start_run() -> RunData: player_data.clear_inventory() current_run = RunData.new() current_run.artefacts_changed.connect( func(artefacts : Array[Artefact]): player_data._on_artefacts_updated(artefacts) ) current_run.current_run_point_changed.connect( func(rp : RunPoint): start_region(rp.region_parameter) ) return current_run func reset_player(): player_data = PlayerData.new() func reset_all(): start_run() reset_player() func start_region(region_param : RegionParameter): current_region_data = RegionData.new(region_param) GameInfo.save_game_data() func give_up(): current_region_data = null current_run = null func start_tutorial(): current_region_data = RegionData.new( RegionParameter.new( 0, tr("ASTRA_BASE"), ["tutorial"], [], randi() ) )