seeding-planets/entities/interactables/machines/solar_pannel/scripts/solar_pannel.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

50 lines
1.0 KiB
GDScript

extends Machine
class_name SolarPanel
var charged : bool = false : set = set_charged
var recharge_days : int = 0
func get_days_to_recharge(l : int = level) -> int:
match l:
1: return 2
2: return 2
3: return 2
_: return 1
func get_energy_production(l : int = level) -> int:
match l:
1: return 1
2: return 2
3: return 3
_: return 1
# Méthode déclenchée par la classe planet
func _pass_day():
if not charged:
recharge_days += 1
print(get_days_to_recharge())
if recharge_days >= get_days_to_recharge():
set_charged(true)
func set_charged(_charged = true):
charged = _charged
recharge_days = 0
if charged:
%AnimationPlayer.play("charged")
else :
%AnimationPlayer.play_backwards("charged")
func setup_machine_sprite():
%Base.self_modulate = Machine.get_level_color(level)
func interact_text():
return "Recharge " + str(get_energy_production()) + " energy"
func can_interact(_p : Player) -> bool:
return charged
func interact(p : Player) -> bool:
p.recharge(get_energy_production())
set_charged(false)
return true