extends Resource class_name ProgressionData @export var planted_mutation_ids: Array[String] = [] @export var story_step_i := 0 @export var ship_tutorial_done = false var all_mutations: Array[PlantMutation] : get = get_all_mutations var available_mutations: Array[PlantMutation] : get = get_all_mutations var available_artefacts: Array[Artefact] : get = get_all_artifacts var story_step : StoryStep : get = get_story_step func get_story_step() -> StoryStep: return get_all_story_steps()[story_step_i] func next_story_step() -> void: get_story_step()._on_finish() if story_step_i + 1 < len(get_all_story_steps()): story_step_i += 1 func get_all_mutations() -> Array[PlantMutation]: return [ AncientMutation.new(), FertileMutation.new(), GenerousMutation.new(), HurriedMutation.new(), PrecociousMutation.new(), ProlificMutation.new(), ProtectiveMutation.new(), PureMutation.new(), PurificationMutation.new(), QualityMutation.new(), QuickMutation.new(), RobustMutation.new(), SocialMutation.new(), ToughMutation.new(), VivaciousMutation.new(), ] func get_all_artifacts() -> Array[Artefact]: return [ PileArtefact.new(), SeedCaseArtefact.new(), StabilisatorArtefact.new(), TalionOverloaderArtefact.new(), TalionSoilArtifact.new(), ] func get_all_story_steps() -> Array[StoryStep]: return [ TutorialStoryStep.new(), AstraStoryStep.new(), MercuryStoryStep.new(), BetaStoryStep.new() ]