36 lines
1001 B
GDScript
36 lines
1001 B
GDScript
extends ProgressionData
|
|
class_name TestProgressionData
|
|
|
|
@export var mutations_available: Array
|
|
|
|
func _init() -> void:
|
|
mutations_available = get_all_mutations().map(func(m): return m.id)
|
|
|
|
func get_story_step() -> StoryStep:
|
|
return InfiniteStoryStep.new()
|
|
|
|
func get_story_progression() -> float:
|
|
return 0.0
|
|
|
|
func discover_mutation(pm: PlantMutation) -> void:
|
|
if !mutations_available.has(pm.id):
|
|
mutations_available.append(pm.id)
|
|
|
|
func get_mutations_discovered() -> Array[String]:
|
|
return mutations_available
|
|
|
|
func next_story_step() -> void:
|
|
pass
|
|
|
|
func get_available_mutations() -> Array[PlantMutation]:
|
|
return get_all_mutations().filter(func(m): return mutations_available.has(m.id))
|
|
|
|
func are_all_mutations_unlocked() -> bool:
|
|
return len(mutations_available) >= len(get_all_mutations())
|
|
|
|
func unlock_new_mutation() -> PlantMutation:
|
|
return get_all_mutations().pick_random()
|
|
|
|
func lock_mutation(pm: PlantMutation) -> void:
|
|
mutations_available.erase(pm.id)
|