Files
zacharie 5c2eb224ed demo 2.0.0
* reduce demo time
* add all changes from full game
2026-08-01 14:22:53 +02:00

84 lines
2.2 KiB
GDScript

@abstract
extends Resource
class_name ProgressionData
@export var run_number : int = 0
@export var best_run : int = 0 : set = set_best_run
@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
@abstract func unlock_all_mutation() -> void
func set_best_run(v := best_run):
best_run = v
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(),
# SaviorMutation.new(),
# AdaptiveMutation.new(),
# ResistantMutation.new(),
]
func get_all_artifacts() -> Array[Artefact]:
return [
PileArtefact.new(),
SeedCaseArtefact.new(),
StabilisatorArtefact.new(),
TalionOverloaderArtefact.new(),
TalionSoilArtifact.new(),
TalionSprayArtifact.new()
]
func get_all_story_steps() -> Array[StoryStep]:
return [
TutorialStoryStep.new(),
StartStoryStep.new(),
MercuryStoryStep.new(),
# BoreaStoryStep.new(),
# AquaStoryStep.new(),
# SubterraStoryStep.new(),
# EstiaStoryStep.new(),
# AstraStoryStep.new(),
]
func update_best_run(run : RunData):
best_run = max(best_run, run.level)
func finish_run(run : RunData):
run_number += 1
update_best_run(run)