Files
seeding-planets/common/game_data/scripts/infinite_progression_data.gd
T

51 lines
1.4 KiB
GDScript

extends ProgressionData
class_name InfiniteProgressionData
@export var mutation_unlocked := StoryProgressionData.START_UNLOCKED_MUTATIONS
func get_story_step() -> StoryStep:
return InfiniteStoryStep.new(run_number)
func get_story_progression() -> float:
return 0.
func discover_mutation(_pm : PlantMutation) -> void:
pass
func get_mutations_discovered() -> Array[String]:
var mutation_discovered : Array[String] = []
for m in get_all_mutations():
mutation_discovered.append(m.get_mutation_id())
return mutation_discovered
func next_story_step() -> void:
pass
func are_all_mutations_unlocked() -> bool:
return true
func unlock_new_mutation() -> PlantMutation:
return null
func unlock_all_mutation() -> void:
pass
func get_available_mutations() -> Array[PlantMutation]:
if GameInfo.story_game_data and GameInfo.story_game_data.progression_data:
mutation_unlocked = max(mutation_unlocked,GameInfo.story_game_data.progression_data.mutations_unlocked)
return get_all_mutations().slice(0, mutation_unlocked)
func set_best_run(v := best_run):
best_run = v
if best_run > 10:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_10_INFINITE)
if best_run > 20:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_20_INFINITE)
if best_run > 30:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_30_INFINITE)