seeding-planets/entities/interactables/compost/scripts/compost.gd

39 lines
792 B
GDScript

extends Interactable
class_name Compost
@export var value_per_seed : float = 0.5
@onready var fill_value : float = 0.
func _process(_delta):
%ProgressBar.value = lerp(%ProgressBar.value, fill_value * 100, 0.5)
func inspected_text():
return "Compost"
func interact_text():
return "Put a seed"
func can_interact(p : Player) -> bool:
return p.inventory.get_item() and p.inventory.get_item() is Seed
func requirement_text() -> String:
return "You must have a seed in hand"
func interact(p : Player) -> bool:
if not can_interact(p):
return false
p.play_sfx("harvest")
p.delete_item()
fill_value += value_per_seed
if fill_value >= 1.:
$AnimationPlayer.play("empty")
fill_value = 0
p.upgrade()
value_per_seed /= 1.5
else:
$AnimationPlayer.play("fill")
return true