68 lines
1.7 KiB
GDScript
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)
|