@tool class_name RandomizedSpawnPattern extends BulletSpawnPattern ## Randomizes properties of a child [BulletSpawnPattern] each [member iteration]. ## ## WARNING: Experimental. Only float properties are currently ## supported and this class is subject to change in the future. ## The pattern to randomize and defer to. @export var pattern: BulletSpawnPattern ## Minimum value for each randomized property. @export var property_min_values: Dictionary[StringName, float] = {} ## Maximum value for each randomized property. @export var property_max_values: Dictionary[StringName, float] = {} func _spawn_bullets(bullet_set: BulletSet, preset: BulletPreset) -> void: for property in property_min_values: if property_max_values.has(property): pattern.set(property, randf_range( property_min_values[property], property_max_values[property] )) pattern.spawn_bullets(bullet_set, preset)