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

43 lines
1.0 KiB
GDScript

extends Machine
class_name Compost
var value_per_seed : float = 0.5
var fill_value : float = 0.
func _process(_delta):
%ProgressBar.value = lerp(%ProgressBar.value, fill_value * 100, 0.5)
func pointer_text():
return "Compost"
func interact_text():
return "Put a seed ("+str(roundi((1-fill_value)/value_per_seed))+" left)"
func inspector_info() -> Inspector.Info:
return Inspector.Info.new(
pointer_text(),
"The compost allow you to upgrade your max energy when putting in it a certain amount of seeds."
)
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(p.inventory.get_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