Files
seeding-planets/common/game_data/scripts/progression_data.gd

68 lines
1.7 KiB
GDScript

@abstract
extends Resource
class_name ProgressionData
@export var run_number : int = 0
@export var best_run : int = 0
@abstract func get_story_step() -> StoryStep
@abstract func get_story_progression() -> float
@abstract func next_story_step() -> void
@abstract func get_available_mutations() -> Array[PlantMutation]
@abstract func are_all_mutations_unlocked() -> bool
@abstract func discover_mutation(_pm : PlantMutation) -> void
@abstract func get_mutations_discovered() -> Array[String]
@abstract func unlock_new_mutation() -> PlantMutation
func get_all_mutations() -> Array[PlantMutation]:
return [
QualityMutation.new(),
AncientMutation.new(),
ProlificMutation.new(),
PrecociousMutation.new(),
PurificationMutation.new(),
ToughMutation.new(),
QuickMutation.new(),
RobustMutation.new(),
SocialMutation.new(),
VivaciousMutation.new(),
FertileMutation.new(),
HurriedMutation.new(),
GenerousMutation.new(),
ProtectiveMutation.new(),
PureMutation.new(),
CleaningMutation.new(),
ErmitMutation.new(),
TropicalMutation.new(),
RhizomeMutation.new(),
SpontaneousMutation.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(),
StartStoryStep.new(),
MercuryStoryStep.new(),
BoreaStoryStep.new()
]
func finish_run(run : RunData):
run_number += 1
best_run = max(best_run, run.level)