minijam-166/scripts/animal.gd
2024-09-01 21:07:12 +02:00

32 lines
582 B
GDScript

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()