extends Node class_name RunDataPlantInfo signal updated const DEFAULT_GROWING_TIME = 2 const DEFAULT_LIFETIME = 6 const DEFAULT_BASE_SCORE = 1 const DEFAULT_SEED_NUMBER = 2 const DEFAULT_SEED_RANDOM_LOOSE = 1 const DEFAULT_PLANT_INFLUENCE_RADIUS = 100 var run_data : RunData func _init( _run_data : RunData ): run_data = _run_data var region_modifiers : Array[RegionModifier] func get_growing_time() -> int: var growing_time = DEFAULT_GROWING_TIME for rm in get_region_modifiers(): growing_time = rm.modify_plant_growing_time(growing_time) return max(0, growing_time) func get_lifetime() -> int: var lifetime = DEFAULT_LIFETIME for rm in get_region_modifiers(): lifetime = rm.modify_plant_lifetime(lifetime) return max(0, lifetime) func get_base_score() -> int: var base_score = DEFAULT_BASE_SCORE for rm in get_region_modifiers(): base_score = rm.modify_plant_base_score(base_score) return max(0, base_score) func get_seed_number() -> int: var seed_number = DEFAULT_SEED_NUMBER for rm in get_region_modifiers(): seed_number = rm.modify_plant_seed_number(seed_number) return max(0, seed_number) func get_seed_random_loose() -> int: var seed_random_loose = DEFAULT_SEED_RANDOM_LOOSE for rm in get_region_modifiers(): seed_random_loose = rm.modify_plant_seed_random_loose(seed_random_loose) return min(max(0, seed_random_loose),get_seed_number()) func get_influence_radius() -> int: var influence_radius = DEFAULT_PLANT_INFLUENCE_RADIUS for rm in get_region_modifiers(): influence_radius = rm.modify_plant_influence_radius(influence_radius) return max(0, influence_radius) func get_region_modifiers() -> Array[RegionModifier]: if run_data.current_run_point and run_data.current_run_point.region_parameter: return run_data.current_run_point.region_parameter.modifiers return []