extends Node2D signal liberated @export var n_plant_needed: int var is_liberated := false var current_plants := 0 func _on_area_2d_area_entered(area: Area2D) -> void: var plant = area.get_parent() if plant is Plant and not liberated: plant.grown.connect(tracked_plant_grew) plant.died.connect() func tracked_plant_grew(): if liberated: return current_plants += 1 if current_plants == n_plant_needed: liberate() func tracked_plant_died(): if liberated: return current_plants -= 1 func liberate(): is_liberated = true print("Liberated !!") liberated.emit()