Files
seeding-planets/common/game_data/scripts/progression_data.gd
Zacharie Guet 22b753c6a9 Dev 0.1
* Structure de l'histoire principale
* Line sur le perso principal
* Agrandissement de la zone de détection des cellules
* Ajout du spray de Talion (+1 points de plante de base)
* Ajout de feedback sur l'usage des cellules d'énergie
2026-07-06 23:05:39 +02:00

76 lines
2.0 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
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()
]
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 finish_run(run : RunData):
run_number += 1
best_run = max(best_run, run.level)