The_Dark_Side_of_Earth/vines_petals/bud.gd

26 lines
935 B
GDScript

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(vec_mod(location + dir, grid.num_collumns)):
vine.vine_locations.append(vec_mod(location + dir, grid.num_collumns))
grow_to_next_bud(dir)
func grow_to_next_bud(dir):
var target_offset = Vector2(randf_range(60, 240), randf_range(90, 270))
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)
func vec_mod(vec : Vector2, modulus : float):
return Vector2(fposmod(vec.x, modulus), fposmod(vec.y, modulus))