43 lines
1.0 KiB
GDScript
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
|