class_name Bud extends VineNode signal opened var img_path func _on_opened(): $AnimatedSprite2D.play("open") opened.emit() spread() await $AnimatedSprite2D.animation_finished queue_free() func spread(): for dir in [Vector2.UP, Vector2.DOWN, Vector2.RIGHT, Vector2.LEFT]: if not vine.vine_locations.has(location + dir): vine.vine_locations.append(location + dir) grow_to_next_bud(dir) func grow_to_next_bud(dir): var target_offset = Vector2(randf_range(60, 240), randf_range(60, 240)) var pos1 = grid.get_world_position(location, offset) var pos2 = grid.get_world_position(location + dir, target_offset) var num_seg = floor((pos1-pos2).length() / 96) await vine.grow_vine_sequence(location, offset, location + dir, target_offset, num_seg, true)