seeding-planets/entities/interactables/machines/compost/scripts/compost.gd
Zacharie Guet 099f8bb1be divers changements pour la sortie du second proto
* ajout du panneau solaire #54
* ajout d'un tutoriel #53
* equilibrage du jeu #73
* ajout d'un son pour l'annonce
2025-09-26 16:56:35 +02:00

42 lines
958 B
GDScript

extends Machine
class_name Compost
var containing_seed : int = 0
func get_seed_needed(l : int = level) -> int:
match l:
1: return 5
2: return 4
3: return 3
_: return 2
func setup_machine_sprite():
%Sprite.self_modulate = Machine.get_level_color(level)
func _process(_delta):
%ProgressBar.value = lerp(%ProgressBar.value, float(containing_seed) / float(get_seed_needed()) * 100, 0.5)
func interact_text():
return "Put a seed ("+str(get_seed_needed() - containing_seed)+" left)"
func can_interact(p : Player) -> bool:
return p.inventory.get_item() and p.inventory.get_item() is Seed
func interact(p : Player) -> bool:
if not can_interact(p):
return false
p.play_sfx("harvest")
p.inventory.remove_current_item()
containing_seed += 1
if containing_seed >= get_seed_needed():
$AnimationPlayer.play("empty")
containing_seed = 0
product(p)
else:
$AnimationPlayer.play("fill")
return true
func product(player : Player):
pass