* Changement de l'UI, ajouts de l'inspecteur par carte et changement de police * Ajout d'un semblant d'exploration * Ajout de la sauvegarde des entités * Restructuration mineure de l'arborescence * Fix divers et réécriture des textes
57 lines
1.3 KiB
GDScript
57 lines
1.3 KiB
GDScript
extends Machine
|
|
class_name SolarPanel
|
|
|
|
var charged : bool = false
|
|
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
|
|
if recharge_days >= get_days_to_recharge():
|
|
set_charged(true)
|
|
|
|
func set_charged(_charged = true, with_anim : bool = true):
|
|
charged = _charged
|
|
recharge_days = 0
|
|
if with_anim:
|
|
if charged:
|
|
%AnimationPlayer.play("charged")
|
|
else :
|
|
%AnimationPlayer.play_backwards("charged")
|
|
await %AnimationPlayer.animation_finished
|
|
%Flair.modulate = Color.WHITE if charged else Color.TRANSPARENT
|
|
%Pannels.modulate = Color.WHITE if charged else Color("6c6c6c")
|
|
|
|
|
|
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
|
|
|
|
func save() -> EntityData:
|
|
return SolarPanelData.new(self) |