51 lines
1.0 KiB
GDScript
51 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)
|
|
pass
|
|
|
|
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
|